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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.06.2010, 00:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,617 / 848 (80) +++++++
Регистрация: 28.10.2006
Все о Microsoft Dynamics CRM: Полезные SQL-вставки для использования в отчетах MS CRM
Источник: http://ms-dynamics-crm.com.ua/2010/0...ets-for-mscrm/
==============

На досуге занимался отчетами и собрал несколько полезных примеров кода на T-SQL, которые можно использовать в отчетах для Microsoft Dynamics CRM 4.0.
1. Получение дня недели

CASE DATEDIFF(DAY,0, createdon)%7WHEN 0 THEN 'Понедельник'WHEN 1 THEN 'Вторник'WHEN 2 THEN 'Среда'WHEN 3 THEN 'Четверг'WHEN 4 THEN 'Пятница'WHEN 5 THEN 'Суббота'WHEN 6 THEN 'Воскресенье'END as 'Дата, день недели'2. Функция для получения списка фамилий контактов через точку с запятой. Параметры: guid организации.
Основную работу выполняет стандартная функция COALESCE, которая позволяет объединить строки через разделитель.

CREATE FUNCTION [dbo].[GetContactList](@AccountID varchar(40))RETURNS varchar(max) ASBEGINDECLARE @StringList varchar(max)SELECT @StringList = COALESCE(@StringList + '; ', '') + c.fullnamefrom account aleft join contact c on c.parentcustomerid = @AccountIDIF @StringList IS NULLSET @StringList = 'Нет контактов'RETURN @StringListENDПример вызова:

[DB_Name].[dbo].[GetContactList](accountid) as 'Контакты'Результат : Иванов; Петров; Сидоров


3. Конвертирование даты в формате дд.мм.гггг
3.1 T-SQL(CONVERT(varchar(10),createdon, 104)3.2 в SQL Server Business Intelligence Development Studio: Format(Parameters!startdate.Value,»dd.MM.yyyy»)

4. Форматирование поля типа money, float с разрядами
Format(Sum(Fields!Сумма.Value),»### ### ##0.0#»)

Прошлая небольшая подборка здесь: Полезные SQL-функции для использования в отчетах MS CRM



Источник: http://ms-dynamics-crm.com.ua/2010/0...ets-for-mscrm/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 15.06.2010, 09:59   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Дети! Никогда так не делайте! Для получение форматов дат, времени, чисел и пр. используйте встроенную функцию fn_GetFormatStrings
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: fatty_bu (1).
Старый 15.06.2010, 12:53   #3  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Дети! Никогда так не делайте! Для получение форматов дат, времени, чисел и пр. используйте встроенную функцию fn_GetFormatStrings
Так точно, будем знать!
Старый 15.06.2010, 13:07   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 05.12.2012, 10:51   #5  
fatty_bu is offline
fatty_bu
Участник
Аватар для fatty_bu
 
90 / 18 (1) ++
Регистрация: 03.06.2009
Адрес: Москва
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Дети! Никогда так не делайте! Для получение форматов дат, времени, чисел и пр. используйте встроенную функцию fn_GetFormatStrings
А можно пример привести как использовать данную функцию? Да и вообще посоветуйте пож-та каким отбразом приводить дату к нужному формату при разработе отчетов. В запросе ли это делать или же в репортинге.

Я извратился и написал кейс для нужного мне запроса (уверен, есть бест-практис вариант, так сказать):
Код:
  case  LEN (Convert(varchar(8), DAY(date)))				
		when 1 then '0'
		else ''
  end
       + Convert(varchar(8), DAY(date)) 
       +'.' 
  + case  LEN (Convert(varchar(8), MONTH(date)))				
		when 1 then '0'
		else ''
  end
       + Convert(varchar(8), MONTH(date))
  + '.'+ Convert(varchar(8), YEAR(date))
Старый 05.12.2012, 11:28   #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
Однозначно лучше это делать в отчёте, потому как если это будете делать в запросе, например, если будет инлайн сортировка - она будет работать некорректно.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 05.12.2012, 12:16   #7  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Как это обычно делают:
1. Создайте отдельный датасет для получения нужных вам форматов. В стандартных отчетах он называется DSFormatStrings. Обычно он состоит из запроса:
X++:
select * from dbo.fn_GetFormatStrings()
2. Создайте параметры отчета для нужных вам форматов, например, СrmCurrencyFormat, CrmDateFormat и т.д.
3. В настройке "Default Values" параметра укажите Get values from a query, укажите датасет DSFormatStrings и нужное поле со строкой формата.
4. В свойствах каждой ячейки, которую нужно отформатировать на вкладке Number (как не странно) выберите формат Custom и в выражении укажите из какого параметра взять строку формата:
X++:
Parameters!rmCurrencyFormat.Value
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Все о Microsoft Dynamics CRM: Новая версия Implementation Guide для MS CRM 4.0 Blog bot Dynamics CRM: Blogs 0 23.10.2009 16:05
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Все о Microsoft Dynamics CRM: Импорт данных из CardScan в MS CRM 4.0 Blog bot Dynamics CRM: Blogs 0 29.07.2009 12:05
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM Interviews and Screencasts Blog bot Dynamics CRM: Blogs 0 23.07.2008 03:18
Microsoft Dynamics CRM Team Blog: Accessing a SQL Database from a Microsoft Dynamics CRM Plug-in Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

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

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

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