0

我有一个嵌入在 Web 应用程序中的报告,它运行良好,但我需要对其进行调整。现在,报告基本上会从视图中转储所有行,我设置了一些过滤器,但我已禁用它们以简化此操作并使其正常工作。我昨天花了一整天试图让它正常工作,尝试了许多不同的组合。最终目标是获取一组数据并将其显示为数据所属的同一行中的逗号分隔列表。

我的数据是一个项目列表,每个项目可以有多个与之关联的人员,而不是为每个人创建一个新行,我们希望将属于该项目的所有人员放在一列中,用逗号分隔。SQL 中的一项微不足道的任务。

SELECT dbo.APM_Project.Code, dbo.APM_Project.Title, 

              (STUFF((SELECT(', ' + vi.NameFirst)
              FROM view_OrganizationPerson vi
              JOIN APM_Project as p ON vi.ProjectId = p.Id
              WHERE vi.ProjectId = APM_Project.Id
              AND vi.Role = 'Principal Investigator'
              AND vi.Status = 'Active'
              FOR XML PATH('')), 1, 2, '')) AS PI_


FROM         dbo.APM_Project 

我还尝试了生成逗号分隔列表的 SUBSTRING 方法,当我运行 SQL 脚本时,所有这些方法都很好用,当我在 Visual Studio 中预览数据集中的数据时它们也很有效,所以一定是正确的。我得到了我想要的结果但是当我运行应用程序时,我在使用表达式的列中没有得到任何数据

=Fields!PI_.Value

或者

=First(Fields!PI_.Value, "DataSet1")

所以我不完全确定从这里去哪里。这似乎应该是一项非常容易的任务,当我运行表达式时也是如此

=Fields!PI_.IsMissing

它回来了,所以在运行时丢失了一些东西,我只是不知道它可能是什么。

项目的所有其他数据都显示在文本框中,只有 PI_ 列留空。

问题是:如何在 RDLC 文件中的一行数据的一列中显示 CSV 数据列表?

4

1 回答 1

0

事实证明这是有效的。由于我更改了数据集,因此我需要使用对数据适配器本身所做的更改来更新 .aspx 页面。

于 2013-02-22T21:40:15.410 回答