存储过程参数和Crystal Reports

时间:2013-08-23 15:39:13

标签: sql sql-server tsql crystal-reports

我正在创建一个存储过程,该过程将用作Crystal Report的数据源。

存储过程采用两个输入参数 - int和逗号分隔的字符串列表

 Create procedure sp_AP_YTD_Payments1
   @Year as int,
  @Companies nvarchar(MAX)

  as
       -- SP code here

我确实意识到在将where子句用于字符串之前我必须将字符串列表转换为数组。

我有两个问题:

  1. 如何使用exec sp_AP_YTD_Payments1将参数传递给SP?
  2. 从Crystal Reports中,用户应该如何输入第二个参数?作为逗号分隔列表?

2 个答案:

答案 0 :(得分:0)

我自己找到了答案。

  1. exec sp_AP_YTD_Payments1 2013,'925,926,TXR'
  2. 从Crystal,用户将输入公司参数的逗号限制列表。

答案 1 :(得分:0)

有一种更好的方法来处理第二个参数。如果未使用子报表,则可以将报表移动到子报表,在主报表中创建多值参数,并使用Join函数将参数值传递给子报表。这将允许您的用户从列表中选择值,而不关心昏迷格式。

这篇关于存储过程中多值参数的文章可能会有所帮助: http://www.r-tag.com/Pages/MultivalueParametersWithSQLSP.aspx