AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.09.2009, 11:40   #1  
datfi is offline
datfi
Участник
 
240 / 15 (1) ++
Регистрация: 20.08.2009
Адрес: Россия, Сыктывкар
! Отчет в Visual Studio 2008 проблема с наборами данных
Имеется отчет в нем 3 dataset код у них одинаковый, отличается только отфильтрованными данными по Where. во всех трех датасетах стоит CRMAF по filteredquote.

в итоге должно получиться что данные отфильтрованные по where попадают по разным таблицам отчета. Впринципе оно получается за одним но, в данные таблиц из dataset2 и dataset3 попадают лишние данные из других заказов. Фактически CRMAF отрабатывает только на первом dataset. Как сделать чтобы CRMAF отрабатывал и на других dataset's
Старый 21.09.2009, 11:52   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от datfi Посмотреть сообщение
Имеется отчет в нем 3 dataset код у них одинаковый, отличается только отфильтрованными данными по Where. во всех трех датасетах стоит CRMAF по filteredquote.

в итоге должно получиться что данные отфильтрованные по where попадают по разным таблицам отчета. Впринципе оно получается за одним но, в данные таблиц из dataset2 и dataset3 попадают лишние данные из других заказов. Фактически CRMAF отрабатывает только на первом dataset. Как сделать чтобы CRMAF отрабатывал и на других dataset's
Напишите 3 разных жёстких запроса и будет Вам счастье.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 21.09.2009, 11:57   #3  
datfi is offline
datfi
Участник
 
240 / 15 (1) ++
Регистрация: 20.08.2009
Адрес: Россия, Сыктывкар
Цитата:
Сообщение от a33ik Посмотреть сообщение
Напишите 3 разных жёстких запроса и будет Вам счастье.
Вы имеее ввиду сделать все запросы в одном dataset? или разные запросы в каждом из Dataset. Немного не понимаю.....
Старый 21.09.2009, 12:02   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от datfi Посмотреть сообщение
Вы имеее ввиду сделать все запросы в одном dataset? или разные запросы в каждом из Dataset. Немного не понимаю.....
Кажется понял в чём заключается Ваша проблема. Приведите, пожалуйста, запросы - помогу решить Вашу проблему.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 21.09.2009 в 12:05.
Старый 21.09.2009, 13:25   #5  
datfi is offline
datfi
Участник
 
240 / 15 (1) ++
Регистрация: 20.08.2009
Адрес: Россия, Сыктывкар
Цитата:
Сообщение от a33ik Посмотреть сообщение
Кажется понял в чём заключается Ваша проблема. Приведите, пожалуйста, запросы - помогу решить Вашу проблему.
dataset1
Код:
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')
dataset2
Код:
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')
dataset3
Код:
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  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Могу предложить такой подход, который будет гарантированно работать, правда прийдётся немного перестроить запросы датасетов. Подход заключается в добавлении нового параметра 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
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: datfi (1).
Старый 21.09.2009, 17:45   #7  
datfi is offline
datfi
Участник
 
240 / 15 (1) ++
Регистрация: 20.08.2009
Адрес: Россия, Сыктывкар
Сделал немного по другому. Создал параметр quoteid и в параметрах по умочанию указал получение значения из запроса из dataset1.
В других dataset вставил фильтр по этому значению. И стало мне счастье.
Теги
dataset, запрос (query), отчет

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отчет в Visual Studio 2008 проблема с CRMAF datfi Dynamics CRM: Разработка 2 31.08.2009 13:31
Проблема с публикацией отчетов - не работает "Сделать отчет доступным для организации" serjio72 Dynamics CRM: Администрирование 8 16.07.2009 18:11
Мир CRM: Улучшение Dynamics CRM 4.0 производительности и безопасности данных под SQL Server 2008 Blog bot Dynamics CRM: Blogs 0 03.02.2009 02:07
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM Plug-in Template for Visual Studio Blog bot Dynamics CRM: Blogs 0 27.10.2008 23:05
CRM UK Blog: Visual Studio 2008 Hangs After Adding A Web Reference Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:47.