Skip to main content



      Home
Home » Archived » BIRT » Parameter passing in BIRT Report Through JSP
- Parameter passing in BIRT Report Through JSP [message #200890] Tue, 14 November 2006 23:59 Go to next message
Eclipse UserFriend
Originally posted by: mani_rana.yahoo.com

I have created charts using BIRT, the chart report runs successfully in
Eclipse using the BIRT report viewer. There are two report parameters that
are used to produce the charts.

The report also run successfully through JSP code as follows:
------------------------------------------------------------ ---
EngineConfig engineConfig = new EngineConfig();
engineConfig.setEngineHome("F:\\birt-runtime-2_1_1\\ReportEngine ");
ReportEngine engine = new ReportEngine(engineConfig);
IReportRunnable design = null;
try {
design =
engine.openReportDesign("F:\\workspace\\MyReports\\Charts.rptdesign ");
}
catch (EngineException e) {
e.printStackTrace();
}
IRunAndRenderTask task = engine.createRunAndRenderTask(design);

try{
HTMLRenderOption options = new HTMLRenderOption();
javax.servlet.ServletOutputStream sosStream = null;
sosStream = response.getOutputStream();
options.setOutputStream(sosStream);
task.setRenderOption(options);
}
catch(java.lang.Exception e){
}
try{
task.run();
}catch (EngineException e) {
out.println(e.getMessage());
}
engine.destroy();

------------------------------------------------------------ ---

The report uses two parameters, but it always takes the default values.
Now I want to pass the value of the parameter from the JSP code. Please
help.


Thanks in advance.
- Re: Parameter passing in BIRT Report Through JSP [message #201051 is a reply to message #200890] Wed, 15 November 2006 14:50 Go to previous messageGo to next message
Eclipse UserFriend
You should be able to set parameters in your code using the task.
Like

String name = "Top Count";

Integer pvalue = new Integer(4);

parameters.put(name, pvalue);

task.setParameterValues(parameters);

//Alternatively set each seperately

//task.setParameterValue("Top Count", new Integer(12));

task.validateParameters();


If you are using the BIRT Viewer they are passed as name value pairs on the
url.
&parmname=parmvalue.


Jason

"mani" <mani_rana@yahoo.com> wrote in message
news:f1aab63246e6668e75e1018475e5eee3$1@www.eclipse.org...
>
> I have created charts using BIRT, the chart report runs successfully in
> Eclipse using the BIRT report viewer. There are two report parameters that
> are used to produce the charts.
> The report also run successfully through JSP code as follows:
> ------------------------------------------------------------ ---
> EngineConfig engineConfig = new EngineConfig();
> engineConfig.setEngineHome("F:\\birt-runtime-2_1_1\\ReportEngine ");
> ReportEngine engine = new ReportEngine(engineConfig);
> IReportRunnable design = null;
> try {
> design =
> engine.openReportDesign("F:\\workspace\\MyReports\\Charts.rptdesign ");
> }
> catch (EngineException e) {
> e.printStackTrace();
> }
> IRunAndRenderTask task = engine.createRunAndRenderTask(design);
>
> try{
> HTMLRenderOption options = new HTMLRenderOption();
> javax.servlet.ServletOutputStream sosStream = null;
> sosStream = response.getOutputStream();
> options.setOutputStream(sosStream);
> task.setRenderOption(options);
> }
> catch(java.lang.Exception e){
> }
> try{
> task.run();
> }catch (EngineException e) {
> out.println(e.getMessage());
> }
> engine.destroy();
>
> ------------------------------------------------------------ ---
>
> The report uses two parameters, but it always takes the default values.
> Now I want to pass the value of the parameter from the JSP code. Please
> help.
>
>
> Thanks in advance.
>
- Re: Parameter passing in BIRT Report Through JSP [message #201141 is a reply to message #201051] Wed, 15 November 2006 23:48 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: mani_rana.yahoo.com

Thanks for your quick response Jason.

I added the following code after line
"IRunAndRenderTask task = engine.createRunAndRenderTask(design);" : -

String name = "startDateTime";
Integer pvalue = new Integer(4);
HashMap parameters = new HashMap();
parameters.put(name, pvalue);
task.setParameterValues(parameters);

Here startDateTime is a report parameter. I get the following exception: -

------------------------------------------------------------ -----------------

exception

org.apache.jasper.JasperException: getOutputStream() has already been
called for this response
org.apache.jasper.servlet.JspServletWrapper.handleJspExcepti on(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServl etWrapper.java:387)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl et.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java :264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.IllegalStateException: getOutputStream() has already been called
for this response
org.apache.catalina.connector.Response.getWriter(Response.ja va:606)
org.apache.catalina.connector.ResponseFacade.getWriter(Respo nseFacade.java:195)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImp l.java:124)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWrite rImpl.java:117)
org.apache.jasper.runtime.PageContextImpl.release(PageContex tImpl.java:191)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePage Context(JspFactoryImpl.java:115)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext( JspFactoryImpl.java:75)
org.apache.jsp.Mani.jsp3_jsp._jspService(org.apache.jsp.Mani .jsp3_jsp:227)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.ja va:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServl etWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl et.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java :264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


------------------------------------------------------------ ------------------


But if I set any arbitrary variable like the same you have used "Top
Count", the report runs successfully.

Please let me know your suggestions.

Thanks,
Mani
- Re: Parameter passing in BIRT Report Through JSP [message #201296 is a reply to message #201141] Thu, 16 November 2006 13:18 Go to previous messageGo to next message
Eclipse UserFriend
Try doing the validate parameters call after you use the task to set the
parameter.
BTW is your parameter type set as a date type?

Jason

"mani" <mani_rana@yahoo.com> wrote in message
news:a6e01a3971fbbafb729da75326da6233$1@www.eclipse.org...
>
> Thanks for your quick response Jason.
>
> I added the following code after line "IRunAndRenderTask task =
> engine.createRunAndRenderTask(design);" : -
>
> String name = "startDateTime";
> Integer pvalue = new Integer(4);
> HashMap parameters = new HashMap();
> parameters.put(name, pvalue);
> task.setParameterValues(parameters);
>
> Here startDateTime is a report parameter. I get the following exception: -
>
> ------------------------------------------------------------ -----------------
>
> exception
> org.apache.jasper.JasperException: getOutputStream() has already been
> called for this response
> org.apache.jasper.servlet.JspServletWrapper.handleJspExcepti on(JspServletWrapper.java:510)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServl etWrapper.java:387)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl et.java:314)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java :264)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
>
> root cause
> java.lang.IllegalStateException: getOutputStream() has already been called
> for this response
> org.apache.catalina.connector.Response.getWriter(Response.ja va:606)
> org.apache.catalina.connector.ResponseFacade.getWriter(Respo nseFacade.java:195)
> org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImp l.java:124)
> org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWrite rImpl.java:117)
> org.apache.jasper.runtime.PageContextImpl.release(PageContex tImpl.java:191)
> org.apache.jasper.runtime.JspFactoryImpl.internalReleasePage Context(JspFactoryImpl.java:115)
> org.apache.jasper.runtime.JspFactoryImpl.releasePageContext( JspFactoryImpl.java:75)
> org.apache.jsp.Mani.jsp3_jsp._jspService(org.apache.jsp.Mani .jsp3_jsp:227)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.ja va:97)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> org.apache.jasper.servlet.JspServletWrapper.service(JspServl etWrapper.java:332)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl et.java:314)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java :264)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
>
> ------------------------------------------------------------ ------------------
>
>
> But if I set any arbitrary variable like the same you have used "Top
> Count", the report runs successfully.
> Please let me know your suggestions.
>
> Thanks,
> Mani
>
- Re: Parameter passing in BIRT Report Through JSP [message #201856 is a reply to message #201296] Mon, 20 November 2006 05:00 Go to previous message
Eclipse UserFriend
Originally posted by: mani_rana.yahoo.com

Thanks Jason (for the DateTime hint). Yes, the parameter is of DateTime
Type. My problem is solved now, I was not setting the parameter to
DateTime. Now the following code works fine:

------------------------------------------------------------ --------
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
String name = "startDateTime";
Format formatter;
formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss aaa");
Date date = new Date("10/03/2006 12:00:00 AM");
HashMap parameters = new HashMap();
parameters.put(name, date);
task.setParameterValues(parameters);
------------------------------------------------------------ --------

Thanks a lot for your help.
-Mani
Previous Topic:Printing Report when clicking "Print report as PDF"
Next Topic:retrieve parameter from address bar to birt report
Goto Forum:
  


Current Time: Sun May 11 19:14:41 EDT 2025

Powered by FUDForum. Page generated in 0.03583 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top