Visualization : Column / Vertical bar chart
Problem statement : How to write highcharts function in Jasperreport
expression ?
Add a $ sign to Y axis labels
Add a $ sign to Y axis labels
Navigation : YAxis > labels > formatter > Select for expression
NOTE : Ensure to add the below property in jasperreports.properties file
com.jaspersoft.jasperreports.highcharts.function.properties.allowed=true
Path :
C:\Jaspersoft\jasperreports-server-7.5.0\apache-tomcat\webapps\jasperserver-pro\WEB-INF\classes
Sample screenshot:
Sample output:
References:
JRXML (works on 7.2 studio professional)
<?xml version="1.0" encoding="UTF-8"?> <!-- Created with Jaspersoft Studio version 7.2.0.final using JasperReports Library version 6.6.0 --> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Stop Loss Plan Performance" pageWidth="620" pageHeight="470" whenNoDataType="AllSectionsNoDetail" columnWidth="620" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="f5ee6cd9-fdbd-4655-a337-ef2568c81a56"> <property name="com.jaspersoft.studio.data.sql.tables" value=""/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Sample DB"/> <property name="ireport.jasperserver.url" value="http://localhost:8080/jasperserver-pro/"/> <property name="ireport.jasperserver.user" value="superuser"/> <property name="ireport.jasperserver.report.resource" value="/LOCKTON_2020_21/S8_Stop_Loss_Plan_Performance_files/main_jrxml"/> <property name="ireport.jasperserver.reportUnit" value="/LOCKTON_2020_21/S8_Stop_Loss_Plan_Performance"/> <property name="com.jaspersoft.studio.report.unit.description" value="001_RP_Stop Loss Marketing Analysis"/> <property name="com.jaspersoft.studio.unit." value="pixel"/> <property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/> <property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/> <property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/> <property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/> <property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/> <property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/> <property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/> <property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/> <property name="com.jaspersoft.jasperreports.highcharts.interactive" value="false"/> <subDataset name="Dataset1-Claims Vs Premium" uuid="ba6bd55c-4dcd-431c-aa4b-587d99dd0b60"> <property name="com.jaspersoft.studio.data.sql.tables" value=""/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="foodmart"/> <queryString language="SQL"> <![CDATA[SELECT '2018' AS year, 400000 AS value, 'Premium' AS PremiumClaim UNION ALL SELECT '2018' AS year, 850000 AS value, 'Claim' AS PremiumClaim UNION ALL SELECT '2019' AS year, 450000 AS value, 'Premium' AS PremiumClaim UNION ALL SELECT '2019' AS year, 60000 AS value, 'Claim' AS PremiumClaim UNION ALL SELECT '2020' AS year, 210000 AS value, 'Premium' AS PremiumClaim UNION ALL SELECT '2020' AS year, 5000 AS value, 'Claim' AS PremiumClaim]]> </queryString> <field name="year" class="java.lang.String"> <property name="com.jaspersoft.studio.field.label" value="year"/> </field> <field name="value" class="java.lang.Integer"> <property name="com.jaspersoft.studio.field.label" value="value"/> </field> <field name="premiumclaim" class="java.lang.String"> <property name="com.jaspersoft.studio.field.label" value="premiumclaim"/> </field> </subDataset> <queryString language="SQL"> <![CDATA[]]> </queryString> <summary> <band height="460" splitType="Stretch"> <property name="com.jaspersoft.studio.unit.height" value="px"/> <image> <reportElement x="0" y="70" width="330" height="4" uuid="6c9ee3ac-3d60-4c0e-a2d3-8d09a4777b01"> <property name="com.jaspersoft.studio.unit.height" value="px"/> <property name="com.jaspersoft.studio.unit.x" value="px"/> <property name="com.jaspersoft.studio.unit.width" value="px"/> <printWhenExpression><![CDATA[1==0]]></printWhenExpression> </reportElement> <imageExpression><![CDATA["repo:/Test/Images/test/horizontal_heading_bar.png"]]></imageExpression> </image> <textField> <reportElement x="50" y="25" width="530" height="40" uuid="c43bf219-e07c-4286-afcd-c8136a487828"/> <textElement verticalAlignment="Bottom"> <font fontName="Garamond" size="30"/> </textElement> <textFieldExpression><![CDATA["Test"]]></textFieldExpression> </textField> <componentElement> <reportElement x="70" y="120" width="550" height="280" uuid="fc2b6ea6-7033-4af9-aa74-9efda7096ec8"/> <hc:chart xmlns:hc="http://jaspersoft.com/highcharts" xsi:schemaLocation="http://jaspersoft.com/highcharts http://jaspersoft.com/schema/highcharts.xsd" type="Column"> <hc:chartSetting name="default"> <hc:chartProperty name="title.text" value=""/> <hc:chartProperty name="credits.enabled" value="false"/> <hc:chartProperty name="credits.href" value=""/> <hc:chartProperty name="credits.text" value=""/> <hc:chartProperty name="yAxis.title.text" value=""/> <hc:chartProperty name="chart.zoomType" value="xy"/> <hc:chartProperty name="legend.itemStyle.fontSize" value="8px"/> <hc:chartProperty name="yAxis.labels.formatter"> <hc:propertyExpression><![CDATA["function() {return '$' + this.axis.defaultLabelFormatter.call(this);}"]]></hc:propertyExpression> </hc:chartProperty> <hc:chartProperty name="yAxis.tickInterval_customSimpleMode" value="true"/> <hc:chartProperty name="yAxis.tickInterval"> <hc:propertyExpression><![CDATA[200000]]></hc:propertyExpression> </hc:chartProperty> </hc:chartSetting> <multiAxisData> <multiAxisDataset> <dataset> <datasetRun subDataset="Dataset1-Claims Vs Premium" uuid="e9b1c867-29a5-4cd7-abd7-76b0d846367f"/> </dataset> </multiAxisDataset> <dataAxis axis="Rows"> <axisLevel name="Level1"> <labelExpression><![CDATA["Level Label expression"]]></labelExpression> <axisLevelBucket order="None" class="java.lang.Comparable"> <bucketExpression><![CDATA[$F{year}]]></bucketExpression> </axisLevelBucket> </axisLevel> </dataAxis> <dataAxis axis="Columns"> <axisLevel name="Series1"> <labelExpression><![CDATA[]]></labelExpression> <axisLevelBucket order="None" class="java.lang.Comparable"> <bucketExpression><![CDATA[$F{premiumclaim}]]></bucketExpression> </axisLevelBucket> </axisLevel> </dataAxis> <multiAxisMeasure name="Measure1" class="java.lang.Number" calculation="Nothing"> <labelExpression><![CDATA["Value:"]]></labelExpression> <valueExpression><![CDATA[$F{value}]]></valueExpression> </multiAxisMeasure> </multiAxisData> <hc:series name="Measure1"/> </hc:chart> </componentElement> </band> </summary> </jasperReport>
No comments:
Post a Comment