&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 Firma AS CHAR INIT '1000' NO-UNDO. DEF VAR iAufnr AS INT NO-UNDO. DEF TEMP-TABLE tGebRueck LIKE GebRueck FIELD iId AS INT FIELD lFound AS LOG . DEF VAR htGebRueck AS HANDLE NO-UNDO. htGebRueck = TEMP-TABLE tGebRueck:DEFAULT-BUFFER-HANDLE. /* _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 *************************** */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &IF DEFINED(EXCLUDE-GEBINDE_BEZOGEN) = 0 &THEN &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDE_BEZOGEN Procedure PROCEDURE GEBINDE_BEZOGEN : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR MW AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF BUFFER bAufko FOR Aufko. DEF BUFFER bAufze FOR Aufze. DEF BUFFER bSavko FOR Savko. DEF BUFFER bSavze FOR Savze. EMPTY TEMP-TABLE tGebRueck. FOR EACH GebRueck NO-LOCK WHERE GebRueck.Firma = Firma: CREATE tGebRueck. BUFFER-COPY GebRueck TO tGebRueck ASSIGN tGebRueck.lFound = FALSE. END. FOR EACH bAufko NO-LOCK WHERE bAufko.Firma = Firma AND bAufko.Aufnr = iAufnr, /* Aktuelle Auftragsnummer */ EACH Aufze WHERE Aufze.Firma = bAufko.Firma AND Aufze.Aufnr = bAufko.Aufnr AND Aufze.Artnr > 0: DO WHILE TRUE: FIND KGebinde NO-LOCK WHERE KGebinde.Firma = Aufze.Firma AND KGebinde.Geb_Cd = Aufze.KGeb_Cd NO-ERROR. IF NOT AVAILABLE KGebinde THEN LEAVE. IF KGebinde.Depot = 0 THEN LEAVE. FOR EACH tGebRueck NO-LOCK WHERE (tGebRueck.Kto_Cd1 = Aufze.KGebKto OR tGebRueck.Kto_Cd2 = Aufze.KGebKto OR tGebRueck.Kto_Cd3 = Aufze.KGebKto) AND tGebRueck.lFound = FALSE: tGebRueck.lFound = TRUE. END. LEAVE. END. DO WHILE TRUE: FIND VGebinde NO-LOCK WHERE VGebinde.Firma = Aufze.Firma AND VGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR. IF NOT AVAILABLE VGebinde THEN LEAVE. IF VGebinde.Depot = 0 THEN LEAVE. FOR EACH tGebRueck NO-LOCK WHERE (tGebRueck.Kto_Cd1 = Aufze.VGebKto OR tGebRueck.Kto_Cd2 = Aufze.VGebKto OR tGebRueck.Kto_Cd3 = Aufze.VGebKto) AND tGebRueck.lFound = FALSE: tGebRueck.lFound = TRUE. END. LEAVE. END. DO WHILE TRUE: FIND GGebinde NO-LOCK WHERE GGebinde.Firma = Aufze.Firma AND GGebinde.Geb_Cd = Aufze.VGeb_Cd NO-ERROR. IF NOT AVAILABLE GGebinde THEN LEAVE. IF GGebinde.Depot = 0 THEN LEAVE. FOR EACH tGebRueck NO-LOCK WHERE (tGebRueck.Kto_Cd1 = Aufze.GGebKto OR tGebRueck.Kto_Cd2 = Aufze.GGebKto OR tGebRueck.Kto_Cd3 = Aufze.GGebKto) AND tGebRueck.lFound = FALSE: tGebRueck.lFound = TRUE. END. LEAVE. END. END. FOR EACH bSavko NO-LOCK USE-INDEX Savko-k10 WHERE bSavko.Firma = Firma AND bSavko.Fak_Datum >= (TODAY - 180), EACH bSavze WHERE bSavze.Firma = bSavko.Firma AND bSavze.Aufnr = bSavko.Aufnr AND bSavze.Artnr > 0: DO WHILE TRUE: FIND KGebinde NO-LOCK WHERE KGebinde.Firma = bSavze.Firma AND KGebinde.Geb_Cd = bSavze.KGeb_Cd NO-ERROR. IF NOT AVAILABLE KGebinde THEN LEAVE. IF KGebinde.Depot = 0 THEN LEAVE. FOR EACH tGebRueck NO-LOCK WHERE (tGebRueck.Kto_Cd1 = bSavze.KGebKto OR tGebRueck.Kto_Cd2 = bSavze.KGebKto OR tGebRueck.Kto_Cd3 = bSavze.KGebKto) AND tGebRueck.lFound = FALSE: tGebRueck.lFound = TRUE. END. LEAVE. END. DO WHILE TRUE: FIND VGebinde NO-LOCK WHERE VGebinde.Firma = bSavze.Firma AND VGebinde.Geb_Cd = bSavze.VGeb_Cd NO-ERROR. IF NOT AVAILABLE VGebinde THEN LEAVE. IF VGebinde.Depot = 0 THEN LEAVE. FOR EACH tGebRueck NO-LOCK WHERE (tGebRueck.Kto_Cd1 = bSavze.VGebKto OR tGebRueck.Kto_Cd2 = bSavze.VGebKto OR tGebRueck.Kto_Cd3 = bSavze.VGebKto) AND tGebRueck.lFound = FALSE: tGebRueck.lFound = TRUE. END. LEAVE. END. DO WHILE TRUE: FIND GGebinde NO-LOCK WHERE GGebinde.Firma = bSavze.Firma AND GGebinde.Geb_Cd = bSavze.VGeb_Cd NO-ERROR. IF NOT AVAILABLE GGebinde THEN LEAVE. IF GGebinde.Depot = 0 THEN LEAVE. FOR EACH tGebRueck NO-LOCK WHERE (tGebRueck.Kto_Cd1 = bSavze.GGebKto OR tGebRueck.Kto_Cd2 = bSavze.GGebKto OR tGebRueck.Kto_Cd3 = bSavze.GGebKto) AND tGebRueck.lFound = FALSE: tGebRueck.lFound = TRUE. END. LEAVE. END. END. iId = 0. FOR EACH tGebRueck WHERE tGebRueck.lFound = TRUE BY tGebRueck.Sort_Cd BY tGebRueck.Geb_Cd: iId = iId + 1. tGebRueck.Sort = STRING(iId ,'99') + tGebRueck.Geb_Cd. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ENDIF