/* Lager definieren */ DISABLE TRIGGERS FOR LOAD OF ArtLager. FOR EACH Steuer WHERE Steuer.Firma < '9000': Steuer.St10 = 0. CREATE Tabel. ASSIGN Tabel.Firma = Steuer.Firma Tabel.RecArt = 'LAGER' Tabel.CodeI = 0 Tabel.CodeC = '' Tabel.Sprcd = 1 Tabel.Bez1 = 'Lager ' + Steuer.Ort NO-ERROR. IF ERROR-STATUS:ERROR THEN UNDO, RETRY. END. FOR EACH Artst, EACH ArtLager WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr: ASSIGN ArtLager.Mind_Bestand = Artst.Mind_Bestand ArtLager.Soll_Bestand = Artst.Soll_Bestand. CASE ArtLager.Lager: WHEN 0 THEN DO: ASSIGN Artst.Bestand = ArtLager.Bestand ArtLager.Reserviert = Artst.Reserviert ArtLager.Bestellt = Artst.Bestellt. END. END. END. FOR EACH KuBes: FIND Debst NO-LOCK WHERE Debst.Firma = KuBes.Firma AND Debst.Knr = KuBes.Knr NO-ERROR. IF NOT AVAILABLE Debst THEN DO: FOR EACH KuBesSta WHERE KuBesSta.Firma = KuBes.Firma AND KuBesSta.Knr = KuBes.Knr : DELETE KuBesSta. END. DELETE KuBes. NEXT. END. KuBes.Vertr = Debst.Vertr. END. FOR EACH Tabel WHERE RecArt begins 'PREGRP': Tabel.Int_2 = 1. /* Alle Preisgruppen auf aktiv setzen */ END. 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. DISABLE TRIGGERS FOR LOAD OF Adresse. DISABLE TRIGGERS FOR LOAD OF Artst. DISABLE TRIGGERS FOR LOAD OF ArtLief. FOR EACH Adresse: hBuffer = BUFFER Adresse:HANDLE. /* entfernen von Sonderzeichen */ DO kk = 1 TO hBuffer:NUM-FIELDS: IF hBuffer:BUFFER-FIELD(kk):DATA-TYPE <> "CHARACTER" THEN NEXT. IF hBuffer:BUFFER-FIELD(kk):NAME BEGINS "Bem" THEN NEXT. /* Bemerkungsfeld kann/darf cr/lf enthalten */ IF hBuffer:BUFFER-FIELD(kk):EXTENT > 0 THEN NEXT. IF INDEX(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(10)) = 0 AND INDEX(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(13)) = 0 THEN NEXT. hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE = REPLACE(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(10), ''). hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE = REPLACE(hBuffer:BUFFER-FIELD(kk):BUFFER-VALUE, CHR(13), ''). END. ASSIGN 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. 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. RUN BEREINIGEN ( iArt, hFeld1:BUFFER-VALUE(0) ). END. hFeld1 = hBuffer:BUFFER-FIELD('Knr'). RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(hFeld1:BUFFER-VALUE(0)),'>>>>>>9')) ). Adresse.WortIndex = cWort. END. FOR EACH Artbez: cWort = ''. 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. FIND Artst NO-LOCK OF Artbez NO-ERROR. IF AVAILABLE Artst THEN DO: RUN BEREINIGEN ( 0, Artst.Suchbe ). RUN BEREINIGEN ( 0, Artst.Strichcode ). RUN BEREINIGEN ( 0, TRIM(STRING(Artst.Artnr,'>>>>>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 ). END. FOR EACH ArtLief NO-LOCK WHERE ArtLief.Firma = Artbez.Firma AND ArtLief.Artnr = Artbez.Artnr AND ArtLief.Inhalt = Artbez.Inhalt AND ArtLief.Jahr = Artbez.Jahr : RUN BEREINIGEN ( 0, ArtLief.S_Artnr ). RUN BEREINIGEN ( 0, ArtLief.S_Bez1 ). RUN BEREINIGEN ( 0, ArtLief.S_Bez2 ). END. Artbez.WortIndex = cWort. RELEASE KGebinde. RELEASE Artst. RELEASE Artbez. 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 = 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.