Crystal Reports中如何将两行医师数据转置为一行两列?
解决Crystal Reports中两行医师信息合并为同一行两列的方法
方法一:公式字段+分组抑制原始行
创建两个公式字段
- 新建公式命名为
@主治医师,写入代码:If {你的数据表.医师类型字段} = "Attending Physician" Then {你的数据表.医师姓名字段} - 新建公式命名为
@初级保健医师,写入代码:If {你的数据表.医师类型字段} = "Primary Care Physician" Then {你的数据表.医师姓名字段}
(将代码里的字段名替换为你实际使用的表字段)
- 新建公式命名为
设置分组规则
按能唯一标识同一组的字段(比如患者ID)分组,确保同一患者的两行医师数据归为同一组。调整报表布局
- 将两个公式字段拖到组页眉节,分别放在第一列和第二列。
- 打开节专家,勾选详细资料节的「抑制(No Drill-Down)」,隐藏原始的两行数据,只显示组页眉里合并后的一行。
空值处理(可选)
如果存在某类医师缺失的情况,可给公式添加默认值,示例:If {你的数据表.医师类型字段} = "Attending Physician" Then {你的数据表.医师姓名字段} Else "无"
方法二:运行总计字段
若不想用分组,可通过运行总计抓取对应数据:
- 创建运行总计
RT_主治医师:- 字段选择医师姓名字段
- 求值条件设为
{你的数据表.医师类型字段} = "Attending Physician" - 重置条件选择按患者ID(或唯一标识字段)重置
- 同理创建
RT_初级保健医师,将求值条件改为匹配初级保健医师的类型 - 把两个运行总计字段拖到详细资料节,再通过节专家设置详细资料节仅显示每组最后一行,避免重复输出
注意事项
- 确保每组(如每个患者)仅对应一条主治医师、一条初级保健医师数据,防止重复值干扰结果
- 公式里的医师类型匹配文本要和你数据库中的实际值完全一致
内容的提问来源于stack exchange,提问作者Christy Weber
相关产品推荐
相关产品推荐

