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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.10.2013, 13:21   #1  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
CRM 2011 Report Development using FetchXML
Добрый день!


С отчетами только сейчас столкнулся, поэтому прошу лояльного отношения.

Логика отчета следующая: есть сущность Договор, который в отношении Договор-Заявка 1:N, Заявка содержит lookup на сущности Авто и Полис, из которых мне и надо тянуть основную часть данных.

В фетч запросе я сделал, что все атрибуты связанных сущностей not-null, но в самом отчете не могу вывести значение этих атрибутов в отчет, т.к. они являются частью фильтрации.

Вопрос: как в фетч запросе или в студии 2008 сделать так, чтобы выводить их значение в отчете rdl?

Вот сам фетч, как его отредактировать, чтобы выводились атрибуты в отчете?

Цитата:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
<entity name="new_contract" enableprefiltering = "1">
<attribute name="new_contractid" />
<attribute name="new_name" />
<attribute name="createdon" />
<order attribute="new_name" descending="false" />
<filter type="and">
<condition attribute="new_name" operator="not-null" />
</filter>
<link-entity name="new_request" from="new_contract_new_request" to="new_contractid" alias="bh">
<filter type="and">
<condition attribute="statecode" operator="eq" value="0" />
</filter>
<link-entity name="new_avto" from="new_avtoid" to="new_car" alias="bi">
<filter type="and">
<condition attribute="new_avtoid" operator="not-null" />
<condition attribute="new_new_avto_modelid" operator="not-null" />
<condition attribute="new_avto_gos_nomer" operator="not-null" />
<condition attribute="new_new_avto_markaid" operator="not-null" />
<condition attribute="new_avto_vin" operator="not-null" />
<filter type="or">
<condition attribute="auto_year" operator="not-null" />
<condition attribute="new_avto_god" operator="not-null" />
</filter>
<condition attribute="new_city" operator="not-null" />
<filter type="or">
<condition attribute="new_tipts" operator="not-null" />
<condition attribute="new_avto_tip2" operator="not-null" />
</filter>
</filter>
</link-entity>
<link-entity name="new_insurance_policy" from="new_request" to="new_requestid" alias="bj">
<filter type="and">
<condition attribute="new_start_date" operator="not-null" />
<condition attribute="new_due_date" operator="not-null" />
<condition attribute="new_payment" operator="not-null" />
</filter>
</link-entity>
</link-entity>
<link-entity name="account" from="accountid" to="new_account" visible="false" link-type="outer" alias="a_208350e8001ae3119bcd00155d001525">
<attribute name="name" />
</link-entity>
<link-entity name="account" from="accountid" to="new_insurer" visible="false" link-type="outer" alias="a_8779c502692fe3119bcd00155d001525">
<attribute name="name" />
</link-entity>
<link-entity name="contact" from="contactid" to="new_insurants_signer" visible="false" link-type="outer" alias="a_9d2255c14d2fe3119bcd00155d001525">
<attribute name="firstname" />
</link-entity>
<link-entity name="contact" from="contactid" to="new_insurers_signer" visible="false" link-type="outer" alias="a_9f2a4cf14d2fe3119bcd00155d001525">
<attribute name="firstname" />
</link-entity>
</entity>
</fetch>

Последний раз редактировалось GetLucky; 09.10.2013 в 13:28.
Старый 09.10.2013, 13:41   #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
Добрый день,

Попробуйте так:

X++:
<link-entity name="new_avto" from="new_avtoid" to="new_car" alias="bi">
  <attribute name="new_new_avto_modelid" />
  <attribute name="new_avto_gos_nomer" />
  <attribute name="new_new_avto_markaid" />
  <filter type="and">
    <condition attribute="new_avtoid" operator="not-null" />
    <condition attribute="new_new_avto_modelid" operator="not-null" />
    <condition attribute="new_avto_gos_nomer" operator="not-null" />
    <condition attribute="new_new_avto_markaid" operator="not-null" />
    <condition attribute="new_avto_vin" operator="not-null" />
    <filter type="or">
      <condition attribute="auto_year" operator="not-null" />
      <condition attribute="new_avto_god" operator="not-null" />
    </filter>
    <condition attribute="new_city" operator="not-null" />
    <filter type="or">
      <condition attribute="new_tipts" operator="not-null" />
      <condition attribute="new_avto_tip2" operator="not-null" />
    </filter>
  </filter>
</link-entity>
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: GetLucky (1).
Старый 09.10.2013, 13:49   #3  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Thumbs up
Цитата:
Сообщение от a33ik Посмотреть сообщение
Добрый день,

Попробуйте так:

X++:
<link-entity name="new_avto" from="new_avtoid" to="new_car" alias="bi">
  <attribute name="new_new_avto_modelid" />
  <attribute name="new_avto_gos_nomer" />
  <attribute name="new_new_avto_markaid" />
  <filter type="and">
    <condition attribute="new_avtoid" operator="not-null" />
    <condition attribute="new_new_avto_modelid" operator="not-null" />
    <condition attribute="new_avto_gos_nomer" operator="not-null" />
    <condition attribute="new_new_avto_markaid" operator="not-null" />
    <condition attribute="new_avto_vin" operator="not-null" />
    <filter type="or">
      <condition attribute="auto_year" operator="not-null" />
      <condition attribute="new_avto_god" operator="not-null" />
    </filter>
    <condition attribute="new_city" operator="not-null" />
    <filter type="or">
      <condition attribute="new_tipts" operator="not-null" />
      <condition attribute="new_avto_tip2" operator="not-null" />
    </filter>
  </filter>
