【问题标题】:Rounding Numbers in ActuateActuate 中的舍入数字
【发布时间】:2015-01-23 18:02:57
【问题描述】:

使用 Actuate eReport Designer Professional 9 SErvice Pack 3 Fix 2

我正在尝试设置文本控件的 ValueExp 属性以显示一个字符串,该字符串由与一些静态文本连接的除法结果组成。如果没有余数,我希望除法结果显示为整数。否则,我只想要一位小数。

将涉及条件逻辑,但我将能够处理。我真正想要的是,仅使用表达式生成器,我可以格式化数字。例如,如何让表达式5/3 & " text" 显示1.7 text?这个猜测,

 round(5/3, 1) & " text"

引发“非法变量使用(回合)”和“未找到这些类型的运算符”的错误

根据多米尼克的回答,这项努力:

BirtMath.round(5/3, 1)

导致在 BirtMath 上使用非法变量。

【问题讨论】:

    标签: birt actuate


    【解决方案1】:

    试试这个:

    BirtMath.round(5/3, 1) + " text"
    

    (在BIRT Eclipse设计器上测试过,应该和专业的设计师一样)

    【讨论】:

      【解决方案2】:

      最终完成的工作是:

      Format(5/3, "##.#") & " text"
      

      【讨论】:

        【解决方案3】:

        Dominique 的回答指的是 BIRT,这是一种完全不同的技术/产品。

        如果您想显示具有特殊格式的数值,文本控件不是这里的最佳选择。相反,您应该使用适当类型的数值控件(例如,Double Control)并覆盖该控件的 GetText() 方法来处理显示格式或使用条件格式。这是一个更好的解决方案的原因是数据搜索和导出无法与文本控件一起正常工作。

        请注意,您可以使用如下格式模式:“#,##0 \T\e\x\t”,而不是连接字符串;使用条件格式时需要此技术。

        就个人而言,我更希望您使用条件格式,因为我在设计 e.Reports 的该功能时付出了很多努力,我希望看到更多人使用它。 :) 但是在您的特定情况下覆盖 GetText() 可能更容易,因为需要进行更复杂的字符串操作以消除尾随小数。

        【讨论】:

          【解决方案4】:

          我想用 BIRT 补充一下,你还可以用更“图形化”的方式来格式化文本,而不需要 SQL……以防它对某人有用……

          选择对象 - 属性 - 格式编号 - 你选择格式

          除了添加自定义格式外,每种情况都有多种选择。

          当然,如何格式化文本是每个人的决定,知道它是如何以不同的方式完成的总是好的!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-10-19
            • 2011-01-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-18
            相关资源
            最近更新 更多