HotXLS Docs

Formül İzleme ve Denetimi

Genel bakış

Büyük Delphi modellerinde formül ağlarını ayıklamak, hücre değerlerinin giriş değişkenlerinden özet toplamalara nasıl aktığını izlemeyi gerektirir; HotXLS, formül öncekilerini ve bağımlılarını adım adım izlemek için denetim API'leri sağlar

Formül izleme API'si

TXLSFormulaTracer, bir formülü en içteki ifadelerinden dışa doğru indirger ve her adımın öncesindeki ve sonrasındaki kaynak aralıklarını, yerine değerleri konmuş ifadeleri, ara değerleri, adım türlerini ve operand yığınının birebir durumunu kaydeder

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 orijinal alt ifade metnini, Expression değerlendirilmiş operandların yerine konmuş değerlerini, Value ise adımın sonucunu taşır; StackBefore / StackAfter virgülle ayrılmış operand yığını anlık görüntüleridir, TokenStart / TokenEnd ise adımı kaynak formülde 1 tabanlı bir karakter aralığına sabitler

TraceReversed, aynı değiştirilemez adım verisini, geriye adım arayüzleri için ters değerlendirme sırasıyla döndürür

Etkileşimli hata ayıklayıcı

TXLSFormulaDebugger eksiksiz bir ayrıştırılmış düğüm modeli oluşturur ve ardından seçilmemiş lazy dalları değerlendirmeden gerçek yürütmeyi kaydeder

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

Döndürülen oturum; operandları, ara değerleri, kaynak aralıklarını, statik bağımlılıkları, değerlendirme sırasını, dal seçimlerini, atlanan düğümleri, standart formül hatalarını ve yayılan hataların kökenlerini açığa çıkarır. Her TXLSFormulaDebugNode ağaçtaki konumunu (NodeId, ParentNodeId, Depth), Kind ve State değerlerini, kaynak aralığını, operand düğüm kimliklerini ve değerlerini, seçilen Branch dalını ve kaydedilen hata üçlüsünü (ErrorCode, ErrorText, ErrorOriginNodeId) bildirir; her TXLSFormulaDependency ise bir öncekinin çözümlenmiş çalışma sayfasını, başvuru metnini, sınırlarını ve değerlendirme durumunu Kind ile birlikte bildirir

Cursor yöntemleri, uygulamanın formülü yeniden hesaplamadan oturum içinde ileri geri gitmesine veya tek bir düğüme atlamasına olanak tanır

Denetim özellikleri

Aşağıdaki temel formül denetimi arayüzlerini inceleyin