In der aktuellen Version ist das schon enthalten.
P_BAUFPO_STUECKLISTE anpassen:
Code: Alles auswählen
IF ((VARIANTE = 2) OR (VARIANTE = 6)) THEN
BEGIN
-- alle Positionen aus Stückliste in Endtext der vorhandenen Position
-- da die Position neu angelegt wurde, kann noch kein Text existieren
-- die Eintragung erfolgt in BAUFPO per Rückgabeparameter, da BLOB
sKopf1 = '';
sKopf2 = '';
sKopf3 = '';
sKopf4 = '--------------------------------------------------------------------';
EXECUTE PROCEDURE P_SMREPORTLABEL(:A_SPRACHE_ID, 'LB_P_BAUFPO_STUECKLISTE_MENGE', 'MENGE')
RETURNING_VALUES(:SKOPF3_1);
EXECUTE PROCEDURE P_SMREPORTLABEL(:A_SPRACHE_ID, 'LB_P_BAUFPO_STUECKLISTE_ARTNR', 'ARTIKELNR')
RETURNING_VALUES(:SKOPF3_2);
EXECUTE PROCEDURE P_SMREPORTLABEL(:A_SPRACHE_ID, 'LB_P_BAUFPO_STUECKLISTE_BEZ', 'Bezeichnung')
RETURNING_VALUES(:SKOPF3_3);
-- Layout des Textes ist über den Mandantenstamm steuerbar
IF (MyLAYOUT = 1) THEN
sKOPF3 = F_LRTRIM(sKopf3_1) || TAB || TAB || F_LRTRIM(sKopf3_2) ||
TAB || TAB || F_LRTRIM(sKopf3_3);
ELSE IF (MyLAYOUT = 2) THEN
sKOPF3 = F_LRTRIM(sKopf3_3) || TAB || TAB || TAB || TAB || F_LRTRIM(sKopf3_1);
vText = sKopf1 || CRLF || sKopf2 || CRLF || sKopf3 || CRLF || sKopf4 || CRLF;
FOR SELECT A.BSA_ID_ARTNR,
A.STCKZAHL / A.MEBASIS,
B.MASKENKEY,
B.ARTBEZ,
D.MASKENKEY
FROM BSASTL A
LEFT OUTER JOIN BSA B ON A.BSA_ID_ARTNR = B.ID
LEFT OUTER JOIN BSAS C ON A.BSAS_ID_LINKKEY = C.ID
LEFT OUTER JOIN BMENG D ON B.BMENG_ID_ME_V = D.ID
WHERE A.BSAS_ID_LINKKEY = :BSAS_ID AND
C.BMAND_ID = :BMAND_ID AND
B.K_VK = :sJA
ORDER BY A.MASKENKEY
INTO :vBSA_ID_ARTNR,
:nSTCKZAHL,
:vBSA_MASKENKEY,
:vARTBEZ,
:vBMENG_MKEY_V
DO
BEGIN
BSAKUNDE_ID = NULL;
-- Übersetzung zum Kunden
SELECT XA.ID,
XA.KUN_ARTNR,
XA.KUN_ARTBEZ
FROM BSAKUNDE XA
WHERE XA.BSA_ID_LINKKEY = :vBSA_ID_ARTNR AND
XA.BKUNDE_ID = :BKUNDE_ID
INTO :BSAKUNDE_ID,
:KUN_ARTNR,
:KUN_ARTBEZ;
-- keine Übersetzung zum Kunden - Übersetzung zur Kundengruppe
IF ((BSAKUNDE_ID IS NULL) AND (BKUSE3_ID IS NOT NULL)) THEN
SELECT XA.ID,
XA.KUN_ARTNR,
XA.KUN_ARTBEZ
FROM BSAKUNDE XA
WHERE XA.BSA_ID_LINKKEY = :vBSA_ID_ARTNR AND
XA.BKUSE3_ID = :BKUSE3_ID
INTO :BSAKUNDE_ID,
:KUN_ARTNR,
:KUN_ARTBEZ;
-- Übersetzung gefunden, Datensätze äbgleichen
IF (BSAKUNDE_ID IS NOT NULL) THEN
BEGIN
IF (KUN_ARTNR IS NOT NULL) THEN
vBSA_MASKENKEY = KUN_ARTNR;
IF (KUN_ARTBEZ IS NOT NULL) THEN
vARTBEZ = KUN_ARTBEZ;
END
ELSE
-- Artikelbezeichnung übersetzen
EXECUTE PROCEDURE P_REP_ARTBEZ_SPRACHE(:VBSA_ID_ARTNR,:BSPRA_ID)
RETURNING_VALUES(:vARTBEZ, :vARTBEZ2);
vARTBEZ2 = :vARTBEZ2;
Das fängt bei uns ab Zeile 331 an. Zumindest aber der FOR SELECT Block sollte bei Ihnen schon vorhanden sein, so dass Sie das finden sollten.
Immer erst in einer Testdatenbank probieren und ausreichend Sicherheitskopien erstellen.
Sie sollten aber langsam über ein Update der Datenbank nachdenken. Es hat sich viel getan in zwei Jahren.