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


Расширенные свойства поля для базы данных служб Analysis Services (службы SSRS)

Модуль обработки данных SQL Server Службы Analysis Services поддерживает расширенные свойства полей. Расширенные свойства полей — это дополнительные свойства, доступные для конкретного источника данных, помимо свойств Value и IsMissing, и поддерживаемые модулем обработки данных. Расширенные свойства не отображаются в области данных отчетах как часть коллекции полей для набора данных отчета. В отчет можно включить расширенные значения свойств полей, написав выражения, которые указывают их по имени с помощью встроенной Fields коллекции.

Расширенные свойства включают стандартные свойства и пользовательские. Стандартные свойства — это свойства, общие для нескольких источников данных, сопоставленные с конкретными именами свойств полей и доступные по именам во встроенной коллекции Fields. Пользовательские свойства у каждого поставщика данных свои, и доступны они во встроенной коллекции Fields только при использовании синтаксиса, включающего имя расширенного свойства в виде строки.

Если для определения запроса применяется конструктор запросов многомерных выражений служб Службы Analysis Services в графическом режиме, в запрос многомерных выражений автоматически добавляется стандартный набор свойств ячеек и измерений. При этом могут быть использованы только те расширенные свойства, которые перечислены в запросе MDX данного отчета. В зависимости от отчета может потребоваться изменить текст по умолчанию команды запроса MDX, включив дополнительное измерение или пользовательские свойства, определенные в кубе. Дополнительные сведения о расширенных полях, доступных в источниках данных служб Службы Analysis Services, см. в разделе Создание и использование значений свойств (многомерные выражения).

Работа со свойствами полей в отчете

Расширенные свойства полей включают стандартные свойства и свойства, зависящие от конкретного поставщика данных. Свойства полей не отображаются со списком полей в области Данные отчета , даже если они определены в запросе, сформированном для набора данных; поэтому нельзя перетащить свойства полей в область конструктора отчета. Вместо этого следует перетащить в отчет поле, а затем заменить его свойство Value на то, которое необходимо использовать. Например, если данные ячейки куба уже отформатированы, можно использовать свойство поля FormattedValue с помощью следующего выражения: =Fields!FieldName.FormattedValue.

Для ссылки на расширенное свойство, не являющееся стандартным, используйте в выражении следующий синтаксис:

  • Fields!ИмяПоля("ИмяСвойства")

Стандартные свойства полей

В большинстве случаев стандартные свойства поля относятся к мерам, уровням или измерениям. Стандартное свойство поля должно иметь соответствующее значение, хранящееся в источнике данных служб Службы Analysis Services . Если такое значение не существует или, например, указывается свойство поля только для меры на уровне, это свойство возвращает значение NULL.

Для ссылки на предопределенное свойство из выражения можно использовать любой из следующих вариантов синтаксиса:

  • Fields!ИмяПоля.ИмяСвойства

  • Fields!ИмяПоля("ИмяСвойства")

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

Property Type Описание или ожидаемое значение
Value Object Указывает значение данных поля.
IsMissing Boolean Указывает, найдено ли поле в результирующем наборе данных.
UniqueName String Возвращает полное имя уровня. Например, UniqueName значение для сотрудника может быть [Employee].[ Отдел сотрудников]. [Department].&[Sales].&[North American Sales Manager].&[272].
BackgroundColor String Возвращает цвет фона, заданный в базе данных для этого поля.
Color String Возвращает цвет переднего плана, заданный в базе данных для этого элемента.
FontFamily String Возвращает название шрифта, определенного в базе данных для элемента.
FontSize String Возвращает размер шрифта, определенного в базе данных для элемента.
FontWeight String Возвращает тип шрифта, определенного в базе данных для элемента.
FontStyle String Возвращает стиль шрифта, определенного в базе данных для элемента.
TextDecoration String Возвращает специальное форматирование текста, определенное в базе данных для элемента.
FormattedValue String Возвращает форматированное значение для меры или ключевую цифру. Например, FormattedValue свойство sales Amount Quota возвращает формат валюты, например 1 124 400,00 долл. США.
Key Object Возвращает ключ для уровня.
LevelNumber Integer Для иерархий типа «родители-потомки» возвращает номер уровня или измерения.
ParentUniqueName String Для иерархий типа «родители-потомки» это свойство возвращает полное имя родительского уровня.

Примечание

Значения для этих расширенных свойств полей существуют только в случае, если источник данных (например, куб служб Службы Analysis Services ) предоставляет эти значения в момент, когда отчет выполняется и получает данные для своих наборов данных. Затем можно ссылаться на эти значения свойства поля из любого выражения с помощью синтаксиса, описанного в следующем разделе. Однако, поскольку эти поля уникальны для данного поставщика данных, изменения соответствующих значений не сохраняются вместе с определением отчета.

Примеры расширенных свойств

