在 Excel 中,我有一个日期格式 yyyy.MM.dd hh:mm 和一个时间格式 hh:mm。我将其设置为 iReport 数据库的源。
对于日期,我在 iReport 中设置了自定义日期格式,与 Excel 中相同。然后我设置类=“java.util.Date”.
目前,我应该选择哪个班级?我尝试了很多,没有一个有效。
我认为问题是我无法设置其他自定义日期格式,因此 iReport 无法识别它。
感谢您的帮助。
解决这个新案例比解决旧案例要困难一些JasperReports/iReport 中的 Excel 数据源:无法获取类“java.sql.Date”的字段“Date”的值 post.
Solution
数据源、数据
The xls file (航班.xls) 包含这样的数据:
细胞在离开 and Duration列有Text格式(没有任何模式)。
数据源、配置
The Excel数据源有配置(在iReport,你可以做同样的事情Java code):
日期格式设置为yyyy.MM.dd HH:mm
用于读取数据离开的列Excel file.
不可能声明多个字段java.util.Date
for Excel数据源其中包含Date具有不同模式的数据。
此行为由实现决定net.sf.jasperreports.engine.data.JRXlsDataSource.getFieldValue(JRField)方法。您可以查看此类的源代码,并且可以更改此行为。
Template
报告中的字段将为:
<field name="Flight" class="java.lang.String"/>
<field name="Departure" class="java.util.Date"/>
<field name="Duration" class="java.lang.String"/>
请注意,Duration场有java.lang.String type.
The jrxml file:
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="flights" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="827d6b81-9342-48fd-88b5-f9ea2cfd8bfb">
<queryString>
<![CDATA[]]>
</queryString>
<field name="Flight" class="java.lang.String"/>
<field name="Departure" class="java.util.Date"/>
<field name="Duration" class="java.lang.String"/>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement uuid="ccfc5f9d-0b0f-4127-be62-3c3eefc16c5e" mode="Opaque" x="273" y="0" width="100" height="20" backcolor="#999999"/>
<box leftPadding="10">
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
<rightPen lineWidth="0.25"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
<font isBold="true" isItalic="true" isUnderline="false"/>
</textElement>
<text><![CDATA[Duration]]></text>
</staticText>
<staticText>
<reportElement uuid="5f7a483c-2c9b-456e-8d6e-3063534c1710" mode="Opaque" x="0" y="0" width="173" height="20" backcolor="#999999"/>
<box leftPadding="10">
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
<rightPen lineWidth="0.25"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
<font isBold="true" isItalic="true" isUnderline="false"/>
</textElement>
<text><![CDATA[Flight]]></text>
</staticText>
<staticText>
<reportElement uuid="45724e54-4a70-48b1-980e-acbba6266670" mode="Opaque" x="173" y="0" width="100" height="20" backcolor="#999999"/>
<box leftPadding="10">
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
<rightPen lineWidth="0.25"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
<font isBold="true" isItalic="true" isUnderline="false"/>
</textElement>
<text><![CDATA[Departure]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement uuid="a45c9487-3521-4440-8c4d-c016023dc799" x="0" y="0" width="173" height="20"/>
<box leftPadding="10">
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
<rightPen lineWidth="0.25"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{Flight}]]></textFieldExpression>
</textField>
<textField pattern="dd/MM/yyyy HH:mm">
<reportElement uuid="ad60f65d-72ba-48d3-bf3e-0d4275edabb4" x="173" y="0" width="100" height="20"/>
<box leftPadding="10">
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
<rightPen lineWidth="0.25"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{Departure}]]></textFieldExpression>
</textField>
<textField isBlankWhenNull="false">
<reportElement uuid="b20e0e58-feab-47f9-9ce8-63d89425e914" x="273" y="0" width="100" height="20"/>
<box leftPadding="10">
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
<rightPen lineWidth="0.25"/>
</box>
<textElement/>
<textFieldExpression><![CDATA[$F{Duration}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
输出结果
结果将是(通过预览iReport):
Notes:
- 我用过报表5.1.0.
- 您可以更改格式Duration领域的帮助下java.text .DateFormat.format(日期日期)方法。您可以使用以下示例使用java更改mysql日期时间格式以生成JasperReports post.
- 数据源中定义的格式仅适用于离开 field.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)