Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Cannot add joined parameter to the footer row
JSdev
I have made a full join on the two data sets A,B which gives me the joined data set J. Now J contains parameters from both data sets like:
A : : order
A : : item
B : : Data
B : : Length
I have then created a table which I have bound to J. When I drag eg. A : : order to the footer row it works fine, but if I drag B : : Data to the footer row it does not appear.
Any ideas on why I cannot use the parameters from the data set B?
EDIT: Maybe I should add that I am using an XML files as data source and that A and B have different rowmappings.
Find more posts tagged with
Comments
mwilliams
Hi JSdev,
Can you attach a sample XML file and report design that I can run and see? Thanks.
JSdev
Hm now I cannot reproduced the error, the wierd this is that it helped to rename the dataset, there seems to be some instability converning this.
mwilliams
JSdev,
Well, it's good to hear it works now. If you come across the issue again, attach the XML source and report design and I'll check it out. Not sure what the issue with the name would have been.
JSdev
I now have the problem again. I have attached the design file and the xml data source (it was not allowed to upload xml so I have uploaded it in .txt).
As can be seen from the test I add the parameter "box : : X" to the footer row but when I preview it does not appear.
Any ideas?
JSdev
Uploaded a simpler example containing one working rptdesign file and a non-working and the corresponding data source.
mwilliams
JSdev,
It's because of the position of your param:Price value in your dataSet. If you look at the preview of the dataSet in the "non-working" report, the 9 is at the top of the right column. So, the value of that column when it gets to the footer is "" like it shows. So, it really is working.
If you look at the other dataSet, you'll see that the 9 is in the last row of the param:Price column, therefore, when the footer row is rendered, that is the active row value.
Hope this helps.
JSdev
EDIT: see below reply
JSdev
But why does the position of "9" differ between the two .rptdesign files (working = below, non-working = in the top)?
The order of the parameters are defined in the exact same order in all data sets in both files.
mwilliams
JSdev,
It's probably because the one is all numbers and the other is characters and numbers.
JSdev
Yes it seems that the records are sorted. If I change the two MName records to a number below 9 they appear before the Price record. And the price record can therefore be placed in the footer.
In the previous case its only possible to add the price to the header row.
So where you put parameters (by parameters I mean the column mappings that I have defined) in a table is restricted by the order they appear in from the result set.
In the examples I posted its actually the values of the parameters that determines the order and not the parameters themselves - this makes it even more impossible to determine the order since these can change at runtime.
This is bad news because I would like to define my own parameter-order in the table.
But as I understand this is currently not possible since the order is determined when BIRT computes the result set from the row mapping.
Any ideas on how I can determine my own order of how the parameters should be shown in a table?
mwilliams
JSdev,
Is param::Price always only going to have one row value? Like in your two examples?
JSdev
Hm not sure what you mean with value. Since its currently /
@value
that determines its position in the result set and this value does not always equal 9 it will appear in a random way unless an extra order attribute is inserted and sorted upon.
But the columns part will always contain two columns.
Each of the column nodes should either be:
1) assigned as a separate columns in a row.
or
2) as two separate rows.
But sometimes the row should be the header and other times the row should be the footer.
As I understand this is only possible if the the result set can be sorted so the columns node comes before or after the rows node. Or are there alternatives?
mwilliams
JSdev,
If you were only going to have one value for "Price" out of a dataSet, like in your examples. The fact that it's 9 in both doesn't mean anything to my question. I was going to say that you could do a check for null values and only set a global variable to the value of "Price" if it's not null (in the dataSet script). Then, use this variable in the header or footer of the table to display the value.