HotXLS dokumentacija

Formulių sekimas ir auditas

Apžvalga

Formulių tinklų klaidų šalinimas dideliuose Delphi modeliuose reikalauja sekti, kaip langelių reikšmės teka iš įvesties kintamųjų į suvestines agregacijas; HotXLS pateikia audito API, kurie žingsnis po žingsnio seka formulių pirmtakus ir priklausomuosius

Formulių sekimo API

Klasė TXLSFormulaTracer sekimo skaičiavimo ciklų metu stebi skaičiavimo šuolius, rinkdama tikslinių langelių koordinates ir aktyvius pavidalus vykdant skaičiavimo šakas

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;
        

Source — originalus po-išraiškos tekstas, Expression jau ivertintus operandus pakeičia jų reikšmėmis, o Value — žingsnio rezultatas; StackBefore / StackAfter — kableliais atskirtos operandų krūvos momentinės kopijos, o TokenStart / TokenEnd žingsnį susieja su 1 pagrindo simbolių intervalu šaltinio formulėje

TraceReversed grąžina tuos pačius nekintamus žingsnių duomenis atvirkštine vertinimo tvarka — naudinga žingsnio-atgal sąsajoms

Interaktyvioji derintojas

TXLSFormulaDebugger suformuoja pilną išanalizuotų mazgų modelį ir tuomet įrašo realų vykdymą, nevertindamas nepasirinktų vėlinamų šakų

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);
        

Grąžintasis seansas atskleidžia operandus, tarpines reikšmes, šaltinio intervalus, statines priklausomybes, vertinimo tvarką, šakų pasirinkimus, praleistus mazgus, standartines formulės klaidas ir plistų klaidų kilmę. Kiekvienas TXLSFormulaDebugNode praneša savo medžio poziciją (NodeId, ParentNodeId, Depth), Kind ir State, šaltinio intervalą, operandų mazgų id ir reikšmes, pasirinktąją Branch bei užfiksuotą klaidų tripletą (ErrorCode, ErrorText, ErrorOriginNodeId); kiekviena TXLSFormulaDependency praneša Kind ir vieno precedentu išspręstą darbalapį, nuorodos tekstą, ribas ir vertinimo būseną

Žymeklio metodai leidžia programai judėti pirmyn ar atgal per seansą arba peršokti prie vieno mazgo, neperkaičiuojant formulės

Audito galimybės

Peržiūrėkite pagrindines formulių audito sąsajas toliau