&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME wStart &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wStart /*------------------------------------------------------------------------ File: Description: from cntnrwin.w - ADM SmartWindow Template Input Parameters: Output Parameters: History: New V9 Version - January 15, 1998 ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AB. */ /*----------------------------------------------------------------------*/ /* 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 --- */ DEF OUTPUT PARAMETER retflag AS LOG NO-UNDO. /* Local Variable Definitions --- */ DEF VAR Ja AS LOG NO-UNDO. DEF VAR FCancel AS LOG NO-UNDO. DEF VAR Mandant AS CHAR NO-UNDO. DEF VAR Kennwort AS CHAR NO-UNDO. DEF VAR lBatch AS LOG INIT FALSE NO-UNDO. DEF VAR cPasswort AS CHAR NO-UNDO. DEF VAR cMandant AS CHAR NO-UNDO. DEF VAR XUser AS CHAR NO-UNDO. DEF VAR Progname AS CHAR NO-UNDO. DEF VAR cBenutzerDaten AS CHAR NO-UNDO. DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR cInstallation AS CHAR NO-UNDO. DEF VAR iBenuSprcd AS INT NO-UNDO. /* _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 &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME fMain /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_Benutzer F_Kennwort CB_Mandant Btn_OK ~ Btn_Cancel IMAGE-2 &Scoped-Define DISPLAYED-OBJECTS F_Benutzer F_Kennwort CB_Mandant /* 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 wStart AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel LABEL "&Abbrechen" SIZE 12 BY 1. DEFINE BUTTON Btn_OK AUTO-GO LABEL "&OK" SIZE 12 BY 1. DEFINE VARIABLE CB_Mandant AS CHARACTER FORMAT "X(256)":U LABEL "Mandant" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 NO-UNDO. DEFINE VARIABLE F_Benutzer AS CHARACTER FORMAT "X(256)":U LABEL "Benutzer" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 NO-UNDO. DEFINE VARIABLE F_Kennwort AS CHARACTER FORMAT "x(20)":U LABEL "Kennwort" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 NO-UNDO. DEFINE IMAGE IMAGE-2 FILENAME "grafik/backgrnd.gif":U STRETCH-TO-FIT SIZE 60.8 BY 8.86. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_Benutzer AT ROW 3 COL 14 COLON-ALIGNED F_Kennwort AT ROW 4 COL 14 COLON-ALIGNED BLANK PASSWORD-FIELD CB_Mandant AT ROW 5 COL 14 COLON-ALIGNED Btn_OK AT ROW 7.71 COL 16 Btn_Cancel AT ROW 7.71 COL 42 IMAGE-2 AT ROW 1 COL 1 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 61 BY 8.91 DEFAULT-BUTTON Btn_OK CANCEL-BUTTON Btn_Cancel. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW wStart ASSIGN HIDDEN = YES TITLE = "Anmeldung" HEIGHT = 8.95 WIDTH = 61.6 MAX-HEIGHT = 46.52 MAX-WIDTH = 256 VIRTUAL-HEIGHT = 46.52 VIRTUAL-WIDTH = 256 RESIZE = NO SCROLL-BARS = NO STATUS-AREA = NO BGCOLOR = ? FGCOLOR = ? THREE-D = YES MESSAGE-AREA = NO SENSITIVE = YES. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN IF NOT wStart:LOAD-ICON("grafik/appl.ico":U) THEN MESSAGE "Unable to load icon: grafik/appl.ico" VIEW-AS ALERT-BOX WARNING BUTTONS OK. &ENDIF /* END WINDOW DEFINITION */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wStart /* ************************* 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 wStart VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME Custom */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wStart) THEN wStart:HIDDEN = YES. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wStart &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wStart wStart ON END-ERROR OF wStart /* Anmeldung */ OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO: IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. FCancel = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wStart wStart ON WINDOW-CLOSE OF wStart /* Anmeldung */ DO: FCancel = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wStart ON CHOOSE OF Btn_Cancel IN FRAME fMain /* Abbrechen */ DO: FCancel = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wStart ON CHOOSE OF Btn_OK IN FRAME fMain /* OK */ DO: DEF VAR XString AS CHAR NO-UNDO. DEF VAR cRet AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: BENUTZER00: DO WHILE TRUE: RUN INPUT-TEST ( CB_Mandant:HANDLE ). cRet = RETURN-VALUE. IF RETURN-VALUE <> '' THEN LEAVE. RUN INPUT-TEST ( F_Benutzer:HANDLE ). cRet = RETURN-VALUE. IF RETURN-VALUE <> '' THEN LEAVE. RUN INPUT-TEST ( F_Kennwort:HANDLE ). cRet = RETURN-VALUE. IF RETURN-VALUE <> '' THEN LEAVE. FIND Benutzer NO-LOCK USE-INDEX Benutzer-k1 WHERE Benutzer.Benutzer = cBenutzer NO-ERROR. IF NOT Benutzer.Admin AND Benutzer.Firma <> CB_Mandant:SCREEN-VALUE THEN DO: cRet = '1993'. LEAVE. END. FIND Steuer WHERE Steuer.Firma = CB_Mandant:SCREEN-VALUE NO-LOCK. DO WHILE TRUE: IF xUser <> 'Remote' THEN LEAVE. IF Steuer.Fwc10 = 'LaTorre' AND F_Benutzer <> 'analytikdata' THEN DO: cRet = '1993'. LEAVE BENUTZER00. END. IF Steuer.Fwc10 <> 'LaTorre' THEN LEAVE. IF F_Benutzer <> 'sg' THEN DO: F_Benutzer = 'sg'. DISPLAY F_Benutzer. CB_Mandant:SCREEN-VALUE = Benutzer.Firma NO-ERROR. NEXT BENUTZER00. END. LEAVE. END. Ja = TRUE. RUN ENDE. RETURN NO-APPLY. END. RUN FEHLER ( INPUT INTEGER(cRet) ). RUN applyEntry ( INPUT 'F_Benutzer' ). RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Mandant &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Mandant wStart ON RETURN OF CB_Mandant IN FRAME fMain /* Mandant */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Benutzer &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Benutzer wStart ON LEAVE OF F_Benutzer IN FRAME fMain /* Benutzer */ DO: RUN INPUT-TEST ( INPUT SELF:HANDLE ). IF RETURN-VALUE = '' THEN RETURN. RUN FEHLER ( INPUT INTEGER(RETURN-VALUE) ). /* RETURN NO-APPLY. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Benutzer wStart ON RETURN OF F_Benutzer IN FRAME fMain /* Benutzer */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Kennwort &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kennwort wStart ON RETURN OF F_Kennwort IN FRAME fMain /* Kennwort */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wStart /* *************************** Main Block *************************** */ Ja = FALSE. FCancel = FALSE. ProgName = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.'). SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'ENDE' ANYWHERE. /* Include custom Main Block code for SmartWindows. */ DEF VAR XMandant AS CHAR NO-UNDO. DEF VAR iof AS LOG NO-UNDO. DEF VAR RetValue AS CHAR NO-UNDO. XUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. IF xUser = '' OR xUser = ? THEN xUser = DYNAMIC-FUNCTION('getSysUser':U) NO-ERROR. RUN COMBO_MANDANT ( INPUT CB_Mandant:HANDLE ). DO WHILE SESSION:PARAMETER <> '': IF ENTRY(1, SESSION:PARAMETER, ';') <> 'batch' THEN LEAVE. lBatch = TRUE. cBenutzer = ENTRY(2, SESSION:PARAMETER, ';') NO-ERROR. cPasswort = ENTRY(3, SESSION:PARAMETER, ';') NO-ERROR. cMandant = ENTRY(4, SESSION:PARAMETER, ';') NO-ERROR. LEAVE. END. IF lBatch THEN DO: F_Benutzer:SCREEN-VALUE = cBenutzer. F_Kennwort:SCREEN-VALUE = cPasswort. CB_Mandant:SCREEN-VALUE = cMandant. DYNAMIC-FUNCTION('setBatch':U, TRUE ) NO-ERROR. APPLY 'CHOOSE' TO Btn_OK. RETURN. END. ELSE DO: GET-KEY-VALUE SECTION XUser KEY 'Mandant' VALUE RetValue. IF RetValue = ? THEN RetValue = '9999'. XMandant = RetValue. GET-KEY-VALUE SECTION XUser KEY 'Benutzer' VALUE RetValue. IF RetValue = ? THEN RetValue = ''. F_Benutzer = RetValue. CB_Mandant:SCREEN-VALUE IN FRAME {&FRAME-NAME} = XMandant NO-ERROR. END. ON "CTRL-ALT-F1":U OF FRAME fMain ANYWHERE DO: RUN MASTERPASSWORT. RETURN NO-APPLY. END. PROCEDURE GetSystemMetrics EXTERNAL "USER32.DLL": DEFINE INPUT PARAMETER nIndex AS LONG. DEFINE RETURN PARAMETER nRet AS LONG. END PROCEDURE. {src/adm2/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wStart _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 disable_UI wStart _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(wStart) THEN DELETE WIDGET wStart. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wStart PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/winenableobject.i } RUN SUPER. RUN selectPage ( 1 ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wStart _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 F_Benutzer F_Kennwort CB_Mandant WITH FRAME fMain IN WINDOW wStart. ENABLE F_Benutzer F_Kennwort CB_Mandant Btn_OK Btn_Cancel IMAGE-2 WITH FRAME fMain IN WINDOW wStart. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wStart. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wStart PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR wx AS INT NO-UNDO. DEF VAR wy AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. IF Ja THEN DO: XString = cBenutzer + CHR(01) + Kennwort + CHR(01) + Mandant. PUT-KEY-VALUE SECTION xUser KEY 'Benutzer' VALUE cBenutzer. RUN ANMELDUNG ( INPUT XString ). retFlag = TRUE. END. IF fCancel OR NOT Ja THEN retFlag = FALSE. wx = {&WINDOW-NAME}:X NO-ERROR. wy = {&WINDOW-NAME}:Y NO-ERROR. DYNAMIC-FUNCTION('setFensterposition':U, INPUT 'Fensterposition', INPUT Progname, INPUT wx, INPUT wy) NO-ERROR. APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wStart PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Window-specific override of this procedure which destroys its contents and itself. Notes: ------------------------------------------------------------------------------*/ APPLY "CLOSE":U TO THIS-PROCEDURE. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INPUT-TEST wStart PROCEDURE INPUT-TEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER IHandle AS HANDLE NO-UNDO. DEF VAR VInhalt AS CHAR NO-UNDO. IF FCancel THEN RETURN ''. IF NOT VALID-HANDLE(IHandle) THEN RETURN '1999'. VInhalt = IHandle:SCREEN-VALUE. CASE IHandle:NAME: WHEN 'F_Benutzer' THEN DO: FIND Benutzer NO-LOCK USE-INDEX Benutzer-k1 WHERE Benutzer.Benutzer = VInhalt NO-ERROR. IF NOT AVAILABLE Benutzer THEN RETURN '1990'. cBenutzer = VInhalt. END. WHEN 'F_Kennwort' THEN DO: FIND Benutzer NO-LOCK USE-INDEX Benutzer-k1 WHERE Benutzer.Benutzer = cBenutzer NO-ERROR. IF NOT AVAILABLE Benutzer THEN RETURN '1991'. IF Benutzer.Kennwort <> VInhalt THEN RETURN '1992'. Kennwort = VInhalt. END. WHEN 'CB_Mandant' THEN DO: FIND Mandant NO-LOCK USE-INDEX Mandant-k1 WHERE Mandant.Firma = VInhalt NO-ERROR. IF NOT AVAILABLE Mandant THEN RETURN '1993'. Mandant = VInhalt. END. END CASE. RELEASE Benutzer. RELEASE Mandant. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MASTERPASSWORT wStart PROCEDURE MASTERPASSWORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR XString AS CHAR NO-UNDO. DEF VAR i AS INT NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR XMaster AS CHAR NO-UNDO. MESSAGE 'Eingabe Masterpasswort : ' UPDATE XString. XMaster = ''. i = LENGTH(XString). DO ix = 1 TO i: XMaster = XMaster + STRING((ASC(SUBSTRING(XString,ix,01)) + i) * i). IF ix <> i THEN XMaster = XMaster + ';'. END. PUT-KEY-VALUE SECTION 'Grundeinstellungen' KEY 'WHO' VALUE XMaster. REPEAT TRANSACTION: FIND Benutzer USE-INDEX Benutzer-k1 WHERE Benutzer.Benutzer = 'Admin' NO-ERROR. IF NOT AVAILABLE Benutzer THEN DO: CREATE Benutzer. ASSIGN Benutzer.Benutzer = 'Admin' Benutzer.Admin = TRUE. END. Benutzer.Kennwort = XString. RELEASE Benutzer. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wStart PROCEDURE viewObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN SUPER. RUN applyEntry ( INPUT ? ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME