21.09.2009, 11:40 | #1 |
Участник
|
Отчет в Visual Studio 2008 проблема с наборами данных
Имеется отчет в нем 3 dataset код у них одинаковый, отличается только отфильтрованными данными по Where. во всех трех датасетах стоит CRMAF по filteredquote.
в итоге должно получиться что данные отфильтрованные по where попадают по разным таблицам отчета. Впринципе оно получается за одним но, в данные таблиц из dataset2 и dataset3 попадают лишние данные из других заказов. Фактически CRMAF отрабатывает только на первом dataset. Как сделать чтобы CRMAF отрабатывал и на других dataset's |
|
21.09.2009, 11:52 | #2 |
Чайный пьяница
|
Цитата:
Сообщение от datfi
Имеется отчет в нем 3 dataset код у них одинаковый, отличается только отфильтрованными данными по Where. во всех трех датасетах стоит CRMAF по filteredquote.
в итоге должно получиться что данные отфильтрованные по where попадают по разным таблицам отчета. Впринципе оно получается за одним но, в данные таблиц из dataset2 и dataset3 попадают лишние данные из других заказов. Фактически CRMAF отрабатывает только на первом dataset. Как сделать чтобы CRMAF отрабатывал и на других dataset's
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
21.09.2009, 11:57 | #3 |
Участник
|
|
|
21.09.2009, 12:02 | #4 |
Чайный пьяница
|
Кажется понял в чём заключается Ваша проблема. Приведите, пожалуйста, запросы - помогу решить Вашу проблему.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit Последний раз редактировалось a33ik; 21.09.2009 в 12:05. |
|
21.09.2009, 13:25 | #5 |
Участник
|
Цитата:
Код: SELECT FilteredQuoteDetail.productidname, FilteredQuoteDetail.quantity, FilteredQuoteDetail.priceperunit, FilteredQuoteDetail.extendedamount, FilteredQuoteDetail.quoteid, FilteredQuoteDetail.productid, FilteredProduct.productid AS Expr1, CRMAF_FilteredQuote.quoteid AS Expr2, FilteredProduct.new_producttypename, FilteredProduct.new_licenseprgname, CRMAF_FilteredQuote.createdon, CRMAF_FilteredQuote.quotenumber, CRMAF_FilteredQuote.totaltax, CRMAF_FilteredQuote.customeridname, CRMAF_FilteredQuote.owneridname FROM FilteredQuoteDetail INNER JOIN FilteredProduct ON FilteredQuoteDetail.productid = FilteredProduct.productid INNER JOIN FilteredQuote AS CRMAF_FilteredQuote ON FilteredQuoteDetail.quoteid = CRMAF_FilteredQuote.quoteid WHERE (FilteredProduct.new_licenseprgname = N'OLP') Код: SELECT FilteredQuoteDetail.productidname, FilteredQuoteDetail.quantity, FilteredQuoteDetail.priceperunit, FilteredQuoteDetail.extendedamount, FilteredQuoteDetail.quoteid, FilteredQuoteDetail.productid, FilteredProduct.productid AS Expr1, CRMAF_FilteredQuote.quoteid AS Expr2, FilteredProduct.new_producttypename, FilteredProduct.new_licenseprgname, CRMAF_FilteredQuote.createdon, CRMAF_FilteredQuote.quotenumber, CRMAF_FilteredQuote.totaltax, CRMAF_FilteredQuote.customeridname, CRMAF_FilteredQuote.owneridname FROM FilteredQuoteDetail INNER JOIN FilteredProduct ON FilteredQuoteDetail.productid = FilteredProduct.productid INNER JOIN FilteredQuote AS CRMAF_FilteredQuote ON FilteredQuoteDetail.quoteid = CRMAF_FilteredQuote.quoteid WHERE (FilteredProduct.new_licenseprgname = N'OV/OVS') AND (FilteredProduct.new_producttypename <> N'Software Assurance') Код: SELECT FilteredQuoteDetail.productidname, FilteredQuoteDetail.quantity, FilteredQuoteDetail.priceperunit, FilteredQuoteDetail.extendedamount, FilteredQuoteDetail.quoteid, FilteredQuoteDetail.productid, FilteredProduct.productid AS Expr1, CRMAF_FilteredQuote.quoteid AS Expr2, FilteredProduct.new_producttypename, FilteredProduct.new_licenseprgname, CRMAF_FilteredQuote.createdon, CRMAF_FilteredQuote.quotenumber, CRMAF_FilteredQuote.totaltax, CRMAF_FilteredQuote.customeridname, CRMAF_FilteredQuote.owneridname FROM FilteredQuoteDetail INNER JOIN FilteredProduct ON FilteredQuoteDetail.productid = FilteredProduct.productid INNER JOIN FilteredQuote AS CRMAF_FilteredQuote ON FilteredQuoteDetail.quoteid = CRMAF_FilteredQuote.quoteid WHERE (FilteredProduct.new_producttypename = 'Software Assurance') AND (FilteredProduct.new_licenseprgname = 'OV/OVS') |
|
21.09.2009, 13:46 | #6 |
Чайный пьяница
|
Могу предложить такой подход, который будет гарантированно работать, правда прийдётся немного перестроить запросы датасетов. Подход заключается в добавлении нового параметра 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)
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: datfi (1). |
21.09.2009, 17:45 | #7 |
Участник
|
Сделал немного по другому. Создал параметр quoteid и в параметрах по умочанию указал получение значения из запроса из dataset1.
В других dataset вставил фильтр по этому значению. И стало мне счастье. |
|
Теги |
dataset, запрос (query), отчет |
|
|