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;