Hi all<br />
My coworker try to add conditional filter on table and follow the example from <a class='bbc_url' href='
http://birtworld.blogspot.tw/2010/06/conditional-table-filters.html.'>http://birtworld.blogspot.tw/2010/06/conditional-table-filters.html.</a> And it works on designer, but failed on Tomcat. He put the script on the table in the onPrepare method.<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
importPackage( Packages.org.eclipse.birt.report.engine.api.script.element );
importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi );
if(params["Item_Number"].value!= null){
var filterCondition = StructureScriptAPIFactory.createFilterCondition();
filterCondition.setExpr("row['Data Set1::Data Set::Item_Data::ITEM_NUMBER']");
filterCondition.setOperator("eq");
filterCondition.setValue1("params[\"Item_Number\"]");
var filterKey = filterCondition.getStructure();
var filterItem = SimpleElementFactory.getInstance().createFilterCondition( filterKey )
this.addFilterCondition( filterItem );
}
if(params["UnderSafeOnhand"].value == "Y"){
var filterCondition = StructureScriptAPIFactory.createFilterCondition();
filterCondition.setExpr("row['Total Onhand']");
filterCondition.setOperator("lt");
filterCondition.setValue1("row['Data Set1::Data Set::Item_Data::SAFETY_QUANTITY']");
var filterKey = filterCondition.getStructure();
var filterItem = SimpleElementFactory.getInstance().createFilterCondition( filterKey )
this.addFilterCondition( filterItem );
}
</pre>
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "importPackage( Packages.org.eclipse.birt.report.engine.api.script.element ); importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi ); if(params["Item_Number"].value!= null){ var filterCondition = StructureScriptAPIFactory.createFilterCondition(); filterCondition.setExpr("row['Data Set1::Data Set::Item_Data::ITEM_NUMBER']"); filterCondition.setOperator("eq"); filterCondition.setValue1("params[\"Item_Number\"]"); var filterKey = filterCondition.getStructure(); var filterItem = SimpleElementFactory.getInstance().createFilterCondition( filterKey ) this.addFilterCondition( filterItem ); } if(params["UnderSafeOnhand"].value = "Y"){ var filterCondition = StructureScriptAPIFactory.createFilterCondition(); filterCondition.setExpr("row['Total Onhand']");
filterCondition.setOperator("lt"); filterCondition.setValue1("row['Data Set1::Data Set::Item_Data::SAFETY_QUANTITY']"); var filterKey = filterCondition.getStructure(); var filterItem =
SimpleElementFactory.getInstance().createFilterCondition( filterKey ) this.addFilterCondition( filterItem ); }": TypeError: Cannot call method "setExpr" of null (/report/body/table[
@id="22"]/method[
@name="onPrepare"]#17) (Element ID:22)
</pre>