Могу предложить такой подход, который будет гарантированно работать, правда прийдётся немного перестроить запросы датасетов. Подход заключается в добавлении нового параметра CRM_FilteredQuote в отчёт, который в себе будет содержать предфильтр. Запросы датасетов будут выглядеть примерно так:
Код:
Declare @Query VarChar(max)
Set @Query = '
SELECT
FilteredQuoteDetail.productidname
,FilteredQuoteDetail.quantity
,FilteredQuoteDetail.priceperunit
,FilteredQuoteDetail.extendedamount
,FilteredQuoteDetail.quoteid
,FilteredQuoteDetail.productid
,FilteredProduct.productid AS Expr1
,FilteredQuote.quoteid AS Expr2
,FilteredProduct.new_producttypename
,FilteredProduct.new_licenseprgname
,FilteredQuote.createdon
,FilteredQuote.quotenumber
,FilteredQuote.totaltax
,FilteredQuote.customeridname
,FilteredQuote.owneridname
FROM
FilteredQuoteDetail
INNER JOIN FilteredProduct ON FilteredQuoteDetail.productid = FilteredProduct.productid
INNER JOIN (' + @CRM_FilteredQuote + ') FilteredQuote ON FilteredQuoteDetail.quoteid = FilteredQuote.quoteid
WHERE (FilteredProduct.new_licenseprgname = N''OLP'')'
Exec(@Query)
Код:
Declare @Query VarChar(max)
Set @Query = '
SELECT
FilteredQuoteDetail.productidname
,FilteredQuoteDetail.quantity
,FilteredQuoteDetail.priceperunit
,FilteredQuoteDetail.extendedamount
,FilteredQuoteDetail.quoteid
,FilteredQuoteDetail.productid
,FilteredProduct.productid AS Expr1
,FilteredQuote.quoteid AS Expr2
,FilteredProduct.new_producttypename
,FilteredProduct.new_licenseprgname
,FilteredQuote.createdon
,FilteredQuote.quotenumber
,FilteredQuote.totaltax
,FilteredQuote.customeridname
,FilteredQuote.owneridname
FROM
FilteredQuoteDetail
INNER JOIN FilteredProduct ON FilteredQuoteDetail.productid = FilteredProduct.productid
INNER JOIN (' + @CRM_FilteredQuote + ') FilteredQuote ON FilteredQuoteDetail.quoteid = FilteredQuote.quoteid
WHERE (FilteredProduct.new_licenseprgname = N''OV/OVS'') AND (FilteredProduct.new_producttypename <> N''Software Assurance'')'
Exec(@Query)
Код:
Declare @Query VarChar(max)
Set @Query = '
SELECT
FilteredQuoteDetail.productidname
,FilteredQuoteDetail.quantity
,FilteredQuoteDetail.priceperunit
,FilteredQuoteDetail.extendedamount
,FilteredQuoteDetail.quoteid
,FilteredQuoteDetail.productid
,FilteredProduct.productid AS Expr1
,FilteredQuote.quoteid AS Expr2
,FilteredProduct.new_producttypename
,FilteredProduct.new_licenseprgname
,FilteredQuote.createdon
,FilteredQuote.quotenumber
,FilteredQuote.totaltax
,FilteredQuote.customeridname
,FilteredQuote.owneridname
FROM
FilteredQuoteDetail
INNER JOIN FilteredProduct ON FilteredQuoteDetail.productid = FilteredProduct.productid
INNER JOIN (' + @CRM_FilteredQuote + ') FilteredQuote ON FilteredQuoteDetail.quoteid = FilteredQuote.quoteid
WHERE (FilteredProduct.new_producttypename = ''Software Assurance'') AND (FilteredProduct.new_licenseprgname = ''OV/OVS'')'
Exec(@Query)
В параметрах каждого из датасетов необходимо будет создать пару @CRM_FilteredQuote = ReportParameters.CRM_FilteredQuote