<p>Two questions.</p>
<p> </p>
<p>1.) How can I search this forum for a specific topic ? (i.e. multiselect parameter) I do not see a search box.</p>
<p> </p>
<p>2.) I am using BIRT 3.7.1 with oracle. I have created a report parm p_status that is defined as String, List Box, multiple values. I want to use p_status values in a dataset query. I found a youtube vid :</p>
<p>
https://www.youtube.com/watch?v=9aQ-ScTqAdI</p>
<p>but it did not work.</p>
<p> </p>
<p>I have a dataset WO_maindataset that I want to use the value from p_status in the sql query.</p>
<p> </p>
<p>The open script for the WO_maindataset is (this is not the full code, just the select sql) :</p>
<p>//
<br>
// Add query to sqlText variable.<br>
sqlText = "select a.wonum, "<br>
+ " a.description , "<br>
+ " a.location, " <br>
+ " a.status, "<br>
+ " a.wopriority, "<br>
+ " a.supervisor, "<br>
+ " a.reportedby, "<br>
+ " to_char(a.reportdate, 'mm/dd/yyyy') reportdate "<br>
+ " from maximo.workorder a " <br>
+ " where 1 = 1"<br>
+ where<br>
+ " and to_char(reportdate, 'yyyymmdd') >= '" + params["p_rpt_date_from"].substr(4,7) + params["p_rpt_date_from"].substr(0,4) + "'"<br>
+ " and to_char(reportdate, 'yyyymmdd') <= '" + params["p_rpt_date_to"].substr(4,7) + params["p_rpt_date_to"].substr(0,4) + "'"<br>
+ " and a.status in (999) "<br>
+ " order by wonum"<br>
//+ order<br>
;</p>
<p>//
</p>
<p> </p>
<p>I then created a beforeopen script :</p>
<p> </p>
<p>this.sqlText=this.sqlText.replace("999",params["p_status"].value.join("','"));</p>
<p> </p>
<p>also tried</p>
<p> </p>
<p>this.queryText=this.querylText.replace("999",params["p_status"].value.join("','"));</p>
<p> </p>
<p> </p>
<p> </p>
<p>but I am getting the following errors (See below) :</p>
<p>Any help is appreciated</p>
<p> </p>
<p> </p>
<p> </p>
<div><span style="color:#ff0000;">The following items have errors:</span></div>
<br><div>
<div><span style="color:#ff0000;">ReportDesign (id = 1):</span></div>
</div>
<div>
<div><span style="color:#ff0000;"><span>+ </span>There are errors evaluating script "this.sqlText=this.sqlText.replace("999",params["p_status"].value.join("','")); ":<br>
Fail to execute script in function __bm_beforeOpen(). Source:<br>
<br>
" + this.sqlText=this.sqlText.replace("999",params["p_status"].value.join("','")); + "<br>
<br>
A BIRT exception occurred. See next exception for more information.<br>
Error evaluating Javascript expression. Script engine error: TypeError: Cannot call method "replace" of undefined (/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]#1)<br>
Script source: /report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"], line: 0, text:<br>
__bm_beforeOpen(). (Element ID:1) Error.ScriptEvaluationError ( 1 time(s) )<br>
detail : org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "this.sqlText=this.sqlText.replace("999",params["p_status"].value.join("','")); ":<br>
Fail to execute script in function __bm_beforeOpen(). Source:<br>
<br>
" + this.sqlText=this.sqlText.replace("999",params["p_status"].value.join("','")); + "<br>
<br>
A BIRT exception occurred. See next exception for more information.<br>
Error evaluating Javascript expression. Script engine error: TypeError: Cannot call method "replace" of undefined (/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]#1)<br>
Script source: /report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"], line: 0, text:<br>
__bm_beforeOpen(). (Element ID:1)<br>
at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:99)<br>
at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:246)<br>
at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleBeforeOpen(DataSetScriptExecutor.java:101)<br>
at org.eclipse.birt.data.engine.impl.DataSetRuntime.beforeOpen(DataSetRuntime.java:543)<br>
at org.eclipse.birt.data.engine.impl.QueryExecutor.dataSetBeforeOpen(QueryExecutor.java:210)<br>
at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:321)<br>
at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:455)<br>
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)<br>
at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)<br>
at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:620)<br>
at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)<br>
at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:267)<br>
at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1905)<br>
at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)<br>
at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)<br>
at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)<br>
at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)<br>
at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)<br>
at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)<br>
at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)<br>
at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)<br>
at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:180)<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:929)<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.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.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.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.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:727)<br>
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)<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:126)<br>
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)<br>
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317)<br>
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)<br>
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)<br>
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)<br>
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)<br>
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)<br>
at org.mortbay.jetty.Server.handle(Server.java:326)<br>
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)<br>
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:939)<br>
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)<br>
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)<br>
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)<br>
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)<br>
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)<br>
Caused by: org.eclipse.birt.data.engine.core.DataException: Fail to execute script in function __bm_beforeOpen(). Source:<br>
<br>
" + this.sqlText=this.sqlText.replace("999",params["p_status"].value.join("','")); + "<br>
<br>
A BIRT exception occurred. See next exception for more information.<br>
Error evaluating Javascript expression. Script engine error: TypeError: Cannot call method "replace" of undefined (/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]#1)<br>
Script source: /report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"], line: 0, text:<br>
__bm_beforeOpen()<br>
at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:147)<br>
at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:90)<br>
... 72 more<br>
Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred. See next exception for more information.<br>
Error evaluating Javascript expression. Script engine error: TypeError: Cannot call method "replace" of undefined (/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]#1)<br>
Script source: /report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"], line: 0, text:<br>
__bm_beforeOpen()<br>
at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:123)<br>
at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:996)<br>
at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:138)<br>
... 73 more<br>
Caused by: org.eclipse.birt.core.exception.CoreException: Error evaluating Javascript expression. Script engine error: TypeError: Cannot call method "replace" of undefined (/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]#1)<br>
Script source: /report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"], line: 0, text:<br>
__bm_beforeOpen()<br>
at org.eclipse.birt.core.script.JavascriptEvalUtil.wrapRhinoException(JavascriptEvalUtil.java:303)<br>
at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:102)<br>
at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateScript(JavascriptEvalUtil.java:134)<br>
at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:992)<br>
... 74 more<br>
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call method "replace" of undefined (/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]#1)<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.gen.c7._c1(/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]:1)<br>
at org.mozilla.javascript.gen.c7.call(/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"])<br>
at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)<br>
at org.mozilla.javascript.gen.c8._c0(/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"]:0)<br>
at org.mozilla.javascript.gen.c8.call(/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"])<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.c8.call(/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"])<br>
at org.mozilla.javascript.gen.c8.exec(/report/data-sets/script-data-set[
@id="2921"]/method[
@name="beforeOpen"])<br>
at org.eclipse.birt.core.script.JavascriptEvalUtil.evaluateRawScript(JavascriptEvalUtil.java:95)<br>
... 76 more<br><br>
</span></div>
</div>
<p> </p>
<p> </p>