Параметр SQL Report Builder 3.0 нигде не найти - PullRequest
0 голосов
/ 19 июня 2019

Я унаследовал набор отчетов, и у меня возникла проблема: одна из подписок (один и тот же отчет для всех подписчиков) выдает следующую ошибку: «Подписка содержит недопустимые значения параметров»

Просматривая SQL отчета, я обнаружил, что единственное отличие этой подписки от других заключается в выборе одного параметра на основе даты.Моя проблема заключается в том, что я не вижу, где этот параметр используется.

У меня есть 3 набора данных.Все 3 довольно простые.Два из них являются чрезвычайно простым оператором выбора для получения списка.Третий - это основной запрос для заполнения данных отчета.В любом случае, просматривая все 3 набора данных (щелчок правой кнопкой мыши, Свойства набора данных), я просмотрел как Параметры, так и Фильтры и не могу найти, где используется этот загадочный параметр.Я полностью сбит с толку относительно того, как это используется.Какие-нибудь идеи относительно того, как еще я мог бы найти, как это используется?Это параметр, который существует в меню «Параметры» в левой части экрана и заполняется через «Задать значения» в разделе «Свойства параметров отчета»> «Доступные значения», если это помогает.

РЕДАКТИРОВАТЬ:

Набор данных Open_orders

set transaction isolation level serializable

select dlr.OrderNo
   ,dlr.ToSiteCode AS 'ToSiteCode'
   ,dlr.Products AS 'Products'
   ,dlr.Quantity AS 'Quantity'
   ,cast(dlr.DefPromisedDtTm as smalldatetime) AS 'DefPromisedDtTm'
   ,arsta.FormattedLineAddress AS 'Addr1'
   ,c.Descr AS 'City'
   ,c.StateID
   ,arsa.CustomerName AS 'CustomerName'
   ,arsta.Type AS 'Type'
   ,sp.FullName AS 'SalesPerson'
   ,dlr.PriorityNo AS 'PriorityNo'
   ,oos.Descr AS 'OrderStatus'
   ,car.Code AS 'Code'
   ,arst.CLCreditHold
   ,arst.LongDescr
   ,arst.LocDescr
   ,odr.PONo
   ,odr.OrderedBy

FROM Ascend..vOEDispatchLoadRpt dlr
   LEFT OUTER JOIN Ascend..OrderHdr as odr on odr.SysTrxNo = dlr.SysTrxNo
   LEFT OUTER JOIN Ascend..ARShipToAddress arsta ON dlr.ToSiteID = arsta.ShipToID 
   LEFT OUTER JOIN Ascend..City c ON c.ID = arsta.CityID  
   LEFT OUTER JOIN Ascend..ARShipto arst ON arst.ShiptoID = arsta.ShipToID  
   LEFT OUTER JOIN Ascend..ARStandardAcct arsa ON arst.StandardAcctID = arsa.StandardAcctID  
   LEFT OUTER JOIN Ascend..Carrier car ON dlr.DefCarrierID = car.CarrierID
   LEFT OUTER JOIN Ascend..SalesPerson sp on arst.SalesPersonID = sp.SalesPersonID
   LEFT OUTER JOIN Ascend..OrderOEStatus oos on oos.OrderStatusID = dlr.OrderStatusID
 WHERE  arsta.Type  =  'P'
 AND dlr.OrderStatusID  =  1001 
 AND (@Product = 'All' or (@Product = 'Service' and dlr.Products in ('TDL', 'RTDL', 'TPU', 'RTPU', 'RSERVICE', 'SERVICE')) or (@Product = 'Fuel' and dlr.Products not in ('TDL', 'RTDL', 'TPU', 'RTPU', 'RSERVICE', 'SERVICE')))
 and (@Salesperson = 'All' or sp.FullName = @Salesperson)
 --and (@Carrier = 'All' or car.Code in (@Carrier))
 AND (dlr.Products like '%' + isnull(@Gen_Search,'') + '%' or dlr.ToSiteCode like '%' + isnull(@Gen_Search,'') + '%' or arsa.CustomerName like '' + isnull(@Gen_Search,'') + '%' or c.Descr like '' + isnull(@Gen_Search,'') + '%' or sp.FullName like '' + isnull(@Gen_Search,'') + '%'  or car.Code like '' + isnull(@Gen_Search,'') + '%')
 ORDER BY dlr.OrderNo ASC

Набор данных Salesperson_list:

select 'All' as 'SalesPerson'

union all

select distinct sp.FullName AS 'SalesPerson'

FROM Ascend..vOEDispatchLoadRpt dlr
   LEFT OUTER JOIN Ascend..ARShipToAddress arsta ON dlr.ToSiteID = arsta.ShipToID 
   LEFT OUTER JOIN Ascend..ARShipto arst ON arst.ShiptoID = arsta.ShipToID  
   LEFT OUTER JOIN Ascend..SalesPerson sp on arst.SalesPersonID = sp.SalesPersonID
 WHERE  arsta.Type  =  'P'
 AND dlr.OrderStatusID  =  1001

Набор данных Carrier_list:

select 'All' as 'Carrier'

union all

select distinct car.Code

FROM Ascend..vOEDispatchLoadRpt dlr
   LEFT OUTER JOIN Ascend..ARShipToAddress arsta ON dlr.ToSiteID = arsta.ShipToID 
   LEFT OUTER JOIN Ascend..ARShipto arst ON arst.ShiptoID = arsta.ShipToID  
   LEFT OUTER JOIN Ascend..Carrier car ON dlr.DefCarrierID = car.CarrierID
 WHERE  arsta.Type  =  'P' AND dlr.OrderStatusID  =  1001

1 Ответ

0 голосов
/ 20 июня 2019

Источником ошибки было, очевидно, значение NULL в наборе данных, поэтому, установив флажок, чтобы разрешить нулевые значения, удалось решить корневую проблему.Я никогда не понимал, как / где этот параметр был определен, хотя это действительно больше второстепенной проблемы, которая немного менее важна.

...