You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RDLC报表中合并DataSet1的唯一列值为指定字符串?

RDLC报表去重拼接字段值的实现方法

方法一:使用自定义代码

这是最灵活的实现方式,步骤如下:

  1. 打开RDLC报表设计界面,右键空白区域选择「报表属性」,切换到「代码」标签页。
  2. 粘贴以下C#代码,注意把代码里的你的字段名替换成数据集里实际存储名称的字段(比如数据集字段叫Name,就改成"Name"):
public string GetUniqueNames()
{
    // 用HashSet自动实现去重
    System.Collections.Generic.HashSet<string> uniqueNames = new System.Collections.Generic.HashSet<string>();
    // 遍历dataSet1的所有数据行
    foreach (var row in Report.DataSets["dataSet1"].Rows)
    {
        string name = row["你的字段名"].ToString();
        uniqueNames.Add(name);
    }
    // 用逗号加空格拼接去重后的名称
    return string.Join(", ", uniqueNames);
}
  1. 在报表需要显示结果的文本框中,设置表达式为:
    =Code.GetUniqueNames()

方法二:用内置表达式直接实现(无需写代码)

如果不想编写自定义代码,可以借助LookupSet和Linq的去重方法,直接写表达式:

=Join(System.Linq.Enumerable.Cast(Of String)(System.Linq.Enumerable.Distinct(LookupSet(1, 1, Fields!你的字段名.Value, "dataSet1"))), ", ")

同样需要把Fields!你的字段名.Value替换成实际的字段引用,比如Fields!Name.Value。

注意:如果报表运行时出现Linq相关错误,建议改用方法一的自定义代码方案,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:34:54