<p>Hi,</p>
<p> </p>
<p>Before I describe my actual issue, wanna let you know I am looking for a tabbed report where number of tabs are created dynamically in a GRID.</p>
<p> </p>
<p>I am trying to add cell/column to GRID dynamically through a script (in forLoop)</p>
<p>In my grid initially there is just 1 row and 1 column (i.e. 1 cell) which is static. </p>
<p>I need to add columns to the GRID that are generated dynamically in for loop.</p>
<p>There will always be just 1 row.</p>
<p>I can add cell, but when I try to add a label to newly created cell in GRID, it throws null pointer exception.</p>
<p> </p>
<p>I have attached my rptdesign file and error below.</p>
<p> </p>
<p>Could you please assist.</p>
<p> </p>
<p> </p>
<p></p>
<div style="background-color:#0044ff;"> </div>
<div style="background-color:#ff0000;"> </div>
<p></p>
<p> </p>
<div>
<div>
<div>
Exception
</div>
<div>
Close
<div> </div>
</div>
</div>
<div>
<div>
<div>
<img src="
http://127.0.0.1:55438/viewer/birt/images/Error.gif" alt="Error.gif">
<div> </div>
<div>Show Exception Stack Trace</div>
<div>Hide Exception Stack Trace</div>
<div>
Stack Trace:
<div> </div>
</div>
</div>
<div>
<div>
<div> </div>
<div> </div>
</div>
<div>
<div>
<div>
<div> </div>
<div> </div>
</div>
<div> </div>
<div>
<div> </div>
<div> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
Parameter
</div>
<div>
Close
<div> </div>
</div>
</div>
<div>
<div>
<div>
<div>
Parameters marked with * are required.
<img src="
http://127.0.0.1:55438/viewer/birt/images/parameter.gif" title="" alt="parameter.gif">
ProjectType: *
SMALL_CELLS_CIQ_INDOOR_SCSMALL_CELL_WORKQUEUE_TEST
<img src="
http://127.0.0.1:55438/viewer/birt/images/parameter.gif" title="" alt="parameter.gif">
FilterCriteria:
Null ValueBY MARKETBY PLANNED COMPLETION DATEBY PLANNED START DATEBY PRIORITYBY PROJECT NAMEBY REGIONBY MARKETBY PLANNED COMPLETION DATEBY PLANNED START DATEBY PRIORITYBY PROJECT NAMEBY REGION
<img src="
http://127.0.0.1:55438/viewer/birt/images/parameter.gif" title="" alt="parameter.gif">
FilterValue:
Null Value
<div style="font-size:12px;color:#000000;background-color:#f7f7f7;"> </div>
</div>
</div>
<div>
<div>
<div> </div>
<div> </div>
</div>
<div>
<div>
<div>
<div> </div>
<div> </div>
</div>
<div> </div>
<div>
<div> </div>
<div> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<b>Processing, please wait ... </b>
<img src="
http://127.0.0.1:55438/viewer/birt/images/Loading.gif" alt="Loading.gif">
<div>
</div>
</div>
<div> </div>
<div>
<div><span> </span>
<div>
<div>Project Type:</div>
<div>[SMALL_CELLS_CIQ_INDOOR_SC, SMALL_CELL_WORKQUEUE_TEST]</div>
<div>Filtering Criteria:</div>
<div>BY PLANNED COMPLETION DATE</div>
<div>dynamic cell1</div>
<div> </div>
<div>
<div>Feb 18, 2015, 11:14 AM</div>
</div>
<div style="color:#FF0000;">
<div>The following items have errors:</div>
<br><div>
<div>ReportDesign (id = 1):</div>
<div><span>+ </span>There are errors evaluating script "<br>
importPackage(Packages.org.eclipse.birt.report.model.elements);<br><br>
var grid = reportContext.getDesignHandle().findElement("TabGrid");<br><br>
elementFactory = reportContext.getDesignHandle().getElementFactory();<br><br>
for(i = 1; i <=3 ; i++) {<br>
var gc = elementFactory.newTableColumn().getElement();<br>
grid.getElement().add( gc , GridItem.COLUMN_SLOT );<br><br>
var label = elementFactory.newLabel("dynamic cell" + i);<br>
label.setText("dynamic cell" + i);<br>
grid.getCell(0,i).getContent().add(label);<br><br>
}<br>
":<br>
TypeError: Cannot call method "getContent" of null (/report/method[
@name="beforeFactory"]#14) birt.core.JavascriptCommonError ( 1 time(s) )<br>
detail : org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "<br>
importPackage(Packages.org.eclipse.birt.report.model.elements);<br><br>
var grid = reportContext.getDesignHandle().findElement("TabGrid");<br><br>
elementFactory = reportContext.getDesignHandle().getElementFactory();<br><br>
for(i = 1; i <=3 ; i++) {<br>
var gc = elementFactory.newTableColumn().getElement();<br>
grid.getElement().add( gc , GridItem.COLUMN_SLOT );<br><br>
var label = elementFactory.newLabel("dynamic cell" + i);<br>
label.setText("dynamic cell" + i);<br>
grid.getCell(0,i).getContent().add(label);<br><br>
}<br>
":<br>
TypeError: Cannot call method "getContent" of null (/report/method[
@name="beforeFactory"]#14)<br>
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.addException(ScriptExecutor.java:249)<br>
at org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleBeforeFactory(ReportScriptExecutor.java:122)<br>
at org.eclipse.birt.report.engine.api.impl.EngineTask.startFactory(EngineTask.java:2027)<br>
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:101)<br>
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:77)<br>
at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:937)<br>
at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)<br>
at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131)<br>
at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)<br>
at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)<br>
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)<br>
at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)<br>
at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)<br>
at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)<br>
at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)<br>
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)<br>
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)<br>
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)<br>
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)<br>
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)<br>
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)<br>
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)<br>
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)<br>
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)<br>
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)<br>
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)<br>
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)<br>
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)<br>
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)<br>
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)<br>
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:386)<br>
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)<br>
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457)<br>
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)<br>
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)<br>
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)<br>
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)<br>
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)<br>
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)<br>
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)<br>
at org.eclipse.jetty.server.Server.handle(Server.java:368)<br>
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)<br>
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953)<br>
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014)<br>
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)<br>
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)<br>
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)<br>
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)<br>
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)<br>
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)<br>
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)<br>
at java.lang.Thread.run(Unknown Source)<br>
Caused by: org.eclipse.birt.core.exception.CoreException: There are errors evaluating script "<br>
importPackage(Packages.org.eclipse.birt.report.model.elements);<br><br>
var grid = reportContext.getDesignHandle().findElement("TabGrid");<br><br>
elementFactory = reportContext.getDesignHandle().getElementFactory();<br><br>
for(i = 1; i <=3 ; i++) {<br>
var gc = elementFactory.newTableColumn().getElement();<br>
grid.getElement().add( gc , GridItem.COLUMN_SLOT );<br><br>
var label = elementFactory.newLabel("dynamic cell" + i);<br>
label.setText("dynamic cell" + i);<br>
grid.getCell(0,i).getContent().add(label);<br><br>
}<br>
":<br>
TypeError: Cannot call method "getContent" of null (/report/method[
@name="beforeFactory"]#14)<br>
at org.eclipse.birt.report.engine.javascript.JavascriptEngine.evaluate(JavascriptEngine.java:295)<br>
at org.eclipse.birt.core.script.ScriptContext.evaluate(ScriptContext.java:154)<br>
at org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:789)<br>
at org.eclipse.birt.report.engine.executor.ExecutionContext.evaluate(ExecutionContext.java:718)<br>
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleScriptInternal(ScriptExecutor.java:118)<br>
at org.eclipse.birt.report.engine.script.internal.ScriptExecutor.handleScript(ScriptExecutor.java:105)<br>
at org.eclipse.birt.report.engine.script.internal.ReportScriptExecutor.handleBeforeFactory(ReportScriptExecutor.java:114)<br>
... 59 more<br>
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method "getContent" of null (/report/method[
@name="beforeFactory"]#14)<br>
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3654)<br>
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3632)<br>
at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3660)<br>
at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3679)<br>
at org.mozilla.javascript.ScriptRuntime.undefCallError(ScriptRuntime.java:3698)<br>
at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2221)<br>
at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2214)<br>
at org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:117)<br>
at org.mozilla.javascript.gen.c4984._c0(/report/method[
@name="beforeFactory"]:14)<br>
at org.mozilla.javascript.gen.c4984.call(/report/method[
@name="beforeFactory"])<br>
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)<br>
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)<br>
at org.mozilla.javascript.gen.c4984.call(/report/method[
@name="beforeFactory"])<br>
at org.mozilla.javascript.gen.c4984.exec(/report/method[
@name="beforeFactory"])<br>
at org.eclipse.birt.report.engine.javascript.JavascriptEngine.evaluate(JavascriptEngine.java:290)<br>
... 65 more<br><br>
</div>
</div>
</div>
</div>
</div>
</div>
<p> </p>