</link-entity>
Заработало, элементарно на самом деле. Спасибо
Старый 09.10.2013, 15:47   #4  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
А можно как-то выводить нумерацию записей, которые показывает отчет?

Смотрю функции VB, пока не нашел как.
Старый 09.10.2013, 16:57   #5  
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
Попробуйте следующее:

Код:
=RowNumber("Название датасета")
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.10.2013, 13:53   #6  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
Попробуйте следующее:

Код:
=RowNumber("Название датасета")
Помогло, но есть другая проблема.

Если не один ДатаСет, а несколько, то надо указывать функцию Агрегации.
А если у меня выражение вида:

=Month(Fields!new_sign_date.Value) - когда один ДатаСет - без проблем

как использовать функцию Агрегации?

Если:

=Aggregate(Month(Fields!new_sign_date.Value), "DataSet1") - ошибка
=Month(Aggregate(Fields!new_sign_date.Value), "DataSet1")- ошибка


Написано на msdn
Цитата:
Aggregate(expression, scope)
Цитата:
expression
The expression on which to perform the aggregation. The expression must be a simple field reference.
Ну лажа как мне кажется, если нельзя в expression вкладывать функции

Какой есть выход?
Старый 10.10.2013, 13:58   #7  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Блин, нельзя вкладывать функции в Агрегейт((
Вот тут написано о Restrictions on Nested Aggregates

http://technet.microsoft.com/en-us/l.../dd255275.aspx

А как тогда сделать?
Старый 10.10.2013, 14:46   #8  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Наткнулся на еще одно ограничение: </link-entity> не может быть > 10

Только хакнуть таблицу в бд, но это ансапорт
Старый 10.10.2013, 14:53   #9  
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
Если честно, то не понял конкретно в чём проблема. Слишком уж сумбурно и не структурировано спрашиваете. Можете, пожалуйста, переформулировать вопрос?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.10.2013, 15:03   #10  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
Если честно, то не понял конкретно в чём проблема. Слишком уж сумбурно и не структурировано спрашиваете. Можете, пожалуйста, переформулировать вопрос?
Да, легко.

1) У меня есть несколько ДатаСетов в отчете.
2) В отчетах я использую разные функции, например функция времени

Цитата:
=Month(Fields!new_sign_date.Value)
3) Как во время выполнения этой (или другой) функции указать нужный scope (dataset)

4) Читал, что надо использовать функцию Aggregate
5) Потом нашел, что функция имеет ограничения и не позволяет вкладывать другие функции в нее - Month, например.
Старый 10.10.2013, 15:47   #11  
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
Если вы хотите брать аггрегированные данные из других датасетов, то можете воспользоваться следующим синтаксисом.

Код:
=Sum(Fields!new_tax.Value, "DataSetName")
Помогаю вам вслепую. Хоть убейте - не могу понять сценарий и вёрстку вашего отчёта.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.10.2013, 16:11   #12  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
Если вы хотите брать аггрегированные данные из других датасетов, то можете воспользоваться следующим синтаксисом.

Код:
=Sum(Fields!new_tax.Value, "DataSetName")
Помогаю вам вслепую. Хоть убейте - не могу понять сценарий и вёрстку вашего отчёта.
В СРМ есть ограничения - не больше 10 связанных сущностей можно использовать в fetch, у меня в отчете их количество тринадцать. Логично, что надо использовать два DataSet. Первый - 10 сущностей, второй - 3.
Пример с датой я привел. потому что по требованию заказчика дата должна быть разбита на День, Месяц, Год.
Этот синткасис я пробовал изначально, он не работает
Цитата:
=Day(Fields!new_sign_date.Value, "DataSet1")
Потом думал сделать используя Aggregete
Цитата:
=Aggregate(Day(Fields!new_sign_date.Value), "DataSet1")
Не работает(

Надеюсь, теперь стало ясно почему я использую два ДатаСета.

Последний раз редактировалось GetLucky; 10.10.2013 в 16:33.
Старый 10.10.2013, 16:38   #13  
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
По поводу двух датасетов - понял. Одно непонятно - что за отчёт такой страшный...
PS вопрос возник - почему не используете t-sql? Проект для CRM Online?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.10.2013, 16:47   #14  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
По поводу двух датасетов - понял. Одно непонятно - что за отчёт
вы же в курсе - заказчики разные бывают

Цитата:
PS вопрос возник - почему не используете t-sql? Проект для CRM Online?
Да, и приходится бороться.
Старый 10.10.2013, 16:53   #15  
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
Цитата:
Сообщение от GetLucky Посмотреть сообщение
вы же в курсе - заказчики разные бывают
Это точно.

Цитата:
Сообщение от GetLucky Посмотреть сообщение
Да, и приходится бороться.
Чем могу - помогаю.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

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

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 15 Blog bot Dynamics CRM: Blogs 1 10.02.2016 10:26
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 14 Blog bot Dynamics CRM: Blogs 0 12.07.2013 07:13
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 13 Blog bot Dynamics CRM: Blogs 0 27.03.2013 22:12
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 12 Blog bot Dynamics CRM: Blogs 0 30.01.2013 01:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 10 Blog bot Dynamics CRM: Blogs 0 17.08.2012 03:27
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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