JasperReport Studio / JRXML / JasperReports number format of table element - jasper-reports

following problem in JasperReport Studio:
I designed a query, I designed, inserted a table element in the Report but when I preview the data numbers look like this:
3.0083728739827928739279
I would like them to look like this:
3.01
In a element I can just add a pattern. For example:
<textField pattern="#,##0.###">
This (i.e.: jr:table pattern="#,##0.###") does not work with a table element.
So how do I format a table?
Thanks and best regards, Joachim
edit 25/07/2018:
one solution is to add the pattern to each textField -element within the jr:table -element by editing the JRMXL code, still I would like to know how to reach this setting via a GUI (i.e. JasperReport Studio)

Set the Pattern using Java decimal Formate.
Example
<field name="data" class="java.lang.Double"/>
"<textFieldExpression><![CDATA[new DecimalFormat("0.0").format($F{data})]]></textFieldExpression>"
I hope Its properly work for you.

Related

How to provide field type in XML datasource of ireport designer?

I am newbie to the ireport designer.This question may simple for you.I have tried to XML file as data source and it worked.The problem is All the fields are coming as java.lang.string. How to provide the field type in XML datasource.Is it possible to provide field type in XML file itself. Consider
<customer>
<name>obuli</name>
<age><22></age>
<subscriber>
<name>sundar</name>
<no_of_transactions>100</no_of_transactions>
</subscriber>
</customer>
Here the customer and subscriber are classes so i need to provide filed type com.test.Customer,com.test.Subscriber. I can achieve this by java bean datasource. But still i need the XML datasource way.
Is it possible to set the field type in XML datasource way ?
I do not think so. I also do not think you need that feature as reports only require scalar values. So just map the scalar values in your datasource to your scalar valued report fields.
You have to go on the XML code of your document and then search your field tag name, for example:
<field name="xxxx" class="java.lang.String"/>
change to Date type:
<field name="xxxx" class="java.util.Date"/>

How to show checkbox (checked or unchecked) in report

I am using iReport 5.2.0. I'm trying show a parameter as checkbox: checked or unchechecked. How I can solve this task?
Answer by #Kudo
I'm using two images to display checkbox or uncheckbox. In each image, using Image Expression else if. ex: $P{param}.equals("TRUE") ? $P{imagecheck} : $P{imageuncheck}
I'm using a text field with this expression:
$F{b}!=null?"þ":"¨"
and set font: Wingdings.
The first symbol is a checked box, the second is an unchecked box.
So, if I want a check I just send a character from database in field b. If I want a blank box I leave b field null.
... and check this too:
http://jasperreports.sourceforge.net/sample.reference/fonts/
it provides information like "How to ship the required fonts with your report templates when deploying them in the target application, using font extensions."
You do not need to put images to create a checkbox. Just put a 11x11 rectangle. and add 2 pieces of 9x9 lines like "\" and "/" and laminate them(put on top of each other). Make the line at bottom Opaque and right click and send it backward. Make the line at top "not opaque". If not showing one of them true, just play with these back or front settings. Then center those laminated lines into your rectangle. After all you can set print when expression parts by code. thats all!
By the way you can reverse "\" line to "/", by line properties > direction > "bottom up" or "top down" settings. Have a nice day!
Another way is to use unicode ensure your jasper report has an encoding of:
...
<?xml version="1.0" encoding="UTF-8"?>
...
<field name="COLUMN_1" class ="java.lang.Boolean" />
...
<textFieldExpression class="java.lang.String">
<![CDATA[$F{COLUMN_1} ? "\u2713":"\u2717"]]>
</textFieldExpression>
...
Before:
After:

Exclude of bands lead to excess whitespace

Context
Setup: JasperReports server Product Version: 6.0.1 Build: 20141218_0238, CentOS server. I am using their bundled PostgreSQL + tomcat server setup.
In my report i have a table with text field and static field & and a chart in the summary band.
the static fields are in columnHeader band, and text fields are in the detail band.
I require the table because i want the users to be able to export CSV data.
However when the report is viewed as HTML, i want to exclude the two bands mentioned above (detail/columnHeader).
Problem
I am able to exclude the table so that it's not showed using the following:
net.sf.jasperreports.export.html.exclude.origin.band.1=detail
net.sf.jasperreports.export.html.exclude.origin.band.2=columnHeader
This does hide the two bands mentioned above, however now instead of the data - whitespace is shown, i would to know how i can remove it
The red text above was added by me, as you can see there are unwanted white-space between the title and the chart, that was where the columnHeader and detail band were at.
See the JRXML content.
Question
How can I remove the space?
It could be an issue with your styles or theme. I run the report in Jasper studio and there was no white space, but I created dummy styles (table_heading, table_data) and set the default theme for bar chart.
Here is my report
http://pastebin.com/fnAnvBR1
I'm using JasperStudio 5.6.2
Set the following property to true:
net.sf.jasperreports.export.html.remove.empty.space.between.rows
Earlier versions of JasperReports had a typo, for the property (emtpy instead of empty):
net.sf.jasperreports.export.html.remove.emtpy.space.between.rows
For example:
<property name="net.sf.jasperreports.export.html.remove.emtpy.space.between.rows" value="true"/>
<property name="net.sf.jasperreports.export.html.remove.empty.space.between.rows" value="true"/>

Disabling Crostab page break

Background:
I have a report with a large dataset on a crosstab element. The report will only cater to spreadsheet format so the width of the report will not matter.
I have tried setting the Ignore Pagination property to true. Split Type to prevent but some of the data still breaks and moves on the bottom of the sheet.
Any help would be greatly appreciated.
I found the solution to my problem. I was using iReport 3.7.4 and there was a bug in the UI. Apparently the crostabs property ignoreWidth="true" was showing as ticked in the UI but it was actually missing from the xml. You can locate this property in the crosstab tag as shown below:
<crosstab ignoreWidth="true">
...
</crosstab>

Field not found, JRXML has definitions?

I'm using iReport Designer 5.5.0, and was making a test JRXML. I added a text field with a value of $F{pricing_date} and added "pricing_date" to the list of "fields" on the Report Inspector panel (no properties or description set for the field).
The resulting JRXML has the "pricing_date" field defined:
<field name="pricing_date" class="java.lang.String"/>
And it has a text field with $F{pricing_date} as expected:
<textFieldExpression><![CDATA[$F{pricing_date}]]></textFieldExpression>
But... I get the error "Field not found : pricing_date" within iReport, and I get the same error during compilation.
I've compared this to other JRXML files within the samples provided, and it seems to match... what am I missing? Is there a setting somewhere to recognize field definitions?
I can see two possible reasons here.
If the report does not compile, the problem might be that the element in which you have placed the textField uses a different datasource than the one in which you have declared the field.
If it does not run, you might be missing the field in the object type of the datasource. Also, if you use JRBeanCollectionDataSource from java you have to have the getter for your field (declared as getPricing_date(){...}).
Hope this helps.