Objekt TKAPBtrTable

Z K.A.P.
Verze z 20. 7. 2021, 17:58, kterou vytvořil Grepl (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaciSkočit na vyhledávání

Objekt TKAPBtrTable

Tato třída slouží pro manipulaci s databázovými tabulkami ve skriptovacím programovacím jazyku. Je možné otevřít tabulku (konkrétní složka je určena automaticky na základě aktuální databáze, do které je uživatel přihlášen), procházet záznamy tabulky, filtrovat záznamy, načítat či měnit hodnoty z jednotlivých polí záznamu apod.

TKAPBtrTable = class(TDataset)
 constructor Create;  // vlastníkem objektu je Application
 constructor CreateA(AOwner: TComponent); // zde můžete určit vlastníka objektu - nutné např. v případě, že chcete objekt použít do QR2 sestavy
 function BookmarkValid(Bookmark: TBookmark): Boolean;
 function CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer;
 function ControlsDisabled: Boolean;
 function CopyFields(Source: TDataSet): Integer;
 function FieldByName(const FieldName: String): TField;
 function FindField(const FieldName: String): TField;
 function FindKey(const KeyValues: array of const): Boolean;
 function GetBookmark: TBookmark;
 function GetBtrRecordLength: LongInt;
 function GotoKey: Boolean;
 function IsEmpty: Boolean;
 function IsLinkedTo(DataSource: TDataSource): Boolean;
 function IsRangeApplied: Boolean;
 function IsSequenced: Boolean;
 function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;
 function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant;
 function MoveBy(Distance: Integer): Integer;
 function UpdateStatus: TUpdateStatus;
 procedure Append;
 procedure AppendRecord(const Values: array of const);
 procedure ApplyRange;
 procedure Cancel;
 procedure CancelRange;
 procedure ClearFields;
 procedure Close;
 procedure CopyTable(const NewTableName: string);
 procedure CreateTable(Rewrite: Boolean);
 procedure Delete;
 procedure DeleteTable;
 procedure DisableControls;
 procedure Edit;
 procedure EmptyTable;
 procedure EnableControls;
 procedure First;
 procedure FreeBookmark(Bookmark: TBookmark);
 procedure GetDetailDataSets(List: TList);
 procedure GetDetailLinkFields(MasterFields, DetailFields: TList);
 procedure GetFieldList(List: TList; const FieldNames: String);
 procedure GetFieldNames(List: TStrings);
 procedure GetIndexInfo;
 procedure GetIndexNames(List: TStrings);
 procedure GotoBookmark(Bookmark: TBookmark);
 procedure GotoCurrent(Table: TBtrTable);
 procedure GotoNearest;
 procedure CheckBrowseMode;
 procedure Insert;
 procedure InsertRecord(const Values: array of const);
 procedure Last;
 procedure Next;
 procedure Open;
 procedure Post;
 procedure Prior;
 procedure Refresh;
 procedure Resync(Mode: TResyncMode);
 procedure SetKey;
 procedure SetRange(const StartValues, EndValues: array of const);
 property Active: Boolean;
 property AutoCalcFields: Boolean;
 property DatabaseName: string;
 property Filter: string;
 property Filtered: Boolean;
 property TableName: string;
 property TableNextId: Word default 0;
 property OpenMode: TBtrOpenMode default openNormal;
 property ReadOnly: Boolean;
 property TableOwner: string;
 property SortFilter: string;
 property TableOptions: TBtrTableOptions default [toAutoEraseFilter];
 property Locale: TBtrLocale default lcAuto;
 property UpgradeMode: TUpgradeMode default umQuestion;
 property IndexFieldNames: string;
 property IndexName: string;
 property MasterFields: string;
 property MasterSource: TDataSource;
 function FieldAsBase64(Field: TField): string; // vrací hodnotu fieldu ve formátu BASE64 (vhodné pro binární pole)
 function ExtOpeClear(): TKAPBtrTable; // zruší veškeré nastavení pro rozšířenou práci s TKAPBtrTable
 function ExtOpeWhere(FieldName: string; ComparisonCode: byte; Value: variant; AndOr: byte = 1): TKAPBtrTable;  // např. ('CisloDokl', _ExtOpe_GreaterOrEqual_, 1000, _ExtOpe_And_)
 function ExtOpeWhereAsString(FieldName: string; ComparisonCode: byte; Value: string; AndOr: byte = 1): TKAPBtrTable; // např. ('CisloDokl', _ExtOpe_GreaterOrEqual_, '1000', _ExtOpe_And_)
 function ExtOpeSelect(FieldNames: string): TKAPBtrTable;   // např. ('Sklad;TypDokladu;ICO');
 function ExtOpeSelectByPos(SegmentLen: word; SegmentPos: word): TKAPBtrTable;
 procedure ExtOpeActivate(BufferSize : word = 0; MaxRecords: word = 0; MaxSkipped : word = 0);  // aktivuje použití výše uvedených rozšířených příkazů
 procedure ExtOpeDeactivate;
 function ExtOpeState: byte; // viz konstanty _CacheXXX
end;

const

_ExtOpe_End_            = 0;
_ExtOpe_And_            = 1;
_ExtOpe_Or_             = 2;
_ExtOpe_Equal_          = 1;
_ExtOpe_Greater_        = 2;
_ExtOpe_Less_           = 3;
_ExtOpe_NotEqual_       = 4;
_ExtOpe_GreaterOrEqual_ = 5;
_ExtOpe_LessOrEqual_    = 6;
_ExtOpe_AltColSeq_      = 32;
_ExtOpe_Field_          = 64;
_ExtOpe_UpCase_         = 128;
_CacheNotInit_ = 0;
_CacheInit0_   = 1;
_CachePrepared_= 2;
_CacheReaded_  = 3;
_CacheInitReaded_ = 4;

Viz příklad Příklady PASCAL