Put text not repeatable in horizontal detail - jasper-reports

I want to put a static text not repeatable in horizontal band detail of my report written with iReport.
I've created my band in this way:
Print Order: Horizontal
Columns no.: 10
But I want an effect like this:
But the only effect proposed is: repeating of header name and age together the value.
How can I resolve this?
I used iReport 5.1.0

Solved!
I want to share my solution step by step:
I've created a band detail to explode in horizontal way and I've set number of column (10)
I've added a text field "Name"
I've set the following XML properties on "Name" text field:
isPrintRepeatedValues = false
printWhenGroupChanges = "name of group container"
I've put field $F{Name} in the same column of text field "Name"
The result has been:
All value of name field are repeated and the text field has shown only once.
Have a nice day ;)

Related

Jaspersoft studio calculate variables before detail band

Jaspersoft studio 6.2.
The report below, there are 3 bands: title, detail, and summary. Detail is in the middle. Look at "Activated staff" on the top on title band, it used a variable (activatedstaffcount1) as expression. The variable sum all activated staff counts in the detail. However it shows null. The bottom one is in the summary band and used the same variable but it shows correct number. The middle section is the data (detail band). I want to show aggregated result before the display data(detail band), how can I do it?
Try to set also Evaluation time in the text field which contains that variable to the "Report".
If the text field is outside of the table - try to return value into the parameter back from dataset and display that parameter at the end of report evaluation.

How to stretch text field on multiple pages in Jasper Reports?

Scenario:
I have a jasper report with multiple text fields inside a detail band. Each text field has the properties:
Position: Float
Stretch Type: Relative to tallest object
Print When Detail Overflows: False
Stretch With Overflow: True
The details band has the property:
SplitType: Stretch
Current Result:
When one of the text fields is taller than the page and extends to a next page, all other text fields stretch to the end of the page.
Problem:
I want all text fields to be able to stretch on the next page as well. If I use the property 'Print When Detail Overflows: True' then this causes the text fields to be 'reprinted' with data duplicated. That is not my intention. I want to be able to stretch the text field to more than one page.
Thank you!
I also have same problem and after playing whole day did not figure out anything :-(.
My workaround was to set whole band to "Prevent" split type. It is not solution. Only trying to not have text fields 'reprinted' with data duplicated.
You can try setting to the field's Stretch Type to Relative to Band Height. If that didn't work, just play with those properties. I believe you can accomplish it by playing with the properties you mentioned.

Stretch a row with data overflow while having multiple rows in a single band

My requirements bind me to have multiple rows in a single "Details" band.
Right now I am having a static text field (which is highlighted in color) in the leftmost column and three text data fields next to it.
What I want in my report is, the static text band along with the three bands should stretch in height when data in either of the three bands overflows, with the next row "properly" displayed below the stretched row. By "properly" I mean the next row elements should have their "top" values the same and be displayed in the same "row".
I tried setting "Stretch with overflow" flag to "true" and "Position" to "float" but the problem is that the next row data is not properly positioned.
I have found the answer. The key to the solution is grouping the elements inside a row together.
Remove all the static text labels. Use text fields instead, with the text in quotes. They can be grouped with other text fields and data fields.
Put all the data fields after the quoted text field in the same group as the quoted text field.
Now, do the same with all the rows that you want to display. Separate group for individual row.
Select all the elements in a group, or, all the elements in all the gorups and do this:
Set "Position" to "Float"
Set "Stretch Type" to "Relative to the tallest object"
Check "Print when detail overflows" checkbox.
Check the "Stretch with overflow" checkbox.
That's all we can do to make things "stretch" together.
Now, the band would have to stretch dynamically with these stretched details. Just go to the band properties, set Split type to "Default" and split allowed to true. This did the trick for me.
In case someone comes up to this problem and above answers don't work. I suggest checking your xml's root element. If it has the following attribute then remove it:
printOrder="Horizontal"
Then above answers should work.
Hope I'll save someone a day of googling the same stuff.
In my case doing as you advised didn't work. I had to modify your solution a little bit - I made a "frame" instead of grouping objects, and put previuosly grouped elements in that frame. I set positionType="Float" and stretchType="No stretch" in that frame, and set stretchType="RelativeToTallestObject" to its child items - then it all works.

JasperReports, PrintWhenExpression and RemoveLineWhenBlank → Strange Behaviour

I have a problem with JasperReports when using printWhenExpression and RemoveWhenBlank inside a subreport.
To reproduce this problem, I made a simple example using one master report and two subreport.
The first subreport, let's call it the static subreport, contains two Static Text components in the title band (Label 1 on the first line, Label 3 on the second), both have the Position Type attribute set to Float. The title band Split Type attribute is set to "Immediate".
The dynamic subreport have three Static text components (Label 1 on the 1st line, Label 2 on the second and Label 3 on the third), all of them have the Position Type set to Float. But Label 2 has PrintWhenExpression set to Boolean.FALSE and RemoveLineWhenBlank set to TRUE. So Label 2 is hidden and Label 3 is moved to Label 2's place under Label 1.
So basically the dynamic subreport and the static one have the same structure and should behave the same way when printed inside a report. But that's not the case in this little example.
In the master report I'm using a subreport component inside the detail band ( the split type of the detail band is set to Immediate ) and using a JREmptyDataSource with 90 empty rows. When pointing the subreport component to the static subreport, the pdf output generated by jasperreports is corrrect. But when using the dynamic subreport, jasperreports leaves an empty space (that is used when using the static subreport) at the end of the first page and jumps to the next page to print Label 3.
In the real case that I have a problem with, I have a subreport that contains more than 20 lines with Static Text and Text Field components, most to them with printWhenExpression set to a field or a parameter and RemoveLineWhenBlank set to TRUE. When producing the pdf output in some cases I have that specific subreport (which should occupy just  a third of a page) spanning one page and a half with a lot of space spread between the visible lines in the subreport. And I think the combination of RemoveLineWenBlank and PrintWhenExpression is what's causing the problem.
 
So what I want know is if this is a bug or just me missing something in the documentation.
Here is a link to the post I made at the JasperReports forum, it contains the templates for the master report and the two subreports, plus two pdfs generated by jasperreports and screenshots showing the layout of the subreports: link
Thanks in advance for your help.

Problem with conditionally hiding rows of a grid in generated PDF reports

I am generating PDF/HTML report from a BIRT template.
I am using "visibility" property to hide a grid row conditionally. It is working fine and that row is hidden in generated report.
But, I am getting a bottom border missing from the upper grid row in my PDF report and although HTML report is generated perfectly fine.
To understand it see below, for example my report looks like following when visibility is 'true' for row containing location element.
Name
Description
Location
verdict
and after visibility is 'false' for 'Location' row, it is showing as following in generated report.
Name
Description
verdict
The grid line between Description and verdict is missing.
I am using BIRT 2.1.2. Is this a known problem in this version?
Please help.
How are you implementing the separator line? Are you just creating a border around the grid cell? That entire cell/row is getting suppressed along with the border.
To get the effect you want, try applying your visibility rule to the data (text) item itself rather than the Grid element. You could also add a horzzontal rule to the end of each of the text elements to insert a divider that would not be affected by the grid's visibiltiy.