Поделиться через


Использование параметров в отчетах

Параметры в отчетах служат для управления полученными данными путем запроса у пользователя значения или набора значений, когда пользователь выполняет отчет. Запрос набора данных извлекает только данные, запрошенные пользователем. Можно также добавить в отчет скрытые или специальные параметры, которые не запрашивают ввода данных у пользователя, но могут использоваться для фильтрации данных и динамической сквозной детализации.

Заметка

Максимальная длина значений параметров, которые могут анализироваться из Microsoft Dynamics 365 Customer Engagement (on-premises), составляет 2000 символов. Например, если при запуске отчета создать фильтр данных с помощью пользовательского интерфейса Расширенный поиск, длина полученного выражения фильтра, которое передается к параметру фильтра, не может превышать 2000 знаков. Не существует ограничения на количество параметров, которые можно задать. Однако может потребоваться ограничить длину строки в строке URL-адреса и количество параметров, чтобы обеспечить удовлетворение требований определенного браузера.

Добавление параметров

Можно добавлять параметры в отчет для определения индивидуальных параметров отчета, для передачи данных через запрос или для предоставления доступа к параметрам пользователя, например к параметрам CRM_CurrencySymbol и CRM_CurrencyPositivePattern.

Элемент <ReportParameter> в файле определения отчета (RDL) служит для описания индивидуального параметра в отчете. Элемент <QueryParameter> содержит сведения о индивидуальном параметре, который передается в источник данных в составе запроса. Ниже приведен код XML, взятый из файла языка определения отчетов RDL для отчета "Сводка по организации", который показывает, как использовать параметры ReportParameter и QueryParameter.

<ReportParameter Name="CRM_FilteredAccount">  
  <DataType>String</DataType>  
    <Nullable>true</Nullable>  
    <DefaultValue>  
      <Values>  
         <Value>select * from FilteredAccount</Value>  
      </Values>  
    </DefaultValue>  
    <AllowBlank>true</AllowBlank>  
    <Prompt>CRM_FilteredAccount</Prompt>  
