OBS/Makros und Scripting/Anwendungsbereiche/ListenStable: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Böhrer (Diskussion | Beiträge) (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: | ||
{{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;