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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.03.2008, 22:34   #8  
Артем 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
Добавлено по просьбе LikeFire. Мой опыт неравной борьбы со службой отчетов:
Как вывести в отчете нормальную шапку?
В студии, в свойствах отчета: меню Report -> Report Properties. Есть такая вкладка Code. Сюда можно поместить свой код, причем не на скрипотвых языках, а на полноценном Visual Basic .NET (если конечно считать этот язык полноценным). Вот таким кодом, например, можно выковыривать свои параметры из строки фильтра:
Код:
    Const defaultVal As String = "Не указано"
    Const backspace As Char = Chr(10)
    Const newline As Char = Chr(13)
    Const space As Char = Chr(32)

    Function getParameter(ByVal filterText As String, ByVal className As String, ByVal attributeName As String, ByVal expression As String) As String
        Dim result As String = defaultVal
        Dim pos As Integer = filterText.IndexOf(className, StringComparison.OrdinalIgnoreCase)
        If (pos <> -1) Then
            pos = filterText.IndexOf(attributeName, pos + className.Length, StringComparison.OrdinalIgnoreCase)
            If (pos <> -1) Then
                pos = filterText.IndexOf(expression, pos + attributeName.Length, StringComparison.OrdinalIgnoreCase)
                If (pos <> -1) Then
                    Dim startPos As Integer = pos + expression.Length
                    pos = filterText.IndexOf(Chr(10), pos + expression.Length)
                    result = filterText.Substring(startPos, pos - startPos).Trim(New Char() {backspace, newline, space})
                End If
            End If
        End If
        Return result
    End Function

Далее вызываем его из полей отчета:
Code.GetParameter(Parameters!CRM_FilterText.Value, "Заказ", "Дата создания", "в указанную дату или ранее")

Достаточно удобное и простое решение. Есть тем не менее и более правильный способ: есть возможность создать и использовать в любом отчете целую библиотеку с любыми удобными для вас функциями и константами! Кроме того, так вам будет доступна вся мощь .NET и снимается ограничение на кодирование только на Basic. Я пошел именно этой дорогой.
Короече, если кому-то интересно подробнее об этом можно узнать тут:

http://msdn2.microsoft.com/ru-ru/library/ms155798.aspx
http://msdn2.microsoft.com/en-us/library/ms153561.aspx
http://msdn2.microsoft.com/en-us/library/ms155034.aspx
http://www.microsoft.com/Rus/Msdn/pu...RSCstCode.mspx

Последний раз редактировалось Артем Enot Грунин; 25.03.2008 в 22:37.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Announcing SDK Update v4.0.8 Blog bot Dynamics CRM: Blogs 0 10.03.2009 02:25
Microsoft Dynamics CRM Team Blog: Documentation Feedback for the SDK Blog bot Dynamics CRM: Blogs 0 10.10.2008 00:05
Microsoft Dynamics CRM Team Blog: 32-bit vs. 64-bit CRM SDK Assemblies Blog bot Dynamics CRM: Blogs 0 11.09.2008 20:05
Microsoft Dynamics CRM Team Blog: Client Extensions and Scripting Samples in the SDK Part 2 Blog bot Dynamics CRM: Blogs 0 23.08.2008 00:08
Microsoft Dynamics CRM Team Blog: Client Extensions and Scripting Samples in the SDK Part 1 Blog bot Dynamics CRM: Blogs 0 09.08.2008 01:17
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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