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

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(8 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:
*'''<u>Edit Formulare</u>''' 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
|}
 
</div><br />Jede Makro Funktion hat 2 Aufrufe <br />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.<br />2 Standard Aufruf nach der internen Delphi Funktion. Diese wird nur ausgeführt  wenn es in Delphi eine On... Funktion bestückt wird.<br />
 
=<font size="2" color="#000000" face="Arial"><font size="3">'''Globale Variable FrmEdit'''</font></font>=
 
<br />Über die Variable FrmEdit kann auf alle Felder und auf die Property des Edit Objekt zugegriffen werden. Folgende Property’s stehen zu Verfügung<br /><div>
 
{| cellspacing="-1" cellpadding="2"
<table border=1>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'''Property'''</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">'''Erläuterung'''</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial"><br /></font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial"><br /></font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lCheckOK'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">Kann bei der Überprüfung von F2 benutzt werden ob die Eingabewerte korrekt eingegeben wurden sind.Bei False wird nicht abgespeichert.</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lEditMode'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">True  = InsertmodusFalse = Editmodus</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lDataUpdate'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">True = Daten des Edits wurden verändert</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lDataChecked'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">False=Daten werden auf gültigkeit überprüft (lCheckok)</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lCloseInsert'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">Edit-Fenster wird (lEditMode = True) nach F2 geschlossen</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lCloseEdit'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">Edit-Fenster wird (lEditMode = False) nach F2 geschlossen</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lDataESC'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">Soll bei einer Änderung im Edit eine Abfrage beim Verlassen der Maske erscheinen</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lCanLock'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">Ob bei der Eingabe nur eine Person den Datensat editieren darf</font>
|- valign="top"
| width="127" valign="top" | <font size="2" color="#000000" face="Arial">'lInsert'</font>
| width="431" valign="top" | <font size="2" color="#000000" face="Arial">Edit Felder im Insert/Überschreibemodus (zur zeit keine Funktion)</font>
|}
 
</div><br />Auslesen von komponenten </font><font size="3">        </font><font size="3" face="courier new">'''FrmEdit.xGet('a_vorname');'''Setzen von Komponenten</font><font size="3">        </font><font size="3">        </font><font size="3" face="courier new">'''FrmEdit.xSet('a_vorname',’Meier’);'''<br /><br /><br />
 
=<font size="2" color="#000000" face="Arial"><font size="3">'''Mögliche Zugriffe auf Komponenten und Werte des Edits'''</font></font>=
 
<br /><div><font face="courier new">procedure InitScripter(ofrm:Tobject);<div><font face="courier new">var oSte : TEdit;<div><font face="courier new">begin<div><font face="courier new">   oSte := FrmEdit.FindComponent('stred_db_a_vzusatz');<div><font face="courier new">   Meldung(FrmEdit.stred_db_a_vzusatz.Text);<div><font face="courier new">end;<div><font face="courier new"><br /><div><font face="courier new"><br /><div><font face="courier new"><br /><div><font face="courier new">function OnEdCheck():string;<div><font face="courier new">var oSte     : TEdit;<div><font face="courier new">    cEdit    : String;<div><font face="courier new">    cVorname : String;<div><font face="courier new">begin<div><font face="courier new"><br /><div><font face="courier new">   if (FrmEdit.lEditMode) then begin<div><font face="courier new">      Meldung('Edit Mode True');<div><font face="courier new">   end else begin<div><font face="courier new">      Meldung('Edit Mode False');<div><font face="courier new">   end;<div><font face="courier new"><br /><div><font face="courier new">   Meldung(FrmEdit.stred_db_a_name.Text);<div><font face="courier new"><br /><div><font face="courier new">   oSte := FrmEdit.FindComponent('stred_db_a_name');<div><font face="courier new">   Meldung(oSte.Text);<div><font face="courier new"><br /><div><font face="courier new">   cVorname:= FrmEdit.xGet('a_vorname');<div><font face="courier new">   Meldung(cVorname);<div><font face="courier new"><br /><div><font face="courier new">   if (Empty(cVorname)) then begin<div><font face="courier new">       FrmEdit.lCheckOk := False;<div><font face="courier new">       Meldung('Bitte Vorname eingtragen');<div><font face="courier new">   end;<div><font face="courier new"><br /><div><font face="courier new">end;<div><font face="courier new"><br /><div><font face="courier new">Wenn möglich immer mit </font><font face="courier new">'''xGet'''</font><font face="courier new"> und </font><font face="courier new">'''xSet'''</font><font face="courier new"> auf Komponenten Werte zugreifen.<div><font size="3" face="courier new"><br /><br /><div><font size="5">'''<u>Listen Formulare</u>'''<br />folgende Funktionen stehen zur Verfügung:<br />InitScripterOnListNewOnResizeOnRefresh<br />Before_Close<br />Before_OnF1Before_OnF2Before_OnF3Before_OnF4Before_OnF5Before_OnF6Before_OnF7Before_OnF8Before_OnF9Before_OnF10Before_OnReturnBefore_OnInsertBefore_OnDeleteBefore_OnESC<br />OnF1OnF2OnF3OnF4OnF5OnF6OnF7OnF8OnF9OnF10OnReturnOnInsertOnDeleteOnESC<br />'''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