来自Java的白色报告和jasper报告

来自Java的白色报告和jasper报告,java,report,Java,Report,我对jasper报告有问题: 我用iReport 5.6.0创建了一个报告,它运行正常。它只包含参数。 我的问题来自java:当我尝试从java类创建pdf文件时,它会创建一个全白色大小为1KB的文件。 从IReport上看,它工作正常。 我试图通过iReport和java编译“.jasper”文件。编译id正确完成,但当我尝试传递参数时是错误的。 最终PDF创建成功,但页面全是白色。 帮助PPPP HashMap<String, Object> hm=new HashMap<

我对jasper报告有问题: 我用iReport 5.6.0创建了一个报告,它运行正常。它只包含参数。 我的问题来自java:当我尝试从java类创建pdf文件时,它会创建一个全白色大小为1KB的文件。 从IReport上看,它工作正常。 我试图通过iReport和java编译“.jasper”文件。编译id正确完成,但当我尝试传递参数时是错误的。 最终PDF创建成功,但页面全是白色。 帮助PPPP

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
p、 请原谅我英语不好

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
我的java类:

package it.minervaice.report;

import it.minervaice.utility.T;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;

public class ReportUtility {              
String JASPER_REPORT_FOLDER         = "C:\\Users\\Minerva\\Desktop\\Dropbox\\workspace\\MinervaICE\\WebContent\\report\\";
String JASPER_FILENAME_MAIN_DATE    = "distintaCompletaPerData";
String JASPER_FILENAME_MAIN_ID      = "distintaCompletaPerID";
String JASPER_FILENAME_CHILD        = "dettaglioRicetta";   

JasperPrint jp = null;

public JasperPrint getReportCompilatoPerFlusso () {
    return jp;
}


// II° STEP:    rendering del report
public boolean renderingReportDaID(Integer id_distinta) {
    //Connection conn = DBUtility.getConnection();

    try {
        //Parametri da passare al jasper.
        Map<String, Object> parameters = new HashMap<> ();

        parameters.put("id_distinta", id_distinta);

        T.nota("inizio rendering");
        jp = JasperFillManager.fillReport(JASPER_REPORT_FOLDER + "java.jasper", parameters);
        T.nota("fine rendering");

    } catch (JRException e) {
        T.nota("errore rendering");
        e.printStackTrace();
        T.nota("errore rendering");
    }
    return true;
}



// III° STEP:   creazione pdf
public boolean creaPDF(String nomePDF) { 
    if ( nomePDF.equals("") ) {
        nomePDF = "report";
    }

    // generazione del file PDF
    try {
        T.nota("inizio creazione pdf");
        JasperExportManager.exportReportToPdfFile(jp, JASPER_REPORT_FOLDER + nomePDF + ".pdf");
        T.nota("fine creazione pdf");
    } catch (JRException e) {
        T.nota("errore creazione pdf"); e.printStackTrace();T.nota("errore creazione pdf");
    }

    return true;
}


// III° bis STEP:   scarica pdf con la finestra di download
public boolean downloadPDF(String nomePDF, HttpServletResponse resp) { 
    if ( nomePDF.equals("") ) {
        nomePDF = "report";
    }

    // generazione del file PDF
    try {
        T.nota("inizio creazione download pdf");

        String header = String.format("Attachment; Filename=\"%s.pdf\"", nomePDF );
        ServletOutputStream sos=resp.getOutputStream();
        resp.setContentType("APPLICATION/OCTET-STREAM");
        resp.setHeader("Content-Disposition", header);
        JasperExportManager.exportReportToPdfStream(jp, sos);
        sos.close();
        T.nota("fine creazione download pdf");
    } catch (JRException e) {


    } catch (IOException e) {
        T.nota("errore creazione download pdf");
        e.printStackTrace();
        T.nota("errore creazione download pdf");
    }

    return true;
}   


public static void main(String[] args) {

    ReportUtility ru = new ReportUtility();
    //ru.creaJasper();
    ru.renderingReportDaID(1);
    ru.creaPDF("ciccio");



}

}
HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
打包it.minervaice.report;
导入it.minervice.utility.T;
导入java.io.IOException;
导入java.util.HashMap;
导入java.util.Map;
导入javax.servlet.ServletOutputStream;
导入javax.servlet.http.HttpServletResponse;
导入net.sf.jasperreports.engine.JRException;
导入net.sf.jasperreports.engine.jaspeexportmanager;
导入net.sf.jasperreports.engine.JasperFillManager;
导入net.sf.jasperreports.engine.JasperPrint;
公共类报表实用程序{
String JASPER_REPORT_FOLDER=“C:\\Users\\Minerva\\Desktop\\Dropbox\\workspace\\minervice\\WebContent\\REPORT\\”;
字符串JASPER\u FILENAME\u MAIN\u DATE=“distintaCompletaPerData”;
字符串JASPER\u FILENAME\u MAIN\u ID=“distintaCompletaPerID”;
字符串JASPER_FILENAME_CHILD=“dettaglioRicetta”;
JasperPrint jp=null;
公共JasperPrint GetReportCompileAtoPerflusso(){
返回jp;
}
//II°步骤:呈现del报告
公共布尔renderingReportDaID(整数id\u distinta){
//连接conn=DBUtility.getConnection();
试一试{
//帕萨雷贾斯珀酒店。
Map参数=newhashmap();
参数put(“id\u distinta”,id\u distinta);
T.nota(“渲染”);
jp=JasperFillManager.fillReport(JASPER\u REPORT\u文件夹+“java.JASPER”,参数);
T.nota(“精细渲染”);
}捕获(JRE异常){
T.nota(“错误呈现”);
e、 printStackTrace();
T.nota(“错误呈现”);
}
返回true;
}
//III°步骤:creazione pdf
公共布尔型creaPDF(字符串名称PDF){
如果(PDF.equals(“”){
nomePDF=“报告”;
}
//通用del文件PDF
试一试{
T.nota(“Iziio creazione pdf”);
JasperExportManager.exportReportToPdfFile(jp,JASPER_REPORT_FOLDER+nomePDF+“.pdf”);
T.nota(“精细creazione pdf”);
}捕获(JRE异常){
T.nota(“errore creazione pdf”);e.printStackTrace();T.nota(“errore creazione pdf”);
}
返回true;
}
//III°双步骤:scarica pdf con la finestra di下载
公共布尔下载PDF(字符串nomePDF,HttpServletResponse resp){
如果(PDF.equals(“”){
nomePDF=“报告”;
}
//通用del文件PDF
试一试{
T.nota(“Inziio creazione下载pdf”);
字符串头=String.format(“附件;文件名=\%s.pdf\”,nomePDF);
ServletOutputStream sos=resp.getOutputStream();
分别为setContentType(“应用程序/八位字节流”);
分别设置标题(“内容处置”,标题);
jaspeexportmanager.exportReportToPdfStream(jp,sos);
sos.close();
T.nota(“fine creazione下载pdf”);
}捕获(JRE异常){
}捕获(IOE异常){
T.nota(“errore creazione下载pdf”);
e、 printStackTrace();
T.nota(“errore creazione下载pdf”);
}
返回true;
}   
公共静态void main(字符串[]args){
ReportUtility ru=新的ReportUtility();
//ru.creaJasper();
ru.渲染报告daid(1);
ru.creaPDF(“ciccio”);
}
}

可能是通过HashMap对象传递给Jasper Report的空值。因此,Jasper Report创建了没有数据的PDF文件。您必须检查值是否通过。下面是Jasper报告中的快照代码和查询:查询-

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
从testTable中选择*,其中id=$p{EMPID}

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
。Heare EMPID是Jasper Report中创建的一个参数。下面是调用Jasper报告并将值传递给它的Java代码

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
HashMap hm=newhashmap();
hm.put(“EMPID”,objEmp.getEmpid());
字符串jasperreportpath=“salaryslip.jrxml”;
字符串jasperReport=JasperCompileManager.compilereportofile(jasperreportpath);
字符串exportPath=output\u file\u location\u path+file.separator+“outputFileName.pdf”;
JasperExportManager.exportreporttopffile(jasperPrint,exportPath);

请记住,Jasper Report中HashMap对象和参数中的键是相同的“EMPID”。

可能是通过HashMap对象传递给Jasper Report的空值。因此,Jasper Report创建了没有数据的PDF文件。您必须检查值是否通过。下面是Jasper报告中的快照代码和查询:查询-

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
从testTable中选择*,其中id=$p{EMPID}

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
。Heare EMPID是Jasper Report中创建的一个参数。下面是调用Jasper报告并将值传递给它的Java代码

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath); 
HashMap hm=newhashmap();
hm.put(“EMPID”,objEmp.getEmpid());
字符串jasperreportpath=“salaryslip.jrxml”;
字符串jasperReport=JasperCompileManager.compilereportofile(jasperreportpath);
字符串exportPath=output\u file\u location\u path+file.separator+“outputFileName.pdf”;
JasperExportManager.exportreporttopffile(jasperPrint,exportPath);
记住,Jasper报告中HashMap对象和参数中的键是相同的“EMPID”

HashMap<String, Object> hm=new HashMap<String, Object>();
hm.put("EMPID", objEmp.getEmpid());

String jasperreportpath="salaryslip.jrxml";    
String jasperReport =JasperCompileManager.compileReportToFile(jasperreportpath);

String exportPath=output_file_location_path+File.separator+"outputFileName.pdf";
JasperExportManager.exportReportToPdfFile(jasperPrint, exportPath);