2016-03-29 9 views
3

Ich arbeite an einem SSAS-Cube für Verträge für ein Energieunternehmen.SSAS-abhängiger FormatString zur Anzeige verschiedener Werteeinheiten

Ein Maß ist "Vertragsvolumen". Sie haben sowohl Strom- als auch Gasverträge. Die Einheit des Vertragsvolumens ist also entweder km3 oder MWh.

Die Maßnahme "Vertragsvolumen" sollte vorzugsweise nicht in Gas und El aufgeteilt werden, sondern in der gleichen Größenordnung gehalten werden.

Wie zeige ich dem Endbenutzer die verschiedenen Einheiten an? Vorzugsweise würde ich FormatString verwenden, das vom Vertragstyp abhängt (die Informationen befinden sich sowohl in der zugrunde liegenden Faktentabelle als auch in einer Dimension). Kann ich das machen?

Gibt es auf jeden Fall kann ich machen Gas aggregierbar mit Gas und el aggregierbar mit el - aber nicht gasaggregierbar el?

Edit: SQL Server 2008 R2 Mehrdimensionale

Edit: Danke @ Mike Honig Hier ist der Code, den ich in der Script-Ansicht Schreiben endete:

SCOPE 
    (
     {[Measures].[Measure 1], 
     [Measures].[Measure 2], 
     [Measures].[Measure 3], 
     [Measures].[Measure 4]} 
    ); 

    SCOPE([Contract Type].[Contract types].[Energy].&[El].Children); 
    FORMAT_STRING (This) = "#,##0.00 \k\W\h;-#,##0.00 \k\W\h"; 
    END SCOPE; 
    SCOPE ([Contract Type].[Contract types].[Energy].&[El]); 
    FORMAT_STRING (This) = "#,##0.00 \k\W\h;-#,##0.00 \k\W\h"; 
    END SCOPE; 

    SCOPE([Contract Type].[Contract types].[Energy].&[Gas].Children); 
    FORMAT_STRING (This) = "#,##0.00 k\m\3;-#,##0.00 \k\m\3"; 
    END SCOPE; 
    SCOPE ([Contract Type].[Contract types].[Energy].&[Gas]); 
    FORMAT_STRING (This) = "#,##0.00 \k\m\3;-#,##0.00 \k\m\3"; 
    END SCOPE; 
END SCOPE; 
+0

Ist diese SSAS mehrdimensional oder tabellarisch? –

Antwort

3

Ich denke, Sie haben 2 Herausforderungen - aber beide können mit einem Paar SCOPE-Anweisungen gelöst werden.

In der Registerkarte Berechnungen des Cubes würde ich zuerst ein Calculated Member in der Measures-Hierarchie mit dem Wert Expression of NULL erstellen. Dann (in der Skriptansicht) würde ich ein Paar SCOPE-Anweisungen hinzufügen (für Gas und El). Der Subcube-Ausdruck für jedes Element würde das neue berechnete Measure sowie das Dimensionselement angeben, das Gas bzw. EL angibt.

Anschließend können Sie in jeder SCOPE-Anweisung die Quellkennzahl für Gas und El unter Verwendung der This =-Syntax angeben und dann das Kennzahlformat unter Verwendung der FORMAT_STRING (This) =-Syntax angeben.

SCOPE ... END SCOPE kann verschachtelt werden. Wenn Sie dies bevorzugen, können Sie diese 2 SCOPEs in zusätzliches übergeordnetes SCOPE umbrechen, das die berechnete Kennzahl angibt, sodass Sie diesen Kennzahlnamen nicht wiederholen müssen.