&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 RowObject {"d-frwtab.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 FRW &Scoped-define LETZTES_FELD KD_Kto_Pass &Scoped-define KEY_FELDER FRW &Scoped-define NUR_LESEN /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEFINE VARIABLE SAktiv AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE FNeu AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE FMut AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE FCopy AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE FDisp AS LOG NO-UNDO INIT TRUE . DEFINE VARIABLE Fenster AS HANDLE NO-UNDO. DEFINE VARIABLE oldColValues AS CHARACTER NO-UNDO. DEFINE VARIABLE oldColList AS CHARACTER NO-UNDO. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO. DEFINE TEMP-TABLE tFrwTab LIKE FRWTab FIELD OldKurs AS DECIMAL DECIMALS 8 FIELD lMut AS LOGICAL INIT FALSE. /* _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-frwtab.i" /* Name of first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME F-Main /* Standard List Definitions */ &Scoped-Define ENABLED-FIELDS RowObject.FRW RowObject.Bez RowObject.Kurs ~ RowObject.Faktor RowObject.SK_Kto_Debi RowObject.SK_Kto_Kred ~ RowObject.KD_Kto_Debi RowObject.KD_Kto_Kred RowObject.KD_Kto_Akti ~ RowObject.KD_Kto_Pass &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS RECT-22 RECT-23 &Scoped-Define DISPLAYED-FIELDS RowObject.FRW RowObject.Bez RowObject.Kurs ~ RowObject.Faktor RowObject.SK_Kto_Debi RowObject.SK_Kto_Kred ~ RowObject.KD_Kto_Debi RowObject.KD_Kto_Kred RowObject.KD_Kto_Akti ~ RowObject.KD_Kto_Pass /* 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 RECTANGLE RECT-22 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 86 BY 10.24. DEFINE RECTANGLE RECT-23 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 84 BY 5.71. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main RowObject.FRW AT ROW 1.52 COL 20 COLON-ALIGNED LABEL "Kurz" FORMAT "x(03)" VIEW-AS FILL-IN NATIVE SIZE 8.6 BY 1 BGCOLOR 15 RowObject.Bez AT ROW 2.52 COL 20 COLON-ALIGNED LABEL "Währung" FORMAT "x(30)" VIEW-AS FILL-IN NATIVE SIZE 32 BY 1 BGCOLOR 15 RowObject.Kurs AT ROW 3.52 COL 20 COLON-ALIGNED LABEL "Kurs" FORMAT "zz,zz9.999999" VIEW-AS FILL-IN NATIVE SIZE 21 BY 1 BGCOLOR 15 RowObject.Faktor AT ROW 3.52 COL 63 COLON-ALIGNED LABEL "Faktor" FORMAT "9999" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.SK_Kto_Debi AT ROW 6.52 COL 20 COLON-ALIGNED LABEL "Skonti Debitoren" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 RowObject.SK_Kto_Kred AT ROW 7.52 COL 20 COLON-ALIGNED LABEL "Skonti Kreditoren" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 RowObject.KD_Kto_Debi AT ROW 6.52 COL 63 COLON-ALIGNED LABEL "Kursdiff. Debitoren" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 RowObject.KD_Kto_Kred AT ROW 7.52 COL 63 COLON-ALIGNED LABEL "Kursdiff. Kreditoren" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 RowObject.KD_Kto_Akti AT ROW 8.52 COL 63 COLON-ALIGNED LABEL "Kursdiff. Aktiven" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 RowObject.KD_Kto_Pass AT ROW 9.52 COL 63 COLON-ALIGNED LABEL "Kursdiff. Passiven" FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 17.6 BY 1 BGCOLOR 15 RECT-22 AT ROW 1.24 COL 2 RECT-23 AT ROW 5.29 COL 3 "FIBU-Konti" VIEW-AS TEXT SIZE 38.4 BY 1 AT ROW 5.52 COL 22 FONT 6 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-frwtab.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-frwtab.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 = 11.1 WIDTH = 93.6. /* 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 Size-to-Fit Custom */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN RowObject.Bez IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Faktor IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.FRW IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Akti IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Debi IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Kred IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.KD_Kto_Pass IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Kurs IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.SK_Kto_Debi IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.SK_Kto_Kred IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* _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 &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. EMPTY TEMP-TABLE tFrwTab. /* 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. 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: ------------------------------------------------------------------------------*/ DEFINE VARIABLE 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 destroyObject vTableWin PROCEDURE destroyObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE lLetzter AS LOGICAL NO-UNDO. DEFINE VARIABLE lDurchschnitt AS LOGICAL NO-UNDO. DEFINE VARIABLE lListen AS LOGICAL NO-UNDO. DEFINE VARIABLE lInterner AS LOGICAL NO-UNDO. DEFINE VARIABLE lMut AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE nEp AS DECIMAL NO-UNDO DECIMALS 4. FIND FIRST tFrwTab WHERE tFrwTab.lMut = TRUE. IF AVAILABLE tFrwTab THEN lMut = TRUE. IF lMut THEN DO: RUN 'g-epanpassen.w' (OUTPUT lLetzter, OUTPUT lDurchschnitt, OUTPUT lListen, OUTPUT lInterner) NO-ERROR. IF lDurchschnitt = ? THEN lDurchschnitt = FALSE. IF lInterner = ? THEN lInterner = FALSE. IF lLetzter = ? THEN lLetzter = FALSE. IF lListen = ? THEN lListen = FALSE. END. SESSION:SET-WAIT-STATE('GENERAL'). FOR EACH tFrwTab WHERE tFrwTab.lMut = TRUE: IF tFrwTab.OldKurs = 0 THEN tFrwTab.OldKurs = tFrwTab.Kurs. IF tFrwTab.Kurs = 0 THEN NEXT. FOR EACH Liefst WHERE Liefst.Firma = Firma AND Liefst.Frw = tFrwTab.Frw NO-LOCK TRANSACTION: FOR EACH ArtLief USE-INDEX ArtLief-k2 WHERE ArtLief.Firma = Liefst.Firma AND ArtLief.Knr = Liefst.Knr: IF ArtLief.S_Preis_FRW <> 0 THEN ArtLief.S_Preis = ArtLief.S_Preis_Frw * tFrwTab.Kurs / tFrwTab.Faktor. IF ArtLief.L_EP_FRW <> 0 THEN ArtLief.L_EP = ArtLief.L_EP_Frw * tFrwTab.Kurs / tFrwTab.Faktor. FIND Artst OF ArtLief NO-ERROR. IF NOT AVAILABLE Artst THEN DO: DELETE ArtLief. NEXT. END. IF lLetzter THEN DO: IF Artst.LEP = 0 THEN Artst.LEP = ArtLief.S_Preis. ELSE Artst.LEP = Artst.LEP * (tFrwTab.Kurs / tFrwTab.OldKurs). END. IF lInterner THEN DO: IF Artst.EP-Intern = 0 THEN Artst.EP-Intern = 0. ELSE Artst.EP-Intern = Artst.EP-Intern * (tFrwTab.Kurs / tFrwTab.OldKurs). END. IF lDurchschnitt THEN DO: IF Artst.DEP = 0 THEN Artst.DEP = 0. ELSE Artst.DEP = Artst.DEP * (tFrwTab.Kurs / tFrwTab.OldKurs). END. IF lListen THEN DO: IF Artst.Listen_EP = 0 THEN Artst.Listen_EP = 0. ELSE Artst.Listen_EP = (ArtLief.S_Preis * (100 - ArtLief.Rabatt) / 100) + ArtLief.Spesen. END. nEp = (IF Artst.Listen_EP <> 0 THEN Artst.Listen_EP ELSE Artst.LEP). IF nEp <> 0 THEN DO: FOR EACH ArtPreis WHERE ArtPreis.Firma = Artst.Firma AND ArtPreis.Artnr = Artst.Artnr AND ArtPreis.Inhalt = Artst.Inhalt AND ArtPreis.Jahr = Artst.Jahr AND ArtPreis.Aktiv = TRUE: ArtPreis.Marge = 100 - (nEP * 100 / ArtPreis.VK_Netto). END. END. END. END. END. SESSION:SET-WAIT-STATE(''). /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. PUBLISH 'NEUER_EP'. 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. 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}: 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: ------------------------------------------------------------------------------*/ EMPTY TEMP-TABLE tFrwTab. FOR EACH FrwTab NO-LOCK: CREATE tFrwTab. BUFFER-COPY FrwTab TO tFrwTab ASSIGN tFrwTab.OldKurs = FrwTab.Kurs tFrwTab.lMut = FALSE. END. 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: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE FeldName AS CHARACTER NO-UNDO. DEFINE VARIABLE FeldInhalt AS CHARACTER 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: ------------------------------------------------------------------------------*/ DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO. DEFINE VARIABLE FwFelder AS CHARACTER NO-UNDO. DEFINE VARIABLE FwFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE FwValue AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder. IF NOT FCopy THEN DO: 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. 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: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE FeldName AS CHARACTER NO-UNDO. DEFINE VARIABLE FeldInhalt AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE LKY AS INTEGER NO-UNDO. DEFINE VARIABLE hLEAVE AS HANDLE NO-UNDO. DEFINE VARIABLE hENTER AS HANDLE NO-UNDO. DEFINE VARIABLE Daten AS CHARACTER 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: WHEN 'FRW' THEN DO: FIND FRWTab USE-INDEX FRWTab-k1 WHERE FRWTab.Frw = FeldInhalt NO-LOCK NO-ERROR. IF NOT AVAILABLE FRWTab THEN RETURN ''. RUN FEHLER ( INPUT 1048 ). RETURN 'ERROR'. END. 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: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE FeldName AS CHARACTER 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. 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}: END. FNeu = FALSE. FCopy = FALSE. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: IF rowObject.Frw:SCREEN-VALUE = 'CHF' THEN RETURN. FIND FrwTab USE-INDEX FrwTab-k1 WHERE FrwTab.Frw = rowObject.Frw:SCREEN-VALUE. FIND FIRST tFrwTab OF FrwTab NO-ERROR. ASSIGN tFrwTab.Kurs = FrwTab.Kurs tFrwTab.lMut = TRUE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME