Cube Formula Samples |
Top Previous Next |
/////////////////////////////////// // Sample SLICEFIELDS Formulas - Detail Level formula ///////////////////////////////////
procedure DetailReceiptsOnGetValue(var Result: Variant; const Final: Boolean); const RecType = 'RECEIPT'; begin If SliceFields['REC_TYPE'].currentvalue = RecType then Result := Result + SliceFields['AMOUNT'].currentvalue; end;
///////////////////////////////// // Sample MEASURE Formulas /////////////////////////////////
procedure PCNT_COMPLETEOnGetValue(var Result: Variant); var abNum : variant; abDen : variant; begin abNum := Measures['COST_AMOUNT'].currentvalue; if VarType(abNum) <= 1 then abNum := 0; abDen := Measures['ESTIMATED_COST'].currentvalue; if VarType(abDen) <= 1 then abDen := 0; if abDen = 0 then Result := 100.00 else Result := abNum / abDen * 100; if Result > 100.00 then Result := 100.00;
end;
procedure EARNINGSOnGetValue(var Result: Variant); var abPcnt : variant; abContr : variant; begin PCNT_COMPLETEOnGetValue(abPcnt); abContr := Measures['CONTRACT_AMOUNT'].currentvalue; Result := abContr * abPcnt / 100; end;
procedure PCNT_COMPLOnGetValue(var Result: Variant); var abPcntDisplay : variant; begin EARNINGSOnGetValue(abPcntDisplay); Result := abPcntDisplay * 100; end;
procedure OVER_BILLINGSOnGetValue(var Result: Variant); var abBilled : variant; abEarned : variant; begin abBilled := Measures['BILLINGS'].currentvalue; if VarType(abBilled) <= 1 then abBilled := 0; EARNINGSOnGetValue(abEarned); if VarType(abEarned) <= 1 then abEarned := 0; Result := abBilled - abEarned; if Result < 0 then Result := 0; end;
procedure UNDER_BILLINGSOnGetValue(var Result: Variant); var abBilled : variant; abEarned : variant; begin abBilled := Measures['BILLINGS'].currentvalue; if VarType(abBilled) <= 1 then abBilled := 0; EARNINGSOnGetValue(abEarned); if VarType(abEarned) <= 1 then abEarned := 0; Result := abBilled - abEarned; if Result > 0 then Result := 0; end;
procedure RECEIVABLESOnGetValue(var Result: Variant); var abBilled : variant; abReceived : variant; begin abBilled := Measures['BILLINGS'].currentvalue; if VarType(abBilled) <= 1 then abBilled := 0; abReceived := Measures['RECEIPTS'].currentvalue; if VarType(abReceived) <= 1 then abReceived := 0; Result := abBilled - abReceived; end;
procedure PROJECTED_PROFITOnGetValue(var Result: Variant); var abContr : variant; abCost : variant; abEst : variant; begin abContr := Measures['CONTRACT_AMOUNT'].currentvalue; if VarType(abContr) <= 1 then abContr := 0; abCost := Measures['COST_AMOUNT'].currentvalue; if VarType(abCost) <= 1 then abCost := 0; abEst := Measures['ESTIMATED_COST'].currentvalue; if VarType(abEst) <= 1 then abEst := 0; if abCost > abEst then Result := abContr - abCost else Result := abContr - abEst;
end;
procedure COST_VARIANCEOnGetValue(var Result: Variant); var abCost : variant; abEst : variant; begin abCost := Measures['COST_AMOUNT'].currentvalue; if VarType(abCost) <= 1 then abCost := 0; abEst := Measures['ESTIMATED_COST'].currentvalue; if VarType(abEst) <= 1 then abEst := 0; Result := abEst - abCost;
end;
|