|
|
Zeile 18: |
Zeile 18: |
| {{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|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.}} | | {{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>
| |