123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: OQP
- (C) Copyright IBM Corp. 2005, 2010
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM corp.
- -->
-
- <!-- When a IBM Cognos developer modifies a rule, it is important to add an english equivalent of it in mdds/docs/RCL001, MDDS Expression Formatting Rules.doc
- in section 4.1 in order to keep the spec up to date. -->
- <expressionFormatRules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="providerFormatRulesXQE.xsd">
- <defaultTransformationLayer>
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="present"/>
- <result state="operandValue"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="notPresent"/>
- <result state="left"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- <result state="right"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="eq"/>
- <result state="left"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="notPresent"/>
- </transformation>
- </defaultTransformationLayer>
- <propertyTransformationLayer>
- <!--Common properties-->
- <property name="xml:lang" valueType="text" formatTypes="all"/>
- <property name="unitOfMeasure" valueType="text" defaultValue="*" formatTypes="all" hidden="true">
- <transformation xsi:type="binaryTransformation"> <!-- When both operands have different unit of measure symbols, the result will not have one -->
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="default"/>
- </transformation>
- <transformation xsi:type="caseTransformation">
- <case>
- <condition xsi:type="orCondition"> <!-- When only one operand has a unit of measure symbol... -->
- <condition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="notPresent"/>
- <condition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- </condition>
- <transformation xsi:type="caseTransformation">
- <case>
- <condition xsi:type="orCondition"> <!-- If that symbol is an asterisk then keep it -->
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="unitOfMeasure" value="*"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="unitOfMeasure" value="*"/>
- </condition>
- <transformation xsi:type="binaryTransformation"><!--Since the result will be a mixed unit, the format type should be numeric. We don't want a $#.##*-->
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default" propertyName="formatType"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </case>
- <case> <!-- If the other operand is a constant then keep the unit symbol -->
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="constantFormat"/>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="dontCare"/>
- <result state="left"/>
- </transformation>
- </case>
- <case>
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="constantFormat"/>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="present"/>
- <result state="right"/>
- </transformation>
- </case>
- </transformation>
- <transformation xsi:type="binaryTransformation"> <!-- Otherwise don't keep the symbol -->
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="notPresent"/>
- </transformation>
- </case>
- </transformation>
- </property>
- <!--Format pattern-->
- <property name="formatType" valueType="text" defaultValue="numberFormat" formatTypes="all" hidden="true">
- <transformation xsi:type="caseTransformation" alwaysApply="true">
- <case>
- <condition xsi:type="orCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="unitOfMeasure" value="*"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="unitOfMeasure" value="*"/>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </case>
- </transformation>
- </property>
- <!--Decimal precision-->
- <property name="decimalSize" valueType="number" defaultValue="3" formatTypes="all">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="max"/>
- </transformation>
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalDelimiter" valueType="text" defaultValue="." formatTypes="all"/>
- <!--Scale-->
- <property name="scale" valueType="number" formatTypes="all">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="min"/>
- </transformation>
- </property>
- <!--Digit grouping-->
- <property name="useGrouping" valueType="boolean" formatTypes="all">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="true"/>
- </transformation>
- </property>
- <property name="groupDelimiter" valueType="text" formatTypes="all"/>
- <property name="groupSize" valueType="number" formatTypes="all"/>
- <!--Negative Number Sign -->
- <property name="sign" valueType="text" formatTypes="all"/>
- <property name="useTrailingSign" valueType="boolean" formatTypes="all"/>
- <!--Number format properties-->
- <property name="useScientific" valueType="boolean" formatTypes="constantFormat;numberFormat">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="true"/>
- </transformation>
- </property>
- <property name="exponentSymbol" valueType="text" formatTypes="constantFormat;numberFormat"/>
- <property name="exponentSize" valueType="number" formatTypes="constantFormat;numberFormat"/>
- <!--Currency format properties-->
- <property name="currencyCode" valueType="text" formatTypes="currencyFormat">
- <transformation xsi:type="binaryTransformation" alwaysApply="true">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result propertyName="unitOfMeasure" state="default"/>
- </transformation>
- <transformation xsi:type="binaryTransformation" alwaysApply="true">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result propertyName="formatType" state="default"/>
- </transformation>
- <transformation xsi:type="caseTransformation" alwaysApply="true">
- <case>
- <condition xsi:type="andCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="notPresent"/>
- <result state="default" propertyName="unitOfMeasure"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- <result state="default" propertyName="unitOfMeasure"/>
- </transformation>
- </case>
- </transformation>
- </property>
- <property name="currencySymbol" valueType="text" formatTypes="currencyFormat">
- <transformation xsi:type="binaryTransformation" alwaysApply="true">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="default" propertyName="unitOfMeasure"/>
- </transformation>
- <transformation xsi:type="binaryTransformation" alwaysApply="true">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="default" propertyName="formatType"/>
- </transformation>
- </property>
- <property name="intlCurrencySymbol" valueType="text" formatTypes="currencyFormat">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="notPresent"/>
- <result state="notPresent"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- <result state="notPresent"/>
- </transformation>
- </property>
- <property name="useIntlSymbol" valueType="boolean" formatTypes="currencyFormat">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="true"/>
- </transformation>
- </property>
- <property name="useTrailingSymbol" valueType="boolean" formatTypes="currencyFormat"/>
- <!--Percent format properties-->
- <property name="percentSymbol" valueType="text" formatTypes="percentFormat"/>
- <property name="percentScale" valueType="number" formatTypes="percentFormat">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="min"/>
- </transformation>
- </property>
- <!--Date format properties-->
- <property name="dateStyle" valueType="text" formatTypes="dateFormat"/>
- <property name="displayOrder" valueType="text" formatTypes="dateFormat"/>
- <property name="showDays" valueType="text" formatTypes="dateFormat"/>
- <!--Time format properties-->
- <property name="showAmPm" valueType="boolean" formatTypes="timeFormat"/>
- <property name="showTimeZone" valueType="boolean" formatTypes="timeFormat"/>
- <property name="showHours" valueType="text" formatTypes="timeFormat"/>
- <property name="showMinutes" valueType="boolean" formatTypes="timeFormat"/>
- <property name="showSeconds" valueType="boolean" formatTypes="timeFormat"/>
- <property name="showMilliseconds" valueType="boolean" formatTypes="timeFormat"/>
- <property name="clock" valueType="text" formatTypes="timeFormat"/>
- </propertyTransformationLayer>
- <typeTransformationLayer>
- <typeTransformation>
- <formatType typeName="constantFormat"/>
- <formatType typeName="timeFormat"/>
- <formatType typeName="dateFormat"/>
- <formatType typeName="percentFormat"/>
- <formatType typeName="currencyFormat"/>
- <formatType typeName="numberFormat"/>
- </typeTransformation>
- </typeTransformationLayer>
- <expressionTransformationLayer>
- <expression name="Concatenation" mdxKeyword=" || "/>
- <!-- string concatenation is "+" in MS and "||" in the other MDX versions -->
- <expression name="Addition" mdxKeyword=" + "/>
- <expression name="Subtraction" mdxKeyword=" - "/>
- <expression name="Multiplication" mdxKeyword=" * ">
- <typeTransformation>
- <formatType typeName="constantFormat"/>
- <formatType typeName="percentFormat"/>
- <formatType typeName="numberFormat"/>
- <formatType typeName="currencyFormat"/>
- </typeTransformation>
- <property name="unitOfMeasure">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="notPresent"/>
- <result state="left"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- <result state="right"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="caseTransformation">
- <case>
- <condition xsi:type="andCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- <condition xsi:type="notCondition">
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="currencyFormat"/>
- </condition>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="dontCare"/>
- <result state="left"/>
- </transformation>
- </case>
- <case>
- <condition xsi:type="andCondition">
- <condition xsi:type="notCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="present"/>
- <result state="right"/>
- </transformation>
- </case>
- <case>
- <condition xsi:type="andCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="empty" rightHandSide="empty"/>
- <result state="empty"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="max"/>
- </transformation>
- </case>
- </transformation>
- </property>
- </expression>
- <expression name="Division" mdxKeyword=" / ">
- <typeTransformation>
- <formatType typeName="constantFormat"/>
- <formatType typeName="percentFormat"/>
- <formatType typeName="numberFormat"/>
- <formatType typeName="currencyFormat"/>
- </typeTransformation>
- <property name="unitOfMeasure">
- <transformation xsi:type="caseTransformation">
- <case>
- <condition xsi:type="andCondition"> <!-- If the numerator is not a currency and the denominator is, then the result is assigned an unknown unit. -->
- <condition xsi:type="notCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <transformation xsi:type="binaryTransformation"><!--Since the result will be a mixed unit, the format type should be numeric. We don't want a #.##%*-->
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default" propertyName="formatType"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </case>
- </transformation>
- <!--Numerator has a unit of measure-->
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="notPresent"/>
- <result state="left"/>
- </transformation>
- <!--Denominator has a unit of measure-->
- <transformation xsi:type="binaryTransformation"><!--Since the result will be a mixed unit, the format type should be numeric. We don't want a $#.##*-->
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- <result state="default" propertyName="formatType"/>
- </transformation>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="notPresent" rightHandSide="present"/>
- <result state="default"/>
- </transformation>
- <!--Both operands have the same unit of measure-->
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="eq"/>
- <result state="notPresent"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="caseTransformation">
- <case>
- <condition xsi:type="andCondition"> <!-- If the numerator is a currency and the denominator is a constant, number, percentage or it's undefined, then the result has as many decimals as the numerator -->
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- <condition xsi:type="orCondition">
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="numberFormat"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="percentFormat"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="constantFormat"/>
- <condition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="notPresent"/>
- </condition>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="dontCare"/>
- <result state="left"/>
- </transformation>
- </case>
- </transformation>
- <transformation xsi:type="binaryTransformation"> <!-- Else the result has the default number of decimals -->
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="formatType">
- <transformation xsi:type="caseTransformation">
- <case>
- <condition xsi:type="orCondition"> <!-- If the denominator is a constant, a number, percentage, or it's undefined, then the result has the same type as the numerator -->
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="numberFormat"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="percentFormat"/>
- <condition xsi:type="valueCondition" operandIndex="1" propertyName="formatType" value="constantFormat"/>
- <condition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="notPresent"/>
- </condition>
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="dontCare"/>
- <result state="left"/>
- </transformation>
- </case>
- </transformation>
- <transformation xsi:type="binaryTransformation"> <!-- In all other cases, the result is a number -->
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Hyperbolic Tangent" mdxKeyword="TANHYP">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Hyperbolic Cosine" mdxKeyword="COSHYP">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Hyperbolic Sine" mdxKeyword="SINHYP">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Tangent" mdxKeyword="TAN">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Cosine" mdxKeyword="COS">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Sine" mdxKeyword="SIN">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Inverse Tangent" mdxKeyword="ARCTAN">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Inverse Cosine" mdxKeyword="ARCCOS">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Inverse Sine" mdxKeyword="ARCSIN">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Log Base 10" mdxKeyword="LOG10">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Natural Log" mdxKeyword="LN">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation" alwaysApply="true">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Exponential" mdxKeyword="EXP">
- <property name="formatType">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Square Root" mdxKeyword="SQRT">
- <property name="decimalSize">
- <transformation xsi:type="caseTransformation" alwaysApply="true">
- <case>
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="empty"/>
- <result state="default"/>
- </transformation>
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="present"/>
- <result state="operandValue"/>
- </transformation>
- </case>
- <case>
- <condition xsi:type="notCondition">
- <condition xsi:type="valueCondition" operandIndex="0" propertyName="formatType" value="currencyFormat"/>
- </condition>
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="default"/>
- </transformation>
- </case>
- </transformation>
- </property>
- <property name="unitOfMeasure">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="dontCare"/>
- <result state="notPresent"/>
- </transformation>
- </property>
- </expression>
- <expression name="Absolute Value" mdxKeyword="ABS">
- <property name="decimalSize">
- <transformation xsi:type="unaryTransformation">
- <unaryCondition operandState="present"/>
- <result state="operandValue"/>
- </transformation>
- </property>
- </expression>
- <expression name="Round" mdxKeyword="ROUND">
- <property name="decimalSize">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Round Down" mdxKeyword="ROUNDDOWN">
- <property name="decimalSize">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Round Up" mdxKeyword="ROUNDUP">
- <property name="decimalSize">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression name="Power" mdxKeyword="POWER">
- <property name="formatType">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="present" rightHandSide="dontCare"/>
- <result state="left"/>
- </transformation>
- </property>
- </expression>
- <!--Aggregation functions-->
- <expression mdxKeyword="AGGREGATE" name="Aggregate"/>
- <expression mdxKeyword="AVG" name="Average"/>
- <expression mdxKeyword="SUM" name="Sum"/>
- <expression mdxKeyword="MIN" name="Minimum"/>
- <expression mdxKeyword="MAX" name="Maximum"/>
- <expression mdxKeyword="STDDEV" name="Standard Deviation">
- <property name="formatType">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryComparisonCondition" comparison="neq"/>
- <result state="default"/>
- </transformation>
- </property>
- </expression>
- <expression mdxKeyword="VAR" name="Variance">
- <property name="decimalSize">
- <transformation xsi:type="binaryTransformation" alwaysApply="true">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="formatType">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="unitOfMeasure">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="notPresent"/>
- </transformation>
- </property>
- </expression>
- <expression mdxKeyword="MEDIAN" name="Median"/>
- <expression mdxKeyword="COUNT" name="Count">
- <property name="decimalSize">
- <transformation xsi:type="binaryTransformation" alwaysApply="true">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="empty"/>
- </transformation>
- </property>
- <property name="formatType">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="default"/>
- </transformation>
- </property>
- <property name="unitOfMeasure">
- <transformation xsi:type="binaryTransformation">
- <binaryCondition xsi:type="binaryPatternCondition" leftHandSide="dontCare" rightHandSide="dontCare"/>
- <result state="notPresent"/>
- </transformation>
- </property>
- </expression>
- <!--PCODP string functions-->
- <expression name="Contains" mdxKeyword="CONTAINS"/>
- <expression name="Starts With" mdxKeyword="STARTSWITH"/>
- <expression name="Ends With" mdxKeyword="ENDSWITH"/>
- <expression name="To Uppercase" mdxKeyword="TOUPPER"/>
- <expression name="To Lowercase" mdxKeyword="TOLOWER"/>
- </expressionTransformationLayer>
- </expressionFormatRules>
|