Interakcja z interfejsem bazy danych

Funkcje API

Każde okno aplikacji podstawowej ma przypisaną jakąś tabelę, która generuje zestaw zdarzeń, które można przechwycić w aplikacji API funkcją GetMessage i tym samym mieć wpływ na zachowanie się interfejsu bazy danych. Można odczytywać i modyfikować pola z poszczególnych rekordów tabeli - zarówno te oryginalne z aplikacji, a także nowe pola użytkownika. Nalezy odróżnić poniższe funkcje od funkcji operacji na bazie danych. Tutaj odczytujemy i zapisujemy wartości pól z tabel aplikacji R2Płatnik działającej równolegle z aplikacją API, zaś przy operacjach na bazie danych otwieramy własne tabele i to do nich odnoszą się funkcje odczytu i zapisu rekordów

procedure GetFieldAsString(TableName,Name,Value:PChar);stdcall;

Odczytuje wartość tekstową z pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Poniższe procedury służą do przekazywania do aplikacji API wartości pól rekordu, na którym znajduje się w danej chwili użytkownik w aplikacji podstawowej. Lista tabel i pól aplikacji jest dostępna w załączniku. Odczytać wartość pola można w dowolnym momencie, aczkolwiek pomocne może być tutaj przechwycenie zdarzenia Change o numerze 1020, które mówi nam jakie pole zostało zmienione w danej chwili przez użytkownika.


function GetFieldAsInt(TableName,Name:PChar):integer;stdcall;

Odczytuje wartość liczbową z pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Zwraca wartość liczbową pola tabeli z rekordu, na którym znajduje się w danej chwili użytkownik w aplikacji podstawowej.

Uwagi

Lista tabel i pól aplikacji jest dostępna w załączniku


function GetFieldAsBool(TableName,Name:PChar):Boolean;stdcall;

Odczytuje wartość logiczną z pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Zwraca wartość logiczną pola tabeli z rekordu, na którym znajduje się w danej chwili użytkownik w aplikacji podstawowej.

Uwagi

Lista tabel i pól aplikacji jest dostępna w załączniku


function GetFieldAsFloat(TableName,Name:PChar):Double;stdcall;

Odczytuje wartość zmiennoprzecinkową z pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Zwraca wartość zmiennoprzecinkową pola tabeli z rekordu, na którym znajduje się w danej chwili użytkownik w aplikacji podstawowej.

Uwagi

Lista tabel i pól aplikacji jest dostępna w załączniku


function GetFieldAsDateTime(TableName,Name:PChar):Double;stdcall;

Odczytuje wartość typu data/czas z pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Zwraca wartość typu data/czas pola tabeli z rekordu, na którym znajduje się w danej chwili użytkownik w aplikacji podstawowej. Część całkowita to liczba dni od 31-12-1899, zaś część ułamkowa to czas w milisekundach jaki upłynął od godz. 0:00.

Uwagi

Lista tabel i pól aplikacji jest dostępna w załączniku


procedure SetFieldBegin(TableName:PChar);stdcall;

Rozpoczyna procedurę modyfikacji pól w tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Jeśli chcemy zmienić wartości jakichkolwiek pól w tabeli przypisanej do danego okna, najpierw należy zainicjować procedurę modyfikacji. Najlepiej to zrobić wywołując SetFieldBegin w aplikacji API w momencie przechwycenia zdarzenia AfterInsert lub AfterEdit tabeli (zdarzenia numer 1013 i 1014)

Przykład

if InitMessageQueue then begin
  repeat
    if GetMessage(Msg) then begin
      1013,1014:SetFieldBegin(JakisForm)
      1018:begin
        SetFieldAsString(JakisForm,'PoleX','NowaWartoscPola');
        SetFieldEnd(JakisForm)
      end;
    end;
  until False
  DestroyMessageQueue;
end;


procedure SetFieldAsString(TableName,Name,Value:PChar);stdcall;

Zapisuje wartość tekstową do pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Poniższe procedury służą do przekazywania z aplikacji API do aplikacji podstawowej, wartości pól rekordu, na którym znajduje się w danej chwili użytkownik w aplikacji podstawowej. Najpierw należy zainicjować procedurę modyfikacji funkcją SetFieldBegin


procedure SetFieldAsInt(TableName,Name:PChar; Value:integer);stdcall;

Zapisuje wartość liczbową do pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Najpierw należy zainicjować procedurę modyfikacji funkcją SetFieldBegin


procedure SetFieldAsBool(TableName,Name:PChar; Value:Boolean);stdcall;

Zapisuje wartość logiczną do pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Najpierw należy zainicjować procedurę modyfikacji funkcją SetFieldBegin


procedure SetFieldAsFloat(TableName,Name:PChar; Value:Double);stdcall;

Zapisuje wartość zmiennoprzecinkową do pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Najpierw należy zainicjować procedurę modyfikacji funkcją SetFieldBegin


procedure SetFieldAsDateTime(TableName,Name:PChar; Value:Double);stdcall;

Zapisuje wartość typu data/czas do pola tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Najpierw należy zainicjować procedurę modyfikacji funkcją SetFieldBegin


procedure SetFieldEnd(TableName:PChar);stdcall;

Kończy procedurę modyfikacji pól w tabeli działającej aplikacji R2Płatnik

Parametry

Zwracane wartości

Brak

Uwagi

Jeśli chcemy zatwierdzić zmiany wartości jakichkolwiek pól w tabeli przypisanej do danego okna, najpierw należy zakończyć procedurę modyfikacji. Należy to zrobić wywołując SetFieldEnd w aplikacji API w momencie przechwycenia zdarzenia AfterPostAddon tabeli (zdarzenie numer 1018)


procedure AddUserField(TableName,FieldName,DisplayLabel:PChar; FieldType:Byte; Size:integer; Visible,ReadOnly:Boolean);stdcall;

Dodaje pole użytkownika do dowolnej tabeli aplikacji

Parametry

Zwracane wartości

Brak

Uwagi

Brak


procedure AddUserLookupField(TableName,FieldName,DisplayLabel:PChar; FieldType:Byte; Size:integer; Visible,ReadOnly:Boolean; LookupTable,KeyField,LookupKeyField,LookupResultField:PChar);stdcall;

Dodaje pole użytkownika typu "wgląd do innej tabeli" (lookup)

Parametry

Zwracane wartości

Brak

Uwagi

Lista tabel aplikacji jest dostępna w załączniku


procedure CreateUserTable(Name,TableName, MasterTable:PChar; Kind:Byte; Bin, LPR, Visible, Auto:Boolean);stdcall;

Tworzy nową tabelę użytkownika do aplikacji

Parametry

Zwracane wartości

Brak

Uwagi

Brak