当前位置: 首页 > 知识库问答 >
问题:

如何将分隔字符串转换为表格布局?

李光华
2023-03-14
CM45024,CM45025,CM45026
<field name="docIdNoGRN" class="java.lang.String">
    <fieldDescription><![CDATA[docIdNoGRN]]></fieldDescription>
</field>

<textField isStretchWithOverflow="true" isBlankWhenNull="true">
    <reportElement key="textField-53" x="311" y="1" width="88" height="15" uuid="2e040fd0-8fae-46e8-a845-fba421922992"/>
    <textElement textAlignment="Center">
    <font size="10"/>
    </textElement>
    <textFieldExpression><![CDATA[($F{docIdNoGRN} != null && $F{docIdNoGRN}.toString().length() > 0) ? $F{docIdNoGRN} : " "]]>  
    </textFieldExpression>
</textField>
Item No.    Item ID.
   1        CM45024,CM45025,CM45026
Item No.    Item ID.
   1        CM45024
   2        CM45025
   3        CM45026

共有1个答案

薛利
2023-03-14

假设$F{docIdNoGRN}包含字符串“cm45024,CM45025,cm45026”,这就是使用子报表可以实现的方法

>

  • 生成将传递给子报表的数据源

    <subreport>
     <reportElement x="163" y="15" width="200" height="100" uuid="9d6660e0-094e-4df3-9acb-74c031350b10"/>
     <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Arrays.asList($F{docIdNoGRN}.split(",")))]]></dataSourceExpression>
     <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "your_subreport.jasper"]]></subreportExpression>
    </subreport>
    

    正如您所看到的,I拆分(“,”)字段字符串获得一个数组,该数组转换为列表,然后在JRBeanCollectionDataSource中传递

    <?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="jTest_subreport2" language="groovy" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="23d7765f-250f-4632-94c6-bbd218db3d11">
        <field name="_THIS" class="java.lang.String"/>
        <detail>
            <band height="35" splitType="Stretch">
                <textField>
                    <reportElement x="0" y="0" width="100" height="20" uuid="716bb440-2692-4c58-a1b7-972aff240c67"/>
                    <textFieldExpression><![CDATA[$V{REPORT_COUNT}]]></textFieldExpression>
                </textField>
                <textField>
                    <reportElement x="100" y="0" width="100" height="20" uuid="e5464783-d74a-4405-9997-ddb1531c6e42"/>
                    <textFieldExpression><![CDATA[$F{_THIS}]]></textFieldExpression>
                </textField>
            </band>
        </detail>
    </jasperReport>
    

    我添加了$V{REPORT_COUNT}以获得数字(1,2,3)。

    输出将是

    1 cm45024
    2 cm45025
    3 CM45026

  •  类似资料:
    • 问题内容: 我有一个电话号码(字符串),例如“ + 123-456-7890”,我想将其变成一个列表,如下所示:[+,1,2,3,-,....,0]。 为什么?因此,我可以遍历列表并删除所有符号,因此只剩下一个数字列表,然后可以将其转换回字符串。 解决此问题的最佳方法是什么?我遇到的所有解决方案均不适用,因为在数字之间没有任何特殊字符(因此我无法在其中分割字符串。) 有任何想法吗?我真的很感激!

    • 问题内容: Java中是否有任何内置方法可以将逗号分隔的String转换为某个容器(例如数组,List或Vector)?还是我需要为此编写自定义代码? 问题答案: 将逗号分隔的字符串转换为列表 上面的代码在定义为的定界符上分割字符串:它将把单词放入列表中,并折叠单词和逗号之间的任何空格。 请注意,这仅返回数组的包装器:例如,你不能从结果中返回结果。对于实际,你必须进一步使用。

    • 问题内容: 我有一个布尔变量,我想将其转换为字符串: 我需要转换后的值的格式为:,而不是 我试过了: 但是它告诉我,并且不是公认的功能。 如何将此布尔值转换为PHP 或PHP 格式的字符串? 问题答案: 最简单的解决方案:

    • 问题内容: 如何将字符串转换为? 它返回 布尔值true 但这应该是。 问题答案: 除非字符串的值被PHP视为“空”(从的文档中获取),否则字符串始终为布尔值true : (一个空字符串); (0作为字符串) 如果您需要根据字符串的文本值设置布尔值,则需要检查该值是否存在。 编辑:上面的代码旨在使理解更加清晰。在实际使用中,以下代码可能更合适: 或者使用该功能可能会覆盖更多的布尔值: 覆盖整个范围

    • 问题内容: 如何使用Python将列表转换为字符串? 问题答案: 通过使用 或者,如果列表是整数,则在连接元素之前将其转换。

    • 本文向大家介绍在Java中将字符串列表转换为逗号分隔的字符串,包括了在Java中将字符串列表转换为逗号分隔的字符串的使用技巧和注意事项,需要的朋友参考一下 首先,让我们说以下是我们的String列表- 现在,使用String.join()将其转换为逗号分隔的字符串 示例 以下是在Java中将字符串列表转换为逗号分隔的字符串的程序- 输出结果