HotXLS dokumentáció

Képletkövetés és auditálás

Áttekintés

A képlethálózatok hibakeresése nagy Delphi modellekben megköveteli a cellaértékek áramlásának nyomon követését a bemeneti változóktól az összegző aggregációkig; a HotXLS auditálási API-kat biztosít a képlet-előzmények és függőségek lépésről lépésre történő követéséhez

Képletkövetési API

A TXLSFormulaTracer a képletet a legbelső kifejezéseitől kezdve redukálja, és rögzíti a forrástartományokat, a behelyettesített kifejezéseket, a köztes értékeket, a lépések típusát valamint az operandusverem pontos állapotát minden lépés előtt és után

TXLSFormulaStepKind = (stPush, stReduce, stFunction);

TXLSFormulaStep = record
  Depth: Integer;
  Source: WideString;
  Expression: WideString;
  Value: Variant;
  StepKind: TXLSFormulaStepKind;
  StackBefore: WideString;
  StackAfter: WideString;
  TokenStart: Integer;
  TokenEnd: Integer;
end;
        

A Source az eredeti részkifejezés szövege, az Expression a már kiértékelt operandusokat helyettesíti az értékükkel, a Value pedig a lépés eredménye; a StackBefore / StackAfter vesszővel elválasztott operandusverem-pillanatfelvételek, a TokenStart / TokenEnd pedig a forrásképlet 1-alapú karaktertartományához rögzíti a lépést

A TraceReversed ugyanazt a nem módosítható lépésadatot adja vissza fordított kiértékelési sorrendben, lépés-vissza felületekhez

Interaktív debugger

A TXLSFormulaDebugger teljes elemzett csomópontmodellt épít, majd a tényleges végrehajtást rögzíti anélkül, hogy kiértékelné a ki nem választott lusta ágakat

TXLSFormulaDebugNodeKind = (fdnNumber, fdnString, fdnBoolean, fdnReference,
  fdnRange, fdnParentheses, fdnUnary, fdnPercent, fdnBinary, fdnFunction);
TXLSFormulaDebugState = (fdsPending, fdsEvaluated, fdsSkipped, fdsError);
TXLSFormulaDebugBranch = (fdbNone, fdbIfTrue, fdbIfFalse, fdbIfErrorValue,
  fdbIfErrorFallback, fdbChoose, fdbIfs, fdbSwitch);
TXLSFormulaDependencyKind = (fdkCell, fdkRange, fdkDefinedName);
        

A visszaadott munkamenet operandusokat, köztes értékeket, forrástartományokat, statikus függőségeket, kiértékelési sorrendet, elágazási döntéseket, kihagyott csomópontokat, szabványos képlethibákat és a továbbgyűrűzött hibák eredetét teszi elérhetővé. Minden TXLSFormulaDebugNode jelenti a fa pozícióját (NodeId, ParentNodeId, Depth), a Kind és State értékeket, a forrástartományt, az operanduscsomópont-ok azonosítóit és értékeit, a választott Branch-öt, valamint a rögzített hibahármas (ErrorCode, ErrorText, ErrorOriginNodeId) értékét; minden TXLSFormulaDependency a Kind mellett jelenti a feloldott munkalapot, a hivatkozás szövegét, a határokat és egy előd kiértékelési állapotát

A kurzormetódusokkal az alkalmazás előre vagy hátra léphet a munkamenetben, vagy egyetlen csomópontra ugorhat a képlet újraszámítása nélkül

Auditálási funkciók

Ellenőrizze a kulcsfontosságú felületeket a képletek auditálásához alább