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 -->
<jasperReportxmlns="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">
<propertyname="com.jaspersoft.studio.data.sql.tables"value=""/>
<propertyname="com.jaspersoft.studio.data.defaultdataadapter"value="Sample DB"/>
<propertyname="ireport.jasperserver.url"value="http://localhost:8080/jasperserver-pro/"/>
<propertyname="ireport.jasperserver.user"value="superuser"/>
<propertyname="ireport.jasperserver.report.resource"value="/LOCKTON_2020_21/S8_Stop_Loss_Plan_Performance_files/main_jrxml"/>
<propertyname="ireport.jasperserver.reportUnit"value="/LOCKTON_2020_21/S8_Stop_Loss_Plan_Performance"/>
<propertyname="com.jaspersoft.studio.report.unit.description"value="001_RP_Stop Loss Marketing Analysis"/>
<propertyname="com.jaspersoft.studio.unit."value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.pageHeight"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.pageWidth"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.topMargin"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.bottomMargin"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.leftMargin"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.rightMargin"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.columnWidth"value="pixel"/>
<propertyname="com.jaspersoft.studio.unit.columnSpacing"value="pixel"/>
<propertyname="com.jaspersoft.jasperreports.highcharts.interactive"value="false"/>
<subDatasetname="Dataset1-Claims Vs Premium"uuid="ba6bd55c-4dcd-431c-aa4b-587d99dd0b60">
<propertyname="com.jaspersoft.studio.data.sql.tables"value=""/>
<propertyname="com.jaspersoft.studio.data.defaultdataadapter"value="foodmart"/>
<queryStringlanguage="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>
<fieldname="year"class="java.lang.String">
<propertyname="com.jaspersoft.studio.field.label"value="year"/>
</field>
<fieldname="value"class="java.lang.Integer">
<propertyname="com.jaspersoft.studio.field.label"value="value"/>
</field>
<fieldname="premiumclaim"class="java.lang.String">
<propertyname="com.jaspersoft.studio.field.label"value="premiumclaim"/>
</field>
</subDataset>
<queryStringlanguage="SQL">
<![CDATA[]]>
</queryString>
<summary>
<bandheight="460"splitType="Stretch">
<propertyname="com.jaspersoft.studio.unit.height"value="px"/>
<image>
<reportElementx="0"y="70"width="330"height="4"uuid="6c9ee3ac-3d60-4c0e-a2d3-8d09a4777b01">
<propertyname="com.jaspersoft.studio.unit.height"value="px"/>
<propertyname="com.jaspersoft.studio.unit.x"value="px"/>
<propertyname="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>
<reportElementx="50"y="25"width="530"height="40"uuid="c43bf219-e07c-4286-afcd-c8136a487828"/>
<textElementverticalAlignment="Bottom">
<fontfontName="Garamond"size="30"/>
</textElement>
<textFieldExpression><![CDATA["Test"]]></textFieldExpression>
</textField>
<componentElement>
<reportElementx="70"y="120"width="550"height="280"uuid="fc2b6ea6-7033-4af9-aa74-9efda7096ec8"/>
<hc:chartxmlns:hc="http://jaspersoft.com/highcharts"xsi:schemaLocation="http://jaspersoft.com/highcharts http://jaspersoft.com/schema/highcharts.xsd"type="Column">
<hc:chartSettingname="default">
<hc:chartPropertyname="title.text"value=""/>
<hc:chartPropertyname="credits.enabled"value="false"/>
<hc:chartPropertyname="credits.href"value=""/>
<hc:chartPropertyname="credits.text"value=""/>
<hc:chartPropertyname="yAxis.title.text"value=""/>
<hc:chartPropertyname="chart.zoomType"value="xy"/>
<hc:chartPropertyname="legend.itemStyle.fontSize"value="8px"/>
<hc:chartPropertyname="yAxis.labels.formatter">
<hc:propertyExpression><![CDATA["function() {return '$' + this.axis.defaultLabelFormatter.call(this);}"]]></hc:propertyExpression>
</hc:chartProperty>
<hc:chartPropertyname="yAxis.tickInterval_customSimpleMode"value="true"/>
<hc:chartPropertyname="yAxis.tickInterval">
<hc:propertyExpression><![CDATA[200000]]></hc:propertyExpression>
</hc:chartProperty>
</hc:chartSetting>
<multiAxisData>
<multiAxisDataset>
<dataset>
<datasetRunsubDataset="Dataset1-Claims Vs Premium"uuid="e9b1c867-29a5-4cd7-abd7-76b0d846367f"/>
</dataset>
</multiAxisDataset>
<dataAxisaxis="Rows">
<axisLevelname="Level1">
<labelExpression><![CDATA["Level Label expression"]]></labelExpression>
<axisLevelBucketorder="None"class="java.lang.Comparable">
<bucketExpression><![CDATA[$F{year}]]></bucketExpression>
</axisLevelBucket>
</axisLevel>
</dataAxis>
<dataAxisaxis="Columns">
<axisLevelname="Series1">
<labelExpression><![CDATA[]]></labelExpression>
<axisLevelBucketorder="None"class="java.lang.Comparable">
<bucketExpression><![CDATA[$F{premiumclaim}]]></bucketExpression>
</axisLevelBucket>
</axisLevel>
</dataAxis>
<multiAxisMeasurename="Measure1"class="java.lang.Number"calculation="Nothing">
<labelExpression><![CDATA["Value:"]]></labelExpression>
<valueExpression><![CDATA[$F{value}]]></valueExpression>
</multiAxisMeasure>
</multiAxisData>
<hc:seriesname="Measure1"/>
</hc:chart>
</componentElement>
</band>
</summary>
</jasperReport>