| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
- /*------------------------------------------------------------------------
- File :
- Purpose :
- Syntax :
- Description :
- Author(s) :
- Created :
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- DEF VAR xRecArt AS CHAR NO-UNDO
- INIT 'ABONUS,ARABGRP,AREG,TRAUB,FARB,HERST'.
- DEF VAR cFirma AS CHAR INIT '1000' NO-UNDO.
- DEF STREAM out.
- DEF STREAM artst.
- DEF TEMP-TABLE tGruppen NO-UNDO
- FIELD cKey AS CHAR
- FIELD cWert AS CHAR
- FIELD iAnz AS INT
- FIELD aktiv AS LOG INIT FALSE.
- DEF TEMP-TABLE tArtst NO-UNDO LIKE Artst
- FIELD KGeb AS INT
- FIELD iRecid AS RECID
- INDEX tArtst-k1 IS PRIMARY UNIQUE
- Firma
- Artnr
- Inhalt
- Jahr
- INDEX tArtst-k2
- Firma
- FremdNr.
- DEF TEMP-TABLE tArtstN NO-UNDO LIKE Artst
- FIELD KGeb AS INT
- FIELD iRecid AS RECID
- INDEX tArtstN-k1 IS PRIMARY UNIQUE
- Firma
- Artnr
- Inhalt
- Jahr
- INDEX tArtstN-k2
- Firma
- FremdNr.
- DEF TEMP-TABLE tDateien NO-UNDO
- FIELD cName AS CHAR.
- DEF TEMP-TABLE tKGebinde LIKE KGebinde
- FIELD Aktiv AS LOG.
-
- DEF TEMP-TABLE tVGebinde LIKE VGebinde
- FIELD Aktiv AS LOG.
-
- DEF TEMP-TABLE tGGebinde LIKE GGebinde
- FIELD Aktiv AS LOG.
-
- DEF TEMP-TABLE tWarenGrp LIKE Warengrp
- FIELD Aktiv AS LOG.
-
- DEF TEMP-TABLE tProdGrp LIKE Prodgrp
- FIELD Aktiv AS LOG.
-
- DEF TEMP-TABLE tArtikGrp LIKE Artikgrp
- FIELD Aktiv AS LOG.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Procedure
- &Scoped-define DB-AWARE no
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Procedure
- Allow:
- Frames: 0
- Add Fields to: Neither
- Other Settings: CODE-ONLY COMPILE
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW Procedure ASSIGN
- HEIGHT = 15
- WIDTH = 60.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
-
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
- /* *************************** Main Block *************************** */
-
- RUN ARTIKEL_TABELLEN.
- RUN REORG_ARTIKEL.
-
- RUN REORG_DEBITOR.
-
- RUN NEUE_ARTIKELNUMMER.
- RUN UMNUMMERIEREN.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &IF DEFINED(EXCLUDE-ARTIKEL_TABELLEN) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL_TABELLEN Procedure
- PROCEDURE ARTIKEL_TABELLEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cRecArt AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR iCodeI AS INT NO-UNDO.
- DO ix = 1 TO NUM-ENTRIES(xRecArt, ','):
- cRecArt = ENTRY(ix, xRecArt, ',').
- FOR EACH Tabel
- WHERE Tabel.Firma = cFirma
- AND Tabel.RecArt = cRecart:
- ASSIGN Tabel.Int_1 = 0.
- END.
-
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = cFirma
- AND Artst.Aktiv :
-
- CASE cRecArt:
- WHEN 'ABONUS' THEN iCodeI = Artst.Bonus_Grp .
- WHEN 'ARABGRP' THEN iCodeI = Artst.Rab_Grp .
- WHEN 'AREG' THEN iCodeI = Artst.Reg_Grp .
- WHEN 'TRAUB' THEN iCodeI = Artst.Traub_Grp .
- WHEN 'FARB' THEN iCodeI = Artst.Farbe .
- WHEN 'HERST' THEN iCodeI = Artst.Herst .
- END.
-
- FIND Tabel
- WHERE Tabel.Firma = cFirma
- AND Tabel.RecArt = cRecArt
- AND Tabel.CodeI = iCodeI
- AND Tabel.CodeC = ''
- AND Tabel.Sprcd = 1.
- ASSIGN Tabel.Int_1 = 1.
- END.
- FOR EACH Tabel
- WHERE Tabel.Firma = cFirma
- AND Tabel.RecArt = cRecart.
- IF Tabel.Int_1 = 0 THEN DELETE Tabel.
- ELSE Tabel.Int_1 = 0.
- END.
- END.
-
- EMPTY TEMP-TABLE tWarengrp.
- EMPTY TEMP-TABLE tProdgrp .
- EMPTY TEMP-TABLE tArtikgrp.
-
- FOR EACH Warengrp NO-LOCK
- WHERE Warengrp.Firma = cFirma.
- CREATE tWarengrp.
- BUFFER-COPY Warengrp to tWarengrp
- ASSIGN tWarengrp.Aktiv = FALSE.
- END.
- FOR EACH Prodgrp NO-LOCK
- WHERE Prodgrp.Firma = cFirma.
- CREATE tProdgrp.
- BUFFER-COPY Prodgrp to tProdgrp
- ASSIGN tProdgrp.Aktiv = FALSE.
- END.
- FOR EACH Artikgrp NO-LOCK
- WHERE Artikgrp.Firma = cFirma.
- CREATE tArtikgrp.
- BUFFER-COPY Artikgrp to tArtikgrp
- ASSIGN tArtikgrp.Aktiv = FALSE.
- END.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = cFirma
- AND Artst.Aktiv:
- FIND tWarengrp
- WHERE tWarengrp.Firma = cFirma
- AND tWarengrp.Wgr = Artst.Wg_Grp NO-ERROR.
- IF NOT AVAILABLE tWarengrp THEN DO:
- CREATE Warengrp.
- ASSIGN Warengrp.Firma = cFirma
- Warengrp.Wgr = Artst.Wg_Grp
- Warengrp.Bez1 = 'unbekannt'.
- CREATE tWarengrp.
- BUFFER-COPY Warengrp TO tWarengrp
- ASSIGN tWarengrp.Aktiv = TRUE.
- END.
- ELSE tWarengrp.Aktiv = TRUE.
- END.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = cFirma
- AND Artst.Aktiv:
- FIND tProdgrp
- WHERE tProdgrp.Firma = cFirma
- AND tProdgrp.Wgr = Artst.Wg_Grp
- AND tProdgrp.Prod_Grp = Artst.Prod_Grp NO-ERROR.
- IF NOT AVAILABLE tProdgrp THEN DO:
- CREATE Prodgrp.
- ASSIGN Prodgrp.Firma = cFirma
- Prodgrp.Wgr = Artst.Wg_Grp
- Prodgrp.Prod_Grp = Artst.Prod_Grp
- Prodgrp.Bez1 = 'unbekannt'.
- CREATE tProdgrp.
- BUFFER-COPY Prodgrp TO tProdgrp
- ASSIGN tProdgrp.Aktiv = TRUE.
- END.
- ELSE tProdgrp.Aktiv = TRUE.
- END.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = cFirma
- AND Artst.Aktiv:
- FIND tArtikgrp
- WHERE tArtikgrp.Firma = cFirma
- AND tArtikgrp.Wgr = Artst.Wg_Grp
- AND tArtikgrp.Prod_Grp = Artst.Prod_Grp
- AND tArtikgrp.Art_Grp = Artst.Art_Grp NO-ERROR.
- IF NOT AVAILABLE tArtikgrp THEN DO:
- CREATE Artikgrp.
- ASSIGN Artikgrp.Firma = cFirma
- Artikgrp.Wgr = Artst.Wg_Grp
- Artikgrp.Prod_Grp = Artst.Prod_Grp
- Artikgrp.Art_Grp = Artst.Art_Grp
- Artikgrp.Bez1 = 'unbekannt'.
- CREATE tArtikgrp.
- BUFFER-COPY Artikgrp TO tArtikgrp
- ASSIGN tArtikgrp.Aktiv = TRUE.
- END.
- ELSE tArtikgrp.Aktiv = TRUE.
- END.
-
- FOR EACH tArtikgrp WHERE NOT tArtikgrp.Aktiv:
- FIND Artikgrp OF tArtikgrp.
- DELETE Artikgrp.
- END.
- FOR EACH tProdGrp WHERE NOT tProdGrp.Aktiv:
- FIND ProdGrp OF tProdGrp.
- DELETE ProdGrp.
- END.
- FOR EACH tWarenGrp WHERE NOT tWarenGrp.Aktiv:
- FIND WarenGrp OF WarenGrp.
- DELETE WarenGrp.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-NEUE_ARTIKELNUMMER) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_ARTIKELNUMMER Procedure
- PROCEDURE NEUE_ARTIKELNUMMER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR Artnr AS INT INIT 0 NO-UNDO.
-
-
- EMPTY TEMP-TABLE tArtst.
- EMPTY TEMP-TABLE tArtstN.
- FOR EACH Artst NO-LOCK:
- CREATE tArtst.
- BUFFER-COPY Artst TO tArtst.
- ASSIGN tArtst.iRecid = RECID(Artst).
- END.
- Artnr = 100000.
- FOR EACH tArtst
- BY tArtst.Wg_Grp
- BY tArtst.Herst
- BY tArtst.Bez
- BY tArtst.KGeb :
- Artnr = Artnr + 1.
- CREATE tArtstN.
- BUFFER-COPY tArtst EXCEPT Artnr Inhalt Jahr FremdNr
- TO tArtstN
- ASSIGN tArtstN.Artnr = Artnr
- tArtstN.Inhalt = 0
- tArtstN.Jahr = tArtst.Jahr
- tArtstN.FremdNr = STRING(tArtst.Artnr ,'999999')
- + STRING(tArtst.Inhalt,'9999')
- + STRING(tArtst.Jahr ,'9999').
- END.
- FOR EACH tArtstN:
- IF tArtstN.Wg_Grp = 05 THEN NEXT.
- IF tArtstN.Wg_Grp = 07 THEN NEXT.
- IF tArtstN.Wg_Grp = 08 THEN NEXT.
- ASSIGN tArtstN.Jahr = 0.
- END.
- FOR EACH _Field WHERE _Field._Field-Name = 'Artnr',
- FIRST _File OF _Field:
- CREATE tDateien.
- ASSIGN tDateien.cName = _File._File-Name.
- END.
- OUTPUT TO 'D:\Temp\Huber_Artst_N.csv' NO-MAP NO-CONVERT.
- FOR EACH tArtstN NO-LOCK:
- EXPORT DELIMITER ';' tArtstN.
- END.
- OUTPUT CLOSE.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-REORG_ARTIKEL) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REORG_ARTIKEL Procedure
- PROCEDURE REORG_ARTIKEL :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cWert AS CHAR NO-UNDO.
- DEF VAR iWert AS INT NO-UNDO.
- DEF VAR cRecArt AS CHAR NO-UNDO.
- DEF VAR yRecArt AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
-
- DEF BUFFER bArtst FOR Artst.
- FOR EACH Artst WHERE Artst.Firma = cFirma:
- IF NOT Artst.Aktiv THEN NEXT.
- IF Artst.Bestand > 0 THEN NEXT.
- IF Artst.EDat >= 07/01/2003 THEN NEXT.
-
- FIND FIRST Artbw NO-LOCK USE-INDEX Artbw-k9
- WHERE Artbw.Firma = Artst.Firma
- AND Artbw.Artnr = Artst.Artnr
- AND Artbw.Inhalt = Artst.Inhalt
- AND Artbw.Jahr = Artst.Jahr NO-ERROR.
- IF NOT AVAILABLE Artbw OR
- Artbw.Datum < 07/01/2003 THEN DO:
- Artst.Aktiv = FALSE.
- END.
- END.
- EMPTY TEMP-TABLE tKGebinde.
- EMPTY TEMP-TABLE tVGebinde.
- EMPTY TEMP-TABLE tGGebinde.
-
- FOR EACH KGebinde WHERE KGebinde.Firma = cFirma NO-LOCK:
- CREATE tKGebinde.
- BUFFER-COPY KGebinde TO tKGebinde
- ASSIGN tKGebinde.Aktiv = FALSE.
- END.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = '1000'
- AND Artst.Aktiv = TRUE
- BREAK BY Artst.KGeb_Cd:
-
- IF FIRST-OF ( Artst.KGeb_Cd ) THEN DO:
- FIND FIRST tKGebinde
- WHERE tKGebinde.Firma = Artst.Firma
- AND tKGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
- tKGebinde.Aktiv = TRUE.
- END.
- END.
- FOR EACH tKGebinde WHERE NOT tkgebinde.aktiv.
- FIND KGebinde OF tKGebinde.
- DELETE KGebinde.
- END.
-
- FOR EACH VGebinde WHERE VGebinde.Firma = cFirma NO-LOCK:
- CREATE tVGebinde.
- BUFFER-COPY VGebinde TO tVGebinde
- ASSIGN tVGebinde.Aktiv = FALSE.
- END.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = '1000'
- AND Artst.Aktiv = TRUE
- BREAK BY Artst.VGeb_Cd:
-
- IF FIRST-OF ( Artst.VGeb_Cd ) THEN DO:
- FIND FIRST tVGebinde
- WHERE tVGebinde.Firma = Artst.Firma
- AND tVGebinde.Geb_Cd = Artst.VGeb_Cd.
- tVGebinde.Aktiv = TRUE.
- END.
- END.
- FOR EACH tVGebinde WHERE NOT tVGebinde.aktiv.
- FIND VGebinde OF tVGebinde.
- DELETE VGebinde.
- END.
-
- FOR EACH GGebinde WHERE GGebinde.Firma = cFirma NO-LOCK:
- CREATE tGGebinde.
- BUFFER-COPY GGebinde TO tGGebinde
- ASSIGN tGGebinde.Aktiv = FALSE.
- END.
- FOR EACH Artst NO-LOCK
- WHERE Artst.Firma = '1000'
- AND Artst.Aktiv = TRUE
- BREAK BY Artst.GGeb_Cd:
-
- IF FIRST-OF ( Artst.GGeb_Cd ) THEN DO:
- FIND FIRST tGGebinde
- WHERE tGGebinde.Firma = Artst.Firma
- AND tGGebinde.Geb_Cd = Artst.GGeb_Cd.
- tGGebinde.Aktiv = TRUE.
- END.
- END.
- FOR EACH tGGebinde WHERE NOT tGGebinde.aktiv.
- FIND GGebinde OF tGGebinde.
- DELETE GGebinde.
- END.
- /*
- FOR EACH Artst
- WHERE Artst.Firma = '1000'
- AND Artst.Aktiv :
- IF Artst.Wg_Grp > 16 THEN ASSIGN Artst.Sk_Ber = FALSE.
- ELSE Artst.Sk_Ber = TRUE.
- IF Artst.Wg_Grp = 9 THEN ASSIGN Artst.Sk_Ber = FALSE.
- ASSIGN Artst.Netto = TRUE.
- IF Artst.Wg_Grp < 6 THEN ASSIGN Artst.Netto = FALSE.
- IF Artst.Wg_Grp > 10 AND
- Artst.Wg_Grp < 13 THEN ASSIGN Artst.Netto = FALSE.
- IF Artst.Wg_Grp > 13 AND
- Artst.Wg_Grp < 17 THEN ASSIGN Artst.Netto = FALSE.
- END.
- */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-REORG_DEBITOR) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REORG_DEBITOR Procedure
- PROCEDURE REORG_DEBITOR :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cWert AS CHAR NO-UNDO.
- DEF VAR iWert AS INT NO-UNDO.
- DEF VAR cRecArt AS CHAR NO-UNDO.
- DEF VAR yRecArt AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
-
- DEF BUFFER bArtst FOR Artst.
- FOR EACH Tabel
- WHERE Tabel.Firma = '1000'
- AND Tabel.RecArt = 'PREGRP':
- Tabel.Int_2 = 0.
- END.
- FOR EACH Debst NO-LOCK
- WHERE Debst.Firma = cFirma
- AND Debst.Aktiv
-
- BREAK BY Debst.Preis_Grp:
-
- IF NOT FIRST-OF ( Debst.Preis_Grp ) THEN NEXT.
- FIND Tabel
- WHERE Tabel.Firma = Debst.Firma
- AND Tabel.RecArt = 'PREGRP'
- AND Tabel.CodeC = ''
- AND Tabel.CodeI = Debst.Preis_Grp
- AND Tabel.Sprcd = 1.
- ASSIGN Tabel.Int_2 = 1.
- END.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-UMNUMMERIEREN) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE UMNUMMERIEREN Procedure
- PROCEDURE UMNUMMERIEREN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR iArtnr AS INT NO-UNDO.
- DEF VAR iInhalt AS INT NO-UNDO.
- DEF VAR iJahr AS INT NO-UNDO.
- DEF VAR hFeld AS HANDLE NO-UNDO.
- DEF VAR hArtstN AS HANDLE NO-UNDO.
- DEF VAR hBuffer AS HANDLE NO-UNDO.
- DEF VAR hQuery AS HANDLE NO-UNDO.
- DEF VAR hTemp AS HANDLE NO-UNDO.
- DEF VAR hTempBuff AS HANDLE NO-UNDO.
- DEF VAR cWhere AS CHAR NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR cDumpName AS CHAR NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR i1 AS INT NO-UNDO.
- DEF VAR i2 AS INT NO-UNDO.
- DEF VAR iZeit AS INT NO-UNDO.
- DEF VAR iAnz AS INT NO-UNDO.
- hArtstN = TEMP-TABLE tArtstN:DEFAULT-BUFFER-HANDLE.
- FOR EACH tArtstN USE-INDEX tArtstN-k1 TRANSACTION:
- ASSIGN iArtnr = INTEGER(SUBSTRING(tArtstN.FremdNr,01,06))
- iInhalt = INTEGER(SUBSTRING(tArtstN.FremdNr,07,04))
- iJahr = INTEGER(SUBSTRING(tArtstN.FremdNr,11,04)).
- FIND Artst WHERE RECID(Artst) = tArtstN.iRecid.
- FOR EACH tDateien WHERE tDateien.cName <> 'Artst':
- iZeit = ETIME(TRUE).
- iAnz = 0.
- CREATE BUFFER hBuffer FOR TABLE tDateien.cName.
- CREATE QUERY hQuery.
- hQuery:SET-BUFFERS(hBuffer).
- CASE tDateien.cName:
- WHEN 'ArtUms' OR
- WHEN 'DeArUms' THEN DO:
- cWhere = 'FOR EACH &1 '
- + 'WHERE &1.Firma = &2 '
- + 'AND &1.Artnr = &3 '
- + 'AND &1.Inhalt = &4 '
- + 'AND &1.Jahrg = &5 '.
- END.
- OTHERWISE DO:
- cWhere = 'FOR EACH &1 '
- + 'WHERE &1.Firma = &2 '
- + 'AND &1.Artnr = &3 '
- + 'AND &1.Inhalt = &4 '
- + 'AND &1.Jahr = &5 '.
- END.
- END CASE.
- cWhere = SUBSTITUTE(cWhere, tDateien.cName,
- '"1000"' ,
- iArtnr ,
- iInhalt,
- iJahr ).
- hQuery:QUERY-PREPARE(cWhere) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN DO:
- MESSAGE cWhere 'funktioniert nicht!' VIEW-AS ALERT-BOX.
- NEXT.
- END.
- cDumpName = tDateien.cName + '.d'.
- CREATE TEMP-TABLE hTemp.
- hTemp:CREATE-LIKE(hBuffer).
- hTemp:TEMP-TABLE-PREPARE("tDump").
- hTempBuff = hTemp:DEFAULT-BUFFER-HANDLE.
- hQuery:QUERY-OPEN().
- hQuery:GET-FIRST().
- DO WHILE NOT hQuery:QUERY-OFF-END:
- iAnz = iAnz + 1.
- hTempBuff:BUFFER-CREATE.
- hTempBuff:BUFFER-COPY(hBuffer, "Artnr,Inhalt").
- ASSIGN hTempBuff::Artnr = hArtstN::Artnr
- hTempBuff::Inhalt = hArtstN::Inhalt.
- CASE tDateien.cName:
- WHEN 'ArtUms' OR
- WHEN 'DeArUms' THEN ASSIGN hTempBuff::Jahrg = hArtstN::Jahr.
- OTHERWISE ASSIGN hTempBuff::Jahr = hArtstN::Jahr.
- END CASE.
- hQuery:GET-NEXT().
- END.
- OUTPUT TO 'D:\Temp\Reorg.log' APPEND.
- PUT CONTROL 'Verarbeitet -> ' tDateien.cName ' / Zeit ' ETIME(FALSE) CHR(10).
- OUTPUT CLOSE.
- hQuery:QUERY-CLOSE().
- DELETE OBJECT hQuery NO-ERROR.
- DELETE OBJECT hBuffer NO-ERROR.
- CREATE QUERY hQuery.
- hQuery:SET-BUFFERS(hTempBuff).
- hQuery:QUERY-PREPARE("FOR EACH tDump").
- hQuery:QUERY-OPEN().
- hQuery:GET-FIRST(NO-LOCK).
- OUTPUT STREAM out TO VALUE(cDumpName) APPEND NO-MAP NO-CONVERT.
- DO WHILE NOT hQuery:QUERY-OFF-END:
- cString = ''.
- DO i1 = 1 TO hTempBuff:NUM-FIELDS:
- hFeld = hTempBuff:BUFFER-FIELD(i1).
- IF hFeld:EXTENT = 0 THEN DO:
- cFeld = hFeld:BUFFER-VALUE(0).
- IF cFeld = ? THEN cFeld = '?'.
- IF hFeld:DATA-TYPE = 'character' THEN DO:
- cFeld = '"' + REPLACE(cFeld, '"', '""') + '"'.
- END.
- IF cString <> '' THEN cString = cString + ' '.
- cString = cString + cFeld.
- END.
- ELSE DO:
- DO i2 = 1 TO hFeld:EXTENT:
- cFeld = hFeld:BUFFER-VALUE(i2).
- IF cFeld = ? THEN cFeld = '?'.
- IF hFeld:DATA-TYPE = 'character' THEN DO:
- cFeld = '"' + REPLACE(cFeld, '"', '""') + '"'.
- END.
- IF cString <> '' THEN cString = cString + ' '.
- cString = cString + cFeld.
- END.
- END.
- END.
- PUT STREAM out UNFORMATTED cString SKIP.
- hQuery:GET-NEXT(NO-LOCK).
- END.
- OUTPUT STREAM out CLOSE.
- hQuery:QUERY-CLOSE().
- DELETE OBJECT hTemp NO-ERROR.
- DELETE OBJECT hTempBuff NO-ERROR.
- DELETE OBJECT hQuery NO-ERROR.
- END.
- END.
- OUTPUT STREAM artst TO 'Artst.d' NO-MAP NO-CONVERT.
- FOR EACH tArtstN:
- EXPORT STREAM artst tArtstN EXCEPT KGeb iRecid .
- END.
- OUTPUT STREAM artst CLOSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
|