java - 将日期参数传递给 jasper 报告时如何解决 ClassCastException?

标签 java date jasper-reports

我在 derby 数据库上有一份包含日期参数之间的报告 当通过两个文本字段发送日期以运行 i 时,我收到以下消息 得到下面的引用错误消息。

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setDate(JRJdbcQueryExecuter.java:615)

我调用 jasper 报告的代码在这里:

public void runREport() {
   try {     
       Connection con1= null;

       String Op=jTsubmain_no.getText();
       int val = Integer.parseInt((String) Op.trim());
       Map param1 = new HashMap();
       param1.put("sub_no",val);
       param1.put("fdate",jTfdate.getText());
       param1.put("ldate",jTldate.getText());

       try {
              con1= DriverManager.getConnection("jdbc:derby://localhost:1527//accountsdb","accounts","accounts");
       } catch (SQLException ex) {
              Logger.getLogger(reports.class.getName()).log(Level.SEVERE, null, ex);
       }

       String jrxmlFileName = "C:/Users/hosam/Documents/NetBeansProjects/Accsys/src/accsys/report2.jrxml";
      JasperDesign jasperDesign = JRXmlLoader.load(jrxmlFileName);
      JasperReport jasperReport =JasperCompileManager.compileReport(jasperDesign);
      JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, param1, con1);
      JasperViewer.viewReport(jasperPrint); 
   } catch (JRException ex) {
           JOptionPane.showMessageDialog( null,  ex);
   }    
}

最佳答案

在传递的参数和 jrxml 中的定义之间有一个不同的类

jTfdate.getText() 返回一个 java.lang.String

类型的对象

在 jrxml 中有这样的参数定义

<parameter name="fdate" class="java.util.Date">
    <defaultValueExpression><![CDATA[""]]></defaultValueExpression>
</parameter>

解决方案,在参数映射中传递一个 java.util.Date 对象。

示例

param1.put("fdate",new SimpleDateFormat("yourPattern").parse(jTfdate.getText()));

其中模式“yourPattern”应对应于解析的文本,请参阅SimpleDateFormat pattern's .

如何捕获ParseException并设置默认值,我留给你。

关于java - 将日期参数传递给 jasper 报告时如何解决 ClassCastException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092712/

相关文章:

java - 如何将标签绑定(bind)到 StringProperty 的首字母?

java - 如何在带有 bean 的 jdbc 准备语句中使用 INSERT INTO ALL 语句

javascript - 字符串到日期的转换在 Javascript 中无法正常工作

java - Jasper 报表创建 - 抑制和隐藏分页标题

java - 是否可以使用 Jasper Reports 动态生成报告而不为每个报告生成 jasper?

java - 简单的 JasperReport 查询

java - 从 Eclipse-RCP 中的 run 方法内部终止线程

Java泛型转换

php - 如何使用PHP将日期格式转换为日期时间格式

date - 谷歌表格: averaging duration data per weekday