从jasper报告中调用来自sql server过程的过程

时间:2013-11-12 13:17:54

标签: java sql-server jasper-reports

Hello伙伴我试图从jasper报告调用sql server store,但是我得到了这个错误: - .sf.jasperreports.engine.JRException:执行SQL语句时出错:ReportTemplate  我不知道出了什么问题,请帮我解决这个问题。 从这里我称之为程序: -

<parameter name="param1" class="java.lang.Integer"/>
<parameter name="param2" class="java.lang.Integer"/>
<parameter name="param3" class="java.lang.String"/>
<parameter name="param4" class="java.lang.String"/>
<queryString>
    <![CDATA[Call P_SubLedger_Report($P{param1},$P{param2},$P{param3},$P{param4});]]>
</queryString>

这是我的java函数:

public byte[] getSubledgerReport(String strtdate,String enddate,int acid, int subacid)throws Exception{
    SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    Date parsedstrtdate = format.parse(strtdate);
    java.sql.Date stdate = new java.sql.Date(parsedstrtdate.getTime());
    Date parsedenddate = format.parse(enddate);
    java.sql.Date enddt = new java.sql.Date(parsedenddate.getTime());
    System.out.println("yaha aaya bhi"+stdate+" "+acid+" "+subacid);
    JasperReport jasperReport = null;
    JasperPrint jasperPrint = null;
    byte[] bytes = null;
    Map parameters = new HashMap();
    try {
        parameters.put("param1", acid);
        parameters.put("param2", subacid);
        parameters.put("param3", stdate);
        parameters.put("param4", enddt);
       //String reportSource = "C:\\Users\\Subodh\\Desktop\\Teachers\\src\\DB\\Account\\AccountsReport\\newReport.jrxml";
        String reportSource = "C:\\Users\\subodh\\Desktop\\Bipin\\SSSML\\src\\java\\AccountReports\\SubLedgerReport.jrxml";
        jasperReport = (JasperReport) JasperCompileManager.compileReport(reportSource);

        bytes = JasperRunManager.runReportToPdf(jasperReport, parameters, conn);

    } catch (JRException e) {
        System.out.println("Error is kjsdhgjkshdgjkhg"+e);
    }
    conn.close();
    return bytes;
}

2 个答案:

答案 0 :(得分:0)

你没试过“;”在末尾?我确定在sql语句结束时不允许这样做,不确定是否可以调用...

答案 1 :(得分:0)

试试这个。并重新发布您的整个碧玉报告。

并检查异常使用printstacktrace。它会帮助你了解确切的问题。

对不起,我错过了这个

<![CDATA[{Call P_SubLedger_Report($P{param1},$P{param2},$P{param3},$P{param4})}]]>.