OBS/Makros und Scripting/Anwendungsbereiche/ListenStable
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; cUIDMaterial:String):String;
Beispiel
Anzeige der Bemerkung aus dem Personenstamm des Lieferanten.
//---------------------------------------------------------------------
// Procedure: Stable_Intern
// Author: Hoheneder
// Date: 23-11-2021
// Purpose: Bemerkung aus dem Personenstamm anzeigen
//---------------------------------------------------------------------
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; cUIDGeraet: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;