&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE TGruppen NO-UNDO LIKE Tabel. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS fFrameWin /*------------------------------------------------------------------------ File: Description: from cntnrfrm.w - ADM2 SmartFrame Template Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* 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 --- */ /* Local Variable Definitions --- */ DEF VAR SAktiv AS LOG INIT FALSE NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR ADFirma AS CHAR NO-UNDO. DEF VAR VRecArt AS CHAR NO-UNDO. DEF VAR FMut AS LOG NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR VGrp AS INT NO-UNDO. DEF VAR ARecid AS RECID NO-UNDO. DEF WORKFILE WNr FIELD Grp AS INT. DEF WORKFILE WAktionen LIKE Aktionen. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartFrame &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER FRAME &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME fMain &Scoped-define BROWSE-NAME Br_Gruppen /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES TGruppen /* Definitions for BROWSE Br_Gruppen */ &Scoped-define FIELDS-IN-QUERY-Br_Gruppen TGruppen.CodeI TGruppen.Bez1 &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Gruppen &Scoped-define OPEN-QUERY-Br_Gruppen OPEN QUERY Br_Gruppen FOR EACH TGruppen NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-Br_Gruppen TGruppen &Scoped-define FIRST-TABLE-IN-QUERY-Br_Gruppen TGruppen /* Definitions for FRAME fMain */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Br_Gruppen CB_Gruppen Btn_Add RECT-4 RECT-5 &Scoped-Define DISPLAYED-OBJECTS CB_Gruppen /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Add IMAGE-UP FILE "grafik/add.bmp":U LABEL "&add" SIZE 4.2 BY 1. DEFINE VARIABLE CB_Gruppen AS CHARACTER FORMAT "X(256)":U VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 34.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-4 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 42 BY 9.24. DEFINE RECTANGLE RECT-5 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 42 BY .05. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Gruppen FOR TGruppen SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Gruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Gruppen fFrameWin _STRUCTURED QUERY Br_Gruppen NO-LOCK DISPLAY TGruppen.CodeI COLUMN-LABEL "Grp" FORMAT "999":U WIDTH 4 TGruppen.Bez1 FORMAT "x(30)":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 40 BY 6.67 BGCOLOR 15 EXPANDABLE. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain Br_Gruppen AT ROW 1.48 COL 3 CB_Gruppen AT ROW 9 COL 1 COLON-ALIGNED NO-LABEL Btn_Add AT ROW 9 COL 39 RECT-4 AT ROW 1.24 COL 2 RECT-5 AT ROW 8.62 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 44.2 BY 9.67. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartFrame Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Other Settings: PERSISTENT-ONLY COMPILE Temp-Tables and Buffers: TABLE: TGruppen T "?" NO-UNDO AnaDat Tabel END-TABLES. */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW fFrameWin ASSIGN HEIGHT = 9.67 WIDTH = 44.2. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB fFrameWin /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW fFrameWin VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain NOT-VISIBLE */ /* BROWSE-TAB Br_Gruppen 1 fMain */ ASSIGN FRAME fMain:HIDDEN = TRUE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Gruppen /* Query rebuild information for BROWSE Br_Gruppen _TblList = "Temp-Tables.TGruppen" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > Temp-Tables.TGruppen.CodeI "TGruppen.CodeI" "Grp" "999" "integer" ? ? ? ? ? ? no ? no no "4" yes no no "U" "" "" _FldNameList[2] = Temp-Tables.TGruppen.Bez1 _Query is NOT OPENED */ /* BROWSE Br_Gruppen */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME fMain /* Query rebuild information for FRAME fMain _Options = "" _Query is NOT OPENED */ /* FRAME fMain */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define BROWSE-NAME Br_Gruppen &Scoped-define SELF-NAME Br_Gruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Gruppen fFrameWin ON ALT-DEL OF Br_Gruppen IN FRAME fMain DO: DELETE TGruppen. RUN ENTFERNEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Gruppen fFrameWin ON DELETE-CHARACTER OF Br_Gruppen IN FRAME fMain DO: DELETE TGruppen. RUN ENTFERNEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Gruppen fFrameWin ON LEFT-MOUSE-DBLCLICK OF Br_Gruppen IN FRAME fMain DO: DELETE TGruppen. RUN ENTFERNEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Add &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Add fFrameWin ON CHOOSE OF Btn_Add IN FRAME fMain /* add */ DO: FMut = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. IF FMut THEN DO: APPLY 'ENTRY' TO CB_Gruppen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. RUN ZUFUEGEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Gruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Gruppen fFrameWin ON ALT-INS OF CB_Gruppen IN FRAME fMain DO: FMut = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. IF FMut THEN DO: APPLY 'ENTRY' TO CB_Gruppen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. RUN ZUFUEGEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK fFrameWin /* *************************** Main Block *************************** */ SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR. IF SAktiv THEN DO: Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR. ADFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. IF Steuer.Aktionspreis = 0 THEN VRecArt = 'PREGRP'. /* Preisgruppen */ IF Steuer.Aktionspreis = 1 THEN VRecArt = 'KUNDGRP'. /* Kundengruppen*/ END. FOR EACH WAktionen: DELETE WAktionen. END. CREATE WAktionen. SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'AKTIONS_GRUPPEN' ANYWHERE. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects fFrameWin _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 AKTIONS_GRUPPEN fFrameWin PROCEDURE AKTIONS_GRUPPEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipAktion AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. FIND Aktionen USE-INDEX Aktionen-k1 WHERE Aktionen.Firma = Firma AND Aktionen.Aktion = ipAktion NO-LOCK NO-ERROR. FOR EACH TGruppen: DELETE TGruppen. END. FIND FIRST WAktionen. DELETE WAktionen. CREATE WAktionen. ARecid = 0. IF AVAILABLE Aktionen THEN DO: BUFFER-COPY Aktionen TO WAktionen. ARecid = RECID(Aktionen). DO i1 = 1 TO 50: IF Aktionen.Gruppe[i1] = 0 THEN DO: IF i1 > 1 THEN LEAVE. IF Aktionen.Gruppe[02] = 0 THEN LEAVE. END. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = VRecArt AND Tabel.CodeC = '' AND Tabel.CodeI = Aktionen.Gruppe[i1] AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF NOT AVAILABLE Tabel THEN NEXT. CREATE TGruppen. BUFFER-COPY Tabel TO TGruppen. END. END. FOR EACH WNr: DELETE WNr. END. FOR EACH TGruppen NO-LOCK BY TGruppen.CodeI: CREATE WNr. ASSIGN WNr.Grp = TGruppen.CodeI. END. RUN OPENQUERY_GRUPPEN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI fFrameWin _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 fMain. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject fFrameWin PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: CASE VRecArt: WHEN 'PREGRP' THEN DO: RUN COMBO_PREISGRP ( INPUT CB_Gruppen:HANDLE ). TGruppen.Bez1:LABEL IN BROWSE {&BROWSE-NAME} = 'Preisgruppen'. END. WHEN 'KUNDGRP' THEN DO: RUN COMBO_KUNDENGRP ( INPUT CB_Gruppen:HANDLE ). TGruppen.Bez1:LABEL IN BROWSE {&BROWSE-NAME} = 'Kundengruppen'. END. END CASE. END. RUN SUPER. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI fFrameWin _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 CB_Gruppen WITH FRAME fMain. ENABLE Br_Gruppen CB_Gruppen Btn_Add RECT-4 RECT-5 WITH FRAME fMain. {&OPEN-BROWSERS-IN-QUERY-fMain} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTFERNEN fFrameWin PROCEDURE ENTFERNEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR xAktion AS CHAR NO-UNDO. FOR EACH WNr: DELETE WNr. END. FIND FIRST WAktionen. FOR EACH TGruppen NO-LOCK: CREATE WNr. ASSIGN WNr.Grp = TGruppen.CodeI. END. REPEAT TRANSACTION: FIND Aktionen WHERE RECID(Aktionen) = ARecid. xAktion = Aktionen.Aktion. Aktionen.Gruppe = 0. ix = 0. FOR EACH WNr BY WNr.Grp: ix = ix + 1. Aktionen.Gruppe[ix] = WNr.Grp. END. RELEASE Aktionen. LEAVE. END. RUN AKTIONS_GRUPPEN ( INPUT xAktion ). APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENQUERY_GRUPPEN fFrameWin PROCEDURE OPENQUERY_GRUPPEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ OPEN QUERY Br_Gruppen FOR EACH TGruppen NO-LOCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ZUFUEGEN fFrameWin PROCEDURE ZUFUEGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR xAktion AS CHAR NO-UNDO. DEF VAR FNull AS LOG NO-UNDO. DEF VAR Vorhanden AS LOG NO-UNDO. VGrp = INTEGER(CB_Gruppen:SCREEN-VALUE IN FRAME {&FRAME-NAME}). Vorhanden = FALSE. FOR EACH WNr: IF WNr.Grp = VGrp THEN DO: Vorhanden = TRUE. LEAVE. END. END. IF NOT Vorhanden THEN DO: CREATE WNr. ASSIGN WNr.Grp = VGrp. END. REPEAT TRANSACTION: FIND Aktionen WHERE RECID(Aktionen) = ARecid. xAktion = Aktionen.Aktion. Aktionen.Gruppe = 0. ix = 0. FOR EACH WNr BY WNr.Grp: ix = ix + 1. Aktionen.Gruppe[ix] = WNr.Grp. END. RELEASE Aktionen. LEAVE. END. RUN AKTIONS_GRUPPEN ( INPUT xAktion ). APPLY 'ENTRY' TO CB_Gruppen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME