| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- TRIGGER PROCEDURE FOR DELETE OF Ansprech.
- DEF VAR cDiff AS CHAR NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR hBuffer AS HANDLE NO-UNDO.
- DEF VAR hFeld1 AS HANDLE NO-UNDO.
- DEF VAR kk AS INT NO-UNDO.
- DEF VAR cWort AS CHAR NO-UNDO.
- DEF VAR iArt AS INT NO-UNDO.
- DEF BUFFER bAnsprech FOR Ansprech.
-
- DEF TEMP-TABLE tAnsprech LIKE Ansprech.
- DISABLE TRIGGERS FOR LOAD OF Adresse.
-
- FIND Adresse
- WHERE Adresse.Firma = Ansprech.Firma
- AND Adresse.Knr = Ansprech.Knr.
- ASSIGN hBuffer = BUFFER Adresse:HANDLE
- cWort = ''
- Adresse.WortIndex = ''.
- DO kk = 1 TO hBuffer:NUM-FIELDS:
- hFeld1 = hBuffer:BUFFER-FIELD(kk).
- IF hFeld1:EXTENT > 0 THEN NEXT.
- IF NOT hFeld1:DATA-TYPE BEGINS 'CHAR' THEN NEXT.
- IF hFeld1:BUFFER-VALUE(0) = ? THEN hFeld1:BUFFER-VALUE(0) = ''.
- cFeld = hFeld1:NAME.
- IF cFeld BEGINS 'Erf' THEN NEXT.
- IF cFeld BEGINS 'Mut' THEN NEXT.
- IF cFeld BEGINS 'Anzeig' THEN NEXT.
- IF cFeld BEGINS 'Anschr' THEN NEXT.
- IF cFeld BEGINS 'Word' THEN NEXT.
- IF cFeld BEGINS 'Brief' THEN NEXT.
- IF cFeld BEGINS 'Cd' THEN NEXT.
- IF cFeld BEGINS 'Wort' THEN NEXT.
-
- iArt = 0.
- IF cFeld BEGINS 'Tel' THEN iArt = 1.
- IF cFeld BEGINS 'Nat' THEN iArt = 1.
- RUN BEREINIGEN ( iArt, hFeld1:BUFFER-VALUE(0) ).
- END.
- hFeld1 = hBuffer:BUFFER-FIELD('Knr').
- RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(hFeld1:BUFFER-VALUE(0)),'>>>>>>9')) ).
- EMPTY TEMP-TABLE tAnsprech.
- FOR EACH bAnsprech NO-LOCK
- WHERE bAnsprech.Firma = Ansprech.Firma
- AND bAnsprech.Knr = Ansprech.Knr
- AND bAnsprech.Ind <> Ansprech.Ind:
- CREATE tAnsprech.
- BUFFER-COPY bAnsprech to tAnsprech.
- END.
- hBuffer = TEMP-TABLE tAnsprech:DEFAULT-BUFFER-HANDLE.
- FOR EACH tAnsprech:
- DO kk = 1 TO hBuffer:NUM-FIELDS:
- hFeld1 = hBuffer:BUFFER-FIELD(kk).
- IF hFeld1:EXTENT > 0 THEN NEXT.
- IF NOT hFeld1:DATA-TYPE BEGINS 'CHAR' THEN NEXT.
- IF hFeld1:BUFFER-VALUE(0) = ? THEN hFeld1:BUFFER-VALUE(0) = ''.
- cFeld = hFeld1:NAME.
- IF cFeld BEGINS 'Anzeig' THEN NEXT.
- IF cFeld BEGINS 'Anschr' THEN NEXT.
- IF cFeld BEGINS 'Word' THEN NEXT.
- IF cFeld BEGINS 'Brief' THEN NEXT.
- IF cFeld BEGINS 'Cd' THEN NEXT.
- IF cFeld BEGINS 'Wort' THEN NEXT.
-
- iArt = 0.
- IF cFeld BEGINS 'Tel' THEN iArt = 1.
- IF cFeld BEGINS 'Nat' THEN iArt = 1.
- RUN BEREINIGEN ( iArt, hFeld1:BUFFER-VALUE(0) ).
- END.
- END.
- Adresse.WortIndex = cWort.
-
- RETURN.
- PROCEDURE BEREINIGEN:
- DEF INPUT PARAMETER ipArt AS INT NO-UNDO.
- DEF INPUT PARAMETER ipString AS CHAR NO-UNDO.
- DEF VAR wString AS CHAR NO-UNDO.
- DEF VAR yy AS INT 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 = TRIM(wString).
- IF wString = '' THEN RETURN.
-
- IF LOOKUP(wString, cWort, ' ') > 0 THEN NEXT.
- cWort = cWort + (IF cWort = '' THEN '' ELSE ' ')
- + wString.
- END PROCEDURE.
|