Crystal Reports 2016多地址行字段公式制作及提取需求问询
Crystal Reports 2016 地址处理解决方案
一、合并同一ACCOUNT_ID下所有地址内容
先确保报表已按ACCOUNT_ID分组(未分组的话,右键字段列表里的ACCOUNT_ID → 插入组),再创建三个公式完成地址合并:
- 组头初始化公式(放在组头节):
WhilePrintingRecords; StringVar address_full := "";
- 细节节拼接公式(放在细节节,可隐藏该节):
WhilePrintingRecords; StringVar address_full; address_full := address_full & {USER_ADDR.ADDRESS} & Chr(13) & Chr(10);
- 组尾输出公式(放在组尾节,用来展示完整地址):
WhilePrintingRecords; StringVar address_full; Trim(address_full);
完成后,同一ACCOUNT_ID下的所有地址行就会按换行合并显示。
二、提取ADDRESS_LINE=2的地址
直接在Address Line 2列中创建公式,替换原有字段:
If {USER_ADDR.ADDRESS_LINE} = 2 Then {USER_ADDR.ADDRESS} Else ""
如果同一ACCOUNT_ID有多条ADDRESS_LINE=2的记录,需要合并的话,可参照第一个方案的逻辑,针对ADDRESS_LINE=2的行单独拼接。
另外你之前勾选的「Can Grow」选项,在解决上述公式问题后,配合开启该选项(右键对应字段 → 格式编辑器 → 段落 → 勾选「Can Grow」),就能让地址内容自动换行显示完整。
内容的提问来源于stack exchange,提问作者Kelly
相关产品推荐
相关产品推荐

