Crystal Reports使用存储过程的多个结果

时间:2011-10-03 17:18:25

标签: sql-server stored-procedures crystal-reports sql-server-2008-r2 crystal-reports-xi

我在sql-server中有一个存储过程,它返回的参数之一是带有查询参数的字符串。我在报告的顶部显示这些查询参数。如果发现某些东西,那就行得很好,如果找不到任何东西,那就太好了。

我们尝试返回两个查询结果,一个是我将生成报告的数据集(包括查询参数),另一个是查询参数字符串。 Crystal似乎只能看到第一个数据集,而这个非常古老的讨论(http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=42462)表明这不会起作用。但那是5年多以前的事了,我希望情况有所改变。

问题是,如果没有返回任何内容,则报告是如此空白,以至于该人甚至不知道他们使用了什么查询参数。如果他们可以看到他们查询的东西没有返回任何结果,那将是有用的。

所以,如果我在我的存储过程结束时:

SELECT * FROM [#ResultSet]
select @SearchCriteria as SearchCriteria

即使#ResultSet中没有任何内容,我也希望能够显示SearchCriteria。可以用这个版本的Crystal完成吗?还有另一种方法吗?

2 个答案:

答案 0 :(得分:1)

除非第一个答案所述,否则一个程序的结果与另一个程序的列数相同(包括类型),如果是这种情况,您可以UNION结果或UNION ALL结果(如果您需要重复) )得到一个结果集。

如果类型或列不相同,则无法执行此操作。您可以做的唯一其他选项是将所有相关数据合并到临时表中,然后从该临时表(SELECT * FROM #temp)返回结果

答案 1 :(得分:0)

当结果 时,您目前如何显示参数?

您尚未提及如何在您的环境中使用Crystal Report。

通常,我通过将参数作为报表参数传递给Crystal Report,然后在字段中使用它们来完成条件显示。这假设您以某种方式从客户端应用程序调用它。

另一种选择是将结果加载到客户端数据表中并将其作为数据源绑定到它,当然可以通过这种方式处理多个结果集。