Displaying tables below each other in JasperReports - jasper-reports

I have to create a report where several tables are diplayed below each other. Each table gets its data from a SubDataset and contains none, one or more rows.
For the first version of the report, I've simply ignored the possibility of a table having no rows and put all tables below each other, each with the height of 1 row. The idea was, that if there is more than one row, the table will grow in height, which seems to work fine. I've given the first table a fixed position and set all subsequent ones to float. In iReport it looks like this:
But when I create a report, only the first table is at the expected position. The rest is displayed too low and overlaps:
Any idea how to fix this? I can't use subreports, because the report is stored in a database so I can't reference other reports. Is there maybe another alternative to subreports or tables?

You have the "Position Type" property set to "Fix Relative to Top". Change it to "Float".

Try looking into using subreports. I do create table followed by another (datasource is XML).
create subreport using xPath
Use Data Source Expression property of the subreport to set the datasource for subreport
((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/FUND_STATEMENT/FUNDS/FUND")

Related

Excel sheet exported from ssrs. Pivot table and sorting functionality not working in sheet

msoffice2007. when report is exported from ssrs to excel sheet. the functions PIVOT Table and SORTING are not working, it is showing some error like:
""The PovitTable field name is not valid. To create a PovitTable report, you musr use data that is organized with labeled columns. If you are chanfing the name of a pivot table field you must type a new name for the field."" for PIVOT Table.
and ""The operation requires the merged cells to be identically sized."" for sorting
This is because your report isn't perfectly aligned and it cause different cells in the table to get merged, what you should do is to look for the cells whom didn't got merged (in the excel sheet) , check their size in the report builder and change the other cells to that size.
additional tip, make sure that your data (table in this case) is aligned to the top left of the screen.

Hide space between elements of a report

I have one report with various subreports. These subreports are within a table cell. When the subreport doesn't have any data available, I hide the components (tables, textbox, charts) in that subreport. However, this creates some blank space and I need to eliminate this space.
I already used the properties ConsumeContainerWhiteSpace and KeepTogether, but the blank space is still there.
Any suggestions to remove the blank space?
To hide or show an entire row based on another reports results will be difficult, if not impossible. You will need to get this data in your parent report somehow.
I would create a cut down version of your subreport's query that returns row count for every subreport, but within the parent report. Might look like this:
UserID RecordCount
Abby 3
Bob 0
Carl 1
If you are using SSRS 2008r2 you can then use a lookup function to set row visibility. For example the row visibility expression might be
=IIF(Lookup(Fields!UserID.Value,
Fields!UserID.Value,
Fields!RecordCount.Value,
"LookupDatasetName") > 0,
false,
true)
If an earlier version of SSRS, then join that dataset into the dataset for your table.

Two SQL query inside single JasperReport

We are generating reports based on iReports and JasperReports for web application.
Using iReports I found I am struck with big problem.
I want to use two SQL query to fill up my main report...
In query designer I can only write one query..
For another query I cannot use sub-reports...
How do I write second query which will return different fields and include them in my report..
Please guide...
I cannot use sub-reports...
Yes, adding a table to your report is as easy as adding a field. Just drag it from the palette and drop it in the report where you need to have it.
Add a new Table data source. I assume this was done.
Once the data source is configured, you could design your table UI using the wizard.
just click on next or finish to close the wizard.
To add a parameter in data set (if needed), Navigate to your data set using the report inspector. Expand your data set. You would find the parameters menu. Right click to add the new parameter.
Now right click on your table and select edit table data source. Here you will find options to pass parameters to your table from the main report. Passing parameters to your table should be as simple as you do in sub reports. Select the parameter just created from the drop down list box and pass the required value.
In the Data set run Dialog box that appears, please make sure of the data set and the report connection you are using.
You are done configuring the table with this, next you will place the fields in the cells of table for displaying the data.
You are getting your document has no pages since the main report query does not return any rows i guess. For your table to be executed your main report must return at least a row
Hope this helps you.
Good Luck!!
As far as Ireports are concerned, the main report can comprise only one query. And if you wanna use multiple queries in your report, it is possible in the following ways.
Sub Report
Table Dataset.
sub Dataset.
since you don wish to use a sub report, you can go for a Table Dataset. Anything you would do with a sub report is possible with table dataset too(Except for returning variables). You can use sub datasets with charts and graphs. Table set will be of use to you i hope.

SSRS no data in report

I have a single tablix on the SSRS report which fetches data from a stored procedure.
I am trying to show a meesage to the User when no data is present say, "** There is no data for this report*". I can do this easily by specifying this message in the **NoRowsMessage property of the tablix. But I want to show the headers of the tablix along with this message.
If I don't set the NoRowsMessage property, I get the headers but no message, but if I do, I get the message but no headers.
I need some help with this.
Note: I am using SSRS 2008.
Edit:
I can also put up a textbox with the relevant text message below the tablix and set it visible only if the tablix contains no rows. But I am not able to figure out as to how do I find out from the Visibility expression of the textbox whether the tablix contains any rows or not.
A tablix object is related to the underlying dataset, so if there's no data, there's no table in the output.
Other than using the NowRowsMessage property, the only other way I can think of to enforce this would be to ensure your query returns an empty value placeholder when there are now rows returned. This way you would have, in essence, a single data row.
You could then try and add a conditional expression on the table (i.e. on the Visibility property of the details row) to prevent any rows containing your placeholder from showing up.
So in your query you could have:
IF (##ROWCOUNT= 0)
BEGIN
SELECT
'[IAMEMPTY]' as [Col1]
,'[IAMEMPTY]' as [Col2]
,'[IAMEMPTY]' as [Col3]
END
And then in the Visibility property of your table's detail row:
=Iif(Fields!Col1.Value = "[IAMEMPTY]",True,False)
EDIT: Alternatively, to check if the DataSet is empty in SSRS and show a rectangle containing your message/headers (as mentioned in TooSik's comment), you could set up a rectangle with this in the Visibility expression:
=Iif(Rownumber("Dataset_Name")=0, False,True)

How to prevent the repeated values in table of iReport-3.6.7?

I'm trying to create a report using iReport-3.6.7 IDE. I've added a dataset which I used for filling the values into a Table in the report's Details section. Everything is fine with the report compilation. But problem is that when I run the report in the IDE, it displays entire values as much is the number of tuples in the source table. i.e. if my table in source database has 16 tuples, then in iRepoort IDE the table is repeated 16 times. Please, don't tell me I'd place it in other sections e.g. Table Header, Table Footer, etc.
The problem was caused due to my bad approach to report design. Since everything we put into the Detail band of iReport gets populated at run-time, my table (which I'd put in Detail band of report) got populated as many times as of the tuple returned by the report's query.
I had the same problem, I fix it, editing the query SQL in the subreport 1 in the header space, ande the supreport2 in the detail space, if your table is large and you put in the header space , then will give you an error like this "infinite loop creating new page due to column header overflow"
make false "print Repeated value" By Selecting particular Field