&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW {adecomm/appserv.i} /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE RowObject NO-UNDO {"d-benutzer.i"}. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin /*------------------------------------------------------------------------ File: Description: from viewer.w - Template for SmartDataViewer objects 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 ************************** */ /* Komma-Trennzeichen */ /* Keyfelder werden beim Mutieren nicht "Enabled" */ &Scoped-define ERSTES_FELD Benutzer &Scoped-define LETZTES_FELD Admin &Scoped-define KEY_FELDER Benutzer &Scoped-define NUR_LESEN { incl/viwdefinition.i } DEFINE VARIABLE cOldKennwort AS CHARACTER NO-UNDO. DEFINE VARIABLE cOldPin AS CHARACTER NO-UNDO. {src/adm2/widgetprto.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDataViewer &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER FRAME &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target /* Include file with RowObject temp-table definition */ &Scoped-define DATA-FIELD-DEFS "d-benutzer.i" /* 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-FIELDS RowObject.Benutzer RowObject.Jahr ~ RowObject.Firma RowObject.Sprcd RowObject.Lager RowObject.Anzeige ~ RowObject.Kurz RowObject.Knr RowObject.Kennwort RowObject.Pin ~ RowObject.Ruester RowObject.Fahrer RowObject.FahrerNummer RowObject.lSpez ~ RowObject.Aussendienst RowObject.Admin &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS RECT-1 CB_Sprache CB_Mandant CB_Lager &Scoped-Define DISPLAYED-FIELDS RowObject.Benutzer RowObject.Jahr ~ RowObject.Firma RowObject.Sprcd RowObject.Lager RowObject.Aktiv ~ RowObject.shaPassword RowObject.shaPin RowObject.Anzeige RowObject.Kurz ~ RowObject.Knr RowObject.Kennwort RowObject.Pin RowObject.Ruester ~ RowObject.Fahrer RowObject.FahrerNummer RowObject.lSpez ~ RowObject.Aussendienst RowObject.Admin &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS CB_Sprache CB_Mandant CB_Lager /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,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 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 30.6 BY 1 BGCOLOR 15 NO-UNDO. 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 30.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Sprache AS CHARACTER FORMAT "X(256)":U LABEL "Sprache" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 30.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 94 BY 8.57. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main RowObject.Benutzer AT ROW 1.52 COL 16 COLON-ALIGNED WIDGET-ID 8 VIEW-AS FILL-IN NATIVE SIZE 22 BY 1 BGCOLOR 15 RowObject.Jahr AT ROW 1.52 COL 50 COLON-ALIGNED WIDGET-ID 20 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Firma AT ROW 2 COL 68 COLON-ALIGNED WIDGET-ID 2 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Sprcd AT ROW 2 COL 68 COLON-ALIGNED WIDGET-ID 6 FORMAT "99999999" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Lager AT ROW 2 COL 68 COLON-ALIGNED WIDGET-ID 4 FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Aktiv AT ROW 2 COL 88 COLON-ALIGNED WIDGET-ID 42 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.shaPassword AT ROW 2 COL 88 COLON-ALIGNED WIDGET-ID 44 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.shaPin AT ROW 2 COL 88 COLON-ALIGNED WIDGET-ID 46 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Anzeige AT ROW 2.52 COL 16 COLON-ALIGNED WIDGET-ID 16 VIEW-AS FILL-IN NATIVE SIZE 22 BY 1 BGCOLOR 15 CB_Sprache AT ROW 2.52 COL 50 COLON-ALIGNED WIDGET-ID 34 RowObject.Kurz AT ROW 3.52 COL 16 COLON-ALIGNED WIDGET-ID 26 VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 CB_Mandant AT ROW 3.52 COL 50 COLON-ALIGNED WIDGET-ID 32 RowObject.Knr AT ROW 4.52 COL 16 COLON-ALIGNED WIDGET-ID 24 LABEL "Nr in Adresse" FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 CB_Lager AT ROW 4.52 COL 50 COLON-ALIGNED WIDGET-ID 30 RowObject.Kennwort AT ROW 5.52 COL 16 COLON-ALIGNED WIDGET-ID 22 BLANK PASSWORD-FIELD VIEW-AS FILL-IN NATIVE SIZE 22 BY 1 BGCOLOR 15 RowObject.Pin AT ROW 5.52 COL 50 COLON-ALIGNED WIDGET-ID 40 VIEW-AS FILL-IN NATIVE SIZE 22 BY 1 BGCOLOR 15 RowObject.Ruester AT ROW 7.52 COL 18 WIDGET-ID 28 LABEL "Ruester" VIEW-AS TOGGLE-BOX SIZE 18 BY 1 RowObject.Fahrer AT ROW 7.52 COL 52 WIDGET-ID 18 LABEL "Fahrer" VIEW-AS TOGGLE-BOX SIZE 18 BY 1 RowObject.FahrerNummer AT ROW 7.52 COL 84.2 COLON-ALIGNED WIDGET-ID 38 VIEW-AS FILL-IN NATIVE SIZE 7.6 BY 1 BGCOLOR 15 RowObject.lSpez AT ROW 8.52 COL 18 WIDGET-ID 12 LABEL "Spezial" VIEW-AS TOGGLE-BOX SIZE 18.4 BY 1 RowObject.Aussendienst AT ROW 8.52 COL 52 WIDGET-ID 10 LABEL "Aussendienst" VIEW-AS TOGGLE-BOX SIZE 18 BY 1 RowObject.Admin AT ROW 8.52 COL 76 WIDGET-ID 14 LABEL "Administrator" VIEW-AS TOGGLE-BOX SIZE 18 BY 1 RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 36 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataViewer Data Source: "d-benutzer.w" Allow: Basic,DB-Fields,Smart Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target Frames: 1 Add Fields to: Neither Other Settings: PERSISTENT-ONLY COMPILE APPSERVER Temp-Tables and Buffers: TABLE: RowObject D "?" NO-UNDO ADDITIONAL-FIELDS: {d-benutzer.i} END-FIELDS. 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 vTableWin ASSIGN HEIGHT = 9.05 WIDTH = 96. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin /* ************************* Included-Libraries *********************** */ {src/adm2/viewer.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW vTableWin VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.Admin IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Aktiv IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Aktiv:HIDDEN IN FRAME F-Main = TRUE RowObject.Aktiv:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.Aussendienst IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX RowObject.Fahrer IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Knr IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Lager IN FRAME F-Main EXP-FORMAT */ ASSIGN RowObject.Lager:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.lSpez IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX RowObject.Ruester IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.shaPassword IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.shaPassword:HIDDEN IN FRAME F-Main = TRUE RowObject.shaPassword:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.shaPin IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.shaPin:HIDDEN IN FRAME F-Main = TRUE RowObject.shaPin:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Sprcd IN FRAME F-Main EXP-FORMAT */ ASSIGN RowObject.Sprcd:HIDDEN IN FRAME F-Main = TRUE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME RowObject.Admin &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Admin vTableWin ON RETURN OF RowObject.Admin IN FRAME F-Main /* Administrator */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Admin vTableWin ON VALUE-CHANGED OF RowObject.Admin IN FRAME F-Main /* Administrator */ DO: IF NOT FMut THEN DO: IF SELF:SCREEN-VALUE = 'yes' THEN SELF:SCREEN-VALUE = STRING(FALSE). ELSE SELF:SCREEN-VALUE = STRING(TRUE ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Aussendienst &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Aussendienst vTableWin ON VALUE-CHANGED OF RowObject.Aussendienst IN FRAME F-Main /* Aussendienst */ DO: IF NOT FMut THEN DO: IF SELF:SCREEN-VALUE = 'yes' THEN SELF:SCREEN-VALUE = STRING(FALSE). ELSE SELF:SCREEN-VALUE = STRING(TRUE ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager vTableWin ON RETURN OF CB_Lager IN FRAME F-Main /* Lager */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager vTableWin ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Lager:SCREEN-VALUE. rowObject.Lager:SCREEN-VALUE = SELF:SCREEN-VALUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Mandant &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Mandant vTableWin ON RETURN OF CB_Mandant IN FRAME F-Main /* Mandant */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Sprache &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Sprache vTableWin ON RETURN OF CB_Sprache IN FRAME F-Main /* Sprache */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Sprache vTableWin ON VALUE-CHANGED OF CB_Sprache IN FRAME F-Main /* Sprache */ DO: IF FMut THEN RETURN. DEFINE VARIABLE Sprcd AS INTEGER NO-UNDO. Sprcd = INTEGER(rowObject.Sprcd:SCREEN-VALUE IN FRAME {&FRAME-NAME}). SELF:SCREEN-VALUE = STRING(Sprcd,'999999'). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Fahrer &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Fahrer vTableWin ON VALUE-CHANGED OF RowObject.Fahrer IN FRAME F-Main /* Fahrer */ DO: IF NOT FMut THEN DO: IF SELF:SCREEN-VALUE = 'yes' THEN SELF:SCREEN-VALUE = STRING(FALSE). ELSE SELF:SCREEN-VALUE = STRING(TRUE ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.lSpez &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lSpez vTableWin ON VALUE-CHANGED OF RowObject.lSpez IN FRAME F-Main /* Spezial */ DO: IF NOT FMut THEN DO: IF SELF:SCREEN-VALUE = 'yes' THEN SELF:SCREEN-VALUE = STRING(FALSE). ELSE SELF:SCREEN-VALUE = STRING(TRUE ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Ruester &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Ruester vTableWin ON VALUE-CHANGED OF RowObject.Ruester IN FRAME F-Main /* Ruester */ DO: IF NOT FMut THEN DO: IF SELF:SCREEN-VALUE = 'yes' THEN SELF:SCREEN-VALUE = STRING(FALSE). ELSE SELF:SCREEN-VALUE = STRING(TRUE ). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin /* *************************** Main Block *************************** */ { incl/viwmainblock.i } &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /************************ INTERNAL PROCEDURES ********************/ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin PROCEDURE addRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ FNeu = TRUE. FMut = TRUE. FDisp = TRUE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin PROCEDURE cancelRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ FCancel = TRUE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin PROCEDURE copyRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ FNeu = TRUE. FMut = TRUE. FCopy = TRUE. FDisp = TRUE. RUN SUPER. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin PROCEDURE deleteRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Ja AS LOG NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE BUFFER bBenutzer FOR Benutzer. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ). IF NOT Ja THEN DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR. RETURN NO-APPLY. END. REPEAT TRANSACTION: iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten). IF iRecid = ? OR iRecid = 0 THEN. ELSE DO: FIND bBenutzer NO-LOCK WHERE RECID(bBenutzer) = iRecid. FOR EACH Berecht WHERE Berecht.Mandant = Firma AND Berecht.Benutzer = bBenutzer.Benutzer: DELETE Berecht. END. FOR EACH FeldBerecht WHERE FeldBerecht.Firma = Firma AND FeldBerecht.Benutzer = bBenutzer.Benutzer: DELETE FeldBerecht. END. RELEASE Berecht. RELEASE FeldBerecht. END. RUN SUPER. LEAVE. END. /* Code placed here will execute */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin PROCEDURE disableFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: END. RUN SUPER( INPUT pcFieldType). IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ). IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO: RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ). END. DO WITH FRAME {&FRAME-NAME}: END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _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 F-Main. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin PROCEDURE displayFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO. IF NOT FDisp THEN DO: FDisp = TRUE. RETURN. END. IF FCancel THEN pcColValues = OldColValues. IF NOT FNeu THEN OldColValues = pcColValues. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U). IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ). DO WITH FRAME {&FRAME-NAME}: END. RUN SUPER( INPUT pcColValues). FCancel = FALSE. DO WITH FRAME {&FRAME-NAME}: CB_Sprache:SCREEN-VALUE = STRING(INT(rowObject.Sprcd:SCREEN-VALUE),'999999') NO-ERROR. CB_Mandant:SCREEN-VALUE = rowObject.Firma:SCREEN-VALUE NO-ERROR. CB_Lager :SCREEN-VALUE = rowObject.Lager:SCREEN-VALUE NO-ERROR. cOldKennwort = rowObject.Kennwort:SCREEN-VALUE. cOldPin = rowObject.Pin :SCREEN-VALUE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin PROCEDURE enableFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ /* RUN SUPER. */ IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ). IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ). END. DO WITH FRAME {&FRAME-NAME}: END. IF FNeu THEN RETURN. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO: RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. { incl/viwenableobject.i } RUN COMBO_SPRACHE ( INPUT CB_Sprache:HANDLE ). RUN COMBO_MANDANT ( INPUT CB_Mandant:HANDLE ). RUN COMBO_LAGER ( INPUT CB_Lager :HANDLE ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin PROCEDURE ENTRY_FELD_TEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/viwentryfeldtest.i } DO WITH FRAME {&FRAME-NAME}: CASE FeldName: END CASE. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin PROCEDURE FEHLWERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. IF FCancel THEN RETURN. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}: /* i1 = LOOKUP('Feld', oldColList, ',') + 1. */ /* ENTRY(i1, pcColValues, CHR(1)) = 'Fehlwert' NO-ERROR. */ END. IF FCopy THEN DO: END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE generateHash vTableWin PROCEDURE generateHash : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipAlgorithm AS CHARACTER NO-UNDO. /* SHA512 */ DEFINE INPUT PARAMETER ipPhrase AS CHARACTER NO-UNDO. /* Firma;FahrerNr */ DEFINE INPUT PARAMETER ipKey AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAMETER opERROR AS LOGICAL INITIAL FALSE NO-UNDO. DEFINE OUTPUT PARAMETER opMESSAGE AS CHARACTER INITIAL 'NONE' NO-UNDO. DEFINE OUTPUT PARAMETER opHash AS CHARACTER INITIAL '' NO-UNDO. IF ipPhrase = '' OR ipPhrase = ? THEN DO: ASSIGN opERROR = TRUE opMESSAGE = 'Input Error. Value not correct'. RETURN. END. opHash = HEX-ENCODE (MESSAGE-DIGEST (ipAlgorithm, ipPhrase, ipKey)). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin PROCEDURE LEAVE_FELD_TEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/viwleavefeldtest.i } DO WHILE FNeu WITH FRAME {&FRAME-NAME}: CASE FeldName: END CASE. LEAVE. END. CASE FeldName: WHEN 'Benutzer' THEN DO: IF FNeu THEN DO: IF CAN-FIND (Benutzer USE-INDEX Benutzer-k1 WHERE Benutzer.Benutzer = FeldInhalt NO-LOCK ) THEN DO: RUN FEHLER ( INPUT 1001 ). RETURN 'ERROR'. END. END. END. END CASE. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO: DO WHILE TRUE: IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE. RETURN ''. END. APPLY 'ALT-S'. RETURN 'APPLY'. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin PROCEDURE RETURN_FELD : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/viwreturnfeld.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin PROCEDURE TEST_EINGABEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE OUTPUT PARAMETER opJa AS LOG NO-UNDO. DEFINE VARIABLE eHandle AS HANDLE NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE iNummer AS INTEGER NO-UNDO. DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO. opJa = FALSE. eHandle = ?. IF NOT FMut THEN RETURN. AAA000: DO WHILE TRUE WITH FRAME {&FRAME-NAME}: RUN generateHash ( 'SHA-512', SUBSTITUTE('&1;&2', Firma, TRIM(STRING(INTEGER(rowObject.FahrerNummer:SCREEN-VALUE),'zzzzz9'))), rowObject.Pin:SCREEN-VALUE, OUTPUT opJa, OUTPUT cMessage, OUTPUT cString). rowObject.shaPin:SCREEN-VALUE = cString. LEAVE. END. IF VALID-HANDLE(eHandle) THEN DO: APPLY 'ENTRY' TO eHandle. RETURN NO-APPLY. END. opJa = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin PROCEDURE updateMode : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO. CASE pcMode: WHEN 'updateBegin' THEN DO: END. WHEN 'updateEnd' THEN DO: END. END. RUN SUPER( INPUT pcMode). CASE pcMode: WHEN 'updateBegin' THEN DO: FMut = TRUE. END. WHEN 'updateEnd' THEN DO: FNeu = FALSE. FMut = FALSE. FCopy = FALSE. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin PROCEDURE updateRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: rowObject.Firma:SCREEN-VALUE = CB_Mandant:SCREEN-VALUE. rowObject.Sprcd:SCREEN-VALUE = CB_Sprache:SCREEN-VALUE. rowObject.Lager:SCREEN-VALUE = CB_Lager :SCREEN-VALUE. END. FNeu = FALSE. FCopy = FALSE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME