Java 如何将日期作为参数传递给jasper报告
我正在尝试创建以开始日期和结束日期为参数的JR报告 查询:Java 如何将日期作为参数传递给jasper报告,java,jasper-reports,Java,Jasper Reports,我正在尝试创建以开始日期和结束日期为参数的JR报告 查询: 从emp中选择*,其中加入日期介于$P{frm_date}和$P{to_date} 守则: datefrom_Date=dt_from_Date.getDate(); Date to_Date=dt_to_Date.getDate(); java.sql.Date frm_dte=new java.sql.Date(from_Date.getTime()); java.sql.Date to_dte=new java.sql.Date
从emp中选择*,其中加入日期介于$P{frm_date}和$P{to_date}
守则:
datefrom_Date=dt_from_Date.getDate();
Date to_Date=dt_to_Date.getDate();
java.sql.Date frm_dte=new java.sql.Date(from_Date.getTime());
java.sql.Date to_dte=new java.sql.Date(to_Date.getTime());
试一试{
HashMap=newHashMap();
地图放置($P{frm_date}),frm_dte);
把($P{to_date})放在地图上;
JasperPrint jp=JasperFillManager.fillReport(is、map、con);
JRViewer jv=新的JRViewer(jp);
JFrame jf=新JFrame();
jf.getContentPane().add(jv);
jf.validate();
jf.setVisible(真);
jf.设置尺寸(新尺寸(800600));
设置位置(300100);
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
}捕获(JREX异常){
例如printStackTrace();
}
我们可以将两个参数传递给表中的同一列吗?例如:
map.put("joining_date", frm_dte);
map.put("joining_date", to_dte);
您可以按以下字符串格式类型传递日期
if(from_date!=null)
{
formattedEndDate=new SimpleDateFormat("yyyy-MM-dd").format(from_date);
}
if(getStartDate()!=null)
{
formattedStartDate=new SimpleDateFormat("yyyy-MM-dd").format(to_date);
}
您可以按以下字符串格式类型传递日期
if(from_date!=null)
{
formattedEndDate=new SimpleDateFormat("yyyy-MM-dd").format(from_date);
}
if(getStartDate()!=null)
{
formattedStartDate=new SimpleDateFormat("yyyy-MM-dd").format(to_date);
}
你的代码错了
您应按如下方式传递参数:
Map<String, Object> map = new HashMap<String, Object>();
map.put("frm_date", frm_dte);
map.put("to_date", to_dte);
Map Map=newhashmap();
地图放置(“frm_日期”,frm_dte);
地图放置(“截止日期”,截止日期);
您不需要将p${}
添加到参数的名称中
JasperReports分发包中有很多样本 您可以查看更多详细信息。您的代码错误
private JasperPrint generateReport() {
Connection conn = null;
JasperPrint myJPrint = null;
try {
conn =yourconnectionName;
// parameters to be passed to the report
Map<String, Object> params = new HashMap();
// Loading my jasper file
JasperDesign jasperDesign = null;
JasperReport jasperReport = null;
params.put("REPORT_DIR",yourClassName.class.getClassLoader()
.getResource("yourJasperFileName.jrxml").toString().replace("yourJasperFileName.jrxml", ""));
jasperDesign = JasperManager.loadXmlDesign(yourClassName.class
.getClassLoader().getResourceAsStream("yourJasperFileName.jrxml"));
params.put("joining_date", frm_dte);
params.put("leaving_date", frm_dte);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
/*
* Filling the report with data from the database based on the
* parameters passed.
*/
myJPrint = JasperFillManager.fillReport(jasperReport, params, conn);
params.clear();
} catch (JRException ex) {
ex.printStackTrace();
}
return myJPrint;
}
您应按如下方式传递参数:
Map<String, Object> map = new HashMap<String, Object>();
map.put("frm_date", frm_dte);
map.put("to_date", to_dte);
Map Map=newhashmap();
地图放置(“frm_日期”,frm_dte);
地图放置(“截止日期”,截止日期);
您不需要将p${}
添加到参数的名称中
JasperReports分发包中有很多样本 您可以查看更多详细信息。
私有JasperPrint generateReport(){
private JasperPrint generateReport() {
Connection conn = null;
JasperPrint myJPrint = null;
try {
conn =yourconnectionName;
// parameters to be passed to the report
Map<String, Object> params = new HashMap();
// Loading my jasper file
JasperDesign jasperDesign = null;
JasperReport jasperReport = null;
params.put("REPORT_DIR",yourClassName.class.getClassLoader()
.getResource("yourJasperFileName.jrxml").toString().replace("yourJasperFileName.jrxml", ""));
jasperDesign = JasperManager.loadXmlDesign(yourClassName.class
.getClassLoader().getResourceAsStream("yourJasperFileName.jrxml"));
params.put("joining_date", frm_dte);
params.put("leaving_date", frm_dte);
jasperReport = JasperCompileManager.compileReport(jasperDesign);
/*
* Filling the report with data from the database based on the
* parameters passed.
*/
myJPrint = JasperFillManager.fillReport(jasperReport, params, conn);
params.clear();
} catch (JRException ex) {
ex.printStackTrace();
}
return myJPrint;
}
连接conn=null;
JasperPrint myJPrint=null;
试一试{
conn=您的连接名;
//要传递到报表的参数
Map params=新的HashMap();
//加载我的jasper文件
JasperDesign JasperDesign=null;
JasperReport-JasperReport=null;
params.put(“REPORT_DIR”,yourClassName.class.getClassLoader()
.getResource(“yourJasperFileName.jrxml”).toString().replace(“yourJasperFileName.jrxml”);
jasperDesign=JasperManager.loadXmlDesign(yourClassName.class
.getClassLoader().getResourceAsStream(“yourJasperFileName.jrxml”);
参数put(“加入日期”,frm dte);
参数put(“离开日期”,frm\U dte);
jasperReport=jaspecompilemanager.compileReport(jasperDesign);
/*
*根据
*参数传递。
*/
myJPrint=JasperFillManager.fillReport(jasperReport,params,conn);
参数clear();
}捕获(JREX异常){
例如printStackTrace();
}
返回myJPrint;
}
私人JasperPrint generateReport(){
连接conn=null;
JasperPrint myJPrint=null;
试一试{
conn=您的连接名;
//要传递到报表的参数
Map params=新的HashMap();
//加载我的jasper文件
JasperDesign JasperDesign=null;
JasperReport-JasperReport=null;
params.put(“REPORT_DIR”,yourClassName.class.getClassLoader()
.getResource(“yourJasperFileName.jrxml”).toString().replace(“yourJasperFileName.jrxml”);
jasperDesign=JasperManager.loadXmlDesign(yourClassName.class
.getClassLoader().getResourceAsStream(“yourJasperFileName.jrxml”);
参数put(“加入日期”,frm dte);
参数put(“离开日期”,frm\U dte);
jasperReport=jaspecompilemanager.compileReport(jasperDesign);
/*
*根据
*参数传递。
*/
myJPrint=JasperFillManager.fillReport(jasperReport,params,conn);
参数clear();
}捕获(JREX异常){
例如printStackTrace();
}
返回myJPrint;
}
如果在同一列中传递两个日期,则两个日期将并排显示。但是,你面对的确切问题是什么?“如果你没有得到任何记录,NIRAJ检查,如果FRM日期和tobe日期,如果他们正在发送空白。value@Dinupkandel:否“我的日期”值不是空的frm\U日期:-2012-08-01到\U日期:-2012-08-31@niraj您应该设置两个不同的参数。您正在使用同一参数传递不同的日期。如果这不起作用,我将提供一个代码,我用做。如果你通过两个日期在同一列两个日期将看到并排。但是,你面对的确切问题是什么?“如果你没有得到任何记录,NIRAJ检查,如果FRM日期和tobe日期,如果他们正在发送空白。value@Dinupkandel:否“我的日期”值不是空的frm\U日期:-2012-08-01到\U日期:-2012-08-31@niraj您应该设置两个不同的参数。您正在使用同一参数传递不同的日期。如果这不起作用,我将提供一个我曾经使用过的代码。@niraj请确保您在ireport中定义的参数名是正确的。参数put(“加入日期”,frm dte);参数put(“离开日期”,frm\U dte)@niraj确保您在ireport中定义的参数名称正确。参数put(“加入日期”,frm dte);参数put(“离开日期”,frm\U dte);