OBS/System/OBS Anleitung Customize Edit

Aus OBS Wiki
Version vom 4. Juli 2011, 16:46 Uhr von Auto import (Diskussion | Beiträge) (Importing text file)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

OBS Anleitung Customize Edit



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

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


Datei:Pict001.jpg

Aufruf über STRG-F12 kann

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

Mit Rechter Maus Taste und gedrückt CTRL können auch die Weitere Funktionen (in den Listen) bearbeitet werden.

Datei:Pict002.jpg



die Benutzeraktivitäten eingeschränkt werden:

Datei:Pict003.jpg

Name des Edit's ist der Klassenname
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;

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änder werden.
Dies kann schwere Prgrammfehler verursachen!






Auto import 17:46, 4. Jul. 2011 (CEST)