CA Service Management

  • 1.  Jasper Studio, filtering on a date range

    Posted Dec 21, 2018 11:59 AM

    I've been attempting to get filtering to happen on a date range in Jasper studio for 2 days and have been working with (Bill M.) meswi01 on this to no avail. I've walked through the solution outlined here:

     

    Jasper Studio, filtering on a date range 

    But it isn't working. 

    Doing a simple filter on a date range should not be this difficult. It seems that the Data Type communication wasn't fully fleshed out between Jasper and SDM in regards to Date Types. 

     

    I am returned with 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



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

    Posted Dec 21, 2018 12:22 PM

    Kudos to Bill M. on this... meswi01

     

    Per Bill:

     

    You need to have 2 parameters: pOpenDateMin of type java.sql.Date and pOpenDateMinStr (or whatever you want to call it), type java.lang.String.  Set the default value for pOpenDateMinStr to DATEFORMAT($P{pOpenDateMin}, "yyyy-MM-dd HH:mm:ss").  That converts the date value to a string in the timestamp format.  Then your query should look like this:

     

    SELECT
    ref_num, open_date
    FROM cr
    where open_date > {ts'$P!{pOpenDateMinStr}'}
    and the ODBC driver handles the rest of the conversion.

     

    No Need for any sort of sub-report sillyness. Bravo Bill!

     

    Still not exactly awesome since we still have to jump through a few hoops to get the two platforms to speak but it's better than where I was about 20 mins ago with it coughing up errors. 



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

    Posted Feb 18, 2019 02:16 AM

    This has just saved me from losing my remaining hair.  Bravo meswi01 indeed!