Jasper Parameter values -
added more info
- for me json datasource.
- we receive json hitting rest api. rest api may need few parameters pass.
- now parameters api needs , jasper parameters configured in jrxml. in below example reporttypelist, reporttype,dateparam, sheduledate params configured in jrxml.sheduledate filter parameter query json. reporttype , dateparam used hit api json data source.
now if observe below reporttypelist have mentioned defaultvalueexpression in trying keep set of values. need read set java , and populate these values in combobox on ui dynamically.
for parameter reporttype need default value if user have not selected ui need consider default value.
for example:
<parameter name="reporttypelist" class="java.util.list"> <defaultvalueexpression><![cdata[$p{reporttypelist}.set( "daily", "weekly",monthly" )]]></defaultvalueexpression> </parameter> <parameter name="reporttype" class="java.util.list"> <defaultvalueexpression><![cdata[$p{reporttype}.get[0]]]></defaultvalueexpression> </parameter> <parameter name="dateparam" class="java.util.date"/> <parameter name="sheduledate" class="java.util.date"/>
when using defaultvalueexpression, need consider object, class null, need instance it!
reporttypelist - java.util.list,
$p{reporttypelist}.set( "daily", "weekly",monthly") null.set(""), can never work, nullpointer , set(string,string,string) not exists method on java.util.list
a correct expression be:
<parameter name="reporttypelist" class="java.util.list"> <defaultvalueexpression><![cdata[java.util.arrays.aslist(new string[]{"daily", "weekly","monthly"})]]></defaultvalueexpression> </parameter> reporttype - java.util.list??, should java.lang.string
$p{reporttype}.get[0], get[0] on java.util.list, not correct should .get(0) , return's java.lang.string, why use expression in defaultexpression, return string!
a correct expression be:
<parameter name="reporttype" class="java.lang.string"> <defaultvalueexpression><![cdata["daily"]]></defaultvalueexpression> </parameter> dateparam - java.util.date
you have no defaultexpression this, remember need new java.util.date() .... , can use constructors present in object!
Comments
Post a Comment