</ReportParameter>  
<Query>  
   <rd:UseGenericDesigner>true</rd:UseGenericDesigner>  
   <CommandText>declare @sql as nVarchar(max)  
      set @sql = '  
      SELECT top 10 CAST(accountid as nvarchar(100)) as AccountID,  
      name, '''' as None  
      FROM (' + @FilteredAccount + ') as fa'  
      exec(@sql)  
   </CommandText>  
   <QueryParameters>  
      <QueryParameter Name="@FilteredAccount">  
         <Value>=Parameters!FilteredAccount.Value</Value>  
      </QueryParameter>  
   </QueryParameters>  
   <DataSourceName>CRM</DataSourceName>  
</Query>  

Следующие примеры показывают, как использовать параметры QueryParameter и ReportParameter в отчете на основе языка Fetch.

<ReportParameter Name="FilteredAccount">  
      <DataType>String</DataType>  
      <Prompt>Filtered Account</Prompt>  
            <DefaultValue>  
                  <Values>  
                        <Value>  
                              <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">  
                              <entity name="account">  
                              <all-attributes/>  
                              </entity>  
                              </fetch>  
                        </Value>  
                  </Values>  
            </DefaultValue>  
    </ReportParameter>  
<Query>  
        <DataSourceName>DataSource1</DataSourceName>  
        <CommandText>  
                  <fetch>   
                  <entity name="account" enableprefiltering="true" prefilterparametername="FilteredAccount">  
                  <attribute name="accountid" />  
                  <attribute name="name" />  
                  </entity>  
                  </fetch>  
            </CommandText>  
        <QueryParameters>  
          <QueryParameter Name="FilteredAccount">  
            <Value>=Parameters!FilteredAccount.Value</Value>  
          </QueryParameter>  
        </QueryParameters>  
        <rd:UseGenericDesigner>true</rd:UseGenericDesigner>  
      </Query>  

Скрытые параметры

Конструктор отчетов в Visual Studio содержит встроенную поддержку скрытых параметров. Кроме того, можно скрыть параметры, добавив префикс "CRM_" к имени параметра в отчете. По умолчанию параметры с префиксом "CRM_" становятся скрытыми при публикации отчета. При выполнении отчета пользователю не предлагается ввести значения для скрытых параметров.

Специальные параметры

В следующей таблице показаны специальные скрытые параметры, которые можно использовать в отчетах.

Параметр Описание
CRM_FilterText Содержит значение текста фильтра, который пользователь отчета создает в интерактивном режиме в средстве просмотра отчетов во время выполнения отчета. Параметр находится в текстовом поле сводки фильтра, которое размещено в заголовке отчета. Исходное значение установлено на фильтр по умолчанию.
CRM_URL Установите URL-адрес приложения. Используйте этот параметр при сквозной детализации.
CRM_FilteredEntity Используйте в выражении запроса для включения предварительной фильтрации данных (через Расширенный поиск).

Необходимо создать все параметры в отчете, чтобы можно было ссылаться на них. Значения этих специальных параметров заполняются Customer Engagement (on-premises) при выполнении отчета.

Дополнительные параметры формата

Следующая таблица содержит дополнительные параметры, которые можно использовать в отчетах. Среди них имеются параметры, предоставляющие доступ к данным пользователя о настройках чисел. Можно использовать эти значения для форматирования и отображения цифровых значений. Эти параметры аналогичны значениям, указанным в классе NumberFormatInfo. Используйте эти параметры в настраиваемых отчетах для форматирования данных в соответствии с параметрами пользователя.

Параметр Описание
CRM_FullName Полное имя пользователя, от имени которого выполняется отчет.
CRM_UserTimeZone Название часового пояса пользователя, например тихоокеанское стандартное время.
CRM_UILanguageId Текущие региональные параметры (LCID) пользователя.
CRM_YearStartWeekCode Первая неделя года, которая используется в приложениях Dynamics 365 for Customer Engagement.
CRM_WeekStartDayCode Первый день недели, который используется в Customer Engagement.
CRM_FiscalCalendarStart Дата начала финансового года, которая используется в Customer Engagement.
CRM_FiscalPeriodType Указывает способ разделения финансового года: ежеквартально, ежемесячно, ежегодно и т. п.
CRM_FiscalYearDisplayCode Указывает, отображается ли название финансового года на основе того, когда он начинается или когда он заканчивается.
CRM_FiscalYearPeriodConnect Указывает, как следует связывать финансовый год и финансовый период при их совместном отображении.
CRM_FiscalYearFormat Указывает, как будет отображаться наименование финансового года.
CRM_FiscalPeriodFormat Указывает, как будет отображаться финансовый период.
CRM_FiscalYearPrefixFormat Указывает, добавляется ли префикс к финансовому году при его отображении.
CRM_FiscalYearSuffixFormat Указывает, добавляется ли суффикс к финансовому году при его отображении.
CRM_CurrencyDecimalPrecision Точность дробной части валют.
CRM_CurrencySymbol Обозначение денежной единицы организации.
CRM_CurrencyPositivePattern Схема формата для положительных значений в валюте.
CRM_CurrencyNegativePattern Схема формата для отрицательных значений в валюте.
CRM_NumberDecimalDigits Количество десятичных знаков, используемых в числовых значениях.
CRM_NumberDecimalSeperator Строка, которая используется в качестве десятичного разделителя в числовых значениях.
CRM_NumberNegativePattern Схема формата для отрицательных числовых значений.
CRM_NumberGroupSizes Количество цифр в каждой группе слева от десятичного разделителя в числовых значениях.
CRM_NumberGroupSeperator Строка, которая разделяет группы цифр слева от десятичного разделителя в числовых значениях.
CRM_DateSeparator Строка, которая разделяет компоненты даты, такие как год, месяц и день.
CRM_TimeSeparator Строка, которая разделяет компоненты времени, такие как час, минуты и секунды.
CRM_AMDesignator Строка, которая разделяет компоненты времени, такие как час, минуты и секунды
CRM_PMDesignator Обозначение времени после полудня (PM).
CRM_ShortDatePattern Схема формата для краткого значения даты, которое связано со схемой формата "d".
CRM_LongDatePattern Схема формата для длинного значения даты, которое связано со схемой формата "D".
CRM_ShortTimePattern Схема формата для краткого значения времени, которое связано со схемой формата "t".
CRM_MonthDayPattern Схема формата для значений месяца и дня, которая связана со схемами форматов "m" и "M".

См. также

Руководство по отчетам и аналитике
Публикация отчетов