i want to read a dataSetRow under onFetch() event and conditionally create an element row/cell/dataitem in a given table dynamically.
Below sample code under onFetch(), creates the data element , however it doesn't display on the report when i run it in pdf or viewer.
var logger = java.util.logging.Logger.getLogger("birt.report.logger");
logger.warning("**inside onfetch()** ");
var result = null;
if (dataSetRow["STATUS"] != null ){
var tempArr = dataSetRow["STATUS"].split("~");
result = tempArr[2];
}
logger.warning("result-> "+result);
if(result !=null){
elementFactory = reportContext.getDesignHandle().getElementFactory();
logger.warning("elementFactory-> "+elementFactory);
var mytable = reportContext.getDesignHandle().getElementByID(9268);
var firstDetailRow = mytable.getDetail().get(0);
var firstDetailCell = firstDetailRow.getCells().get(0);
var mydata = elementFactory.newDataItem( null );
mydata.setResultSetColumn(result);
firstDetailCell.getContent().add( mydata );
logger.warning("firstDetailRow.getCells().get(0).getContent().get(0)-> "+firstDetailRow.getCells().get(0).getContent().get(0));
}
Below Log prints the dataitemhandle which was just created. However, it doesn't display on the report.
!ENTRY com.actuate.birt.report.viewer 2 0 2019-01-08 20:18:12.450
!MESSAGE inside onfetch()
!ENTRY com.actuate.birt.report.viewer 2 0 2019-01-08 20:18:12.451
!MESSAGE result-> Status
!ENTRY com.actuate.birt.report.viewer 2 0 2019-01-08 20:18:12.456
!MESSAGE elementFactory-> org.eclipse.birt.report.model.api.ElementFactory@688feb8a
!ENTRY com.actuate.birt.report.viewer 2 0 2019-01-08 20:18:12.457
!MESSAGE firstDetailRow.getCells().get(0).getContent().get(0)-> org.eclipse.birt.report.model.api.DataItemHandle@3393e8f3
I am using:
OpenText Analytics Designer
Version: 24.4.0
Build id: v20180424