DEF VAR cDiff AS CHAR NO-UNDO. DEF VAR cFeld AS CHAR NO-UNDO. DEF VAR kk AS INT NO-UNDO. DEF VAR kx AS INT NO-UNDO. DEF VAR cWort AS CHAR NO-UNDO. DISABLE TRIGGERS FOR LOAD OF Artbez. DISABLE TRIGGERS FOR LOAD OF ArtLief. FOR EACH Artst: IF Artst.Suchbe = '' THEN Artst.Suchbe = ENTRY(1, Artst.Bez, ' '). cWort = ''. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = Artst.Firma AND Artbez.Artnr = Artst.Artnr AND Artbez.Inhalt = Artst.Inhalt AND Artbez.Jahr = Artst.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, Artst.Suchbe ). RUN BEREINIGEN ( 0, Artst.Strichcode ). RUN BEREINIGEN ( 0, TRIM(STRING(Artst.Artnr,'>>>>>9')) ). IF Artst.Inhalt > 0 THEN RUN BEREINIGEN ( 0, 'Inhalt=' + TRIM(STRING(Artst.Inhalt,'>>>>>9')) ). IF Artst.Jahr > 0 THEN RUN BEREINIGEN ( 0, 'Jahr=' + TRIM(STRING(Artst.Jahr ,'>>>>>9')) ). IF Artst.FremdNr <> '' THEN DO: RUN BEREINIGEN ( 0, STRING(Artst.FremdNr,'XXXXXX XXXX XXXX')). RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(SUBSTRING(Artst.FremdNr,01,06)),'>>>>>9'))). END. FIND KGebinde NO-LOCK WHERE KGebinde.Firma = Artst.Firma AND KGebinde.Geb_Cd = Artst.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 = Artst.Firma AND ArtLief.Artnr = Artst.Artnr AND ArtLief.Inhalt = Artst.Inhalt AND ArtLief.Jahr = Artst.Jahr : RUN BEREINIGEN ( 0, ArtLief.S_Artnr ). RUN BEREINIGEN ( 0, ArtLief.Strichcode_GGeb ). 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. Artbez.WortIndex = TRIM(cWort). RELEASE KGebinde. RELEASE Artbez. RELEASE ArtLief. END. 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 xString 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 = 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.