CA Service Management

Expand all | Collapse all

Jasper Studio, filtering on a date range

JAN POKORNY

JAN POKORNYApr 20, 2017 08:08 AM

  • 1.  Jasper Studio, filtering on a date range

    Posted Apr 13, 2017 08:30 AM
      |   view attached

    Hi,
    can you help me to create the date range (start_date, end_Date) in report over ODBC drivers?

    1) I create new report wiht query
    SELECT casd.cr.open_date,
    casd.cr.id,
    casd.cr.assignee_combo_name
    FROM casd.cr

    2) Then I create two parameters "start_date", "end_date"

    3) And I add a condition "Where
    casd.cr.open_date >= $P{start_date} and cr.open_date <= $P{end_date}"

    But the result is "Document is empty"
    ----------------------------
    - I tried to change class (casd.cr.open_date, parameters; Timestamp, sql.Date)
    - I tried "Where casd.cr.open_date = '2002-09-13 01:00:00.0'", Error executing SQL statement for: data.

     

    Thank you for your help

    Jan



  • 2.  Re: Jasper Studio, filtering on a date range
    Best Answer

    Broadcom Employee
    Posted Apr 14, 2017 08:40 AM

    Hi Jan,

    You might need to 2 reports 1 main, 1 subreport.

    [Main report parameters]

    <parameter name="p_start_date" class="java.sql.Timestamp"/> <parameter name="p_end_date" class="java.sql.Timestamp"/>

     

    [Main Report variables]

    <variable name="v_start_date" class="java.lang.String"  resetType="None">

    <variableExpression><![CDATA["{ts'"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{p_start_date})+"'}"]]></variableExpression>

    </variable> <variable name="v_end_date" class="java.lang.String"  resetType="None">

    <variableExpression><![CDATA["{ts'"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format($P{p_end_date})+"'}"]]></variableExpression>

    </variable>

     

    [Subreport parameters]

    <parameter name="p_start_date" class="String"/> <parameter name="p_end_date" class="String"/>

     

    Create the main report and link the subreport and click on the subreport while on the main report and click edit parameters and link main report variables with the subreport parameters.

    v_start_date - > p_start_date

    v_end_date - > p_end_date

    SELECT
     casd.cr.ref_num,
     casd.cr.id,
     casd.cr.open_date,
     casd.cr.priority_symbol,
     casd.cr.status_symbol,
     casd.cr.summary,
     casd.cr.web_url,
     casd.cr.customer_combo_name,
     casd.cr.assignee_combo_name,
     casd.cr.assignee_combo_name as ANALYST
     FROM
     cr
     WHERE casd.cr.type = 'R' and casd.cr.active = 1 and casd.cr.open_date >= $P{p_start_date} and casd.cr.open_date <= $P{p_end_date}
     ORDER by ANALYST, casd.cr.id DESC

    Hope this gives you more info and resolves your issue.



  • 3.  Re: Jasper Studio, filtering on a date range

    Posted Apr 14, 2017 01:37 PM

    Hi Maheshwar_Kusuma,
    thank you for your reply. Your solution is "very complicated".

    I need to create only one report - "simple list with date range filter (start_date and end_date)".
    Is it possible to create in Jasper Studio?

    j.



  • 4.  Re: Jasper Studio, filtering on a date range

    Posted Apr 17, 2017 01:13 PM

    Actually Maheshar's solution is quite simple and for the most part the best way to accomplish what you want to do.  

     

    I created a report (2 .jrxml files,  Main Report plus Subreport) in Studio using his code examples and it worked perfectly. 



  • 5.  Re: Jasper Studio, filtering on a date range

    Posted Apr 17, 2017 01:32 PM

    For our customers is not accetable solution (compared BI reporting tools -  SAP BO, MS SSRS, , . . ).

    I understand - "Actually this solution is quite simple in Jasper".

     

    OK thank all



  • 6.  Re: Jasper Studio, filtering on a date range

    Posted Apr 19, 2017 09:49 AM
    Hi,
    I created:
    - main report
    - subreport
    - table
    - a lot of parameters and variables :-(
    -----------------------------------------
    Report work "OK" in "Jasper Studio".
    Now I´m trying to publish report to JasperServer.
    - In JasperServer I set "date format" 
    My question is:
    How shall I set "format date of parameters" in "Jasper Studio"?
    Thank you for your help
    Regards,
    Jan


  • 7.  Re: Jasper Studio, filtering on a date range

    Posted Apr 19, 2017 01:29 PM

    Hi Jan,

     

    If I understand your question correctly, in studio set the text field expression for $F{open_date} as follows:

     

    new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").format($F{open_date})

     

    Cheers!

     

    Steve 



  • 8.  Re: Jasper Studio, filtering on a date range

    Posted Apr 20, 2017 04:37 AM

    Hi Steve,
    thank you for your reply.
    My scenery:
    1) I genereted report in Jasper Studio
    start_date = "1/1/17 10:27:46 AM"
    end_date = "4/20/17 10:27:46 AM"
    Report showed data.

    2) I published report in Jasper Server

    3) I genereted report in Jasper Studio
    start_date = "01-01-2017 00:00:00"
    end_date = "01-04-2017 10:25:49"
    Report showed no data. Why? (smiley) (different format date?)

    Thank you for your help.

    Jan

     



  • 9.  Re: Jasper Studio, filtering on a date range

    Broadcom Employee
    Posted Apr 20, 2017 06:34 AM

    Hi Jan,

     

    As far as I can understand, you are asking how to change the date format of your parameters when you run a report and when you are prompted to enter these ones.

    You may have to edit the files "calendar.properties" and "jasperserver_config.properties" in $tomcat/webapps/jasperserver/WEB-INF/bundles to get the desired results.

     

    Check this code below as well

    " + new SimpleDateFormat("dd-MMMMM-yy").format(new SimpleDateFormat("MM/dd/yyyy").parse($P{fdate}))+

     

    Hope this Helps



  • 10.  Re: Jasper Studio, filtering on a date range

    Posted Apr 20, 2017 06:48 AM

    Hi Maheshwar,

    I changed "date format" in Jasper Server and is OK.

     

    Where and how does It change "date format" in Jasper Studio in my report?

    Where and how does It set "default date format" in Jasper Studio?

     

    Thank you for your help.

    Jan



  • 11.  Re: Jasper Studio, filtering on a date range

    Posted Dec 20, 2018 03:55 PM

    Edit these files to what? Can you provide a little more detail here? 



  • 12.  Re: Jasper Studio, filtering on a date range

    Posted Dec 21, 2018 11:49 AM

    @Steve Troy, 

     

    I get an error:

    net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Request Report.
    at com.jaspersoft.studio.editor.preview.view.control.ReportControler.fillReport(ReportControler.java:537)
    at com.jaspersoft.studio.editor.preview.view.control.ReportControler.access$20(ReportControler.java:512)
    at com.jaspersoft.studio.editor.preview.view.control.ReportControler$5.run(ReportControler.java:393)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
    Caused by: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Request Report.
    at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:874)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:536)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:411)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:386)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2024)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:748)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
    at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:123)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Request Report.
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:344)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1129)
    at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:696)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.setParameters(BaseReportFiller.java:437)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:548)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:396)
    at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:732)
    at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
    at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    ... 1 more
    Caused by: java.sql.SQLException: [DataDirect][OpenAccess SDK JDBC Driver]An internal error occurred.
    at com.ddtek.openaccess.ssp.Diagnostic.ClientCoreError(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.decode(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.send(Unknown Source)
    at com.ddtek.openaccess.ctxt.stmt.StatementContext.execute(Unknown Source)
    at com.ddtek.jdbc.openaccess.OpenAccessImplStatement.execute(Unknown Source)
    at com.ddtek.jdbc.oabase.BaseStatement.commonExecute(Unknown Source)
    at com.ddtek.jdbc.oabase.BaseStatement.executeQueryInternal(Unknown Source)
    at com.ddtek.jdbc.oabase.BasePreparedStatement.executeQuery(Unknown Source)
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:310)
    ... 11 more



  • 13.  Re: Jasper Studio, filtering on a date range

    Posted Dec 20, 2018 03:24 PM

    Agreed this is a pretty complicated work around. Feels pretty cludgy.



  • 14.  Re: Jasper Studio, filtering on a date range

    Posted Apr 20, 2017 07:52 AM

    I tried to change "Class" parameters (java.sql.Timestamp -> java.util.Date) in Jasper Studio. Now both tools show same format date. 

    Report in Jasper Server showed no data.



  • 15.  Re: Jasper Studio, filtering on a date range

    Posted Apr 20, 2017 08:08 AM

    Hi all, report is working! 

    Thanks



  • 16.  Re: Jasper Studio, filtering on a date range

    Posted Dec 20, 2018 03:18 PM

    Im also showing no data when i filter on date. How did you fix it?



  • 17.  Re: Jasper Studio, filtering on a date range

    Posted Dec 21, 2018 11:39 AM

    I attempted the sub-report workaround but all im getting is the following:

    Where am I going wrong here? 

     

    "net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Request Report.
    at com.jaspersoft.studio.editor.preview.view.control.ReportControler.fillReport(ReportControler.java:537)
    at com.jaspersoft.studio.editor.preview.view.control.ReportControler.access$20(ReportControler.java:512)
    at com.jaspersoft.studio.editor.preview.view.control.ReportControler$5.run(ReportControler.java:393)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
    Caused by: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Request Report.
    at net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:874)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:536)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:411)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:386)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2024)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:748)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:115)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:580)
    at net.sf.jasperreports.engine.fill.BaseFillHandle$ReportFill.run(BaseFillHandle.java:123)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: net.sf.jasperreports.engine.JRException: Error executing SQL statement for: Request Report.
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:344)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1129)
    at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:696)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.setParameters(BaseReportFiller.java:437)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:548)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:396)
    at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:732)
    at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59)
    at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    ... 1 more
    Caused by: java.sql.SQLException: [DataDirect][OpenAccess SDK JDBC Driver][OpenAccess SDK SQL Engine]AHD12002:Error in QueryHandler ServiceDesk-945581276-2 in method fetch_response: AHD04199:An unexpected Database error occurred. Contact your administrator.
    at com.ddtek.openaccess.ssp.Diagnostic.toSQLException(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.cnvDiagnostics(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.decodeDiagnostic(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.decodeBody(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.decode(Unknown Source)
    at com.ddtek.openaccess.ssp.Chain.send(Unknown Source)
    at com.ddtek.openaccess.ctxt.stmt.StatementContext.execute(Unknown Source)
    at com.ddtek.jdbc.openaccess.OpenAccessImplStatement.execute(Unknown Source)
    at com.ddtek.jdbc.oabase.BaseStatement.commonExecute(Unknown Source)
    at com.ddtek.jdbc.oabase.BaseStatement.executeQueryInternal(Unknown Source)
    at com.ddtek.jdbc.oabase.BasePreparedStatement.executeQuery(Unknown Source)
    at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:310)
    ... 11 more
    "