Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
THRUST SERVICES & TOOLS
CLOUD EDITIONS
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Adding Filter Operator
Pujan
Hello,<br />
<br />
I have a filter with "IN" operation. During the execution of report, based on the criteria I want to add dynamically 1 more operator "LIKE". Is it possible to do ? I am using BIRT 2.3.1<br />
<br />
When I add the following code in "Before Factory"<br />
<br />
if( params["ChoosePrimaryClient"].value[0] == '0')<br />
{<br />
importPackage(Packages.org.eclipse.birt.report.model.api);<br />
importPackage(Packages.org.eclipse.birt.report.model.api.elements);<br />
dshandle = reportContext.getReportRunnable().designHandle.getDesignHandle().findDataSet("AchievementTrackingDataSet");<br />
filters = dshandle.filtersIterator();<br />
while( filters.hasNext() )<br />
{<br />
filterHandle = filters.next();<br />
if( filterHandle.getExpr().indexOf("AGENCY_CLIENT_ID") >= 0 )<br />
{<br />
dshandle.removeFilter( filterHandle.getStructure() );<br />
}<br />
}<br />
}<br />
else if(params["ChooseHouseholdMember"].value[0] == '0')<br />
{<br />
importPackage(Packages.org.eclipse.birt.report.model.api);<br />
importPackage(Packages.org.eclipse.birt.report.model.api.elements);<br />
dshandle = reportContext.getReportRunnable().designHandle.getDesignHandle().findDataSet("AchievementTrackingDataSet");<br />
filters = dshandle.filtersIterator();<br />
while( filters.hasNext() )<br />
{<br />
filterHandle = filters.next();<br />
if( filterHandle.getExpr().indexOf("AGENCY_CLIENT_ID") >= 0 )<br />
{<br />
origOperator = filterHandle.getOperator();<br />
origValue1 = filterHandle.getValue1();<br />
fc = StructureFactory.createFilterCond();<br />
fc.setExpr("dataSetRow["AGENCY_CLIENT_ID"]");<br />
fc.setOperator(origOperator);<br />
fc.setValue1(origValue1);<br />
fc.setOperator(DesignChoiceConstants.FILTER_OPERATOR_LIKE);<br />
value2 = '%';<br />
fc.setValue2(value2.toString());<br />
dshandle.removeFilter( filterHandle.getStructure() );<br />
dshandle.addFilter(fc);<br />
}<br />
}<br />
}<br />
<br />
<br />
I am getting the error - The following items have errors: <br />
<br />
<strong class='bbc'>Table (id = 336): <br />
+ An exception occurred during processing. Please see the following message for details:<br />
Invalid Javascript expression: %.<br />
syntax error <br />
exception.error ( 1 time(s) )</strong><br />
detail : org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details:Invalid Javascript expression: %.syntax error at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1109) at org.eclipse.birt.report.engine.executor.ExecutionContext.addException(ExecutionContext.java:1073) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:88) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:33) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:151) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:72) at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:954) at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:933) at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:132) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183) at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:616) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:112) at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180) at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:269) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)Caused by: org.eclipse.birt.report.data.adapter.api.AdapterException: An exception occurred during processing. Please see the following message for details:Invalid Javascript expression: %.syntax error at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:490) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:114) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1736) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77) ... 56 moreCaused by: org.eclipse.birt.data.engine.core.DataException: <strong class='bbc'>Invalid Javascript expression: %.syntax error</strong> at org.eclipse.birt.data.engine.expression.AbstractExpressionCompiler.compileExpression(AbstractExpressionCompiler.java:129) at org.eclipse.birt.data.engine.expression.ExpressionCompiler.compile(ExpressionCompiler.java:67)
Find more posts tagged with
Comments
There are no comments yet