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

Aus OBS Wiki
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

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(oMyFrmListe)) 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 ('Bemerkung'    , 'ttg_text'            , 80, Show_RichText ,ListAlign('taLeftJustify'));   // Wandelt Richtextfelder zur Anzeige in einfachen Klartext um
        AddColumn ('M'            , 'ttg_user'            , 5,  Show_Mark     ,ListAlign('taLeftJustify'));   // ShowMark ist das bekannte Markierverhalten von Listen

        ListShow('TOUTMYA481', oMyFrmListe.Query, oMyFrmListe.DBGrid);

    end;
end;

Beispiel zusätzliche Funktionen F10

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;