![]() |
#11 |
MCTS
|
Например, вот анализируется поле EnumItemValue из датасорса MSKOLAP_FactTypeView представления MSKOLAP_FactSalesView и выбирается соответвующее ему значение из Map amountMap
X++: public static server str getAmountFactType1() { #macrolib.MSKOLAP Map amountMap = new Map(Types::String, Types::String); amountMap.insert(#cLiteral(MSKOlapFactType::Qty), #cField(MSKOLAP_FactSalesAllDiscView, CustInvoiceTrans, Qty)); amountMap.insert(#cLiteral(MSKOlapFactType::Retail), MSKOLAP_FactSalesAllDiscView::amount()); amountMap.insert(#cLiteral(MSKOlapFactType::Sale), MSKOLAP_FactSalesAllDiscView::amountSales()); amountMap.insert(#cLiteral(MSKOlapFactType::Purch), MSKOLAP_FactSalesAllDiscView::amountPurch()); return #cSwitch(#cComparisonField(MSKOLAP_FactSalesView, MSKOLAP_FactTypeView, EnumItemValue), amountMap, #cLiteral(0)); } X++: #localmacro.cField SysComputedColumn::returnField(tableStr(%1), identifierStr(%2), fieldStr(%2, %3)) #endmacro #localmacro.cFieldL SysComputedColumn::returnField(tableStr(%1), identifierStr(%2), fieldStr(%3, %4)) #endmacro #localmacro.cAdd SysComputedColumn::add(%1, %2) #endmacro #localmacro.cMultiply SysComputedColumn::multiply(%1, %2) #endmacro #localmacro.cSubtract SysComputedColumn::subtract(%1, %2) #endmacro #localmacro.cLiteral SysComputedColumn::returnLiteral(%1) #endmacro #localmacro.cSwitch SysComputedColumn::switch(%1, %2, %3) #endmacro #localmacro.cComparisonField SysComputedColumn::comparisonField(tableStr(%1), identifierStr(%2), fieldStr(%2, %3)) #endmacro #localmacro.cComparisonFieldL SysComputedColumn::comparisonField(tableStr(%1), identifierStr(%2), fieldStr(%3, %4)) #endmacro #localmacro.cIf SysComputedColumn::if(%1, %2, %3) #endmacro #localmacro.cEqual SysComputedColumn::equalExpression(%1, %2) #endmacro #localmacro.cCast SysComputedColumn::cast(%1, %2) #endmacro #localmacro.isNullExpr SysComputedColumn::isNullExpression(%1) #endmacro
__________________
I could tell you, but then I would have to bill you. |
|
Теги |
olap, ssas, кубы |
|
|