| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- TRIGGER PROCEDURE FOR WRITE OF Artst
- NEW BUFFER NArtst
- OLD BUFFER OArtst.
- DEFINE VARIABLE cDiff AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- DEFINE VARIABLE kk AS INTEGER NO-UNDO.
- DEFINE VARIABLE kx AS INTEGER NO-UNDO.
- DEFINE VARIABLE cWort AS CHARACTER NO-UNDO.
-
- DISABLE TRIGGERS FOR LOAD OF Artbez.
- DISABLE TRIGGERS FOR LOAD OF ArtLief.
-
- IF NArtst.Suchbe = '' THEN NArtst.Suchbe = ENTRY(1, NArtst.Bez, ' ').
-
- BUFFER-COMPARE NArtst USING Artnr Inhalt Jahr Bez Herst Suchbe FremdNr
- Strichcode KGeb_Cd VGeb_Cd
- TO OArtst
- SAVE RESULT IN cDiff.
- IF cDiff = '' THEN RETURN.
-
- cWort = ''.
- FIND Artbez USE-INDEX Artbez-k1
- WHERE Artbez.Firma = NArtst.Firma
- AND Artbez.Artnr = NArtst.Artnr
- AND Artbez.Inhalt = NArtst.Inhalt
- AND Artbez.Jahr = NArtst.Jahr
- AND Artbez.Sprcd = 1 EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE Artbez THEN RETURN.
-
- RUN BEREINIGEN ( 0, Artbez.Bez1 ).
- RUN BEREINIGEN ( 0, Artbez.Bez2 ).
- DO kk = 1 TO 10:
- cFeld = Artbez.Zustext[kk].
- IF cFeld = '' THEN NEXT.
- RUN BEREINIGEN ( 0, cFeld ).
- END.
-
- RUN BEREINIGEN ( 0, NArtst.Suchbe ).
- RUN BEREINIGEN ( 0, NArtst.Strichcode ).
- RUN BEREINIGEN ( 0, TRIM(STRING(NArtst.Artnr,'>>>>>9')) ).
- IF NArtst.Inhalt > 0 THEN RUN BEREINIGEN ( 0, 'Inhalt=' + TRIM(STRING(NArtst.Inhalt,'>>>>>9')) ).
- IF NArtst.Jahr > 0 THEN RUN BEREINIGEN ( 0, 'Jahr=' + TRIM(STRING(NArtst.Jahr ,'>>>>>9')) ).
- IF NArtst.FremdNr <> '' THEN
- DO:
- RUN BEREINIGEN ( 0, STRING(NArtst.FremdNr,'XXXXXX XXXX XXXX')).
- RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(SUBSTRING(NArtst.FremdNr,01,06)),'>>>>>9'))).
- END.
- FIND KGebinde NO-LOCK
- WHERE KGebinde.Firma = NArtst.Firma
- AND KGebinde.Geb_Cd = NArtst.KGeb_Cd NO-ERROR.
- IF AVAILABLE KGebinde THEN RUN BEREINIGEN ( 0, KGebinde.KBez ).
-
- FOR EACH ArtLief NO-LOCK USE-INDEX ArtLief-k1
- WHERE ArtLief.Firma = NArtst.Firma
- AND ArtLief.Artnr = NArtst.Artnr
- AND ArtLief.Inhalt = NArtst.Inhalt
- AND ArtLief.Jahr = NArtst.Jahr :
- RUN BEREINIGEN ( 0, ArtLief.S_Artnr ).
- RUN BEREINIGEN ( 0, ArtLief.Strichcode_VGeb ).
- RUN BEREINIGEN ( 0, ArtLief.Strichcode_KGeb ).
- /*
- RUN BEREINIGEN ( 0, ArtLief.S_Bez1 ).
- RUN BEREINIGEN ( 0, ArtLief.S_Bez2 ).
- */
- cFeld = 'XLIEFSTX' + STRING(ArtLief.Knr,'999999').
- RUN BEREINIGEN ( 0, cFeld ).
- END.
-
- CREATE ASMutation.
- ASSIGN ASMutation.asmutation_id = NEXT-VALUE(asmutation_id)
- ASMutation.MutArt = 'YBMARTIKEL'
- ASMutation.Firma = NArtst.Firma
- ASMutation.Aktiv = TRUE
- ASMutation.Datum = TODAY
- ASMutation.cStatus = ''
- ASMutation.iKey_1 = NArtst.Artnr
- ASMutation.iKey_2 = NArtst.Inhalt
- ASMutation.iKey_3 = NArtst.Jahr
- .
-
- Artbez.WortIndex = TRIM(cWort).
- RELEASE KGebinde .
- RELEASE Artbez .
- RELEASE ArtLief .
- RELEASE ASMutation .
-
- RETURN.
-
-
- PROCEDURE BEREINIGEN:
-
- DEFINE INPUT PARAMETER ipArt AS INTEGER NO-UNDO.
- DEFINE INPUT PARAMETER ipString AS CHARACTER NO-UNDO.
-
- DEFINE VARIABLE wString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE xString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE yy AS INTEGER NO-UNDO.
-
- IF ipString = '' THEN RETURN.
-
- wString = ipString.
-
- IF ipArt = 1 THEN
- DO:
- wString = REPLACE(wString, ' ', '').
- wString = REPLACE(wString, '.', '').
- wString = REPLACE(wString, '/', '').
- wString = REPLACE(wString, '-', '').
- END.
-
- wString = REPLACE(wString, '*' , '' ).
- wString = REPLACE(wString, '&' , ' ').
- wString = REPLACE(wString, '+' , '' ).
- wString = REPLACE(wString, '(' , '' ).
- wString = REPLACE(wString, ')' , '' ).
- wString = REPLACE(wString, '!' , '' ).
- wString = REPLACE(wString, '|' , '' ).
- wString = REPLACE(wString, '^' , '' ).
- wString = REPLACE(wString, ';' , '' ).
- wString = REPLACE(wString, "'" , '' ).
- wString = REPLACE(wString, ',' , '' ).
- wString = REPLACE(wString, ' ', ' ').
- wString = REPLACE(wString, '-' , ' ').
- wString = TRIM(wString).
-
- IF wString = '' THEN RETURN.
- DO yy = 1 TO NUM-ENTRIES(wString, ' '):
- xString = ENTRY(yy, wString, ' ').
- IF LOOKUP(xString, cWort, ' ') > 0 THEN NEXT.
- cWort = cWort + (IF cWort = '' THEN '' ELSE ' ')
- + xString.
- END.
-
- END PROCEDURE.
|