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

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „My name is Constance Bernays but everybody calls me Constance. I'm from Great Britain. I'm studying at the high school (1st year) and I play the Banjo for 10 y…“)
 
KKeine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
My name is Constance Bernays but everybody calls me Constance. I'm from Great Britain. I'm studying at the high school (1st year) and I play the Banjo for 10 years. Usually I choose music from the famous films :D. <br>I have two sister. I love Shooting sport, watching movies and Leaf collecting and pressing.<br><br>Look into my site - [http://pkr855.org jagadpoker]
{{Makros und Scripting}}
=Listen Stable=
Konfigurationen für den zusätzlichen Reiter im Listen-Stable
==Personenstamm==
Reiter ''6 Intern'' vorhanden wenn in der [[OBS/Makros und Scripting/Allgemeines/Script Library|Scribt_Lib]] ein Eintrag '''STABLE_PERSONEN'''  vorhanden ist.<br/>
Das Makro muss folgende Funktion beinhalten, bei der die Personennummer als Parameter übergeben wird:<br/>
  function Stable_Intern(oMyDB:TxDB; cPsNr:String):String;
 
===Beispiel: Preisliste des Kunden anzeigen===
<source lang="delphi">
//----------------------------------------------------------------------
// Unit Name: Stable_Intern
// Author:    Jr
// Date:      14.04.2021
// Purpose:  Diese Funktion wird im Stable der Personen ausgeführt
//            Achtung nur oMyDB Benutzen, da Nebenläufig
// History: 
//----------------------------------------------------------------------
 
function Stable_Intern(oMyDB:TxDB; cPsNr:String):String;
var cSQL : String;
    qTmp : TxFQuery;
begin
    cSQL := 'SELECT * FROM ARTI_PL_NAME' +
            'WHERE pl_aktiv = "1"'  +
            'AND  pl_personenpreis = "1"' +
            'AND    pl_nr = ' + DB_SqlVal(cPsNr);
       
    Result := 'Preisliste der Person'+CRLF+CRLF;
   
    if (DB_SOpen(oDB, cSQL, qTmp)) then begin
   
      While (not qTmp.Eof()) do begin
          AddToken(Result, PadR(qTmp.A2C('pl_nr'), 10, ' ') + ' ' +
                            PadR(qTmp.A2C('pl_name'), 40, ' ') +
                            CRLF);   
          qTmp.Next;
      End;
     
    End;
    DB_Close(qTmp);
   
end;
</source>
===Beispiel: Anzeige von Benutzerfeldern===
<source lang="delphi">
//-----------------------------------------------------------------------------
// Unit Name: Stable_Intern
// Author:    Jr
// Date:     14.04.2021
// Purpose:  Diese Funktion wird im Stable der Personen ausgeführt
// History: 
//-----------------------------------------------------------------------------
 
function Stable_Intern(oMyDB:TxDB; cPsNr:String):String;
var cSQL      : String;
    qTmp      : TxFQuery;
    cFeldBez  : String;
    cFeldName : String;
    cUID      : String;
    cData    : String;
    cWhere    : String;
begin
    cSQL := 'SELECT tb_feldname, tb_feldbez FROM TB_DEF'+
            ' WHERE tb_tabname = "PERSSTA"'+
            ' AND tb_infonr = ""'+
            ' AND tb_feldlevel <= '+DB_SqlVal(oSystem.Userlevel)+
            ' ORDER BY tb_feldsort';
       
    //Result := 'Benutzer Felder'+CRLF;
   
    if (DB_SOpen(oMyDB, cSQL, qTmp)) then begin
   
        cUID := DB_ReadUID(oMyDB, 'PERSSTA', 'ps_nr='+DB_SqlVal(cPsNr));
   
        While (not qTmp.Eof) do begin
       
          cFeldBez  := qTmp.A2C('tb_feldbez');
          cFeldName := qTmp.A2C('tb_feldname');
          cData    := DB_ReadSQLSysUID(oMyDB, 'USER_PERSSTA', cFeldName, cUID);
     
          AddToken(Result, PadR(cFeldBez, 30, ' ') + ' ' +
                            PadL(cData  , 40, ' '),
                            CRLF);
             
          qTmp.Next;
        End;
     
    End;
    DB_Close(qTmp);
end;
</source>
==Material / Lieferanten==
Reiter ''2 Intern'' vorhanden wenn in der [[OBS/Makros und Scripting/Allgemeines/Script Library|Scribt_Lib]] ein Eintrag '''STABLE_LIEFERMATER'''  vorhanden ist.<br/>
Das Makro muss folgende Funktion beinhalten, in der die UID des Materials als Parameter übergeben wird:<br/>
  function Stable_Intern(oMyDB:TxDB; cMater_SysUID:String):String;
 
===Beispiel===
<source lang="delphi">
//---------------------------------------------------------------------
//  Procedure: Stable_Intern
//  Author:    Hoheneder
//  Date:      23-11-2021
//---------------------------------------------------------------------
 
function Stable_Intern(oDB:TxDB; cMater_SysUID:String):String;
var cLiefNr  : String;
    cData    : String;
begin
    //Rückgabetext zurücksetzen
    Result := '';
    //Personennummer des Lieferanten aus dem Materialeintrag auslesen
    cLiefNr := DB_ReadSQLValue(oDB,'MATER','ma_liefnr','sys_uid='+DB_SqlVal(cMater_SysUID));
    //Bemerkung aus dem Personenstamm auslesen anhand der Personennummer
    cData  := DB_ReadSQLValue(oDB,'PERSSTA','ps_bemerk','ps_nr='+DB_SQLVal(cLiefNr));
    //Bemerkungstext dem Rückgabetext hinzufügen
    Addtoken(Result, PadR('Bemerkung:', 20, ' ')+' '+PadR(cData, 40, ' '), CRLF);
end;
</source>
<br />
==Geräte==
Reiter ''2 Intern'' vorhanden wenn in der [[OBS/Makros und Scripting/Allgemeines/Script Library|Scribt_Lib]] ein Eintrag '''STABLE_GERAETE'''  vorhanden ist.<br/>
Das Makro muss folgende Funktion beinhalten, in der die UID des Gerätes als Parameter übergeben wird:<br/>
  function Stable_Intern(oMyDB:TxDB; cUID:String):String;
===Beispiel===
<source lang="delphi">
//-----------------------------------------------------------------------------
// Unit Name: Stable_Intern
// Author:    Jr
// Date:      04.01.2022
// Purpose:  Diese Funktion wird im Stable der Geräteliste ausgeführt
//            Achtung nur oMyDB Benutzen, da Nebenläufig
// History:  
//-----------------------------------------------------------------------------
 
function Stable_Intern(oMyDB:TxDB; cUID:String):String;
var cSQL  : String;
    qTmp  : TxFQuery;
begin
    cSQL := 'SELECT g_artnr FROM GERAET'+
            ' WHERE sys_uid = '+DB_SqlVal(cUID);
       
    Result := '';
   
    if (DB_SOpen(oMyDB, cSQL, qTmp)) then begin
        result  := 'Artikel-Nr : '+qTmp.A2C('g_artnr');
    End;
    DB_Close(qTmp);
   
end;
</source>

Aktuelle Version vom 4. Januar 2022, 13:47 Uhr


Listen Stable

Konfigurationen für den zusätzlichen Reiter im Listen-Stable

Personenstamm

Reiter 6 Intern vorhanden wenn in der Scribt_Lib ein Eintrag STABLE_PERSONEN vorhanden ist.
Das Makro muss folgende Funktion beinhalten, bei der die Personennummer als Parameter übergeben wird:

 function Stable_Intern(oMyDB:TxDB; cPsNr:String):String;

Beispiel: Preisliste des Kunden anzeigen

//----------------------------------------------------------------------
// Unit Name: Stable_Intern
// Author:    Jr
// Date:      14.04.2021
// Purpose:   Diese Funktion wird im Stable der Personen ausgeführt
//            Achtung nur oMyDB Benutzen, da Nebenläufig
// History:   
//----------------------------------------------------------------------

function Stable_Intern(oMyDB:TxDB; cPsNr:String):String;
var cSQL : String;
    qTmp : TxFQuery;
begin
    cSQL := 'SELECT * FROM ARTI_PL_NAME' + 
            'WHERE pl_aktiv = "1"'  +
            'AND   pl_personenpreis = "1"' +
            'AND    pl_nr = ' + DB_SqlVal(cPsNr);
         
    Result := 'Preisliste der Person'+CRLF+CRLF;
    
    if (DB_SOpen(oDB, cSQL, qTmp)) then begin
    
       While (not qTmp.Eof()) do begin
           AddToken(Result, PadR(qTmp.A2C('pl_nr'), 10, ' ') + ' ' + 
                            PadR(qTmp.A2C('pl_name'), 40, ' ') +
                            CRLF);    
           qTmp.Next;
       End;
       
    End;
    DB_Close(qTmp);
    
end;

Beispiel: Anzeige von Benutzerfeldern

//-----------------------------------------------------------------------------
// Unit Name: Stable_Intern
// Author:    Jr
// Date:      14.04.2021
// Purpose:   Diese Funktion wird im Stable der Personen ausgeführt
// History:   
//-----------------------------------------------------------------------------

function Stable_Intern(oMyDB:TxDB; cPsNr:String):String;
var cSQL      : String;
    qTmp      : TxFQuery;
    cFeldBez  : String;
    cFeldName : String;
    cUID      : String;
    cData     : String;
    cWhere    : String;
begin
    cSQL := 'SELECT tb_feldname, tb_feldbez FROM TB_DEF'+
            ' WHERE tb_tabname = "PERSSTA"'+
            ' AND tb_infonr = ""'+
            ' AND tb_feldlevel <= '+DB_SqlVal(oSystem.Userlevel)+
            ' ORDER BY tb_feldsort';
         
    //Result := 'Benutzer Felder'+CRLF;
    
    if (DB_SOpen(oMyDB, cSQL, qTmp)) then begin
    
        cUID := DB_ReadUID(oMyDB, 'PERSSTA', 'ps_nr='+DB_SqlVal(cPsNr));
    
        While (not qTmp.Eof) do begin
        
           cFeldBez  := qTmp.A2C('tb_feldbez');
           cFeldName := qTmp.A2C('tb_feldname');
           cData     := DB_ReadSQLSysUID(oMyDB, 'USER_PERSSTA', cFeldName, cUID);
       
           AddToken(Result, PadR(cFeldBez, 30, ' ') + ' ' + 
                            PadL(cData   , 40, ' '),
                            CRLF); 
              
           qTmp.Next;
        End;
       
    End;
    DB_Close(qTmp);
end;

Material / Lieferanten

Reiter 2 Intern vorhanden wenn in der Scribt_Lib ein Eintrag STABLE_LIEFERMATER vorhanden ist.
Das Makro muss folgende Funktion beinhalten, in der die UID des Materials als Parameter übergeben wird:

 function Stable_Intern(oMyDB:TxDB; cMater_SysUID:String):String;

Beispiel

//---------------------------------------------------------------------
//  Procedure: Stable_Intern
//  Author:    Hoheneder
//  Date:      23-11-2021
//---------------------------------------------------------------------

function Stable_Intern(oDB:TxDB; cMater_SysUID:String):String;
var cLiefNr  : String;
    cData    : String;
begin
    //Rückgabetext zurücksetzen
    Result := '';
    //Personennummer des Lieferanten aus dem Materialeintrag auslesen
    cLiefNr := DB_ReadSQLValue(oDB,'MATER','ma_liefnr','sys_uid='+DB_SqlVal(cMater_SysUID));
    //Bemerkung aus dem Personenstamm auslesen anhand der Personennummer
    cData   := DB_ReadSQLValue(oDB,'PERSSTA','ps_bemerk','ps_nr='+DB_SQLVal(cLiefNr));
    //Bemerkungstext dem Rückgabetext hinzufügen
    Addtoken(Result, PadR('Bemerkung:', 20, ' ')+' '+PadR(cData, 40, ' '), CRLF);
end;


Geräte

Reiter 2 Intern vorhanden wenn in der Scribt_Lib ein Eintrag STABLE_GERAETE vorhanden ist.
Das Makro muss folgende Funktion beinhalten, in der die UID des Gerätes als Parameter übergeben wird:

 function Stable_Intern(oMyDB:TxDB; cUID:String):String;

Beispiel

//-----------------------------------------------------------------------------
// Unit Name: Stable_Intern
// Author:    Jr
// Date:      04.01.2022
// Purpose:   Diese Funktion wird im Stable der Geräteliste ausgeführt
//            Achtung nur oMyDB Benutzen, da Nebenläufig
// History:   
//-----------------------------------------------------------------------------

function Stable_Intern(oMyDB:TxDB; cUID:String):String;
var cSQL  : String;
    qTmp  : TxFQuery;
begin
    cSQL := 'SELECT g_artnr FROM GERAET'+
            ' WHERE sys_uid = '+DB_SqlVal(cUID);
         
    Result := '';
    
    if (DB_SOpen(oMyDB, cSQL, qTmp)) then begin
        result  := 'Artikel-Nr : '+qTmp.A2C('g_artnr');
    End;
    DB_Close(qTmp);
    
end;