0

我已经编写了相同的 jrxml 以导出 pdf 和 csv 格式的报告。pdf 报告很好,但对于 csv 报告,它在一行中插入了额外的逗号。

以下是 csv 报告输出的示例:

TXN ID,,TXN TIME,,,AGENT,DP USER,USECASE,AMOUNT,,COMMN
10000799,,7/27/11 7:58 PM,,,Headquarter,Headquarter,Standard In,0 EUR,,0

可以看出,txn id 后面有两个逗号,txn time 后面有三个逗号。

知道如何避免使用这些额外的逗号吗?

这是XML的一部分

<staticText>
<reportElement key="element-91" x="0" y="27" width="60" height="16" forecolor="#FFFFFF"/>
<box leftPadding="2" rightPadding="2">
    <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
    <font fontName="" size="12"/>
</textElement>
<text><![CDATA[TXN ID]]></text>
</staticText>
<staticText>
<reportElement key="element-90" x="60" y="27" width="65" height="16" forecolor="#FFFFFF"/>
<box leftPadding="2" rightPadding="2">
    <topPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <leftPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <bottomPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
    <rightPen lineWidth="0.5" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
    <font fontName="" size="12"/>
</textElement>
<text><![CDATA[TXN TIME]]></text>
</staticText>
4

5 回答 5

1

为 CSV 导出设计报告:http: //community.jaspersoft.com/wiki/designing-reports-csv-export

我添加了下一个提示:检查是否启用了“打印重复值”

我希望这可能有用。

于 2013-10-11T15:03:28.410 回答
1

这可能与报告中的图形布局有关。在 TXN ID 和 TXN TIME 元素之间,报表设计中可能有一些水平空间,而元素 AGENT 和 DP USER 可能彼此相邻,没有水平间隙。CSV 导出器尝试创建类似于报表设计的布局,至少在电子表格应用程序中查看时是这样。

于 2011-08-08T20:47:50.597 回答
1

我有一个类似的问题,这个问题原来是由设计器视图中字段的垂直未对齐引起的。解决方案是确保在设计器视图中所有字段元素都从相同的垂直位置/级别开始(即,将所有字段的属性“top”设置为相同,例如 top=0)。

  • 中星
于 2013-02-22T18:04:55.993 回答
0

在遇到相同类型的问题时发现了这一点,以了解我的报告是什么样的:

ColumnHeader [Field1, Field2, Field3]
Detail Band  [List]

我的清单在哪里:

[field1|field2|field3]

我看到了同样类型的问题:

  • 没有标题的 CSV 看起来很棒
  • 带有标题的 CSV 在字段之间添加了额外的逗号

调试后我发现在 JRCsvExporter 的第 232 行

if (xCuts.getCut(x).isCutNotEmpty())

是真的,这就是为什么有额外的逗号。我不完全确定 CutInfo(s) 的来源,也没有花时间调试来弄清楚;但他们肯定发挥了巨大的作用。我发现您需要确保 CSV 中的所有列的大小都准确(而不仅仅是数量)。

经过一些艰苦的手动移动后,我发现我的列表的第 1 列比我的列标题第 1 列的大小小 1 个像素。在手动确保标题的每一列与列表中列的宽度匹配后,导出的报告没有多余的逗号。

于 2019-06-05T18:07:36.260 回答
0

isIgnorePagination解决方案是将报表级别的参数设置为true

于 2019-08-21T13:27:14.170 回答