|
|
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| {{Makros und Scripting}} | | {{Makros und Scripting}} |
| Das '''kostenpflichtige''' Modul Customize erlaubt die Individualisierug vom OBS und kann die Funktionalität der Software entscheidend erweitern, um z. B. Arbeitsabläufe zu verbessern oder die Einhaltung bestimmter Vorgaben einzuhalten. So lassen sich u. a. Zugriffe auf Felder steuern oder Daten in Eingabemasken vorbelegen oder prüfen. Jedes [https://de.wikipedia.org/wiki/Makro Makro] kann systemweit oder pro Benutzer hinterlegt werden. | | Das '''kostenpflichtige''' Modul Customize erlaubt die Individualisierug vom OBS und kann die Funktionalität der Software entscheidend erweitern, um z. B. Arbeitsabläufe zu verbessern oder die Einhaltung bestimmter Vorgaben einzuhalten. So lassen sich u. a. Zugriffe auf Felder steuern oder Daten in Eingabemasken vorbelegen oder prüfen. Jedes [https://de.wikipedia.org/wiki/Makro Makro] kann systemweit oder pro Benutzer hinterlegt werden. |
| =Allgemeines=
| |
| ==Aktivierung Modul Customize== | | ==Aktivierung Modul Customize== |
| Der Aktivitätsstatus des Moduls wird über einen [[OBS/Stammdaten/Programmparameter|Programmparameter]] gesteuert, welcher nur Administratoren zugänglich ist. Die Freischaltung erfolgt durch den Support auf Anfrage. | | Der Aktivitätsstatus des Moduls wird über einen [[OBS/Stammdaten/Programmparameter|Programmparameter]] gesteuert, welcher nur Administratoren zugänglich ist. Die Freischaltung erfolgt durch den Support auf Anfrage. |
Zeile 9: |
Zeile 8: |
| * [[OBS/Makros und Scripting/Anwendungsbereiche/Customize Edits|Eingabemasken: '''A Customize Edit''']] | | * [[OBS/Makros und Scripting/Anwendungsbereiche/Customize Edits|Eingabemasken: '''A Customize Edit''']] |
| * [[OBS/Makros und Scripting/Anwendungsbereiche/Customize Select-Listen|Select-Listen: '''C1 Funktionen Auswahlbox''']] | | * [[OBS/Makros und Scripting/Anwendungsbereiche/Customize Select-Listen|Select-Listen: '''C1 Funktionen Auswahlbox''']] |
|
| |
| =Customizing Erweiterung=
| |
| ==Benutzergruppen== | | ==Benutzergruppen== |
| Den Wiki-Seite zu den Benutzergruppe finden Sie [[OBS/Stammdaten/Weitere Stammdaten/Benutzer Gruppen|hier]]. | | Den Wiki-Seite zu den Benutzergruppe finden Sie [[OBS/Stammdaten/Weitere Stammdaten/Benutzer Gruppen|hier]]. |
|
| |
| =Besonderheiten=
| |
| {{Hinweis|Sämtliche Tastatur-Funktionen haben noch eine Variante mit dem Präfix '''Before_'''.}}
| |
| {{Achtung|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!}}
| |
| {{Achtung|Das Überschreiben von nicht zugewiesenen Funktionstasten (F1 - F11) sollte vermieden werden, da diese von uns jederzeit mit Funktionen belegt werden können. F12 steht immer zur Verfügung.}}
| |
|
| |
| =User-Reiter=
| |
| In OBS ab Version 003191 können Edit-Masken per Customizing-Script um eigene Reiter erweitert werden. Diese darin verwalteten Felder können mit [[OBS/Makros und Scripting/Benutzerdefinierte Datenbanktabellen|eigenen Datenbankfeldern]] definiert werden.
| |
|
| |
| [[Datei:Usertab.jpg]]
| |
|
| |
| ===Beispiel-Userdatenbank===
| |
| <syntaxhighlight lang="Delphi">
| |
| #DBNAME TODO
| |
|
| |
| #FELDNAME USER_BEMERK , C , 8 , 0 , "CCCCCCCC"
| |
| #FELDNAME USER_WGR , C , 3 , 0 , "*"
| |
| #FELDNAME USER_TOGGLE , C , 1 , 0 , "C"
| |
| #FELDNAME USER_BETRAG , N , 11 , 0 , "NNNNNNNN.NNNN"
| |
| #FELDNAME USER_DATUM , D , 4 , 0 , "TT.MM.JJ"
| |
| #FELDNAME USER_LANGTEXT , M , 2000 , 0 , "*"
| |
| </syntaxhighlight>
| |
| ===Beispielscript===
| |
| <syntaxhighlight lang="Delphi">
| |
| function OnEdInit(): String;
| |
| var oTab : TTabSheet;
| |
| oStr : TStringEdit;
| |
| oLbl : TLabel;
| |
| oNEd : TNumericEdit;
| |
| oDVE : TDateValEdit;
| |
| oChB : TxCheckBox;
| |
| oCBL : TCombiListe;
| |
| oTRE : TTextRichEdit;
| |
| begin
| |
| oTab := frmEdit.AddUserTab(); // Erstellt neuen User-Tab auf dem Edit
| |
| if assigned(oTab) then begin
| |
|
| |
| oLbl := TLabel.Create(frmEdit); // Damit die Ressourcenverwaltung funktioniert
| |
| oLbl.Caption := 'Textzeile:';
| |
| oLbl.Top := 10;
| |
| oLbl.Left := 10;
| |
| oLbl.Parent := oTab; // Damit die Anzeige korrekt funktioniert
| |
|
| |
| oStr := TStringEdit.Create(frmEdit);
| |
| oStr.Name := 'stred_db_user_bemerk'; // Damit automatisches Speichern/Laden von Datenbankfeldern funktioniert, muss im Komponentennamen '_db_' und der Feldname stehen.
| |
| oStr.Top := 10;
| |
| oStr.Left := 130;
| |
| oStr.Parent := oTab;
| |
|
| |
| //------------------------------------------------------------------
| |
|
| |
| oLbl := TLabel.Create(frmEdit);
| |
| oLbl.Caption := 'Summe:';
| |
| oLbl.Top := 40;
| |
| oLbl.Left := 10;
| |
| oLbl.Parent := oTab;
| |
|
| |
| oNEd := TNumericEdit.Create(frmEdit);
| |
| oNEd.Name := 'numed_db_user_betrag';
| |
| oNEd.Top := 40;
| |
| oNEd.Left := 130;
| |
| oNEd.Parent := oTab;
| |
|
| |
| //------------------------------------------------------------------
| |
|
| |
| oLbl := TLabel.Create(frmEdit);
| |
| oLbl.Caption := 'Datum:';
| |
| oLbl.Top := 70;
| |
| oLbl.Left := 10;
| |
| oLbl.Parent := oTab;
| |
|
| |
| oDVE := TDateValEdit.Create(frmEdit);
| |
| oDVE.Name := 'datev_db_user_datum';
| |
| oDVE.Top := 70;
| |
| oDVE.Left := 130;
| |
| oDVE.Parent := oTab;
| |
|
| |
| //------------------------------------------------------------------
| |
|
| |
| oLbl := TLabel.Create(frmEdit);
| |
| oLbl.Caption := 'Schalter:';
| |
| oLbl.Top := 100;
| |
| oLbl.Left := 10;
| |
| oLbl.Parent := oTab;
| |
|
| |
| oChB := TxCheckBox.Create(frmEdit);
| |
| oChB.Name := 'cb_db_user_toggle';
| |
| oChB.Caption := 'Schalter';
| |
| oChB.Top := 100;
| |
| oChB.Left := 130;
| |
| oChB.Parent := oTab;
| |
|
| |
| //------------------------------------------------------------------
| |
|
| |
| oLbl := TLabel.Create(frmEdit);
| |
| oLbl.Caption := 'Suchliste:';
| |
| oLbl.Top := 130;
| |
| oLbl.Left := 10;
| |
| oLbl.Parent := oTab;
| |
|
| |
| oCBL := FrmEdit.AddCombiliste();
| |
| oCBL.Name := 'cbl_db_user_wgr';
| |
| oCBL.Top := 130;
| |
| oCBL.Left := 130;
| |
| oCBL.Parent := oTab;
| |
|
| |
| oCBL.GetSuli.Tablename := 'WARENGR'; // Verknüpfte Tabelle
| |
| oCBL.GetSuli.CompareField := 'wg_nr'; // Feld mit eindeutiger ID zur Zuordnung
| |
| oCBL.GetSuli.ShowField := 'wg_name'; // Feld, das als Bezeichnung in der Kombiliste angezeigt wird
| |
| oCBL.GetSuli.Caption := ML('Warengruppe'); // Fenstertitel der Suchliste, die sich beim Klick auf # öffnet
| |
| oCBL.GetSuli.SQLOrder := 'wg_nr'; // Feld, nach dem die Suchliste sortiert werden soll
| |
| oCBL.GetSuli.SQlWhere := ''; // Filter für Daten in der Suchliste, z. bsp. 'az_nr like "5%"'
| |
|
| |
| oCBL.GetSuli.Width := 500; // Weite des Suchlistenfensters
| |
| oCBL.GetSuli.Height := 400; // Höhe des Suchlistenfensters
| |
|
| |
| oCBL.GetSuli.InitColumn('Nr', 'wg_nr', 30, nil, '', System.Classes.TAlignment.taLeftJustify);
| |
| oCBL.GetSuli.AddColumn('Name', 'wg_name', 30, nil, '', System.Classes.TAlignment.taLeftJustify);
| |
|
| |
| // Die erste Spalte der Suchliste muss mit InitColumn erstellt werden, alle weiteren mit AddColumn.
| |
| // Parameter:
| |
|
| |
| // Anzeigename : String,
| |
| // Feldname : String,
| |
| // relative_Breite : Integer,
| |
| // Anzeigefunktion : Function of String, vorerst immer nil,
| |
| // Anzeigenmaskierung : String = '', Beispiel: '##9,99': Es werden immer eine Vorkommastelle und immer zwei Nachkommastellen angezeigt, und optional zwei zusätzliche Vorkommastellen, wenn vorhanden.
| |
| // Ausrichtung : System.Classes.TAlignment.[taLeftJustify, taRightJustify, taCenter]
| |
|
| |
| //------------------------------------------------------------------
| |
|
| |
| oTRE := TTextRichEdit.Create(frmEdit);
| |
| oTRE.Name := 'riced_db_user_langtext';
| |
| oTRE.Top := 170;
| |
| oTRE.Left := 10;
| |
| oTRE.Height := 300;
| |
| oTRE.Width := 400;
| |
| oTRE.RulerH := false;
| |
| oTRE.Parent := oTab;
| |
|
| |
| //------------------------------------------------------------------
| |
|
| |
| end;
| |
| end;
| |
| </syntaxhighlight>
| |