2016-06-17 61 views
0

我想在SSRS中构建一个报告,我想知道如果不是使用多选下拉框来搜索特定的一组序列号,我可以让用户能够手动输入多个序列号他们选择的文本框。在SSRS中,如何将多个数据输入到文本框?

特定数据集中的序列号列表非常大,所以下拉用户将滚动浏览数千个序列号,而不是只输入感兴趣的序列号。

回答

0

为此,您可以使用参数

  1. 添加参数
  2. 在常规属性修改的数据类型,并检查允许多个值
  3. 单击确定
  4. 右键单击您的数据集查询
  5. 左键点击数据集属性
  6. 左键点击参数
  7. 添加您在上面1中创建的参数 - 表达式对话框键= SPLIT前面加@
  8. 点击FX
  9. (!JOIN(参数.value的, “”), “”)
  10. 单击OK
  11. 单击确定
  12. 修改你的数据集查询到包括地方东西(@)
  13. 保存修改后的查询
  14. 预览报表
  15. 参数框会出现
  16. 单击下拉
  17. 输入一个逗号分隔的序列号的列表
  18. 点击查看报告

使用AdventureWorks中添加参数@soid 分割语句是

=SPLIT(JOIN(Parameters!SOID.Value,","),",") 

该数据集的查询是

SELECT SalesOrderID, RevisionNumber, OrderDate, DueDate, ShipDate, Status, n        OnlineOrderFlag, SalesOrderNumber, PurchaseOrderNumber, AccountNumber,  CustomerID, SalesPersonID, TerritoryID, BillToAddressID,        ShipToAddressID, ShipMethodID, CreditCardID, CreditCardApprovalCode, CurrencyRateID, SubTotal, TaxAmt, Freight, TotalDue, Comment, rowguid, ModifiedDate 
FROM Sales.SalesOrderHeader WHERE SalesOrderID in (@SOID) 
+0

感谢您的支持。我使用上面的示例,但我仍然遇到问题。一旦引入了分离连接并运行报告,序列号下拉框变灰。它是无用的。该参数设置为可见,所以我有点不确定发生了什么。 – Brice

+0

这里是我的where子句与我的参数的示例: where(Descr IS NOT NULL)AND(A1.ClassId> 0)AND(A1.Code IN(@code))AND(A1.ClassId IN(@plan ))和(A1.PerstedDAT BETWEEN @datepostedbegin AND @datepostedend)AND(A1.SerialNumber IN(@SerialNumber)) – Brice

+0

奇怪 - 所以14 - 18点不适合你?即使添加了2个日期参数后,我仍然无法重现此问题,但我注意到该参数在预览中显示为灰色(在报告管理器中没有问题)。需要检查的一件事情是,SSRS对于MS非常繁琐关于参数区分大小写。 –

相关问题