Crystal Reports for Visual Studio:显示2个不相关的表

时间:2016-05-19 17:00:55

标签: c# crystal-reports subreport

我建议您在一份报告中显示2个不相关的表格(如果需要,使用子报表),第一个有分组,第二个有“平面”吗?

详细说明:

我正在使用C#4和Crystal Reports for Visual Studio开发报告。 数据来自Sql Server 2005中的存储过程,它返回2个表。 我使用.SetDataSource(Dataset)方法将数据传递给报告,并检查数据集中的数据是否正确。

我需要以非常复杂的形式显示来自第一个表的数据,其中包含不同的部分。这部分有效。

在报告的最后,我需要打印第二个表中的数据(没有分组,只是“平面”打印)。为此,我添加了一个子报告。

这些表格无关。我在它们上添加了一个具有相同值的虚拟字段,并用它来模仿数据库专家中的关系;我根据虚拟字段配置了子报表链接。

我有两个问题。

主报表中的数据与第二个表交叉连接(我可以预期,因为它们与常量字段相关)

子报表始终为空(我多次检查过数据源中的表包含正确的数据)。 我尝试了不同的链接配置,并尝试将子报表放在不同的部分(它应该在报表页脚中)。 我在子报表周围设置了边框:边框已打印但内部为空。 我还设置了一个公式来计算两个表的记录并将计数放在报告中:计数是>两者均为0。

2 个答案:

答案 0 :(得分:1)

理想情况下,没有在水晶报告中没有使用的链接表作为报告工具用于根据我们的标准显示相关数据并显示2个不同的数据集而不链接并不意味着作为报告以及难以集成在水晶中报告。

难以集成意味着你必须通过sqlserver中的union或者在crystal report端链接表,否则它会显示为Cartesian。

根据我的想法,你可以通过一些方法来做到这一点。

方法1 :您可以通过union或unionAll使用列集获取数据,并过滤表格列中没有空值的数据,即。 http://www.maximumimpactsolutions.co.uk/blog/comments.asp?bd=118

 Table1col1 Table1col2 Table1col3 Table2Col1 Table2Col2 Table2Col3
 value      value      value      null       null       null  --table1data
 null       null       null       value      value      value      --table2data

方法2 :第二个是子报告,但仍然需要您已经完成的链接。但是有适当的规则(这是非常繁琐的工作)。

方法3 :在c#侧生成2个报告并合并为一个PDF,然后将其导出。

检查此链接。

Reporting on multiple tables independently in Crystal Reports 11

http://www.tek-tips.com/viewthread.cfm?qid=241195

http://www.crystalreportsbook.com/Forum/forum_posts.asp?TID=4756

http://www.codeproject.com/Questions/348959/Crystal-reports-for-multiple-tables

答案 1 :(得分:1)

你的方法看起来不对......首先,如果两者都没有得到解决,我就没有看到在创建虚拟字段和连接表格时有任何用处,这些表格总是提供交叉连接。根据您的描述表1的任何方式单独显示数据并且表格2数据单独显示

根据主报告中的描述,您需要表1和页脚中的数据,您需要表2中的数据。

尝试这种方法:

  1. 不要链接表格

  2. 在主报告中取表1并显示所需的显示。

  3. 获取子报告,只取表2并在页脚中显示,确保不要链接主报告和子报告,也不要链接两个表。