&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gDialog &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gDialog /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ DEFINE INPUT-OUTPUT PARAMETER iohtAufze AS HANDLE NO-UNDO. DEFINE OUTPUT PARAMETER oplRetVal AS LOG NO-UNDO. /* Local Variable Definitions --- */ { incl/dlgdefinition.i } DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO. DEFINE VARIABLE cKGeb_Cd AS CHARACTER NO-UNDO. DEFINE VARIABLE cVGeb_Cd AS CHARACTER NO-UNDO. DEFINE VARIABLE cGGeb_Cd AS CHARACTER NO-UNDO. DEFINE VARIABLE lRueckstand AS LOG NO-UNDO. DEFINE VARIABLE iLKY AS INTEGER NO-UNDO. DEFINE VARIABLE iLager AS INTEGER NO-UNDO. DEFINE VARIABLE hLeave AS HANDLE NO-UNDO. DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE Ja AS LOG NO-UNDO. DEFINE VARIABLE FAbbruch AS LOG NO-UNDO. DEFINE BUFFER bAufko FOR Aufko. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. DEFINE BUFFER bArtLager FOR ArtLager. DEFINE BUFFER bKGebinde FOR KGebinde. DEFINE BUFFER bVGebinde FOR VGebinde. DEFINE BUFFER bGGebinde FOR GGebinde. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gDialog /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS T_Lager F_Menge-1 F_Menge-2 F_Menge-3 ~ F_Artikel F_KGebinde F_Bestand F_Bestellt F_Best_Neu RECT-38 RECT-39 &Scoped-Define DISPLAYED-OBJECTS T_Lager F_Menge-1 F_Menge-2 CB_Lager ~ F_Menge-3 F_Artikel F_KGebinde F_Bestand F_Bestellt F_Best_Neu F_Geli-Text /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-4 F_Be_Menge-1 F_Be_Menge-2 F_Be_Menge-3 &Scoped-define List-5 F_Bestand F_Bestellt F_Best_Neu &Scoped-define List-6 T_Lager F_Menge-1 F_Menge-2 F_Menge-3 F_Artikel ~ F_KGebinde F_Bestand F_Bestellt F_Best_Neu /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 25 BY 1 NO-UNDO. DEFINE VARIABLE F_Artikel AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 63 BY 1 BGCOLOR 15 FONT 6 NO-UNDO. DEFINE VARIABLE F_Best-Text AS CHARACTER FORMAT "X(256)":U INITIAL "Bestellt" VIEW-AS TEXT SIZE 8 BY 1 NO-UNDO. DEFINE VARIABLE F_Bestand AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bestellt AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Best_Neu AS DECIMAL FORMAT "zzz,zz9.99-":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Be_Menge-1 AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Be_Menge-2 AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Be_Menge-3 AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Geli-Text AS CHARACTER FORMAT "X(256)":U INITIAL "Geliefert" VIEW-AS TEXT SIZE 8 BY 1 NO-UNDO. DEFINE VARIABLE F_KGebinde AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 15 BY 1 BGCOLOR 15 FONT 6 NO-UNDO. DEFINE VARIABLE F_Menge-1 AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Menge-2 AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Menge-3 AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-38 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 68 BY 8.1. DEFINE RECTANGLE RECT-39 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 68 BY 2.86. DEFINE VARIABLE T_Lager AS LOGICAL INITIAL YES LABEL "Lager aktiv ?" VIEW-AS TOGGLE-BOX SIZE 20 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gDialog T_Lager AT ROW 3.52 COL 46.2 WIDGET-ID 6 F_Be_Menge-1 AT ROW 6 COL 23 COLON-ALIGNED WIDGET-ID 10 F_Be_Menge-2 AT ROW 7 COL 23 COLON-ALIGNED WIDGET-ID 16 F_Be_Menge-3 AT ROW 8 COL 23 COLON-ALIGNED WIDGET-ID 14 F_Menge-1 AT ROW 6 COL 53 COLON-ALIGNED F_Menge-2 AT ROW 7 COL 53 COLON-ALIGNED CB_Lager AT ROW 1.52 COL 39 COLON-ALIGNED WIDGET-ID 8 NO-TAB-STOP F_Menge-3 AT ROW 8 COL 53 COLON-ALIGNED F_Artikel AT ROW 2.52 COL 1 COLON-ALIGNED NO-LABEL WIDGET-ID 2 NO-TAB-STOP F_KGebinde AT ROW 3.52 COL 3 NO-LABEL WIDGET-ID 4 NO-TAB-STOP F_Bestand AT ROW 10.76 COL 1.8 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Bestellt AT ROW 10.76 COL 24.2 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Best_Neu AT ROW 10.76 COL 46.6 COLON-ALIGNED NO-LABEL NO-TAB-STOP F_Best-Text AT ROW 5 COL 26 COLON-ALIGNED NO-LABEL WIDGET-ID 22 NO-TAB-STOP F_Geli-Text AT ROW 5 COL 55.4 COLON-ALIGNED NO-LABEL WIDGET-ID 24 NO-TAB-STOP " Bestand" VIEW-AS TEXT SIZE 19.6 BY .81 AT ROW 9.95 COL 3.8 FONT 6 "Neuer Bestand" VIEW-AS TEXT SIZE 19.6 BY .81 AT ROW 9.95 COL 48.6 FONT 6 " Bestellt" VIEW-AS TEXT SIZE 19.6 BY .81 AT ROW 9.95 COL 26.2 FONT 6 RECT-38 AT ROW 1.24 COL 2 RECT-39 AT ROW 9.52 COL 2 SPACE(0.99) SKIP(0.18) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Gebindemengen". /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gDialog /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gDialog FRAME-NAME Custom */ ASSIGN FRAME gDialog:SCROLLABLE = FALSE FRAME gDialog:HIDDEN = TRUE. /* SETTINGS FOR COMBO-BOX CB_Lager IN FRAME gDialog NO-ENABLE */ /* SETTINGS FOR FILL-IN F_Artikel IN FRAME gDialog 6 */ ASSIGN F_Artikel:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Best-Text IN FRAME gDialog NO-DISPLAY NO-ENABLE */ ASSIGN F_Best-Text:HIDDEN IN FRAME gDialog = TRUE F_Best-Text:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Bestand IN FRAME gDialog 5 6 */ ASSIGN F_Bestand:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Bestellt IN FRAME gDialog 5 6 */ ASSIGN F_Bestellt:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Best_Neu IN FRAME gDialog 5 6 */ ASSIGN F_Best_Neu:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Be_Menge-1 IN FRAME gDialog NO-DISPLAY NO-ENABLE 4 */ ASSIGN F_Be_Menge-1:HIDDEN IN FRAME gDialog = TRUE F_Be_Menge-1:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Be_Menge-2 IN FRAME gDialog NO-DISPLAY NO-ENABLE 4 */ ASSIGN F_Be_Menge-2:HIDDEN IN FRAME gDialog = TRUE F_Be_Menge-2:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Be_Menge-3 IN FRAME gDialog NO-DISPLAY NO-ENABLE 4 */ ASSIGN F_Be_Menge-3:HIDDEN IN FRAME gDialog = TRUE F_Be_Menge-3:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Geli-Text IN FRAME gDialog NO-ENABLE */ ASSIGN F_Geli-Text:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_KGebinde IN FRAME gDialog ALIGN-L 6 */ ASSIGN F_KGebinde:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Menge-1 IN FRAME gDialog 6 */ ASSIGN F_Menge-1:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Menge-2 IN FRAME gDialog 6 */ ASSIGN F_Menge-2:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR FILL-IN F_Menge-3 IN FRAME gDialog 6 */ ASSIGN F_Menge-3:READ-ONLY IN FRAME gDialog = TRUE. /* SETTINGS FOR TOGGLE-BOX T_Lager IN FRAME gDialog 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gDialog /* Query rebuild information for DIALOG-BOX gDialog _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gDialog */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gDialog &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDialog gDialog ON END-ERROR OF FRAME gDialog /* Gebindemengen */ DO: FAbbruch = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDialog gDialog ON GO OF FRAME gDialog /* Gebindemengen */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDialog gDialog ON WINDOW-CLOSE OF FRAME gDialog /* Gebindemengen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Be_Menge-1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-1 gDialog ON ALT-CURSOR-RIGHT OF F_Be_Menge-1 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'ENTRY' TO F_Menge-1. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-1 gDialog ON CURSOR-DOWN OF F_Be_Menge-1 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-1 gDialog ON ENTRY OF F_Be_Menge-1 IN FRAME gDialog DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-1 gDialog ON LEAVE OF F_Be_Menge-1 IN FRAME gDialog DO: iLKY = LAST-KEY. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-4}. ASSIGN {&List-6}. IF SELF:MODIFIED THEN DO: IF AVAILABLE bGGebinde THEN F_Be_Menge-2 = F_Be_Menge-1 * bGGebinde.Inhalt. IF AVAILABLE bVGebinde THEN F_Be_Menge-3 = F_Be_Menge-2 * bVGebinde.Inhalt. ASSIGN F_Menge-1 = F_Be_Menge-1 F_Menge-2 = F_Be_Menge-2 F_Menge-3 = F_Be_Menge-3. END. DISPLAY {&List-4}. DISPLAY {&List-6}. SELF:MODIFIED = FALSE. IF T_Lager THEN DO: F_Best_Neu = F_Bestand - F_Menge-3. IF F_Best_Neu < 0 THEN DO: F_Best_Neu:BGCOLOR = 14. END. DISPLAY {&List-5}. END. IF iLKY <> KEYCODE('TAB') AND iLKY <> KEYCODE('ENTER') AND iLKY <> KEYCODE('CURSOR-DOWN') THEN RETURN. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-1 gDialog ON RETURN OF F_Be_Menge-1 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Be_Menge-2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-2 gDialog ON ALT-CURSOR-RIGHT OF F_Be_Menge-2 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'ENTRY' TO F_Menge-2. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-2 gDialog ON CURSOR-DOWN OF F_Be_Menge-2 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-2 gDialog ON CURSOR-UP OF F_Be_Menge-2 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-2 gDialog ON ENTRY OF F_Be_Menge-2 IN FRAME gDialog DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-2 gDialog ON LEAVE OF F_Be_Menge-2 IN FRAME gDialog DO: iLKY = LASTKEY. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-4}. ASSIGN {&List-6}. IF SELF:MODIFIED THEN DO: IF AVAILABLE bVGebinde THEN F_Be_Menge-3 = F_Be_Menge-2 * bVGebinde.Inhalt. ASSIGN F_Menge-2 = F_Be_Menge-2 F_Menge-3 = F_Be_Menge-3. END. DISPLAY {&List-4}. DISPLAY {&List-6}. SELF:MODIFIED = FALSE. IF T_Lager THEN DO: F_Best_Neu = F_Bestand - F_Menge-3. IF F_Best_Neu < 0 THEN DO: F_Best_Neu:BGCOLOR = 14. END. DISPLAY {&List-5}. END. IF iLKY <> KEYCODE('TAB') AND iLKY <> KEYCODE('ENTER') AND iLKY <> KEYCODE('CURSOR-DOWN') THEN RETURN. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-2 gDialog ON RETURN OF F_Be_Menge-2 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Be_Menge-3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON ALT-CURSOR-RIGHT OF F_Be_Menge-3 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'ENTRY' TO F_Menge-3. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON BACK-TAB OF F_Be_Menge-3 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON CURSOR-DOWN OF F_Be_Menge-3 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON CURSOR-UP OF F_Be_Menge-3 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON END-ERROR OF F_Be_Menge-3 IN FRAME gDialog DO: FAbbruch = TRUE. RUN ENDE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON ENTRY OF F_Be_Menge-3 IN FRAME gDialog DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON LEAVE OF F_Be_Menge-3 IN FRAME gDialog DO: DEFINE VARIABLE cMenge AS CHARACTER NO-UNDO. DEFINE VARIABLE dMenge AS DECIMAL DECIMALS 4 NO-UNDO. iLKY = LASTKEY. IF iLKY = KEYCODE('ALT-CURSOR-RIGHT') THEN RETURN. IF iLKY = KEYCODE('CURSOR-UP') THEN RETURN. IF iLKY = KEYCODE('BACK-TAB') THEN RETURN. IF iLKY = KEYCODE('END-ERROR') THEN RETURN. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-4}. ASSIGN {&List-5}. ASSIGN {&List-6}. IF SELF:MODIFIED THEN DO: ASSIGN F_Menge-3 = F_Be_Menge-3. END. DISPLAY {&List-4}. DISPLAY {&List-6}. SELF:MODIFIED = FALSE. IF T_Lager THEN DO: F_Best_Neu = F_Bestand - F_Be_Menge-3. IF F_Best_Neu < 0 THEN DO: F_Best_Neu:BGCOLOR = 14. Ja = DYNAMIC-FUNCTION('ANTWORT_JA':U, INPUT 1063 ) NO-ERROR. IF NOT Ja THEN DO: F_Be_Menge-3 = F_Bestand. IF F_Be_Menge-2 <> 0 AND AVAILABLE bVGebinde THEN DO: dMenge = F_Be_Menge-3 / bVGebinde.Inhalt. cMenge = STRING(dMenge,'999999.999-'). dMenge = DECIMAL(SUBSTRING(cMenge,01,06)). F_Be_Menge-2 = dMenge. END. IF F_Be_Menge-1 <> 0 AND AVAILABLE bGGebinde THEN DO: dMenge = F_Be_Menge-2 / bGGebinde.Inhalt. cMenge = STRING(dMenge,'999999.999-'). dMenge = DECIMAL(SUBSTRING(cMenge,01,06)). F_Be_Menge-1 = dMenge. END. ASSIGN F_Menge-1 = F_Be_Menge-1 F_Menge-2 = F_Be_Menge-1 F_Menge-3 = F_Be_Menge-2. DISPLAY {&List-4}. DISPLAY {&List-6}. F_Best_Neu = F_Bestand - F_Be_Menge-3. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. END. DISPLAY {&List-5}. END. IF iLKY <> KEYCODE('TAB') AND iLKY <> KEYCODE('ENTER') AND iLKY <> KEYCODE('CURSOR-DOWN') THEN RETURN. FAbbruch = FALSE. RUN ENDE. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Be_Menge-3 gDialog ON RETURN OF F_Be_Menge-3 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Menge-1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-1 gDialog ON ALT-CURSOR-LEFT OF F_Menge-1 IN FRAME gDialog DO: APPLY 'ENTRY' TO F_Be_Menge-1. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-1 gDialog ON CURSOR-DOWN OF F_Menge-1 IN FRAME gDialog DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-1 gDialog ON CURSOR-UP OF F_Menge-1 IN FRAME gDialog DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-1 gDialog ON ENTRY OF F_Menge-1 IN FRAME gDialog DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-1 gDialog ON LEAVE OF F_Menge-1 IN FRAME gDialog DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF SELF:MODIFIED THEN DO: IF F_Menge-1 <> 0 THEN DO: IF AVAILABLE bGGebinde THEN F_Menge-2 = F_Menge-1 * bGGebinde.Inhalt. IF AVAILABLE bVGebinde THEN F_Menge-3 = F_Menge-2 * bVGebinde.Inhalt. END. /* IF NOT lRueckstand THEN DO: */ /* ASSIGN F_Be_Menge-1:SCREEN-VALUE = STRING(F_Menge-1) */ /* F_Be_Menge-2:SCREEN-VALUE = STRING(F_Menge-2) */ /* F_Be_Menge-3:SCREEN-VALUE = STRING(F_Menge-3). */ /* END. */ ASSIGN F_Be_Menge-1:SCREEN-VALUE = STRING(F_Menge-1) F_Be_Menge-2:SCREEN-VALUE = STRING(F_Menge-2) F_Be_Menge-3:SCREEN-VALUE = STRING(F_Menge-3). END. DISPLAY {&List-6}. SELF:MODIFIED = FALSE. IF NOT bArtst.Lager THEN RETURN. F_Best_Neu = F_Bestand - F_Menge-3. IF F_Best_Neu < 0 THEN DO: F_Best_Neu:BGCOLOR = 14. END. DISPLAY {&List-5}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-1 gDialog ON RETURN OF F_Menge-1 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Menge-2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-2 gDialog ON ALT-CURSOR-LEFT OF F_Menge-2 IN FRAME gDialog DO: APPLY 'ENTRY' TO F_Be_Menge-2. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-2 gDialog ON CURSOR-DOWN OF F_Menge-2 IN FRAME gDialog DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-2 gDialog ON CURSOR-UP OF F_Menge-2 IN FRAME gDialog DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-2 gDialog ON ENTRY OF F_Menge-2 IN FRAME gDialog DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-2 gDialog ON LEAVE OF F_Menge-2 IN FRAME gDialog DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF SELF:MODIFIED THEN DO: IF F_Menge-2 <> 0 THEN DO: IF AVAILABLE bVGebinde THEN F_Menge-3 = F_Menge-2 * bVGebinde.Inhalt. END. IF NOT lRueckstand THEN DO: ASSIGN F_Be_Menge-1:SCREEN-VALUE = STRING(F_Menge-1) F_Be_Menge-2:SCREEN-VALUE = STRING(F_Menge-2) F_Be_Menge-3:SCREEN-VALUE = STRING(F_Menge-3). END. END. DISPLAY {&List-6}. SELF:MODIFIED = FALSE. IF NOT bArtst.Lager THEN RETURN. F_Best_Neu = F_Bestand - F_Menge-3. IF F_Best_Neu < 0 THEN DO: F_Best_Neu:BGCOLOR = 14. END. DISPLAY {&List-5}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-2 gDialog ON RETURN OF F_Menge-2 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Menge-3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-3 gDialog ON ALT-CURSOR-LEFT OF F_Menge-3 IN FRAME gDialog DO: APPLY 'ENTRY' TO F_Be_Menge-3. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-3 gDialog ON CURSOR-UP OF F_Menge-3 IN FRAME gDialog DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-3 gDialog ON ENTRY OF F_Menge-3 IN FRAME gDialog DO: SELF:MODIFIED = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-3 gDialog ON LEAVE OF F_Menge-3 IN FRAME gDialog DO: DEFINE VARIABLE cMenge AS CHARACTER NO-UNDO. DEFINE VARIABLE dMenge AS DECIMAL DECIMALS 4 NO-UNDO. iLKY = LASTKEY. IF KEYLABEL (LASTKEY) = 'ALT-CURSOR-LEFT' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'CURSOR-UP' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. ASSIGN {&List-5}. ASSIGN {&List-4}. SELF:MODIFIED = FALSE. IF T_Lager THEN DO: F_Best_Neu = F_Bestand - F_Menge-3. IF F_Best_Neu < 0 THEN DO: F_Best_Neu:BGCOLOR = 14. Ja = DYNAMIC-FUNCTION('ANTWORT_JA':U, INPUT 1063 ) NO-ERROR. IF NOT Ja THEN DO: F_Menge-3 = F_Bestand. IF F_Menge-2 <> 0 AND AVAILABLE bVGebinde THEN DO: dMenge = F_Menge-3 / bVGebinde.Inhalt. cMenge = STRING(dMenge,'999999.999-'). dMenge = DECIMAL(SUBSTRING(cMenge,01,06)). F_Menge-2 = dMenge. END. IF F_Menge-1 <> 0 AND AVAILABLE bGGebinde THEN DO: dMenge = F_Menge-2 / bGGebinde.Inhalt. cMenge = STRING(dMenge,'999999.999-'). dMenge = DECIMAL(SUBSTRING(cMenge,01,06)). F_Menge-1 = dMenge. END. DISPLAY {&List-4}. DISPLAY {&List-6}. F_Best_Neu = F_Bestand - F_Menge-3. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. END. DISPLAY {&List-5}. END. IF iLKY <> KEYCODE('TAB') AND iLKY <> KEYCODE('ENTER') AND iLKY <> KEYCODE('CURSOR-DOWN') THEN RETURN. FAbbruch = FALSE. RUN ENDE. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Menge-3 gDialog ON RETURN OF F_Menge-3 IN FRAME gDialog DO: iLKY = LASTKEY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Lager gDialog ON ENTRY OF T_Lager IN FRAME gDialog /* Lager aktiv ? */ DO: hleave = LAST-EVENT:WIDGET-LEAVE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Lager gDialog ON VALUE-CHANGED OF T_Lager IN FRAME gDialog /* Lager aktiv ? */ DO: APPLY 'ENTRY' TO hLeave. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gDialog /* *************************** Main Block *************************** */ { incl/dlgmainblock.i } MaxPage = 1. AktSeite = 1. FAbbruch = TRUE . ASSIGN iAufnr = iohtAufze::Aufnr iArtnr = iohtAufze::Artnr iInhalt = iohtAufze::Inhalt iJahr = iohtAufze::Jahr iLager = iohtAufze::Lager oplRetVal = FALSE. IF iohtAufze::GGeb_Be < iohtAufze::GGeb_Me THEN iohtAufze::GGeb_Be = iohtAufze::GGeb_Me. IF iohtAufze::VGeb_Be < iohtAufze::VGeb_Me THEN iohtAufze::VGeb_Be = iohtAufze::VGeb_Me. IF iohtAufze::KGeb_Be < iohtAufze::KGeb_Me THEN iohtAufze::KGeb_Be = iohtAufze::KGeb_Me. FIND bAufko NO-LOCK WHERE bAufko.Firma = Firma AND bAufko.Aufnr = iAufnr. FIND bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = iArtnr AND bArtst.Inhalt = iInhalt AND bArtst.Jahr = iJahr. ASSIGN cKGeb_Cd = bArtst.KGeb_Cd cVGeb_Cd = bArtst.VGeb_Cd cGGeb_Cd = bArtst.GGeb_Cd. FIND FIRST bArtbez OF bArtst NO-LOCK NO-ERROR. FIND bGGebinde WHERE bGGebinde.Firma = Firma AND bGGebinde.Geb_Cd = cGGeb_Cd NO-LOCK NO-ERROR. FIND bVGebinde WHERE bVGebinde.Firma = Firma AND bVGebinde.Geb_Cd = cVGeb_Cd NO-LOCK NO-ERROR. FIND bKGebinde WHERE bKGebinde.Firma = Firma AND bKGebinde.Geb_Cd = cKGeb_Cd NO-LOCK NO-ERROR. FIND bArtLager NO-LOCK WHERE bArtLager.Firma = bArtst.Firma AND bArtLager.Artnr = bArtst.Artnr AND bArtLager.Inhalt = bArtst.Inhalt AND bArtLager.Jahr = bArtst.Jahr AND bArtLager.Lager = iLager NO-ERROR. IF NOT AVAILABLE bArtLager THEN DO: MESSAGE 'Kein Lager für diesen Artikel' VIEW-AS ALERT-BOX ERROR. END. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN NEXTPAGE. END. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN PREVPAGE. END. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENTRY_CURSOR. END. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gDialog _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gDialog PROCEDURE changePage : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ /* RUN ToolbarInit ( INPUT h_d-auftr ). */ RUN ENTRY_CURSOR. END. WHEN 2 THEN DO: RUN ENTRY_CURSOR. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gDialog _DEFAULT-DISABLE PROCEDURE disable_UI : /*------------------------------------------------------------------------------ Purpose: DISABLE the User Interface Parameters: Notes: Here we clean-up the user-interface by deleting dynamic widgets we have created and/or hide frames. This procedure is usually called when we are ready to "clean-up" after running. ------------------------------------------------------------------------------*/ /* Hide all frames. */ HIDE FRAME gDialog. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gDialog PROCEDURE enableObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE dBestDatum AS DATE NO-UNDO. dBestDatum = (IF bAufko.Lief_Datum < TODAY THEN TODAY ELSE bAufko.Lief_Datum). DO WITH FRAME {&FRAME-NAME}: RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999'). lRueckstand = DYNAMIC-FUNCTION('isMakeRueckstand':U) NO-ERROR. IF lRueckstand THEN DO: F_Best-Text :HIDDEN = FALSE. F_Be_Menge-1:HIDDEN = FALSE. F_Be_Menge-1:SENSITIVE = TRUE . F_Be_Menge-2:HIDDEN = FALSE. F_Be_Menge-2:SENSITIVE = TRUE . F_Be_Menge-3:HIDDEN = FALSE. F_Be_Menge-3:SENSITIVE = TRUE . END. DO WHILE TRUE: IF NOT AVAILABLE bGGebinde THEN LEAVE. F_Menge-1:TAB-STOP = TRUE. F_Menge-1:READ-ONLY = FALSE. F_Menge-1:LABEL = bGGebinde.KBez. IF lRueckstand THEN DO: F_Be_Menge-1:TAB-STOP = TRUE. F_Be_Menge-1:READ-ONLY = FALSE. F_Be_Menge-1:LABEL = bGGebinde.KBez. END. LEAVE. END. DO WHILE TRUE: IF NOT AVAILABLE bVGebinde THEN LEAVE. F_Menge-2:TAB-STOP = TRUE. F_Menge-2:READ-ONLY = FALSE. F_Menge-2:LABEL = bVGebinde.KBez. IF lRueckstand THEN DO: F_Be_Menge-2:TAB-STOP = TRUE. F_Be_Menge-2:READ-ONLY = FALSE. F_Be_Menge-2:LABEL = bVGebinde.KBez. END. LEAVE. END. DO WHILE TRUE: IF NOT AVAILABLE bKGebinde THEN LEAVE. F_Menge-3:TAB-STOP = TRUE. F_Menge-3:READ-ONLY = FALSE. F_Menge-3:LABEL = bKGebinde.KBez. IF lRueckstand THEN DO: F_Be_Menge-3:TAB-STOP = TRUE. F_Be_Menge-3:READ-ONLY = FALSE. F_Be_Menge-3:LABEL = bKGebinde.KBez. END. LEAVE. END. F_Menge-1 = iohtAufze::GGeb_Me. F_Menge-2 = iohtAufze::VGeb_Me. F_Menge-3 = iohtAufze::KGeb_Me. F_Be_Menge-1 = iohtAufze::GGeb_Be. F_Be_Menge-2 = iohtAufze::VGeb_Be. F_Be_Menge-3 = iohtAufze::KGeb_Be. IF AVAILABLE bArtLager AND bArtst.Lager THEN DO: ASSIGN F_Bestand = (IF bArtst.Lager THEN bArtLager.Bestand + F_Menge-3 ELSE 0) F_Bestellt = bArtLager.Offen F_Best_Neu = bArtLager.Bestand. END. ELSE DO: ASSIGN F_Bestand = 0 F_Bestellt = 0 F_Best_Neu = 0. END. IF bArtst.Lager THEN DO: FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2 WHERE Artbw.Firma = Firma AND Artbw.Artnr = iArtnr AND Artbw.Inhalt = iInhalt AND Artbw.Jahr = iJahr AND Artbw.Datum > dBestDatum AND Artbw.Aufnr <> bAufko.Aufnr AND Artbw.Tr_Art < 10 AND Artbw.Lag_Buch = TRUE: F_Bestand = F_Bestand + Artbw.Menge. END. END. F_Artikel = bArtbez.Bez1 + ' ' + bArtbez.Bez2. F_KGebinde = bKGebinde.KBez. T_Lager = iohtAufze::Lag_Buch. IF NOT bArtst.Lager THEN DO: T_Lager = FALSE. T_Lager:SENSITIVE = FALSE. END. IF F_Best_Neu < 0 THEN F_Best_Neu:BGCOLOR = 14. DISPLAY {&List-6}. IF lRueckstand THEN DISPLAY {&List-4} F_Best-Text. IF bArtst.Lager THEN T_Lager:SENSITIVE = TRUE. IF bAufko.Fak_Art = 98 THEN T_Lager = FALSE. END. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: F_Menge-1:MODIFIED = FALSE. F_Menge-2:MODIFIED = FALSE. F_Menge-3:MODIFIED = FALSE. IF bAufko.AlsOfferte THEN DISABLE T_Lager. F_Be_Menge-1:MODIFIED = FALSE. F_Be_Menge-2:MODIFIED = FALSE. F_Be_Menge-3:MODIFIED = FALSE. IF bArtst.Ausverk = 8 THEN F_Artikel:BGCOLOR = 13. END. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gDialog _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY T_Lager F_Menge-1 F_Menge-2 CB_Lager F_Menge-3 F_Artikel F_KGebinde F_Bestand F_Bestellt F_Best_Neu F_Geli-Text WITH FRAME gDialog. ENABLE T_Lager F_Menge-1 F_Menge-2 F_Menge-3 F_Artikel F_KGebinde F_Bestand F_Bestellt F_Best_Neu RECT-38 RECT-39 WITH FRAME gDialog. VIEW FRAME gDialog. {&OPEN-BROWSERS-IN-QUERY-gDialog} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gDialog PROCEDURE ENDE : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. IF AktSeite > 1 THEN DO: RUN selectPage ( INPUT 1 ). RETURN NO-APPLY. END. IF NOT FAbbruch THEN DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-4}. ASSIGN {&List-6}. IF NOT lRueckstand THEN DO: ASSIGN F_Be_Menge-1 = F_Menge-1 F_Be_Menge-2 = F_Menge-2 F_Be_Menge-3 = F_Menge-3. END. ELSE DO: IF F_Menge-1 < 0 THEN F_Be_Menge-1 = F_Menge-1. IF F_Menge-2 < 0 THEN F_Be_Menge-2 = F_Menge-2. IF F_Menge-3 < 0 THEN F_Be_Menge-3 = F_Menge-3. IF F_Menge-1 > F_Be_Menge-1 THEN F_Be_Menge-1 = F_Menge-1. IF F_Menge-2 > F_Be_Menge-2 THEN F_Be_Menge-2 = F_Menge-2. IF F_Menge-3 > F_Be_Menge-3 THEN F_Be_Menge-3 = F_Menge-3. END. IF F_Be_Menge-3 = 0 THEN DO: RUN FEHLER ( INPUT 1064 ). APPLY 'ENTRY' TO F_Menge-3. RETURN NO-APPLY. END. ASSIGN iohtAufze::KGeb_Cd = cKGeb_Cd iohtAufze::VGeb_Cd = cVGeb_Cd iohtAufze::GGeb_Cd = cGGeb_Cd iohtAufze::GGeb_Be = F_Be_Menge-1 iohtAufze::VGeb_Be = F_Be_Menge-2 iohtAufze::KGeb_Be = F_Be_Menge-3 iohtAufze::GGeb_Me = F_Menge-1 iohtAufze::VGeb_Me = F_Menge-2 iohtAufze::KGeb_Me = F_Menge-3 iohtAufze::Lag_Buch = T_Lager. oplRetVal = TRUE. END. RELEASE bArtbez . RELEASE bArtLager. RELEASE bKGebinde. RELEASE bVGebinde. RELEASE bGGebinde. APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gDialog PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF NOT lRueckstand THEN DO: IF iohtAufze::GGeb_Me <> 0 THEN APPLY 'ENTRY' TO F_Menge-1. ELSE APPLY 'ENTRY' TO F_Menge-2. END. ELSE DO: IF iohtAufze::GGeb_Be <> 0 THEN APPLY 'ENTRY' TO F_Be_Menge-1. ELSE APPLY 'ENTRY' TO F_Be_Menge-2. END. END. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gDialog PROCEDURE exitObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gDialog PROCEDURE NEXTPAGE : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = MaxPage THEN AktSeite = 1. ELSE AktSeite = AktSeite + 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gDialog PROCEDURE PREVPAGE : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = 1 THEN AktSeite = MaxPage. ELSE AktSeite = AktSeite - 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gDialog PROCEDURE selectPage : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. DO WHILE TRUE: IF NOT FMutFlag THEN LEAVE. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U). IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE. RETURN NO-APPLY. END. CASE piPageNum: END CASE. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ END. END CASE. RUN SUPER( INPUT piPageNum). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gDialog PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO. /* RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject gDialog PROCEDURE viewObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RUN SUPER. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME