OBS/System/OBS Anleitung Customize Edit: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Vorlage:System}}
#REDIRECT [[OBS/Makros_und_Scripting/Anwendungsbereiche/Customize]]
=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.
 
[[Image: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.
 
[[Image:FRMEDITCUSTOMIZE_2.jpg]]
 
Die Benutzeraktivitäten können ebenfalls eingeschränkt werden:
 
[[Image:FRMEDITCUSTOMIZE_3.jpg]]
 
Name des Edit's ist der jeweilige Klassenname.<br />
Das Makro Gilt Standardmäßig für alle User (XXX); es kann aber auch ein spezifischer Benutzer angegeben werden. Folgende Aufrufe sind möglich:<br />
==Edit Formulare==
InitScripter wird nach dem Create des Fensters aufgerufen
 
{| class="wikitable"
|-
!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
# 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.
# 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
 
{| class="wikitable"
|-
!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:'''<br /><div><font face="courier new">var oListe : TxFrmListe;<div><font face="courier new"><br /><div><font face="courier new">procedure InitScripter(oFrm:Tobject);<div><font face="courier new">var cTable : String;<div><font face="courier new">begin<div><font face="courier new">    oListe := oFrm;<div><font face="courier new">    cTable := oListe.Name;<div><font face="courier new">    Meldung(cTable);<div><font face="courier new">    Meldung(oListe.Query.sql.text);<div><font face="courier new">    Meldung(oListe.Query.A2C('sys_uid'));<div><font face="courier new">    Meldung(oListe.cTable);<div><font face="courier new">end;<br />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!<br /><br /><br /><div><font size="3" face="courier new"><br /><div><font size="3" face="courier new"><br />[[Category:html]]
----
[[Benutzer:Auto import|Auto import]] 15:21, 25. Aug. 2011 (CEST)

Aktuelle Version vom 9. April 2019, 12:48 Uhr