SSRS 不 return 存储过程执行的所有行
SSRS does not return all rows the stored procedure does
我创建了一个复杂的 SSRS 报告和一个存储过程,其中包含销售订单号、客户采购订单、订单状态、采购订单号的多个参数,然后是对客户和供应商的选择。
当 运行 生成一些特定销售订单编号的报告时,所有行都不会返回或根本没有行。当我 运行 这些相同销售订单编号的存储过程时,所有行都按预期显示。
我可以在 SSRS 中显示正确数据的唯一方法是使用供应商的参数选择。
参数如下:
PROCEDURE [dbo].[spMasterPipelineReport]
@SalesOrderNumber AS varchar(21),
@CustomerPO AS varchar(21),
@Selection AS varchar(250),
@PurchaseOrderNumber AS varchar(21),
@Vendor AS varchar(MAX),
@Customer AS varchar(MAX)
查询中的 where 子句:
WHERE
(@SalesOrderNumber IS NULL OR SalesOrderNumber = @SalesOrderNumber)
AND (@CustomerPO IS NULL OR CSTPONBR = @CustomerPO)
AND Selection IN (SELECT * FROM dba_parseString_udf(@Selection, ','))
AND (@PurchaseOrderNumber IS NULL OR PONUMBER = @PurchaseOrderNumber)
AND POVENDORID IN (SELECT * FROM dba_parseString_udf(@Vendor, ','))
AND CUSTNMBR IN (SELECT * FROM dba_parseString_udf(@Customer, ','))
在 SSRS 中,销售订单号的参数设置为:
=IIF(Parameters!SalesOrderNumber.Value ="",Nothing,Parameters!SalesOrderNumber.Value)
我似乎无法确定需要更改哪些内容才能显示所有相关行。
谢谢大家的建议。调试存储过程让我发现存储过程输出的实际值中存在尾随空格,这些空格未在 SSRS 中的 运行 时间传递给报告参数。在存储过程中,我将 RTRIM 添加到使用额外空格过滤结果的列。这样做之后,报告在 SSRS 中呈现了正确的数据。
我创建了一个复杂的 SSRS 报告和一个存储过程,其中包含销售订单号、客户采购订单、订单状态、采购订单号的多个参数,然后是对客户和供应商的选择。
当 运行 生成一些特定销售订单编号的报告时,所有行都不会返回或根本没有行。当我 运行 这些相同销售订单编号的存储过程时,所有行都按预期显示。
我可以在 SSRS 中显示正确数据的唯一方法是使用供应商的参数选择。
参数如下:
PROCEDURE [dbo].[spMasterPipelineReport]
@SalesOrderNumber AS varchar(21),
@CustomerPO AS varchar(21),
@Selection AS varchar(250),
@PurchaseOrderNumber AS varchar(21),
@Vendor AS varchar(MAX),
@Customer AS varchar(MAX)
查询中的 where 子句:
WHERE
(@SalesOrderNumber IS NULL OR SalesOrderNumber = @SalesOrderNumber)
AND (@CustomerPO IS NULL OR CSTPONBR = @CustomerPO)
AND Selection IN (SELECT * FROM dba_parseString_udf(@Selection, ','))
AND (@PurchaseOrderNumber IS NULL OR PONUMBER = @PurchaseOrderNumber)
AND POVENDORID IN (SELECT * FROM dba_parseString_udf(@Vendor, ','))
AND CUSTNMBR IN (SELECT * FROM dba_parseString_udf(@Customer, ','))
在 SSRS 中,销售订单号的参数设置为:
=IIF(Parameters!SalesOrderNumber.Value ="",Nothing,Parameters!SalesOrderNumber.Value)
我似乎无法确定需要更改哪些内容才能显示所有相关行。
谢谢大家的建议。调试存储过程让我发现存储过程输出的实际值中存在尾随空格,这些空格未在 SSRS 中的 运行 时间传递给报告参数。在存储过程中,我将 RTRIM 添加到使用额外空格过滤结果的列。这样做之后,报告在 SSRS 中呈现了正确的数据。