Condividi tramite


Proprietà di campo estese per un database di Analysis Services (SSRS)

L'estensione per l'elaborazione dati di SQL Server Analysis Services supporta proprietà di campo estese. Le proprietà di campo estese sono proprietà aggiuntive rispetto alle proprietà di campo Value e IsMissing, disponibili nell'origine dei dati e supportate dall'estensione per l'elaborazione dati. Le proprietà estese non vengono visualizzate nel riquadro Dati report all'interno della raccolta di campi per un set di dati del report. È possibile includere valori di proprietà di campo estese in un report scrivendo espressioni mediante la raccolta predefinita Fields nelle quali essi sono specificati per nome.

Le proprietà estese includono proprietà predefinite e proprietà personalizzate. Le proprietà predefinite sono comuni a più origini dati, le quali sono mappate a nomi di proprietà di campo specifiche e risultano accessibili per nome tramite la raccolta predefinita Fields. Le proprietà personalizzate sono specifiche per ogni provider di dati ed è possibile accedervi mediante la raccolta predefinita Fields solo tramite la sintassi che utilizza il nome della proprietà estesa come stringa.

Quando si utilizza la finestra Progettazione query MDX con interfaccia grafica di Analysis Services per definire la query, a quest'ultima viene automaticamente aggiunto un set predefinito di proprietà delle celle e delle dimensioni. Nel report è possibile utilizzare solo le proprietà estese specificatamente elencate nella query MDX. A seconda del report, potrebbe essere opportuno modificare il testo del comando MDX in modo che includa altre proprietà personalizzate o delle dimensioni definite nel cubo. Per ulteriori informazioni sui campi estesi disponibili nelle origini dei dati di Analysis Services, vedere Creazione e utilizzo di valori di proprietà (MDX).

Utilizzo delle proprietà di campo in un report

Le proprietà di campo estese includono proprietà predefinite e proprietà specifiche del provider di dati. Le proprietà di campo non vengono visualizzate con l'elenco dei campi nel riquadro Dati report, sebbene siano incluse nella query compilata per un set di dati; non è possibile pertanto trascinarle nell'area di progettazione del report. È invece necessario trascinare il campo nel report e quindi modificare la proprietà Value del campo impostando la proprietà che si desidera utilizzare. Se, ad esempio, i dati delle celle di un cubo sono già stati formattati, è possibile utilizzare la proprietà di campo FormattedValue utilizzando l'espressione seguente: =Fields!FieldName.FormattedValue.

Per fare riferimento a una proprietà estesa non predefinita, utilizzare la sintassi seguente in un'espressione:

  • Fields!FieldName("PropertyName")

Proprietà di campo predefinite

Nella maggior parte dei casi, le proprietà di campo predefinite si applicano a misure, livelli o dimensioni. Una proprietà di campo predefinita deve avere un valore corrispondente archiviato nell'origine dei dati di Analysis Services. Se non esiste un valore o se si specifica una proprietà dei campi solo di misura, ad esempio per un livello, la proprietà restituisce un valore Null.

Per fare riferimento a una proprietà predefinita da un'espressione, utilizzare uno dei due tipi di sintassi seguenti:

  • Fields!FieldName.PropertyName

  • Fields!FieldName("PropertyName")

Nella tabella seguente viene illustrato un elenco di proprietà di campo predefinite che è possibile utilizzare.

Proprietà

Tipo

Descrizione o valore previsto

Value

Object

Specifica il valore dei dati del campo.

IsMissing

Boolean

Indica se il campo è stato trovato nel set di dati risultante.

UniqueName

String

Restituisce il nome completo di un livello. Il valore della proprietà UniqueName per un dipendente potrebbe ad esempio essere [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272].

BackgroundColor

String

Restituisce il colore di sfondo definito nel database per il campo.

Color

String

Restituisce il colore di primo piano definito nel database per l'elemento.

FontFamily

String

Restituisce il nome del tipo di carattere definito nel database per l'elemento.

FontSize

String

Restituisce le dimensioni in punti del tipo di carattere definito nel database per l'elemento.

FontWeight

String

Restituisce lo spessore del carattere definito nel database per l'elemento.

FontStyle

String

Restituisce lo stile del tipo di carattere definito nel database per l'elemento.

TextDecoration

String

Restituisce la formattazione di testo speciale definita nel database per l'elemento.

FormattedValue

String

