&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE RowObject {"d-dokudrucker.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 CB_Benutzer &Scoped-define LETZTES_FELD Zahl8 &Scoped-define KEY_FELDER CB_Benutzer,CB_Dokument &Scoped-define NUR_LESEN /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE. DEF VAR FNeu AS LOG NO-UNDO INIT FALSE. DEF VAR FMut AS LOG NO-UNDO INIT FALSE. DEF VAR FCopy AS LOG NO-UNDO INIT FALSE. DEF VAR FDisp AS LOG NO-UNDO INIT TRUE . DEF VAR Fenster AS HANDLE NO-UNDO. DEF VAR oldColValues AS CHAR NO-UNDO. DEF VAR oldColList AS CHAR NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR cBenu AS CHAR NO-UNDO. DEF TEMP-TABLE tDrucker NO-UNDO FIELD cDrucker AS CHAR. DEF TEMP-TABLE tHilfsTab LIKE HilfsTab. /* _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-dokudrucker.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.Zahl1 RowObject.Zahl2 ~ RowObject.Zahl3 RowObject.Zahl4 RowObject.Zahl5 RowObject.Zahl6 ~ RowObject.Zahl7 RowObject.Zahl8 &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS RECT-4 CB_Benutzer CB_Dokument CB_Drucker ~ CB_Schrift &Scoped-Define DISPLAYED-FIELDS RowObject.Zeichen_2 RowObject.Zahl9 ~ RowObject.Sort_1 RowObject.Sort_2 RowObject.Zeichen_1 RowObject.Firma ~ RowObject.Zahl1 RowObject.Zahl2 RowObject.Zahl3 RowObject.Zahl4 ~ RowObject.Zahl5 RowObject.Zahl6 RowObject.Zahl7 RowObject.Zahl8 &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS CB_Benutzer CB_Dokument CB_Drucker ~ CB_Schrift /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CB_BENUTZER vTableWin FUNCTION CB_BENUTZER RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CB_DOKUMENT vTableWin FUNCTION CB_DOKUMENT RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CB_DRUCKER vTableWin FUNCTION CB_DRUCKER RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CB_SCHRIFT vTableWin FUNCTION CB_SCHRIFT RETURNS LOGICAL ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE VARIABLE CB_Benutzer AS CHARACTER FORMAT "X(256)":U LABEL "Benutzer" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Dokument AS CHARACTER FORMAT "X(256)":U LABEL "Dokument" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "Item 1" DROP-DOWN-LIST SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Drucker AS CHARACTER FORMAT "X(256)":U LABEL "Drucker" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "Item 1" DROP-DOWN-LIST SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Schrift AS CHARACTER FORMAT "X(256)":U LABEL "Schrift" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "Item 1" DROP-DOWN-LIST SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-4 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 148 BY 4.76. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main CB_Benutzer AT ROW 1.57 COL 18 COLON-ALIGNED CB_Dokument AT ROW 2.52 COL 18 COLON-ALIGNED CB_Drucker AT ROW 3.52 COL 18 COLON-ALIGNED CB_Schrift AT ROW 4.52 COL 18 COLON-ALIGNED RowObject.Zeichen_2 AT ROW 2 COL 48 COLON-ALIGNED VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Zahl9 AT ROW 2 COL 48 COLON-ALIGNED VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Sort_1 AT ROW 2 COL 48 COLON-ALIGNED VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Sort_2 AT ROW 2 COL 48 COLON-ALIGNED VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Zeichen_1 AT ROW 2 COL 48 COLON-ALIGNED VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Firma AT ROW 2 COL 48 COLON-ALIGNED VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Zahl1 AT ROW 1.52 COL 108 COLON-ALIGNED LABEL "Total Zeilen/Seite" VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 BGCOLOR 15 RowObject.Zahl2 AT ROW 2.52 COL 108 COLON-ALIGNED LABEL "Leere Zeilen oben" VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 BGCOLOR 15 RowObject.Zahl3 AT ROW 3.52 COL 108 COLON-ALIGNED LABEL "Leere Zeilen unten" VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 BGCOLOR 15 RowObject.Zahl4 AT ROW 4.52 COL 108 COLON-ALIGNED LABEL "Anzahl Ausdrucke" VIEW-AS FILL-IN NATIVE SIZE 5 BY 1 BGCOLOR 15 RowObject.Zahl5 AT ROW 1.48 COL 137 COLON-ALIGNED FORMAT "zzz9" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Zahl6 AT ROW 2.48 COL 137 COLON-ALIGNED FORMAT "zzz9" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Zahl7 AT ROW 3.48 COL 137 COLON-ALIGNED FORMAT "zzz9" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Zahl8 AT ROW 4.48 COL 137 COLON-ALIGNED FORMAT "zzz9" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RECT-4 AT ROW 1.24 COL 2 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 . /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataViewer Data Source: "d-dokudrucker.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 Temp-Tables and Buffers: TABLE: RowObject D "?" ? ADDITIONAL-FIELDS: {d-dokudrucker.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 = 5.24 WIDTH = 150. /* 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 L-To-R,COLUMNS */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Sort_1 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Sort_1:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Sort_2 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Sort_2:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Zahl1 IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Zahl2 IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Zahl3 IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Zahl4 IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Zahl5 IN FRAME F-Main EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Zahl6 IN FRAME F-Main EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Zahl7 IN FRAME F-Main EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Zahl8 IN FRAME F-Main EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Zahl9 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Zahl9:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Zeichen_1 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Zeichen_1:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Zeichen_2 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Zeichen_2: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 CB_Benutzer &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Benutzer vTableWin ON VALUE-CHANGED OF CB_Benutzer IN FRAME F-Main /* Benutzer */ DO: IF NOT FNeu THEN SELF:SCREEN-VALUE = (IF rowObject.Sort_1:SCREEN-VALUE = '' THEN 'xxxx' ELSE rowObject.Sort_1:SCREEN-VALUE) NO-ERROR. rowObject.Sort_1:SCREEN-VALUE = IF SELF:SCREEN-VALUE = 'xxxx' THEN '' ELSE SELF:SCREEN-VALUE NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Dokument &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Dokument vTableWin ON VALUE-CHANGED OF CB_Dokument IN FRAME F-Main /* Dokument */ DO: IF NOT FNeu THEN SELF:SCREEN-VALUE = rowObject.Sort_2:SCREEN-VALUE NO-ERROR. rowObject.Sort_2:SCREEN-VALUE = SELF:SCREEN-VALUE NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Drucker &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Drucker vTableWin ON VALUE-CHANGED OF CB_Drucker IN FRAME F-Main /* Drucker */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Zeichen_1:SCREEN-VALUE NO-ERROR. rowObject.Zeichen_1:SCREEN-VALUE = SELF:SCREEN-VALUE NO-ERROR. IF NOT FMut THEN RETURN NO-APPLY. DYNAMIC-FUNCTION('CB_SCHRIFT':U) NO-ERROR. CB_Schrift:SCREEN-VALUE = rowObject.Zeichen_2:SCREEN-VALUE NO-ERROR. RUN WERTE_SCHRIFT. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Schrift &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Schrift vTableWin ON VALUE-CHANGED OF CB_Schrift IN FRAME F-Main /* Schrift */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Zeichen_2:SCREEN-VALUE NO-ERROR. rowObject.Zeichen_2:SCREEN-VALUE = SELF:SCREEN-VALUE NO-ERROR. IF NOT FNeu THEN RETURN NO-APPLY. RUN WERTE_SCHRIFT. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin /* *************************** Main Block *************************** */ SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR. IF SAktiv THEN DO: Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. END. /* Triggers ------------------------------------------------------ */ ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN RETURN_FELD ( INPUT SELF:HANDLE ). IF RETURN-VALUE = 'TAB' THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ). IF RETURN-VALUE = 'ERROR' THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. IF RETURN-VALUE = 'APPLY' THEN DO: RETURN NO-APPLY. END. END. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ). IF RETURN-VALUE = 'ERROR' THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. IF RETURN-VALUE = 'APPLY' THEN DO: RETURN NO-APPLY. END. END. &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. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin PROCEDURE cancelRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ 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 = FALSE. 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: ------------------------------------------------------------------------------*/ DEF VAR Ja AS LOG NO-UNDO. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ). IF NOT Ja THEN DO: PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ). RETURN NO-APPLY. END. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ 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}: CB_Dokument:SENSITIVE = TRUE. CB_Benutzer:SENSITIVE = TRUE. 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. 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). DO WITH FRAME {&FRAME-NAME}: CB_Benutzer:SCREEN-VALUE = IF rowObject.Sort_1:SCREEN-VALUE = '' THEN 'xxxx' ELSE rowObject.Sort_1:SCREEN-VALUE NO-ERROR. CB_Dokument:SCREEN-VALUE = rowObject.Sort_2 :SCREEN-VALUE NO-ERROR. CB_Drucker :SCREEN-VALUE = rowObject.Zeichen_1:SCREEN-VALUE NO-ERROR. DYNAMIC-FUNCTION('CB_SCHRIFT':U) NO-ERROR. CB_Schrift :SCREEN-VALUE = rowObject.Zeichen_2:SCREEN-VALUE NO-ERROR. IF FNeu THEN DO: RUN WERTE_SCHRIFT. END. 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: ------------------------------------------------------------------------------*/ cBenu = DYNAMIC-FUNCTION('getBenutzer':U) NO-ERROR. DYNAMIC-FUNCTION('CB_BENUTZER':U) NO-ERROR. DYNAMIC-FUNCTION('CB_DOKUMENT':U) NO-ERROR. DYNAMIC-FUNCTION('CB_DRUCKER':U) NO-ERROR. DYNAMIC-FUNCTION('CB_SCHRIFT':U) NO-ERROR. RUN SUPER. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF SAktiv THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ). END. 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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. FeldName = ''. FeldInhalt = ''. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''. FeldName = ipHandle:NAME. IF ipHandle:TYPE = 'FILL-IN' OR ipHandle:TYPE = 'COMBO-BOX' OR ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE. IF NOT FMut THEN RETURN ''. 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: ------------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO. DEF VAR FwFelder AS CHAR NO-UNDO. DEF VAR FwFeld AS CHAR NO-UNDO. DEF VAR FwValue AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR i1 AS INT NO-UNDO. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}: DO ix = 1 TO NUM-ENTRIES(FwFelder, ','): FwFeld = ENTRY (ix , FwFelder , ','). i1 = LOOKUP(FwFeld, oldColList, ',') + 1. IF i1 < 2 THEN NEXT. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR. END. i1 = LOOKUP('Firma', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = Firma NO-ERROR. i1 = LOOKUP('Zeichen_1', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = CB_Drucker:SCREEN-VALUE NO-ERROR. i1 = LOOKUP('Zeichen_2', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = CB_Schrift:SCREEN-VALUE NO-ERROR. i1 = LOOKUP('Zahl4', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(1) NO-ERROR. END. IF FCopy THEN DO: END. OldColValues = pcColValues. 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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR LKY AS INT NO-UNDO. DEF VAR hLEAVE AS HANDLE NO-UNDO. DEF VAR hENTER AS HANDLE NO-UNDO. DEF VAR Daten AS CHAR NO-UNDO. IF FMut = FALSE THEN RETURN ''. LKY = LASTKEY. hENTER = LAST-EVENT:WIDGET-ENTER. hLEAVE = LAST-EVENT:WIDGET-LEAVE. FeldName = ''. FeldInhalt = ''. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''. FeldName = ipHandle:NAME. IF ipHandle:TYPE = 'FILL-IN' OR ipHandle:TYPE = 'COMBO-BOX' OR ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE. DO WHILE FNeu: CASE FeldName: END CASE. LEAVE. END. 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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. IF FMut = FALSE THEN RETURN ''. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''. FeldName = ipHandle:NAME. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO: RETURN 'TAB'. END. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO: RETURN 'TAB'. END. FeldName = 'rowObject.' + FeldName. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO: RETURN 'TAB'. END. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO: RETURN 'TAB'. END. RETURN ''. 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. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR hdaten AS HANDLE NO-UNDO. DEF BUFFER bHilfsTab FOR HilfsTab. CASE pcMode: WHEN 'updateBegin' THEN DO: hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. IF VALID-HANDLE ( hDaten) THEN iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. IF iRecid <> ? AND iRecid <> 0 THEN DO: EMPTY TEMP-TABLE tHilfsTab. CREATE tHilfsTab. FIND bHilfsTab NO-LOCK WHERE RECID(bHilfsTab) = iRecid. BUFFER-COPY bHilfsTab TO tHilfsTab. END. 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: ------------------------------------------------------------------------------*/ DEF VAR cBenutzer AS CHAR NO-UNDO. DEF VAR cDrucker AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR lNeu AS LOG NO-UNDO. DEF VAR hdaten AS HANDLE NO-UNDO. DEF BUFFER bHilfsTab FOR HilfsTab. DEF BUFFER bSchrift FOR Schrift. DEF BUFFER bDrucker FOR Drucker. DO WITH FRAME {&FRAME-NAME}: IF FNeu THEN DO: IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE ) NO-ERROR. END. rowObject.Sort_1 :SCREEN-VALUE = CB_Benutzer:SCREEN-VALUE. rowObject.Sort_2 :SCREEN-VALUE = CB_Dokument:SCREEN-VALUE. rowObject.Zeichen_1:SCREEN-VALUE = CB_Drucker :SCREEN-VALUE. rowObject.Zeichen_2:SCREEN-VALUE = CB_Schrift :SCREEN-VALUE. IF rowObject.Sort_1:SCREEN-VALUE = 'xxxx' THEN rowObject.Sort_1:SCREEN-VALUE = ''. IF INTEGER(rowObject.Zahl4:SCREEN-VALUE) = 0 THEN rowObject.Zahl4:SCREEN-VALUE = STRING(1). cBenutzer = rowObject.Sort_1 :SCREEN-VALUE. cDrucker = rowObject.Zeichen_1:SCREEN-VALUE. cDokument = rowObject.Sort_2 :SCREEN-VALUE. END. lNeu = FNeu. FNeu = FALSE. FCopy = FALSE. RUN SUPER. FIND bSchrift NO-LOCK WHERE bSchrift.Schname = cDrucker AND bSchrift.Schbild = cDokument NO-ERROR. IF NOT AVAILABLE bSchrift THEN RETURN. FIND bDrucker NO-LOCK WHERE bDrucker.Drucker = bSchrift.Schdru NO-ERROR. IF NOT AVAILABLE bDrucker THEN RETURN. FIND FIRST HilfsTab WHERE HilfsTab.Firma = Firma AND HilfsTab.Sort_1 = cBenutzer AND HilfsTab.Sort_2 = cDokument NO-ERROR. IF NOT AVAILABLE HilfsTab THEN RETURN. IF bDrucker.Emul = 'VIPER' THEN DO: ASSIGN HilfsTab.Zahl[05] = INTEGER(bDrucker.Druschacht[01]) HilfsTab.Zahl[06] = INTEGER(bDrucker.Druschacht[02]) HilfsTab.Zahl[07] = INTEGER(bDrucker.Druschacht[04]) HilfsTab.Zahl[08] = INTEGER(bDrucker.Druschacht[03]) HilfsTab.Zahl[04] = INTEGER(bDrucker.Druschacht[05]). END. IF lNeu THEN RETURN. IF cBenutzer <> '' THEN RETURN. FIND FIRST tHilfsTab NO-ERROR. IF NOT AVAILABLE tHilfsTab THEN RETURN. FOR EACH bHilfsTab WHERE bHilfsTab.Sort_1 <> '' AND bHilfsTab.Sort_2 = tHilfstab.Sort_2 AND bHilfsTab.Zeichen_1 = tHilfsTab.Zeichen_1: BUFFER-COPY HilfsTab EXCEPT Firma Sort_1 Sort_2 TO bHilfsTab. END. RELEASE HilfsTab. RELEASE bHilfsTab. RELEASE bDrucker. RELEASE bSchrift. hDaten = DYNAMIC-FUNCTION('getDataSource':U). DYNAMIC-FUNCTION('openQuery':U IN hDaten ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WERTE_SCHRIFT vTableWin PROCEDURE WERTE_SCHRIFT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cDrucker AS CHAR NO-UNDO. DEF VAR cSchrift AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: cDrucker = CB_Drucker:SCREEN-VALUE. cSchrift = CB_Schrift:SCREEN-VALUE. FIND Schrift NO-LOCK USE-INDEX Schrift-k1 WHERE Schrift.SchName = cDrucker AND Schrift.SchBild = cSchrift NO-ERROR. IF NOT AVAILABLE Schrift THEN RETURN. rowObject.Zahl1:SCREEN-VALUE = STRING(Schrift.SchzzTot). rowObject.Zahl2:SCREEN-VALUE = STRING(Schrift.SchzzBeg). rowObject.Zahl3:SCREEN-VALUE = STRING(Schrift.SchzzEnd). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CB_BENUTZER vTableWin FUNCTION CB_BENUTZER RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. cString = 'Alle Benutzer (alle);xxxx'. FOR EACH Benutzer NO-LOCK WHERE Benutzer.Anzeige <> '' BY Benutzer.Anzeige: cString = cString + ';' + Benutzer.Anzeige + ' (' + Benutzer.Benutzer + ');' + Benutzer.Benutzer. END. DO WITH FRAME {&FRAME-NAME}: CB_Benutzer:DELIMITER = ';'. CB_Benutzer:LIST-ITEM-PAIRS = cString. CB_Benutzer:SCREEN-VALUE = cBenu NO-ERROR. IF CB_Benutzer:SCREEN-VALUE <> cBenu THEN CB_Benutzer:SCREEN-VALUE = 'xxxx' NO-ERROR. END. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CB_DOKUMENT vTableWin FUNCTION CB_DOKUMENT RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. cString = ''. FOR EACH Tabel NO-LOCK WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeC = '' AND Tabel.Sprcd = 1 BREAK BY Tabel.Bez2: IF NOT FIRST-OF ( Tabel.Bez2 ) THEN NEXT. cString = cString + ';' + Tabel.Bez2. END. IF cString <> '' THEN cString = SUBSTRING(cString,02). DO WITH FRAME {&FRAME-NAME}: CB_Dokument:DELIMITER = ';'. CB_Dokument:LIST-ITEMS = cString. CB_Dokument:SCREEN-VALUE = ENTRY(1, cString, ';') NO-ERROR. END. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CB_DRUCKER vTableWin FUNCTION CB_DRUCKER RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR ii AS INT NO-UNDO. cString = SESSION:GET-PRINTERS(). DO ii = 1 TO NUM-ENTRIES(cString, ','): CREATE tDrucker. ASSIGN tDrucker.cDrucker = ENTRY(ii, cString, ','). END. cString = ''. FOR EACH Schrift NO-LOCK BREAK BY Schrift.SchName BY Schrift.SchBild: IF NOT FIRST-OF ( Schrift.SchName ) THEN NEXT. cString = cString + ';' + Schrift.SchName. END. IF cString <> '' THEN cString = SUBSTRING(cString,02). DO WITH FRAME {&FRAME-NAME}: CB_Drucker:DELIMITER = ';'. CB_Drucker:LIST-ITEMS = cString. CB_Drucker:SCREEN-VALUE = ENTRY(1, cString, ';') NO-ERROR. END. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CB_SCHRIFT vTableWin FUNCTION CB_SCHRIFT RETURNS LOGICAL ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR cDrucker AS CHAR NO-UNDO. cString = ''. DO WITH FRAME {&FRAME-NAME}: cDrucker = CB_Drucker:SCREEN-VALUE. END. FOR EACH Schrift NO-LOCK WHERE Schrift.SchName = cDrucker BY Schrift.SchBild: cString = cString + ';' + Schrift.SchBild. END. IF cString <> '' THEN cString = SUBSTRING(cString,02). DO WITH FRAME {&FRAME-NAME}: CB_Schrift:DELIMITER = ';'. CB_Schrift:LIST-ITEMS = cString. CB_Schrift:SCREEN-VALUE = ENTRY(1, cString, ';') NO-ERROR. END. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME