gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:59:09 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com