OBS/Makros und Scripting/Anwendungsbereiche/Customize: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 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 7: Zeile 6:
Der Zugriff auf die Customize-Einstellungen erfolgt über die [[OBS/System/Rechte_Verwaltung|'''Rechte Verwaltung''']] {{Key|strg}} + {{F12}}. Für Customize-Scripte wählen Sie den entsprechenden Punkt in der sich öffnenden Auswahlbox:
Der Zugriff auf die Customize-Einstellungen erfolgt über die [[OBS/System/Rechte_Verwaltung|'''Rechte Verwaltung''']] {{Key|strg}} + {{F12}}. Für Customize-Scripte wählen Sie den entsprechenden Punkt in der sich öffnenden Auswahlbox:
* [[OBS/Makros und Scripting/Anwendungsbereiche/Customize Listen|Listen: '''A Customize Listen''']]
* [[OBS/Makros und Scripting/Anwendungsbereiche/Customize Listen|Listen: '''A Customize Listen''']]
* [[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>

Aktuelle Version vom 25. März 2020, 11:59 Uhr


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 Makro kann systemweit oder pro Benutzer hinterlegt werden.

Aktivierung Modul Customize

Der Aktivitätsstatus des Moduls wird über einen Programmparameter gesteuert, welcher nur Administratoren zugänglich ist. Die Freischaltung erfolgt durch den Support auf Anfrage.

Zugriff auf die Einstellungen

Der Zugriff auf die Customize-Einstellungen erfolgt über die Rechte Verwaltung strg + F12. Für Customize-Scripte wählen Sie den entsprechenden Punkt in der sich öffnenden Auswahlbox:

Benutzergruppen

Den Wiki-Seite zu den Benutzergruppe finden Sie hier.