Getting the below error trying to add the dynamic table to the grid. other than the table values. all other elements are adding to the grid. the table columns are displaying. <br />
<br />
19:57:14,166 ERROR [STDERR] Oct 22, 2009 7:57:14 PM org.eclipse.birt.data.engine.impl.DataEngineImpl <init><br />
INFO: Data Engine starts up<br />
19:57:15,072 ERROR [STDERR] Oct 22, 2009 7:57:15 PM org.eclipse.birt.report.engine.executor.ExecutionContext evaluate<br />
SEVERE: org.eclipse.birt.core.exception.CoreException: Error evaluating Javascript expression. Script engine error: ReferenceError: "dataSetRow" is not defined.<br />
Script source: source, line: 0, text:<br />
dataSetRow["Week"]<br />
org.mozilla.javascript.EvaluatorException: org.eclipse.birt.core.exception.CoreException: Error evaluating Javascript expression. Script engine error: ReferenceError: "dataSetRow" is not defined.<br />
*******************************************<br />
Report genaration class code:<br />
*******************************************<br />
import java.io.IOException;<br />
import java.io.PrintWriter;<br />
import java.util.HashMap;<br />
import java.util.logging.Level;<br />
import java.util.logging.Logger;<br />
import javax.servlet.ServletContext;<br />
import javax.servlet.ServletException;<br />
import javax.servlet.http.HttpServlet;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;<br />
import org.eclipse.birt.report.engine.api.HTMLRenderContext;<br />
import org.eclipse.birt.report.engine.api.HTMLRenderOption;<br />
import org.eclipse.birt.report.engine.api.IReportEngine;<br />
import org.eclipse.birt.report.engine.api.IReportRunnable;<br />
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;<br />
import org.eclipse.birt.report.model.api.CellHandle;<br />
import org.eclipse.birt.report.model.api.DataItemHandle;<br />
import org.eclipse.birt.report.model.api.DesignElementHandle;<br />
import org.eclipse.birt.report.model.api.ElementFactory;<br />
import org.eclipse.birt.report.model.api.GridHandle;<br />
import org.eclipse.birt.report.model.api.ImageHandle;<br />
import org.eclipse.birt.report.model.api.LabelHandle;<br />
import org.eclipse.birt.report.model.api.ReportDesignHandle;<br />
import org.eclipse.birt.report.model.api.RowHandle;<br />
import org.eclipse.birt.report.model.api.StructureFactory;<br />
import org.eclipse.birt.report.model.api.TableHandle;<br />
import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;<br />
<br />
public class DynamicReport1 extends HttpServlet<br />
{<br />
private static final long serialVersionUID = 1L;<br />
private IReportEngine birtReportEngine = null;<br />
protected static Logger logger = Logger.getLogger("org.eclipse.birt");<br />
<br />
public void destroy()<br />
{<br />
super.destroy();<br />
BirtEngine.destroyBirtEngine();<br />
}<br />
<br />
public void doGet(HttpServletRequest req, HttpServletResponse resp)<br />
throws ServletException, IOException<br />
{<br />
IReportRunnable design;<br />
resp.setContentType("text/html");<br />
<br />
String reportName = req.getParameter("ReportName");<br />
//String[] cols = (String[])req.getParameterMap().get("dyna1");<br />
String[] cols = {"Week","Sam","Demo"};<br />
<br />
ServletContext sc = req.getSession().getServletContext();<br />
this.birtReportEngine = BirtEngine.getBirtEngine(sc);<br />
<br />
HTMLRenderContext renderContext = new HTMLRenderContext();<br />
renderContext.setBaseImageURL(req.getContextPath() + "/images");<br />
renderContext.setImageDirectory(sc.getRealPath("/images"));<br />
<br />
logger.log(Level.FINE, "image directory " + sc.getRealPath("/images"));<br />
System.out.println("stdout image directory " + sc.getRealPath("/images"));<br />
<br />
HashMap contextMap = new HashMap();<br />
contextMap.put("HTML_RENDER_CONTEXT", renderContext);<br />
try<br />
{<br />
design = this.birtReportEngine.openReportDesign(sc.getRealPath("/Reports") + "/" + reportName);<br />
ReportDesignHandle report = (ReportDesignHandle)design.getDesignHandle();<br />
buildReport(cols, report);<br />
<br />
IRunAndRenderTask task = this.birtReportEngine.createRunAndRenderTask(design);<br />
task.setAppContext(contextMap);<br />
<br />
HTMLRenderOption options = new HTMLRenderOption();<br />
options.setOutputFormat("html");<br />
<br />
options.setOutputStream(resp.getOutputStream());<br />
task.setRenderOption(options);<br />
<br />
task.run();<br />
task.close();<br />
}<br />
catch (Exception e) {<br />
e.printStackTrace();<br />
throw new ServletException(e);<br />
}<br />
}<br />
<br />
public void buildReport(String[] cols, ReportDesignHandle designHandle)<br />
{<br />
ElementFactory designFactory;<br />
try {<br />
CellHandle cell;<br />
designFactory = designHandle.getElementFactory();<br />
<br />
DesignElementHandle element = designFactory.newSimpleMasterPage( "Page Master" ); //$NON-NLS-1$<br />
designHandle.getMasterPages( ).add( element );<br />
<br />
GridHandle grid = designFactory.newGridItem( null, 2 /* cols */, 2 /* row */ );<br />
designHandle.getBody( ).add( grid );<br />
grid.setWidth( "100%" ); //$NON-NLS-1$<br />
<br />
RowHandle row = (RowHandle) grid.getRows( ).get( 0 );<br />
<br />
ImageHandle image = designFactory.newImage( null );<br />
cell = (CellHandle) row.getCells( ).get( 0 );<br />
cell.getContent( ).add( image );<br />
image.setURL( ""
http://www.eclipse.org/birt/phoenix/tutorial/basic/multichip-4.jpg"" ); <br />
<br />
LabelHandle label = designFactory.newLabel( null );<br />
cell = (CellHandle) row.getCells( ).get( 1 );<br />
cell.getContent( ).add( label );<br />
label.setText( "Hello, world!" ); //$NON-NLS-1$<br />
<br />
row = (RowHandle) grid.getRows( ).get( 1 );<br />
TableHandle table = designFactory.newTableItem("table", 4, 4, 2, 0);<br />
table.setWidth("50%");<br />
<br />
ComputedColumn cs1;<br />
for (int i = 0; i < cols.length; i++) {<br />
cs1 = StructureFactory.createComputedColumn( );<br />
cs1.setName(cols
);<br />
cs1.setExpression( "dataSetRow[""+cols[i]+""]" );<br />
table.addColumnBinding( cs1, false );<br />
}<br />
<br />
RowHandle tableheader = (RowHandle)table.getHeader().get(0);<br />
for (int i = 0; i < cols.length; i++) {<br />
LabelHandle label1 = designFactory.newLabel(cols);<br />
label1.setText(cols);<br />
cell = (CellHandle)tableheader.getCells().get(i);<br />
cell.getContent().add(label1);<br />
}<br />
RowHandle tabledetail = (RowHandle)table.getDetail().get(0);<br />
for (int i = 0; i < cols.length; i++) {<br />
cell = (CellHandle)tabledetail.getCells().get(i);<br />
DataItemHandle data = designFactory.newDataItem("data_" + cols);<br />
data.setResultSetColumn(cols);<br />
cell.getContent().add(data);<br />
}<br />
cell = (CellHandle) row.getCells( ).get( 0 );<br />
cell.getContent( ).add( table );<br />
} catch (Exception e) {<br />
e.printStackTrace();<br />
}<br />
}<br />
<br />
public void doPost(HttpServletRequest request, HttpServletResponse response)<br />
throws ServletException, IOException<br />
{<br />
response.setContentType("text/html");<br />
PrintWriter out = response.getWriter();<br />
out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");<br />
out.println("<HTML>");<br />
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");<br />
out.println(" <BODY>");<br />
out.println(" Post Not Supported");<br />
out.println(" </BODY>");<br />
out.println("</HTML>");<br />
out.flush();<br />
out.close();<br />
}<br />
<br />
public void init()<br />
throws ServletException<br />
{<br />
BirtEngine.initBirtConfig();<br />
}<br />
}