How to add a table header to an existing jasper table component? - jasper-reports

Is there a way to add a table header to an existing jasper report table?
I have an existing jasper report that contains a table component that does not have a table header. I would like to add a table header now, but cannot find any way to do this without completely recreating the table.
Does anyone know of a way to add a Table Header to an existing jasper table component?

You have 2 options, add it directly in jrxml (xml) or use the IDE
1. Add directly to jrxml (go to source view)
In every jr:column you like to have a header add the jr:tableHeader tag as first element
<jr:column width="100" uuid="accf01ee-c512-4854-ae58-97dee667c054">
<jr:tableHeader style="Table_TH" height="30">
<staticText>
<reportElement x="0" y="0" width="100" height="30" uuid="41f6fe02-194f-483e-ab7b-97a6061e2c27"/>
<text><![CDATA[My header]]></text>
</staticText>
</jr:tableHeader>
....
</jr:column>
2. Use the IDE directly
Double click the table component this make it possibile to edit it, navigate in outline to the header node, for every column you like header create the cell and then you will be able to drag a static or dynamic textfield to it.

Related

Jasper Report assign a variable value from a DTO to the backcolor tag [duplicate]

I am using Jasper Report for designing report. I have a report where there is a static text. I want to set the background color of it by parameter value. In the XML it generates for the text like this:
<reportElement mode="Opaque" x="434" y="0" width="121" height="12" backcolor="#A6A6A6" uuid="e088bd9f-a0ac-4f34-9375-df765c829ec2"/>.
Now I need to set the backcolor from a parameter which will come from database. for here like #A6A6A6.
What can I try next? I have researched it, but no luck.
You can do that with net.sf.jasperreports.style.* element level properties (for which you can have expressions as values).
In your case you would need
<textField>
<reportElement ...>
<propertyExpression name="net.sf.jasperreports.style.backcolor">$P{someColor}</propertyExpression>
</reportElement>
...

Jasper Reports subreport text alignment is wrong only when in main report

When I preview my jasper subreport, text is aligned to the right (what I want).
But when it is used in the main report, text is aligned to the left
On both reports, per element styling is used, set in Jasper Studio.
The jrxml per element looks like...
<textElement textAlignment="Right" markup="html">
<paragraph leftIndent="2"/>
</textElement>
<textFieldExpression><![CDATA[$F{col_1_initials}]]> </textFieldExpression>
The element including the subreport looks like
<band height="161" splitType="Stretch">
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
<subreport isUsingCache="false" runToBottom="false">
<reportElement x="-20" y="0" width="595" height="161" uuid="4e6fb330-c43f-4d47-b7aa-6884dad63d14"/>
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("weekPairs")]]></dataSourceExpression>
<subreportExpression><![CDATA["weeksubreport.jasper"]]></subreportExpression>
</subreport>
</band>
I'm not using report Style Templates because for a reason I can't diagnose, Jaspersoft Studio crashes instantly trying to assign a style template.
What about the main report ovverides the subreport text-aligment and what would I have to change in the source to fix this?
EDIT
In the report designer->properties of a jrxml file there is a checkbox for "Derive Attributes". I've tried that both on and off, but nothing changed.

How to hide column in excel report generated by JasperReports?

I want to hide some columns in the excel report for my future reference.
Please suggest me any idea to hide the column.
Alex K's comment is correct. Here's how to apply it:
Open the Source page for the report to view the XML.
Find the field to hide in Excel.
Add the property to the reportElement as follows:
<reportElement x="0" y="0" width="100" height="15">
<property name="net.sf.jasperreports.export.xls.cell.hidden" value="true"/>
</reportElement>
The reportElement attribute values will differ in the report you create.

How to relocate summaryband in jasperstudio

I am appending the contentn of my table of content like here: Append an In-Report ToC
Now I have my TOC at the summary band. How can I move it to the second page? Is there any better way to create table of content in jasperstudio?
As recommended in coments i used jasper book. The problem is in the table of content i get dots instead of real text which should be there.
but as you can seen in the picture by hovering the mouse on the dots the real text is shown although without page number!
Here is the XML generated with jasperstudio:
<textField evaluationTime="Group" evaluationGroup="id" hyperlinkType="Reference" bookmarkLevel="2">
<reportElement isPrintRepeatedValues="false" x="-4" y="37" width="534" height="20" printWhenGroupChanges="id" uuid="f6d9376f-7106-4292-b491-7229b297ce04"/>
<textElement markup="html"/>
<textFieldExpression><![CDATA[$F{id}.toString()}]]></textFieldExpression>
<anchorNameExpression><![CDATA[$F{id}.toString()]]></anchorNameExpression>
<hyperlinkReferenceExpression><![CDATA[$F{id}.toString()]]></hyperlinkReferenceExpression>
<hyperlinkTooltipExpression><![CDATA[$F{id}.toString()]]></hyperlinkTooltipExpression>
</textField>

Make lines with iReport?

How can I do this with iReport (using iReport v4.0)?
Here is jrxml file
it depend on the size of Sub-report, check the sub-repot preview, if you want to increase the size of sub-rport in main report , for this you have to increase the size of sub-reportas where it is separately created.
You could try using background band for those lines.
Maybe inside your parent report
When you create a sub-report you can delete; Page Header, Column Header and Page Footer bands on your main report. After then, you can drag and drop sub-report icon on Summary part of your main report. You will probably use ColumnHeader and Detail bands on your Sub-Report. (It depends on your design. If you use subreports recursively, you can use again summary band.) Later,you will select Remove Report Margins on your subreport. To get expected result; your subreport icon Width on main report should equal your subreport page width.
Adding borders worked great for me. Expand your text element to cell size, right click -> Padding and Borders and add them all around. It's easier than having to handle draw lines. Less elements and faster editing.
You can add lines via the iReport Designer gui interface using the Palette (go to Window > Palette, then click Line, then drag it over to the Designer).
You can also add lines by modifying the jrxml code directly. I haven't found guidance in the documentation on this. But this answer to another question shows how to create a vertical line:
<line>
<reportElement x="0" y="0" width="1" height="30"/>
</line>
And it also shows how to create a horizontal line:
<line>
<reportElement x="0" y="0" width="30" height="1"/>
</line>
Also, the JRXML Sources and Jasper Files section of the documentation has some more involved code such as the following, which uses a direction parameter with value BottomUp (there are also references to TopDown in the community site or here):
<line direction="BottomUp">
<reportElement key="line" x="1" y="4" width="554" height="1"/>
</line>
And this, which uses positionType parameter of FixRelativeToBottom:
<line>
<reportElement positionType="FixRelativeToBottom" x="0" y="51" width="555"
height="1"/>
</line>