Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS报告参数具有500+个值_Reporting Services_Parameters_Reportbuilder - Fatal编程技术网

Reporting services SSRS报告参数具有500+个值

Reporting services SSRS报告参数具有500+个值,reporting-services,parameters,reportbuilder,Reporting Services,Parameters,Reportbuilder,我在SSRS报告中的一个参数叫做客户。用户希望能够从下拉列表中选择多个客户。我们的客户名单超过500条。如何在下拉列表中获得这么多值。就此而言,一个参数将处理多少个值?有没有办法将下拉列表设置为可以键入提示值?最后一个问题的一个例子是,在大多数询问您居住的州的表单上,您可以单击列表并键入TX,然后它将向下移动到德克萨斯州,而不必向下滚动。我希望这是有道理的。提前感谢您的帮助 我不知道第二部分如何输入值,但我可以帮助设置下拉列表。首先编写一个查询,为客户选择客户名称和唯一值 例如: SELECT

我在SSRS报告中的一个参数叫做客户。用户希望能够从下拉列表中选择多个客户。我们的客户名单超过500条。如何在下拉列表中获得这么多值。就此而言,一个参数将处理多少个值?有没有办法将下拉列表设置为可以键入提示值?最后一个问题的一个例子是,在大多数询问您居住的州的表单上,您可以单击列表并键入TX,然后它将向下移动到德克萨斯州,而不必向下滚动。我希望这是有道理的。提前感谢您的帮助

我不知道第二部分如何输入值,但我可以帮助设置下拉列表。首先编写一个查询,为客户选择客户名称和唯一值

例如:

SELECT CUSTOMER_NAME, CUSTOMER_ID
FROM CUSTOMER_TABLE
SELECT CUSTOMER_NAME,CUSTOMER_ADDRESS,CUSTOMER_CITY,...
FROM CUSTOMER_TABLE
WHERE CUSTOMER_ID IN (@CUSTOMERNAMEPARAMETER)
然后添加参数并选择您的数据类型和显示允许多个值的复选框。然后在“属性”中单击“可用值”选项卡。打开后,选择“从查询中获取值”,然后选择刚才编写的查询。选择后,转到“值”字段,从查询中选择唯一的值,并在“标签”字段中选择客户名称,这些名称应全部显示出来

在主查询中使用参数中的值时,需要确保使用in函数而不是=。这是因为你不是一次只得到一个值,而是一次得到所有值

例如:

SELECT CUSTOMER_NAME, CUSTOMER_ID
FROM CUSTOMER_TABLE
SELECT CUSTOMER_NAME,CUSTOMER_ADDRESS,CUSTOMER_CITY,...
FROM CUSTOMER_TABLE
WHERE CUSTOMER_ID IN (@CUSTOMERNAMEPARAMETER)
参数的名称是您需要使用的变量名称

另外还有一个技巧,您可以通过转到默认值并选择“从查询中获取值”,然后再次选择您的查询和唯一值,将它们全部默认为选中


此外,我认为列表框中的项目数量限制不存在问题。我已经有将近1000个了,没有任何问题

参数字段不能与自动完成文本一起使用。 我同意在小范围内有500个值是不友好的

我的建议是将参数分为2-4个不同的参数,以便更容易地搜索客户,每个参数将根据ABC有客户名称。例如,第一个参数将包含来自A-I、第二个J-R、最后一个S-Z的客户名称

如果是这样,您的查询应该如下所示:

SELECT customerName,customerAddress,customerCity,...
FROM customerTable
WHERE (customerID IN (@customerParam1) OR customerID IN (@customerParam2) customerID IN (@customerParam3))

我认为这取决于如何将参数发送回数据库。在过去,我确实在存储过程中加入了逗号分隔的值。考虑到像varcharmax这样的参数可能有4000个字符的限制,这将限制在截断发生之前您可以返回的内容和数量。感谢您的帮助!我从来没有想过把参数分成那样的组!