OBS/Makros und Scripting/Anwendungsbereiche/Customize Select-Listen

Aus OBS Wiki
Version vom 25. März 2020, 11:29 Uhr von Heibutzki (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Makros und Scripting}} Mit dem Customizing können verschiedene Select-Listen erweitert werden, beispielsweise die Auswahl von Sortierungen und weiteren Funk…“)
Zur Navigation springen Zur Suche springen


Mit dem Customizing können verschiedene Select-Listen erweitert werden, beispielsweise die Auswahl von Sortierungen und weiteren Funktionen.

Beispiel zusätzliche Sortierung F4

<syntaxhighlighting Lang="Delphi"> var oMyFrmListe : TFrmListe;

procedure InitScripter(oFrmSelect:TFrmSelect); begin

   oFrmSelect.aSelect.lSorted    := False;
   oFrmSelect.aSelect.cHTMLTitel := 'Html Titel';
   oFrmSelect.aSelect.nStart     := 3;

end;

procedure Add_Select(); begin

   FrmSelect.aSelect.AddSelect('A','XXX 1');  
   FrmSelect.aSelect.AddInfo('Hier HTML Hint');
   FrmSelect.aSelect.lSorted  := True;

end;

function Run_Select():String; begin

   oMyFrmListe := TFrmListe(FrmSelect.aSelect.Frm);
   if (not Assigned(oFrmListe)) then begin
       oMyFrmListe := TFrmListe(FrmSelect);
   end;                                            
   
   //Scripter Einträge haben immer ein Z damit sie hinten stehen 
   if (FrmSelect.aSelect.GetAusWahl() = 'ZA') then begin
       MyIdx();   
       //Fängt internen Aufruf ab
       Result := 'overload';
   end;                                    

end;

procedure MyIdx(); begin

   With oMyFrmListe do begin
       ListNew(); 
       
       SqlDirect         := 'SELECT * FROM TOUR_TOUREN'+
                            ' LEFT JOIN TOUR_GEBIET ON tvm_nr = ttg_gebiet'+
                            ' LEFT JOIN LKW         ON l_nr   = ttg_lkw';
       ListOrder         := 'ttg_status, ttg_nr DESC';
       aTabel[0]         := 'TOUR_TOUREN';
       AddColumn ('LKW'          , 'ttg_lkw'             , 10);
       AddColumn ('Gebiet'       , 'tvm_name'            , 10);
       AddColumn ('Mit-Nr'       , 'ttg_mitnr'           , 10);
       AddColumn ('Gewicht'      , 'ttg_gewicht'         , 10, '#####9'      ,ListAlign('taRightJustify'));
       AddColumn ('KM'           , 'ttg_km'              , 10, '###9,99'     ,ListAlign('taRightJustify'));
       AddColumn ('L-Datum'      , 'ttg_ldatum'          , 12);
       AddColumn ('F-Zeit'       , 'ttg_zeitfahr'        , 10, '###9,99'     ,ListAlign('taRightJustify'));
       AddColumn ('B-Zeit'       , 'ttg_zeitbearb'       , 10, '###9,99'     ,ListAlign('taRightJustify'));
       AddColumn ('Umkehr'       , 'ttg_auslieferfolge'  , 10, Show_Field_Ja ,ListAlign('taLeftJustify'));   // Show_Field_Ja wandelt Checkbox-Einträge aus der Datenbank in J/N um
       AddColumn ('M'            , 'ttg_user'            , 5,  ShowMark      ,ListAlign('taLeftJustify'));   // ShowMark ist das bekannte Markierverhalten von Listen
       ListShow('TOUTMYA481', oMyFrmListe.Query, oMyFrmListe.DBGrid);
   end;

end; </syntaxhighlighting>

Beispiel zusätzliche Funktionen F10

<syntaxhighlighting Lang="Delphi"> procedure InitScripter(oFrmSelect:TFrmSelect); begin

   oFrmSelect.aSelect.lSorted    := False;
   oFrmSelect.aSelect.cHTMLTitel := 'Html Titel';
   oFrmSelect.aSelect.nStart     := 3;

end;

procedure Add_Select(); begin

   FrmSelect.aSelect.AddSelect('A','XXX 1');  
   FrmSelect.aSelect.AddInfo('Hier HTML Hint');
   FrmSelect.aSelect.AddSelect('B','XXX 2');  
   FrmSelect.aSelect.AddInfo('Hier HTML Hint');
   FrmSelect.aSelect.AddSelect('C','XXX 3');  
   FrmSelect.aSelect.AddInfo('Hier HTML Hint');
   FrmSelect.aSelect.lSorted  := True;

end;

function Run_Select():String; var oFrmListe : TFrmListe; begin

   oFrmListe := TFrmListe(FrmSelect.aSelect.Frm);
                                    
   if (not Assigned(oFrmListe)) then begin
       oFrmListe := TFrmListe(FrmSelect);
   end;
   
   //Scripter Einträge haben immer ein Z damit sie hinten stehen 
   if (FrmSelect.aSelect.GetAusWahl() = 'ZA') then begin
   
       Meldung('F10 Klassenname = '+oFrmListe.ClassName); 
       
       if (lower(oFrmListe.ClassName) = 'tfrmauftrag') then begin
           Meldung('Auftrags-Nr. = '+oFrmListe.Query.A2C('a_nr'));
       end;
       
       //Fängt internen Aufruf ab
       Result := 'overload';        
   end;                                    

end; </syntaxhighlighting>