&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases */ &Scoped-define WINDOW-NAME W-Win &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS W-Win /*------------------------------------------------------------------------ File: Description: from cntnrwin.w - ADM SmartWindow Template Input Parameters: Output Parameters: History: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress UIB. */ /*----------------------------------------------------------------------*/ /* 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 --- */ /* Local Variable Definitions --- */ DEF VAR Aktive AS LOG NO-UNDO. DEF VAR ASeite AS INT NO-UNDO. DEF VAR PSeite AS INT NO-UNDO. DEF VAR EscFlag AS LOG NO-UNDO INIT FALSE. DEF VAR EndFlag AS LOG NO-UNDO INIT TRUE . /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartWindow &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER WINDOW /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Btn_Prev Btn_Next /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR W-Win AS WIDGET-HANDLE NO-UNDO. /* Definitions of handles for SmartObjects */ DEFINE VARIABLE h_b-artlief-lnr AS HANDLE NO-UNDO. DEFINE VARIABLE h_b-bestell-gebinde AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-besko AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-bestgebinfo AS HANDLE NO-UNDO. DEFINE VARIABLE h_f-besze AS HANDLE NO-UNDO. DEFINE VARIABLE h_folder AS HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Next IMAGE-UP FILE "Grafik\nextkartei":U LABEL "&+" SIZE 5.6 BY 1.05. DEFINE BUTTON Btn_Prev IMAGE-UP FILE "Grafik\prevkartei":U LABEL "&-" SIZE 5.6 BY 1.05. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main Btn_Prev AT ROW 2.52 COL 125.8 Btn_Next AT ROW 2.52 COL 131.4 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 154 BY 24.53. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW W-Win ASSIGN HIDDEN = YES TITLE = "Bestellwesen" HEIGHT = 24.48 WIDTH = 139.6 MAX-HEIGHT = 54.19 MAX-WIDTH = 384 VIRTUAL-HEIGHT = 54.19 VIRTUAL-WIDTH = 384 RESIZE = no SCROLL-BARS = no STATUS-AREA = no BGCOLOR = ? FGCOLOR = ? THREE-D = yes MESSAGE-AREA = no SENSITIVE = yes. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. /* END WINDOW DEFINITION */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB W-Win /* ************************* Included-Libraries *********************** */ {src/adm/method/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW W-Win VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main FRAME-NAME */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(W-Win) THEN W-Win:HIDDEN = yes. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME W-Win &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Win W-Win ON ENTRY OF W-Win /* Bestellwesen */ DO: Aktive = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Win W-Win ON LEAVE OF W-Win /* Bestellwesen */ DO: Aktive = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL W-Win W-Win ON WINDOW-CLOSE OF W-Win /* Bestellwesen */ DO: EndFlag = TRUE. RUN WINDOWCLOSE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Next &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Next W-Win ON CHOOSE OF Btn_Next IN FRAME F-Main /* + */ DO: IF NOT Aktive THEN RETURN NO-APPLY. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'Next_Page':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Prev &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Prev W-Win ON CHOOSE OF Btn_Prev IN FRAME F-Main /* - */ DO: IF NOT Aktive THEN RETURN NO-APPLY. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'Prev_Page':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK W-Win /* *************************** Main Block *************************** */ /* Include custom Main Block code for SmartWindows. */ SUBSCRIBE TO 'CLOSEBESTELLWESEN' ANYWHERE RUN-PROCEDURE 'WINDOWCLOSE' NO-ERROR. DEF VAR xString AS CHAR NO-UNDO. GET-KEY-VALUE SECTION 'GrundEinstellungen' KEY 'EscapeAufBestellwesen' VALUE xString. IF xString = ? THEN xString = ''. IF xString = '' THEN DO: xString = 'ja'. PUT-KEY-VALUE SECTION 'GrundEinstellungen' KEY 'EscapeAufBestellwesen' VALUE xString NO-ERROR. END. IF xString BEGINS 'n' THEN EscFlag = FALSE. ELSE EscFlag = TRUE . EndFlag = FALSE. ON 'ALT-+':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Next IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Next IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'ALT--':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Prev IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE DO: APPLY 'CHOOSE' TO Btn_Prev IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE DO: RUN WINDOWCLOSE. RETURN NO-APPLY. END. {src/adm/template/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects W-Win _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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE adm-current-page AS INTEGER NO-UNDO. RUN get-attribute IN THIS-PROCEDURE ('Current-Page':U). ASSIGN adm-current-page = INTEGER(RETURN-VALUE). CASE adm-current-page: WHEN 0 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'src_dlcv91c/template/folder.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'FOLDER-LABELS = ':U + 'Kopf|Zeile|Gebinde|Geb.übersicht|Art-Übersicht' + ', FOLDER-TAB-TYPE = 1':U , OUTPUT h_folder ). RUN set-position IN h_folder ( 1.19 , 1.00 ) NO-ERROR. RUN set-size IN h_folder ( 24.29 , 140.40 ) NO-ERROR. /* Links to SmartFolder h_folder. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_folder ). RUN add-link IN adm-broker-hdl ( h_folder , 'Page':U , THIS-PROCEDURE ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_folder , Btn_Prev:HANDLE IN FRAME F-Main , 'BEFORE':U ). END. /* Page 0 */ WHEN 1 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-besko.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = ':U , OUTPUT h_f-besko ). RUN set-position IN h_f-besko ( 3.71 , 3.60 ) NO-ERROR. /* Size in UIB: ( 21.29 , 133.00 ) */ /* Links to SmartFrame h_f-besko. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-besko ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-besko , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 1 */ WHEN 2 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-besze.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = , Hide-on-Init = no':U , OUTPUT h_f-besze ). RUN set-position IN h_f-besze ( 3.86 , 2.20 ) NO-ERROR. /* Size in UIB: ( 20.76 , 134.80 ) */ /* Links to SmartFrame h_f-besze. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-besze ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-besze , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 2 */ WHEN 3 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/b-bestell-gebinde.w':U , INPUT {&WINDOW-NAME} , INPUT 'Layout = ':U , OUTPUT h_b-bestell-gebinde ). RUN set-position IN h_b-bestell-gebinde ( 3.05 , 13.00 ) NO-ERROR. RUN set-size IN h_b-bestell-gebinde ( 22.00 , 111.80 ) NO-ERROR. /* Links to SmartBrowser h_b-bestell-gebinde. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_b-bestell-gebinde ). END. /* Page 3 */ WHEN 4 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/f-bestgebinfo.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Layout = , Hide-on-Init = no':U , OUTPUT h_f-bestgebinfo ). RUN set-position IN h_f-bestgebinfo ( 4.43 , 6.20 ) NO-ERROR. /* Size in UIB: ( 19.62 , 119.60 ) */ /* Links to SmartFrame h_f-bestgebinfo. */ RUN add-link IN adm-broker-hdl ( THIS-PROCEDURE , 'MAIN':U , h_f-bestgebinfo ). /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_f-bestgebinfo , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 4 */ WHEN 5 THEN DO: RUN init-object IN THIS-PROCEDURE ( INPUT 'v8/b-artlief-lnr.w':U , INPUT FRAME F-Main:HANDLE , INPUT 'Initial-Lock = NO-LOCK, Hide-on-Init = no, Disable-on-Init = no, Layout = , Create-On-Add = ?':U , OUTPUT h_b-artlief-lnr ). RUN set-position IN h_b-artlief-lnr ( 4.14 , 6.60 ) NO-ERROR. RUN set-size IN h_b-artlief-lnr ( 20.00 , 120.00 ) NO-ERROR. /* Adjust the tab order of the smart objects. */ RUN adjust-tab-order IN adm-broker-hdl ( h_b-artlief-lnr , Btn_Next:HANDLE IN FRAME F-Main , 'AFTER':U ). END. /* Page 5 */ END CASE. /* Select a Startup page. */ IF adm-current-page eq 0 THEN RUN select-page IN THIS-PROCEDURE ( 1 ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available W-Win _ADM-ROW-AVAILABLE PROCEDURE adm-row-available : /*------------------------------------------------------------------------------ Purpose: Dispatched to this procedure when the Record- Source has a new row available. This procedure tries to get the new row (or foriegn keys) from the Record-Source and process it. Parameters: ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/row-head.i} /* Process the newly available records (i.e. display fields, open queries, and/or pass records on to any RECORD-TARGETS). */ {src/adm/template/row-end.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI W-Win _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. ------------------------------------------------------------------------------*/ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(W-Win) THEN DELETE WIDGET W-Win. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI W-Win _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. ------------------------------------------------------------------------------*/ ENABLE Btn_Prev Btn_Next WITH FRAME F-Main IN WINDOW W-Win. {&OPEN-BROWSERS-IN-QUERY-F-Main} VIEW W-Win. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE InitializeObject W-Win PROCEDURE InitializeObject : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN adm-initialize. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-change-page W-Win PROCEDURE local-change-page : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR ASeite AS INT NO-UNDO. DEF VAR XSeite AS INT NO-UNDO. RUN get-attribute ('current-page':U). ASeite = INTEGER(RETURN-VALUE). RUN dispatch IN THIS-PROCEDURE ( INPUT 'change-page':U ) . RUN get-attribute ('current-page':U). XSeite = INTEGER(RETURN-VALUE). DO WITH FRAME {&FRAME-NAME}: IF XSeite = 1 THEN DO: RUN state-changed IN h_f-besko (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). RETURN NO-APPLY. END. IF XSeite = 2 THEN DO: RUN state-changed IN h_f-besze (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). RETURN NO-APPLY. END. /* IF XSeite = 3 THEN DO: FIND Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Besnr = LVBesnr NO-LOCK NO-ERROR. IF AVAILABLE Besko AND Besko.Best_Sta <> 2 THEN DO: MESSAGE 'Bestellung ist im falschen Satus ' VIEW-AS ALERT-BOX. RUN select-page ( ASeite ). RUN view-page ( ASeite ). END. /* RUN state-changed IN h_b-aufgebko (INPUT THIS-PROCEDURE, INPUT 'browser_entry':U ). */ RETURN NO-APPLY. END. IF XSeite = 4 THEN DO: DISABLE Btn_Drucken. RETURN NO-APPLY. END. */ END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-exit W-Win PROCEDURE local-exit : /* ----------------------------------------------------------- Purpose: Starts an "exit" by APPLYing CLOSE event, which starts "destroy". Parameters: Notes: If activated, should APPLY CLOSE, *not* dispatch adm-exit. -------------------------------------------------------------*/ APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records W-Win _ADM-SEND-RECORDS PROCEDURE send-records : /*------------------------------------------------------------------------------ Purpose: Send record ROWID's for all tables used by this file. Parameters: see template/snd-head.i ------------------------------------------------------------------------------*/ /* SEND-RECORDS does nothing because there are no External Tables specified for this SmartWindow, and there are no tables specified in any contained Browse, Query, or Frame. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed W-Win PROCEDURE state-changed : /* ----------------------------------------------------------- Purpose: Parameters: Notes: -------------------------------------------------------------*/ DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO. DEF VAR MaxPages AS INT INIT 4 NO-UNDO. CASE p-state: WHEN 'Next_Page' THEN DO: IF NOT Aktive THEN RETURN NO-APPLY. RUN get-attribute ('current-page':U). ASeite = INTEGER(RETURN-VALUE) + 1. IF ASeite > MaxPages THEN ASeite = 1. RUN select-page(ASeite). RUN view-page (ASeite). RETURN NO-APPLY. END. WHEN 'Prev_Page' THEN DO: IF NOT Aktive THEN RETURN NO-APPLY. RUN get-attribute ('current-page':U). ASeite = INTEGER(RETURN-VALUE) - 1. IF ASeite < 1 THEN ASeite = MaxPages. RUN select-page(ASeite). RUN view-page (ASeite). RETURN NO-APPLY. END. WHEN 'seite_2' THEN DO: RUN select-page ( 2 ). RUN view-page ( 2 ). END. WHEN 'ENDE' THEN DO: RUN WINDOWCLOSE. RETURN NO-APPLY. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WINDOWCLOSE W-Win PROCEDURE WINDOWCLOSE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR AktSeite AS INT NO-UNDO. RUN get-attribute ('current-page':U). AktSeite = INTEGER(RETURN-VALUE). IF AktSeite <> 1 THEN DO: RUN select-page(1). RUN view-page (1). RETURN NO-APPLY. END. IF NOT EscFlag THEN DO: IF NOT EndFlag THEN DO: EndFlag = FALSE. RETURN NO-APPLY. END. END. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME