OBS/System/OBS Anleitung Customize Edit

Aus OBS Wiki
Wechseln zu: Navigation, Suche
System

Ticket-System

OBS Anleitung Customize Edit

Bei einem Benutzer kann man über F9 Layout mit Level 5 den Schalter Customize aktivieren.

Der Firmenbeauftragte kann dann für den Benutzer Anpassungen durchführen. Nach der Anpassung muss Customize deaktiviert werden.

FRMEDITCUSTOMIZE 1.jpg

Aufruf über Strg+F12:

  • in der Liste
  • im Edit-Dialog
  • in den Auswahlboxen
  • in den Auswertungen (F3 Formulare/Exports)
  • in der Positionserfassung

Mit rechter Maustaste und Strg können auch die Weitere Funktionen (in den Listen) bearbeitet werden.

FRMEDITCUSTOMIZE 2.jpg

Die Benutzeraktivitäten können ebenfalls eingeschränkt werden:

FRMEDITCUSTOMIZE 3.jpg

Name des Edit's ist der jeweilige Klassenname.
Das Makro gilt standardmäßig für alle User (XXX); es kann aber auch ein spezifischer Benutzer angegeben werden. Folgende Aufrufe sind möglich:

Edit Formulare

InitScripter wird nach dem Create des Fensters aufgerufen

Edit Kontroll Funktionen Tastatur Funktionen
InitScripter
CheckIfChanged OnF1
OnESC OnF2
OnEdInit OnF3
OnEdFormInit OnF4
OnEdClose OnF5
OnEdRead OnF6
OnEdShow OnF7
OnEdVorb OnF8
OnEdCheck OnF9
OnEdSave OnF10
OnEdSaveDirect OnPGDN
OnEdReadDirect OnPGUP
OnRETURN

Jede Makro Funktion hat 2 Aufrufe

  1. Bevor die interne Delphi Funktion aufgerufen wird, gibt es einen Makro-Aufruf mit der Erweiterung Before_. Hat die Funktion den Rückgabewert Ready, so wird die interne Delphi-Funktion nicht mehr aufgerufen. Diese Funktion wird unabhängig von der Delphi Funktion aufgerufen.
  2. Standard Aufruf nach der internen Delphi Funktion. Diese wird nur ausgeführt  wenn es in Delphi eine On... Funktion bestückt wird.

Globale Variable FrmEdit

Über die Variable FrmEdit kann auf alle Felder und auf die Property des Edit Objekt zugegriffen werden. Folgende Property's stehen zu Verfügung:

Property Erläuterung
lCheckOK Kann bei der Überprüfung von F2 benutzt werden ob die Eingabewerte korrekt eingegeben wurden sind. Bei False wird nicht abgespeichert.
lEditMode True  = Insertmodus False = Editmodus
lDataUpdate True = Daten des Edits wurden verändert
lDataChecked False=Daten werden auf gültigkeit überprüft (lCheckok)
lCloseInsert Edit-Fenster wird (lEditMode = True) nach F2 geschlossen
lCloseEdit Edit-Fenster wird (lEditMode = False) nach F2 geschlossen
lDataESC Soll bei einer Änderung im Edit eine Abfrage beim Verlassen der Maske erscheinen
lCanLock Ob bei der Eingabe nur eine Person den Datensat editieren darf
lInsert Edit Felder im Insert/Überschreibemodus (zur zeit keine Funktion)

Auslesen von Komponenten:

FrmEdit.xGet('a_vorname');

Setzen von Komponenten:

FrmEdit.xSet('a_vorname',"Meier");

Mögliche Zugriffe auf Komponenten und Werte des Edits

procedure InitScripter(ofrm:Tobject);
var oSte : TEdit;
begin
   oSte := FrmEdit.FindComponent('stred_db_a_vzusatz');
   Meldung(FrmEdit.stred_db_a_vzusatz.Text);
end;
function OnEdCheck():string;
var oSte     : TEdit;
cEdit        : String;
cVorname     : String;
begin
if (FrmEdit.lEditMode) then begin
   Meldung('Edit Mode True');
end else begin
  Meldung('Edit Mode False');
end;
Meldung(FrmEdit.stred_db_a_name.Text);
oSte := FrmEdit.FindComponent('stred_db_a_name');
Meldung(oSte.Text);
 cVorname:= FrmEdit.xGet('a_vorname');
Meldung(cVorname);
if (Empty(cVorname)) then begin
   FrmEdit.lCheckOk := False;
   Meldung('Bitte Vorname eingtragen');
end;

Wenn möglich immer mit xGet und xSet auf Komponenten Werte zugreifen.

Listen Formulare

Folgende Funktionen stehen zur Verfügung:

  • InitScripter
  • OnListNew
  • OnResize
  • OnRefresh
  • Before_Close
  • Before_OnF1
  • Before_OnF2
  • Before_OnF3
  • Before_OnF4
  • Before_OnF5
  • Before_OnF6
  • Before_OnF7
  • Before_OnF8
  • Before_OnF9
  • Before_OnF10
  • Before_OnReturn
  • Before_OnInsert
  • Before_OnDelete
  • Before_OnESC
  • OnF1
  • OnF2
  • OnF3
  • OnF4
  • OnF5
  • OnF6
  • OnF7
  • OnF8
  • OnF9
  • OnF10
  • OnReturn
  • OnInsert
  • OnDelete
  • OnESC

Beispiel:

var oListe : TxFrmListe;
procedure InitScripter(oFrm:Tobject);
var cTable : String;
begin
   oListe := oFrm;
   cTable := oListe.Name;
   Meldung(cTable);
   Meldung(oListe.Query.sql.text);
   Meldung(oListe.Query.A2C('sys_uid'));
   Meldung(oListe.cTable);
end;
Wird bei den Before Funktionen "READY" zurückgegeben, so werden die internen Funktionen nicht mehr ausgeführt. Damit kann der natürliche Ablauf des Programmes verändert werden. Dies kann schwere Programmfehler verursachen!