Hello,<br />
<br />
I need to assistance in writting the java script within the BIRT design file to sum the dynamic columns that I am adding to the report design file.<br />
<br />
I have the logic from other topics to add the column header, group header, detail values into the report. But I can't figure out the class (which I believe is the Total) and how to set the objects in my scripts.<br />
<br />
Below is the the script (onPrepare) that I am currently using to generate the columns. It works except for aggregation of the columns at the group level.<br />
<br />
I am using:<br />
Windows 7 64bit<br />
Eclipse IDE Version: Indigo Service Release 2 Build id: 20120216-1857<br />
birt: 3.7.2<br />
<br />
Thanks in Advance for your help!

<br />
Mike W<br />
<br />
<br />
======================= javascript below ==========================================<br />
importPackage( Packages.org.eclipse.birt.report.engine.api.script.element );<br />
importPackage( Packages.org.eclipse.birt.report.model.api.simpleapi );<br />
importPackage( Packages.org.eclipse.birt.report.model.api);<br />
importPackage( Packages.org.eclipse.birt.report.engine.api.aggregation.*);<br />
<br />
<br />
var myColValue =new Array();<br />
myColValue[0] = "P_VALUE_1";<br />
myColValue[1] = "P_VALUE_2"<br />
myColValue[2] = "P_VALUE_3"<br />
myColValue[3] = "P_VALUE_4"<br />
myColValue[4] = "P_VALUE_5"<br />
myColValue[5] = "P_VALUE_6"<br />
<br />
<br />
var myColHeader = new Array();<br />
myColHeader[0] = "CY2010";<br />
myColHeader[1] = "CY2011"<br />
myColHeader[2] = "CY2012"<br />
myColHeader[3] = "CY2013"<br />
myColHeader[4] = "CY2014"<br />
myColHeader[5] = "Total"<br />
<br />
log (" myColValue.length |" + myColValue.length + "|");<br />
<br />
if ( myColValue.length >= 0 ){<br />
<br />
var i = 0;<br />
var str = "";<br />
sef = SimpleElementFactory.getInstance();<br />
elementFactory = reportContext.getDesignHandle().getElementFactory();<br />
var mytable = reportContext.getDesignHandle().findElement("Cost By Date");<br />
for(i=0;i<myColValue.length;i++)<br />
{<br />
<br />
var icnt = i;<br />
var iColOffset = 2;<br />
// Add column<br />
log(" TABLE - onPrepare -- adding column to report");<br />
var incnt = i;<br />
mytable.insertColumn(incnt+2,1);<br />
<br />
<br />
// Add Group column headers<br />
log(" TABLE - onPrepare - added column header");<br />
var myheader = mytable.getGroups().get( 0 ).getHeader().get( 1 ) // Group1 Header row 2 <br />
var tcell = myheader.getCells( ).get( incnt+iColOffset);<br />
var mylabel = elementFactory.newLabel( null );<br />
mylabel.setText( myColHeader
);<br />
tcell.getContent( ).add( mylabel );<br />
<br />
// Add Detail Rows<br />
log(" TABLE - onPrepare - added data items"); // Detail Row<br />
var mydetail = mytable.getDetail( ).get( 0 );<br />
var tcell = mydetail.getCells( ).get( incnt+iColOffset);<br />
mydata = elementFactory.newDataItem( null );<br />
mydata.setResultSetColumn( "P_VALUE_" + (i + 1) );<br />
tcell.getContent( ).add( mydata );<br />
<br />
// Add Group Footer rows (sum totals)<br />
var myfooter = mytable.getGroups().get( 0 ).getFooter().get( 0 ) // Group1 Footer ???? <br />
var tfcell = myfooter.getCells( ).get( incnt+iColOffset);<br />
var myflabel = elementFactory.newLabel( null ); <br />
myflabel.setText( myColHeader);<br />
tfcell.getContent( ).add( myflabel );<br />
}<br />
}