【发布时间】:2014-11-16 06:09:23
【问题描述】:
我正在使用带有 Crystal Reports 的 VB.Net 2010。我设计了一个返回所需摘要信息的数据透视查询。
注意:我不想使用交叉表,因为我需要从右到左显示信息。
以下是示例结果:
我只是在总结每个国家每个级别的员工人数。也就是说,当我修改任何员工的国籍时,该国籍将在结果中显示为一列:PIVOT。
我设计了一个水晶报表,它使用相同的查询并显示相同的数据。
我将报表的数据源设置为一个命令,并在命令中添加了查询,但是问题来了:查询返回的列数只是设计时运行查询时检索到的列数!也就是说,如果将来自其他国籍的新员工添加到数据库中,则无法在报告中显示。甚至,根据列集的最大列数是3。
我的问题是:
如何根据数据透视查询返回的列数动态添加这些列?
修改:
根据下面的建议,我设计了一个水晶报表,它使用一个数据表“DataTable1”的数据集,并添加了 6 列:一列用于固定的等级,其他列用于可能存在于我的员工数据表中的国籍如下图:
现在的问题是如何在这些列中显示数据透视查询返回的数据? 以及如何隐藏其他没有放置数据的列?
【问题讨论】:
-
我认为如果您将映射表添加到数据库中以获取三列国籍的映射表,可以轻松解决您的问题,例如NationalityId、NationalityName 和 NationalityArabicName 并在上表中添加一列而不是最后三列称为 FK_NationalityId 保存与填充报告的 SP 中的映射表链接的每个 Nationality 的值,在这种情况下,您不必添加一列每次到报告中
-
谢谢Abdulrahman先生,但是上面的结果不是表格,是pivot query返回的数据。此外,我已经有了与您提到的具有相同列的国家名称的表。我也不明白如何根据您的建议显示所有国籍!
-
Al-Rajihi 至于显示你可以在表格之间使用内部连接,至于我似乎想念的主要问题理解问题,你需要根据等级代码显示国家的数量吗? ?或者您需要根据某些条件在报告中添加列??
-
不是国家的数量。基本上,我有列国籍的员工表,它是国家主表的外键。我设计了一个查询来获取年级的详细摘要以及该年级每个国家有多少员工,上图显示了运行查询时的示例结果
标签: parameters crystal-reports report pivot add