1

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

Stored Proc 接受两个输入参数 - 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 中,用户应该如何输入第二个参数?作为逗号分隔的列表?
4

2 回答 2

0

我自己找到了答案。

  1. exec sp_AP_YTD_Payments1 2013, '925,926,TXR'
  2. 在 Crystal 中,用户将为 Companies 参数输入一个逗号分隔的列表。
于 2013-08-23T19:25:18.850 回答
0

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

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

于 2013-08-25T17:33:53.680 回答