You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

能否在iReport属性表达式中引用文本字段键以复用Excel公式?

解决iReport 4.6中XLS小计公式批量优化的问题

可行方案:利用文本字段的「描述」属性复用列标识

不用手动修改每个公式里的列字母,通过给文本字段设置描述属性,在公式中自动引用该值,步骤如下:

  1. 设置文本字段的描述属性
    选中组页脚的小计文本字段,在属性面板找到「描述(Description)」项,输入对应列的字母(比如F、G、H等)。

  2. 修改XLS公式表达式
    将原公式中的固定列字母替换为对描述属性的引用,修改后的net.sf.jasperreports.export.xls.formula属性值为:

    "=SUBTOTAL(9," + $P{THIS}.getDescription() + "4:" + $P{THIS}.getDescription() + "" + ($V{PERIOD_COUNT} + 3) + ")"
    

    公式会自动读取当前文本字段描述里的列字母,无需手动修改公式内容。

  3. 批量复用
    复制已设置好的文本字段到其他列,仅需修改新文本字段的「描述」属性为对应列字母即可,公式会自动适配,大幅减少重复操作。

补充方案:自定义属性替代

如果偏好使用自定义属性而非描述,也可以给文本字段添加自定义属性(比如命名为COLUMN_ID),值设为列字母,然后将公式改为:

"=SUBTOTAL(9," + $P{REPORT_PARAMETERS_MAP}.get("COLUMN_ID") + "4:" + $P{REPORT_PARAMETERS_MAP}.get("COLUMN_ID") + "" + ($V{PERIOD_COUNT} + 3) + ")"

不过「描述」属性是iReport原生自带的,操作更简便,推荐优先使用。

内容的提问来源于stack exchange,提问作者Terry Foster

火山引擎 最新活动