Propriedades de campos estendidos para um banco de dados do Analysis Services (SSRS)
A extensão de processamento de dados do SQL Server Serviços de análise dá suporte às propriedades de campo estendidas. As propriedades de campo estendidas são propriedades adicionais às propriedades de campo Value e IsMissing que estão disponíveis na fonte de dados e que têm suporte na extensão de processamento de dados. As propriedades estendidas não são exibidas no painel Dados do Relatório como parte da coleção de campos de um conjunto de dados do relatório. Você pode inclui os valores de propriedade do campo estendido em seu relatório escrevendo expressões que os especifiquem por nome usando a coleção interna de Fields .
As propriedades estendidas incluem propriedades predefinidas e propriedades personalizadas. As propriedades predefinidas são propriedades comuns a várias fontes de dados mapeadas para nomes de propriedade de campo específico e podem ser acessadas por nome por meio da coleção interna de Fields . As propriedades personalizadas são específicas de cada provedor de dados e podem ser acessadas por meio da coleção interna de Fields apenas pela sintaxe usando o nome da propriedade estendida como uma cadeia de caracteres.
Ao usar o designer de consultas MDX do Serviços de análise no modo gráfico para definir a consulta, um conjunto predefinido de propriedades de células e propriedades de dimensão é adicionado automaticamente à consulta MDX. Apenas as propriedades estendidas que estiverem especificamente listadas na consulta MDX em seu relatório poderão ser usadas. Dependendo do relatório, é possível modificar o texto do comando MDX padrão para incluir outra dimensão ou propriedades personalizadas definidas no cubo. Para obter mais informações sobre os campos estendidos disponíveis nas fontes de dados do Analysis Services, confira Criando e usando valores de propriedade (MDX).
Trabalhando com as propriedades de campo em um relatório
As propriedades de campo estendidas incluem as propriedades predefinidas e as propriedades específicas para um provedor de dados. As propriedades de campo não são exibidas com a lista de campos no painel Dados do Relatório , embora elas estejam na consulta criada para um conjunto de dados; portanto, não é possível arrastar as propriedades de campo para a superfície de design de relatórios. Em vez disso, você deverá arrastar o campo para o relatório e alterar a propriedade Value do campo para a propriedade que você quer usar. Por exemplo, se os dados da célula de um cubo já tiverem sido formatados, você poderá usar a propriedade de campo FormattedValue usando a seguinte expressão: =Fields!FieldName.FormattedValue
.
Para consultar uma propriedade estendida que não seja predefinida, use a seguinte sintaxe em uma expressão:
- Fields!FieldName("PropertyName")
Propriedades de campo predefinidas
Na maioria dos casos, as propriedades de campo predefinidas são aplicadas a medidas, níveis ou dimensões. Uma propriedade de campo predefinida deve ter um valor correspondente armazenado na fonte de dados do Serviços de análise . Se não existir um valor ou se você especificar uma propriedade de campo em um nível apenas para medida (por exemplo), a propriedade retornará um valor nulo.
Para consultar uma propriedade predefinida a partir de uma expressão, use as seguintes sintaxes:
Fields!FieldName.PropertyName
Fields!FieldName("PropertyName")
A tabela a seguir fornece uma lista das propriedades de campo predefinidas que você pode usar.
Propriedade | Tipo | Descrição ou valor esperado |
---|---|---|
Valor | Objeto | Especifica o valor de dados do campo. |
IsMissing | Booliano | Indica se o campo foi encontrado no conjunto de dados resultante. |
UniqueName | Cadeia de caracteres | Retorna o nome totalmente qualificado de um nível. Por exemplo, o valor UniqueName de um funcionário pode ser [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272]. |
BackgroundColor | Cadeia de caracteres | Retorna a cor do segundo plano definida no banco de dados para o campo. |
Color | Cadeia de caracteres | Retorna a cor do primeiro plano definida no banco de dados para o item. |
FontFamily | Cadeia de caracteres | Retorna o nome da fonte definido no banco de dados para o item. |
FontSize | Cadeia de caracteres | Retorna o tamanho da fonte definido no banco de dados para o item. |
FontWeight | Cadeia de caracteres | Retorna a espessura da fonte definida no banco de dados para o item. |
FontStyle | Cadeia de caracteres | Retorna o estilo da fonte definido no banco de dados para o item. |
TextDecoration | Cadeia de caracteres | Retorna a formatação de texto especial definida no banco de dados para o item. |
FormattedValue | Cadeia de caracteres | Retorna um valor formatado para a medida ou o número chave. Por exemplo, a propriedade FormattedValue para Cota do Valor de Vendas retorna um formato de moeda como US$ 1.124.400,00. |
Chave | Objeto | Retorna a chave para um nível. |
LevelNumber | Inteiro | Para hierarquias pai-filho, retorna o nível ou o número de dimensões. |
ParentUniqueName | Cadeia de caracteres | Para hierarquias pai-filho, retorna um nome totalmente qualificado do nível pai. |
Observação
Os valores dessas propriedades de campo estendidas passarão a existir somente se a fonte de dados (por exemplo, o cubo do Serviços de análise ) fornecer esses valores quando você executar e recuperar os dados de seus conjuntos de dados. Dessa forma, você poderá consultar esses valores da propriedade de campo a partir de qualquer expressão usando a sintaxe descrita na seguinte seção. Entretanto, como esses campos são específicos para esse provedor de dados, as alterações que forem feitas nesse valor não serão salvas com a definição de relatório.
Exemplo de propriedades estendidas
Para ilustrar as propriedades estendidas, a consulta MDX e o conjunto de resultados a seguir incluem várias propriedades de membro disponíveis a partir de um atributo de dimensão definido para um cubo. As propriedades de membro incluídas são MEMBER_CAPTION, UNIQUENAME, Properties("Nome do Dia"), MEMBER_VALUE, PARENT_UNIQUE_NAME e MEMBER_KEY.
Essa consulta MDX é executada no cubo AdventureWorks2022, no banco de dados DW AdventureWorks2022, incluído nos bancos de dados de exemplo da AdventureWorks2022.
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]
Ao executar essa consulta em um painel de consulta MDX, você pode obter um conjunto de resultados com 1158 linhas. As primeiras quatro linhas são exibidas na tabela a seguir.
DateCaption | DateUniqueName | DateDayName | DateValueinOriginalDatatype | DateParentUniqueName | DateMemberKeyinOriginalDatatype |
---|---|---|---|---|---|
Todos os Períodos | [Data].[Data].[Todos os Períodos] | (null) | (null) | (null) | 0 |
1-Jul-01 | [Date].[Date].&[1] | Sunday | 7/1/2001 | [Data].[Data].[Todos os Períodos] | 1 |
2-Jul-01 | [Date].[Date].&[2] | Monday | 7/2/2001 | [Data].[Data].[Todos os Períodos] | 2 |
3-Jul-01 | [Date].[Date].&[3] | Terça-feira | 7/3/2001 | [Data].[Data].[Todos os Períodos] | 3 |
As consultas MDX padrão incorporadas usando o Designer de Consulta MDX no modo gráfico incluem apenas MEMBER_CAPTION e UNIQUENAME para as propriedades de dimensão. Por padrão, esses valores sempre são do tipo de dados String.
Se precisar de uma propriedade do membro em seu tipo de dados original, você poderá incluir uma propriedade adicional MEMBER_VALUE modificando a instrução MDX padrão no designer de consulta baseado em texto. Na instrução MDX simples indicada a seguir, MEMBER_VALUE foi adicionada à lista de propriedades de dimensão a ser recuperada.
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
As primeiras quatro linhas do resultado no painel Resultados MDX aparecem na tabela a seguir.
Mês do ano | Contagem de pedidos |
---|---|
Janeiro | 2,481 |
Fevereiro | 2,684 |
Março | 2,749 |
Abril | 2,739 |
Embora as propriedades façam parte da instrução de seleção MDX, elas não são exibidas nas colunas de conjunto de resultados. No entanto, os dados são disponibilizados para um relatório usando o recurso de propriedades estendidas. No painel de resultados da consulta MDX no SQL Server Management Studio, você pode clicar duas vezes na célula e ver os valores de propriedade da célula, caso eles estejam definidos no cubo. Se clicar duas vezes na primeira célula Contagem de Pedidos que contém 1379, será exibida uma janela com as seguintes propriedades da célula:
Propriedade | Valor |
---|---|
CellOrdinal | 0 |
VALUE | 2481 |
BACK_COLOR | (null) |
FORE_COLOR | (null) |
FORMATTED_VALUE | 2,481 |
FORMAT_STRING | #,# |
FONT_NAME | (null) |
FONT_SIZE | (null) |
FONT_FLAGS | (null) |
Se você criar um conjunto de dados de relatório com essa consulta e associar o conjunto de dados a uma tabela, poderá ver a propriedade VALUE padrão de um campo, por exemplo, =Fields!Month_of_Year!Value
. Se você definir essa expressão como a expressão de classificação para a tabela, seus resultados servirão para classificar a tabela em ordem alfabética, por mês, porque o campo Value usa um tipo de dados String . Para classificar a tabela de forma que os meses fiquem na ordem correta do ano, de janeiro a dezembro, use a seguinte expressão:
=Fields!Month_of_Year("MEMBER_VALUE")
Isso classifica o valor do campo em seu tipo de dados de inteiro original a partir da fonte de dados.