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

使用水平打印顺序的报表:在textField中截断长文本的问题

阎作人
2023-03-14
<?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="record" language="groovy" columnCount="3" printOrder="Horizontal" pageWidth="572" pageHeight="752" columnWidth="157" columnSpacing="50" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0">
    <field name="geoName" class="java.lang.String"/>
    <field name="count" class="java.lang.Integer"/>
    <variable name="count" class="java.lang.String">
        <variableExpression><![CDATA[new java.text.DecimalFormat("###,###,###,###").format($F{count})]]></variableExpression>
    </variable>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="15" splitType="Stretch">
            <textField isStretchWithOverflow="true">
                <reportElement x="0" y="0" width="90" height="15" stretchType="RelativeToBandHeight" positionType="Float"/>
                <textElement verticalAlignment="Middle">
                    <font fontName="Arial"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{geoName}]]></textFieldExpression>
            </textField>
            <textField isStretchWithOverflow="true">
                <reportElement x="90" y="0" width="67" height="15" stretchType="RelativeToBandHeight" positionType="Float"/>
                <textElement textAlignment="Right" verticalAlignment="Middle">
                    <font fontName="Arial"/>
                </textElement>
                <textFieldExpression><![CDATA[$V{count}]]></textFieldExpression>
             </textField>
             <line>
                <reportElement x="182" y="0" width="1" height="15" forecolor="#CCCCCC" stretchType="RelativeToBandHeight" positionType="Float"/>
            </line>
        </band>
    </detail>
</jasperReport>

报表通常工作正常,并按其应有的水平扩展,但如果其中任何一个文本字段中的数据太长,则只需截断它。我唯一的解决办法是增加乐队的大小,但这看起来不太好。我还尝试了isPrintWhendeTailOverflows=“true”标志。

共有1个答案

章海
2023-03-14

我已经找到了我的答案,它只是一个碧玉的限制。

http://jasperreports.sourceforge.net/sample.reference/hollate/index.html

水平填充报表模板时,详细信息部分中的动态文本字段不会延伸到其整个文本内容,因为这可能会导致后续详细信息部分的水平轴不对齐。详细信息带实际上与页尾和列尾的行为相同,在使用水平填充时保留其声明的高度。

 类似资料:
  • 我使用Jaspersoft Studio 6.3.1.final来设计一个包含表格和其他元素的报告。 设计如下所示。该表只有列标题和详细信息部分。 现在垂直打印字段,如下所示: 但我需要的是像这样水平展示它们: 我在网上搜索,没有找到任何运气。 有办法做到这一点吗?我被困在这里了。非常感谢您的帮助! 编辑: 这就是我将数据传递到报表的方式(使用现有的Java服务生成JRBeanDig

  • JasperReports引擎似乎无法计算页面中的最大字符数,如果输入文本有粗体html标记,然后在导出为PDF时删除剩余的单词。我使用的是JasperReports 6.2.0 这是源代码: 编辑:添加字体扩展属性

  • 上面的for loop正在打印大约200个字母,但是打印机没有按照发送到打印的顺序打印字母。

  • 为了遍历通用树,我为下面链接中提到的代码编写了以下显示函数。问题是每个级别打印两次。有人能告诉我为什么吗。如果有人需要整个实现,可以在下面的链接中找到没有此函数的原始代码。其他人只需查看下面的displayBFS函数,并告诉我为什么值会重复 java中泛型树(n元树)的级顺序遍历 谢谢 目前的树状结构可供参考: 输出:100 90 50 70 90 50 70 20 30 200 300 20 3

  • 问题内容: 该程序输出- 它不应该提供输出- 因为首先ai应该打印1,然后执行a.getI()并应该打印A 2 问题答案: 在此表达式中: 首先评估对的调用,然后通过连接加号形成字符串

  • 我目前使用引导表(http://bootstrap-table.wenzhixin.net.cn/)与引导可编辑扩展(https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/editable)创建一个表与可编辑的字段。我注意到,当一个字符串包含qoutes时,例如:这是一个“测试”,字符串在第一个“测试”中被截