Crystal Report 2008:如何将详细资料节Ref列数据拼接为字符串显示在页眉
实现Crystal Report 2008中Ref列数据拼接至页眉的方法
步骤1:创建全局累计变量的公式
- 打开报表,右键点击「字段资源管理器」中的「公式字段」,选择「新建」,命名为
AccumulateRef - 在公式编辑器中输入以下代码:
// 声明全局字符串变量,确保整个报表周期内有效 Global StringVar refList; // 将当前行的Ref值转为字符串并追加到变量中 refList := refList + ToText({你的表名.Ref}, 0, "", ""); // 返回空字符串,仅用于执行累加逻辑 ""
注意:替换
{你的表名.Ref}为实际数据源的Ref字段,ToText参数确保数字转字符串时不含小数和千分符。
步骤2:将累加公式放入详细资料节
- 把
AccumulateRef公式字段拖到详细资料节任意位置 - 右键点击该字段,选择「格式化字段」→「公用」标签,勾选「抑制显示(无 Drill-Down)」,让字段后台执行累加但不显示。
步骤3:创建页眉显示公式
- 新建公式字段,命名为
DisplayRefList - 输入以下代码:
// 引用全局累计变量 Global StringVar refList; // 拼接成目标格式 "参考ID:" + refList
步骤4:设置页眉公式的显示时机
Crystal Report默认先处理页眉再处理详细资料,第一次传递时变量未完成累加,需设置公式在第二次传递时显示:
- 右键点击页眉节中的
DisplayRefList字段,选择「格式化字段」→「公用」标签 - 点击「抑制显示」旁的公式按钮,输入代码:
// 仅在第一次报表传递时抑制显示 Not OnLastRecord
原理:报表会执行两次传递,第一次计算所有数据并累计变量,第二次输出内容,此时
OnLastRecord为真,公式字段正常显示累计后的完整字符串。
验证效果
预览报表,页眉节将显示参考ID:202244,符合需求。
内容的提问来源于stack exchange,提问作者Sam Bin Ham
相关产品推荐
相关产品推荐

