В случае необходимости вывода значений picklist из MS CRM для своего aspx веб-приложения можно использовать данный код
Как вы знаете для Microsoft Dynamics CRM можно создавать отчеты, которые будут доступны для определенных типов записей: контактов, организаций, заказов и др. Для это необходимо использовать фильтрованные представления в базе данных: FilteredContact, FilteredAccount … и указать в настройке отчета необходимые данные в пунктах: «Связанные типы записей» и «Отобразить в».
Например, такой запрос:
select name from FilteredAccount CRMAF_FilteredAccount
будет трансформировать системой в запрос вида
select name
from FilteredAccount CRMAF_FilteredAccount
where CRMAF_FilteredAccount.accountid = '{0000000-0000-0000-0000-000000000000}'
т.е. идентификатор выбранной записи будет подставлен автоматически.
Проблема может возникнуть, когда в вашем отчете используется несколько DataSet. Почему-то идентификатор записи будет передаваться только в 1й DataSet, а в остальные нет. Поэтому если есть необходимость использовать полученный идентификатор в нескольких DataSet, то придется выполнить следующие шаги:
17.08.2010Выбор всех значений из picklist
Наверняка вы уже знакомы с решением от Jim Wang для выбора нескольких значений из picklist MS CRM, а стиль самого picklist был изменен с добавлением чекбоксов.

Отличное решение, но, иногда, возникает необходимость выбирать все элементы из списка и если значений много, то будет неудобно выбирать каждое по отдельности. Поэтому вот небольшой javascript сниппет, который позволяет решить данную задачу.
Читать полностью »
При создании атрибута типа Datetime вы можете выбрать два варианта его отображения: только дата,дата и время. Ну а если нужно только время?
Можно создать атрибут типа DateTime, выбрать отображение Дата и время и средствами javascript на форме уже спрятать часть с датой.
Так как часть с временем недоступна по умолчанию (пока не будет заполнена часть с датой), следует присвоить начальное значение полю и потом уже прятать дату.
crmForm.all.new_field.DataValue = new Date();
document.getElementById(«new_field»).childNodes[0].childNodes[0].style.display = «none»;
document.getElementById(«new_field»).childNodes[0].childNodes[1].style.display = «none»;
где new_field-ваше поле DateTime.
На досуге занимался отчетами и собрал несколько полезных примеров кода на T-SQL, которые можно использовать в отчетах для Microsoft Dynamics CRM 4.0.
1. Получение дня недели
CASE DATEDIFF(DAY,0, createdon)%7 WHEN 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) AS BEGIN DECLARE @StringList varchar(max) SELECT @StringList = COALESCE(@StringList + '; ', '') + c.fullname from account a left join contact c on c.parentcustomerid = @AccountID IF @StringList IS NULL SET @StringList = 'Нет контактов' RETURN @StringList END
Пример вызова:
[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