В качестве примера расширенных свойств следующий запрос MDX и результирующий набор содержат несколько свойств элементов, доступных из атрибута измерения, определенного в кубе. Это свойства MEMBER_CAPTION, UNIQUENAME, Properties("Day Name"), MEMBER_VALUE, PARENT_UNIQUE_NAME и MEMBER_KEY.

Этот запрос многомерных выражений выполняется к кубу AdventureWorks2012 в базе данных AdventureWorks2012 DW, включенной в образцы баз данных AdventureWorks2012 .

WITH MEMBER [Measures].[DateCaption]   
      AS '[Date].[Date].CURRENTMEMBER.MEMBER_CAPTION'   
   MEMBER [Measures].[DateUniqueName]   
      AS '[Date].[Date].CURRENTMEMBER.UNIQUENAME'   
   MEMBER [Measures].[DateDayName]   
      AS '[Date].[Date].Properties("Day Name")'   
   MEMBER [Measures].[DateValueinOriginalDatatype]   
      AS '[Date].[Date].CURRENTMEMBER.MEMBER_VALUE'   
   MEMBER [Measures].[DateParentUniqueName]   
      AS '[Date].[Date].CURRENTMEMBER.PARENT_UNIQUE_NAME'   
   MEMBER [Measures].[DateMemberKeyinOriginalDatatype]   
      AS '[Date].[Date].CURRENTMEMBER.MEMBER_KEY'   
SELECT {  
   [Measures].[DateCaption],   
   [Measures].[DateUniqueName],   
   [Measures].[DateDayName],   
   [Measures].[DateValueinOriginalDatatype],  
   [Measures].[DateParentUniqueName],  
   [Measures].[DateMemberKeyinOriginalDatatype]  
   } ON COLUMNS , [Date].[Date].ALLMEMBERS ON ROWS   
FROM [Adventure Works]  
  

При его запуске в панели запроса MDX получается результирующий набор из 1158 строк. Первые четыре строки приведены в следующей таблице.

DateCaption DateUniqueName DateDayName DateValueinOriginalDatatype DateParentUniqueName DateMemberKeyinOriginalDatatype
All Periods [Date].[Date].[All Periods] (null) (null) (null) 0
1 июля 2001 г. [Date].[Date].&[1] Воскресенье 7/1/2001 [Date].[Date].[All Periods] 1
2 июля 2001 г. [Date].[Date].&[2] Понедельник 7/2/2001 [Date].[Date].[All Periods] 2
3 июля 2001 г. [Date].[Date].&[3] Вторник 7/3/2001 [Date].[Date].[All Periods] 3

Запросы MDX по умолчанию, созданные при помощи конструктора запросов многомерных выражений в графическом режиме, включают для измерения только свойства MEMBER_CAPTION и UNIQUENAME. По умолчанию эти значения всегда имеют тип String.

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

SELECT NON EMPTY {[Measures].[Order Count]} ON COLUMNS,   
NON EMPTY { ([Date].[Month of Year].[Month of Year] ) }   
DIMENSION PROPERTIES   
   MEMBER_CAPTION, MEMBER_UNIQUE_NAME, MEMBER_VALUE ON ROWS   
FROM [Adventure Works]  
CELL PROPERTIES   
   VALUE, BACK_COLOR, FORE_COLOR,   
   FORMATTED_VALUE, FORMAT_STRING,   
   FONT_NAME, FONT_SIZE, FONT_FLAGS  

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

Месяц года Число заказов
Январь 2,481
Февраль 2,684
Март 2,749
Апрель 2,739

Хотя свойства являются частью многомерного выражения инструкции выборки, они не отражаются в столбцах результирующего набора. Но данные все же доступны отчету при использовании расширенных свойств. На панели результатов запроса многомерного выражения в среде SQL Server Среда Management Studio с помощью двойного щелчка в любой ячейке можно просмотреть значения свойств, если они заданы в кубе. Если дважды щелкнуть ячейку «Число заказов», в которой содержится значение 1379, то откроется всплывающее окно, содержащее следующие свойства ячейки.

Свойство Значение
CellOrdinal 0
Значение 2481
BACK_COLOR (null)
FORE_COLOR (null)
FORMATTED_VALUE 2,481
FORMAT_STRING #,#
FONT_NAME (null)
FONT_SIZE (null)
FONT_FLAGS (null)

Если с помощью этого запроса создать набор данных для отчета и привязать его к таблице, то будет доступно свойство поля по умолчанию VALUE, например =Fields!Month_of_Year!Value. Если это выражение указано в качестве выражения сортировки таблицы, результат будет упорядочен по названиям месяцев в алфавитном порядке, поскольку по умолчанию поле Value имеет тип данных String. Для правильной сортировки таблицы по месяцам с января по декабрь воспользуйтесь следующим выражением.

=Fields!Month_of_Year("MEMBER_VALUE")  

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

См. также:

Выражения (построитель отчетов и службы SSRS)
Встроенные коллекции в выражениях (построитель отчетов и службы SSRS)
Коллекция полей набора данных (построитель отчетов и службы SSRS)