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 中呈现了正确的数据。