Restituisce un valore formattato per una misura o una cifra chiave. La proprietà FormattedValue della misura Sales Amount Quota restituisce, ad esempio, un formato valuta come $1,124,400.00.

Key

Object

Restituisce la chiave per un livello.

LevelNumber

Integer

Per gerarchie padre-figlio, restituisce il numero del livello o della dimensione.

ParentUniqueName

String

Per gerarchie padre-figlio, questa proprietà restituisce un nome completo del livello padre.

Nota

I valori per queste proprietà di campo estese sono disponibili solo se vengono forniti dall'origine dei dati, ad esempio il cubo di Analysis Services, quando il report viene eseguito e vengono recuperati i dati per i relativi set di dati. È quindi possibile fare riferimento a tali valori delle proprietà di campo in qualsiasi espressione utilizzando la sintassi descritta nella sezione seguente. Poiché, tuttavia, questi campi sono specifici del provider di dati in uso, eventuali modifiche apportate a tali valori non vengono salvate con la definizione del report.

Proprietà estese di esempio

Per illustrare le proprietà estese, la query MDX seguente e il relativo set di risultati includono diverse proprietà del membro disponibili da un attributo delle dimensioni definito per un cubo. Le proprietà del membro incluse sono MEMBER_CAPTION, UNIQUENAME, Properties("Day Name"), MEMBER_VALUE, PARENT_UNIQUE_NAME e MEMBER_KEY.

La query MDX viene eseguita sul cubo AdventureWorks2008R2 nel database AdventureWorks2008R2 DW incluso nei database di esempio AdventureWorks2008R2.

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]

Quando si esegue la query in un riquadro di query MDX, si ottiene un set di risultati costituito da 1158 righe. Le prime quattro righe sono illustrate nella tabella seguente.

DateCaption

DateUniqueName

DateDayName

DateValueinOriginalDatatype

DateParentUniqueName

DateMemberKeyinOriginalDatatype

All Periods

[Date].[Date].[All Periods]

(null)

(null)

(null)

0

1-Jul-01

[Date].[Date].&[1]

Sunday

7/1/2001

[Date].[Date].[All Periods]

1

2-Jul-01

[Date].[Date].&[2]

Monday

7/2/2001

[Date].[Date].[All Periods]

2

3-Jul-01

[Date].[Date].&[3]

Tuesday

7/3/2001

[Date].[Date].[All Periods]

3

Le query MDX predefinite compilate mediante Progettazione query MDX in modalità grafica includono solo MEMBER_CAPTION e UNIQUENAME per le proprietà delle dimensioni. Per impostazione predefinita, tali valori sono sempre di tipo String.

Se è necessaria una proprietà del membro nel tipo di dati originale, è possibile includere un'ulteriore proprietà MEMBER_VALUE modificando l'istruzione MDX predefinita in Progettazione query basata su testo. Nella semplice istruzione MDX seguente, MEMBER_VALUE è stata aggiunta all'elenco delle proprietà delle dimensioni da recuperare.

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

Le prime quattro righe visualizzate nel riquadro risultati MDX sono illustrate nella tabella seguente.

Month of Year

Order Count

January

2,481

February

2,684

March

2,749

April

2,739

Sebbene le proprietà facciano parte dell'istruzione MDX SELECT, non sono incluse nelle colonne del set di risultati. I dati sono tuttavia disponibili per un report mediante la caratteristica delle proprietà estese. Nel riquadro risultati di una query MDX di SQL Server Management Studio è possibile fare doppio clic sulla cella per visualizzarne i relativi valori delle proprietà, se impostati nel cubo. Se si fa doppio clic sulla prima cella Order Count contenente 1,379, verrà visualizzata una finestra popup con le proprietà della cella seguenti:

Proprietà

Valore

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 si crea un set di dati del report con questa query e lo si associa a una tabella, sarà possibile visualizzare la proprietà VALUE predefinita per un campo, ad esempio =Fields!Month_of_Year!Value. Se si imposta questa espressione come espressione di ordinamento per la tabella, la tabella verrà ordinata alfabeticamente in base al mese poiché il tipo di dati del campo Value è String. Per ordinare la tabella in modo che i mesi si trovino nell'ordine di successione nell'anno, con gennaio primo e dicembre ultimo, utilizzare l'espressione seguente:

=Fields!Month_of_Year("MEMBER_VALUE")

In questo modo i valori del campo verranno ordinati in base al tipo di dati integer originale dell'origine dei dati.