&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-artpreis.i"}. DEFINE TEMP-TABLE tArtStaff NO-UNDO LIKE ArtStaff. &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_Preisgruppe &Scoped-define LETZTES_FELD Marge &Scoped-define KEY_FELDER CB_Preisgruppe,Ab_Datum &Scoped-define NUR_LESEN MinMarge { incl/viwdefinition.i } DEF VAR APRecid AS RECID NO-UNDO. DEF VAR FwPgr AS CHAR NO-UNDO. DEF VAR AltPreisDel AS LOG 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-artpreis.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.Ab_Datum RowObject.VK_Netto ~ RowObject.VK_Brutto RowObject.Marge RowObject.MinMarge &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS CB_Preisgruppe RECT-1 &Scoped-Define DISPLAYED-FIELDS RowObject.Ab_Datum RowObject.VK_Netto ~ RowObject.Inhalt RowObject.Jahr RowObject.VK_Brutto RowObject.Preis_Grp ~ RowObject.Marge RowObject.Aktion RowObject.Aktiv RowObject.ArtID ~ RowObject.Artnr RowObject.Firma RowObject.MinMarge &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS CB_Preisgruppe /* 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_Preisgruppe AS CHARACTER FORMAT "X(256)":U LABEL "Preisgruppe" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 37.8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 68.8 BY 5.91. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main CB_Preisgruppe AT ROW 1.52 COL 23 COLON-ALIGNED WIDGET-ID 28 RowObject.Ab_Datum AT ROW 2.52 COL 23 COLON-ALIGNED WIDGET-ID 2 LABEL "gültig ab" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 RowObject.VK_Netto AT ROW 3.52 COL 23 COLON-ALIGNED WIDGET-ID 26 LABEL "Netto (exkl MWSt)" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 RowObject.Inhalt AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 14 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Jahr AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 16 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VK_Brutto AT ROW 4.52 COL 23 COLON-ALIGNED WIDGET-ID 24 LABEL "Brutto ( inkl MWSt)" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 RowObject.Preis_Grp AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 22 FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Marge AT ROW 5.52 COL 23 COLON-ALIGNED WIDGET-ID 18 LABEL "Marge/Mindestmarge" FORMAT "zzz,zz9.9999-" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 RowObject.Aktion AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 4 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Aktiv AT ROW 2 COL 60 WIDGET-ID 6 LABEL "Aktiv" VIEW-AS TOGGLE-BOX SIZE 4 BY .81 NO-TAB-STOP RowObject.ArtID AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 8 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Artnr AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 10 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Firma AT ROW 2 COL 58 COLON-ALIGNED WIDGET-ID 12 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MinMarge AT ROW 5.52 COL 45 COLON-ALIGNED NO-LABEL WIDGET-ID 20 FORMAT "zzz,zz9.9999-" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 14 NO-TAB-STOP RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 30 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-artpreis.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-artpreis.i} END-FIELDS. TABLE: tArtStaff T "?" NO-UNDO AnaDat ArtStaff 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 = 6.67 WIDTH = 71.2. /* 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 Custom */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN RowObject.Ab_Datum IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Aktion IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Aktion:HIDDEN IN FRAME F-Main = TRUE RowObject.Aktion:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.Aktiv IN FRAME F-Main NO-ENABLE EXP-LABEL */ ASSIGN RowObject.Aktiv:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.ArtID IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.ArtID:HIDDEN IN FRAME F-Main = TRUE RowObject.ArtID:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Inhalt:HIDDEN IN FRAME F-Main = TRUE RowObject.Inhalt:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Jahr:HIDDEN IN FRAME F-Main = TRUE RowObject.Jahr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Marge IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.MinMarge IN FRAME F-Main EXP-LABEL EXP-FORMAT */ ASSIGN RowObject.MinMarge:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Preis_Grp IN FRAME F-Main NO-ENABLE EXP-FORMAT */ ASSIGN RowObject.Preis_Grp:HIDDEN IN FRAME F-Main = TRUE RowObject.Preis_Grp:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VK_Brutto IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.VK_Netto IN FRAME F-Main EXP-LABEL */ /* _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_Preisgruppe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Preisgruppe vTableWin ON VALUE-CHANGED OF CB_Preisgruppe IN FRAME F-Main /* Preisgruppe */ DO: DO WITH FRAME {&FRAME-NAME}: IF NOT FNeu THEN DO: SELF:SCREEN-VALUE = rowObject.Preis_Grp:SCREEN-VALUE. END. rowObject.Preis_Grp:SCREEN-VALUE = SELF:SCREEN-VALUE. IF FMut THEN rowObject.Preis_Grp:MODIFIED = 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: ------------------------------------------------------------------------------*/ IF NOT rowObject.Aktion:SCREEN-VALUE IN FRAME {&FRAME-NAME} BEGINS 'n' THEN DO: DYNAMIC-FUNCTION('setFlagAbbruch':U, TRUE, Progname ) NO-ERROR. RETURN NO-APPLY. END. 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: ------------------------------------------------------------------------------*/ DEF VAR Ja AS LOG NO-UNDO. DEF VAR Artnr AS INT NO-UNDO. DEF VAR Inhalt AS INT NO-UNDO. DEF VAR Jahr AS INT NO-UNDO. DEF VAR Preis_Grp AS INT NO-UNDO. DEF VAR Ab_Datum AS DATE NO-UNDO. DEF BUFFER bArtPreis FOR ArtPreis. IF NOT rowObject.Aktion:SCREEN-VALUE IN FRAME {&FRAME-NAME} BEGINS 'n' THEN DO: DYNAMIC-FUNCTION('setFlagAbbruch':U, TRUE, Progname ) NO-ERROR. RETURN NO-APPLY. END. 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. DO WITH FRAME {&FRAME-NAME}: Artnr = INTEGER(rowObject.Artnr:SCREEN-VALUE ). Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE ). Jahr = INTEGER(rowObject.Jahr:SCREEN-VALUE ). Preis_Grp = INTEGER(rowObject.Preis_Grp:SCREEN-VALUE). Ab_Datum = DATE (rowObject.Ab_Datum:SCREEN-VALUE ). END. REPEAT TRANSACTION: FIND LAST bArtPreis USE-INDEX ArtPreis-k1 WHERE bArtPreis.Firma = Firma AND bArtPreis.Artnr = Artnr AND bArtPreis.Inhalt = Inhalt AND bArtPreis.Jahr = Jahr AND bArtPreis.Preis_Grp = Preis_Grp AND bArtPreis.Ab_Datum < Ab_Datum AND bArtPreis.Aktion = FALSE NO-ERROR. IF AVAILABLE bArtPreis THEN DO: bArtPreis.Aktiv = TRUE. APRecid = RECID(bArtPreis). END. ELSE DO: APRecid = ?. END. FOR EACH ArtStaff USE-INDEX ArtStaff-k1 WHERE ArtStaff.Firma = Firma AND ArtStaff.Artnr = Artnr AND ArtStaff.Inhalt = Inhalt AND ArtStaff.Preis_Grp = Preis_Grp AND ArtStaff.Ab_Datum = Ab_Datum: DELETE ArtStaff. END. RELEASE bArtPreis. RELEASE ArtStaff. LEAVE. 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}: 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}: IF NOT FMut THEN FwPgr = rowObject.Preis_Grp:SCREEN-VALUE. CB_Preisgruppe:SCREEN-VALUE = rowObject.Preis_Grp:SCREEN-VALUE NO-ERROR. IF rowObject.Aktion:SCREEN-VALUE BEGINS 'n' THEN rowObject.Ab_Datum:BGCOLOR = 15. ELSE rowObject.Ab_Datum:BGCOLOR = 14. 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: ------------------------------------------------------------------------------*/ IF SAktiv THEN DO WITH FRAME {&FRAME-NAME}: RUN COMBO_PREISGRP ( INPUT CB_Preisgruppe:HANDLE ). END. RUN SUPER. { incl/viwenableobject.i } DEF VAR cValue AS CHAR NO-UNDO. cValue = ''. GET-KEY-VALUE SECTION 'GrundEinstellungen' KEY 'AltePreiseDel' VALUE cValue. IF cValue = ? THEN cValue = ''. IF cValue = '' THEN DO: cValue = 'nein'. PUT-KEY-VALUE SECTION 'GrundEinstellungen' KEY 'AltePreiseDel' VALUE cValue. END. IF cValue BEGINS 'n' THEN AltPreisDel = FALSE. ELSE AltPreisDel = TRUE. 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: ------------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. IF FCancel THEN RETURN. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}: i1 = LOOKUP('Ab_Datum', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(TODAY) NO-ERROR. i1 = LOOKUP('Aktion', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(FALSE) NO-ERROR. i1 = LOOKUP('Aktiv', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(TRUE) NO-ERROR. i1 = LOOKUP('Preis_Grp', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = FwPgr NO-ERROR. END. IF FCopy THEN DO: END. 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 VAR Artnr AS INT NO-UNDO. DEF VAR Inhalt AS INT NO-UNDO. DEF VAR Jahr AS INT NO-UNDO. DEF VAR Preis_Grp AS INT NO-UNDO. { incl/viwleavefeldtest.i } DO WHILE FNeu WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Ab_Datum' THEN DO: IF KEYFUNCTION(LKY) = 'BACK-TAB' THEN RETURN ''. IF VALID-HANDLE(hENTER) AND hEnter:NAME = 'CB_Preisgruppe' THEN RETURN ''. IF DATE(FeldInhalt) = ? THEN DO: FeldInhalt = STRING(TODAY). END. ipHandle:SCREEN-VALUE = STRING(DATE(FeldInhalt),'99.99.9999'). Artnr = INTEGER(rowObject.Artnr:SCREEN-VALUE ). Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE ). Jahr = INTEGER(rowObject.Jahr:SCREEN-VALUE ). Preis_Grp = INTEGER(rowObject.Preis_Grp:SCREEN-VALUE). FIND ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = Firma AND ArtPreis.Artnr = Artnr AND ArtPreis.Inhalt = Inhalt AND ArtPreis.Jahr = Jahr AND ArtPreis.Preis_Grp = Preis_Grp AND ArtPreis.Ab_Datum = DATE(FeldInhalt) NO-LOCK NO-ERROR. IF AVAILABLE ArtPreis THEN DO: RUN FEHLER ( INPUT 1025 ). RETURN 'ERROR'. END. END. END CASE. LEAVE. END. RETURN-VALUE = ''. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'VK_Netto' THEN DO: IF SELF:MODIFIED THEN DO: RUN ARTPREISRECHNEN ( INPUT 1, INPUT rowObject.VK_Netto :HANDLE, INPUT rowObject.VK_Brutto:HANDLE, INPUT rowobject.Marge :HANDLE, INPUT rowObject.Ab_Datum :HANDLE, INPUT 'CHF' ). END. END. WHEN 'VK_Brutto' THEN DO: IF SELF:MODIFIED THEN DO: RUN ARTPREISRECHNEN ( INPUT 2, INPUT rowObject.VK_Netto :HANDLE, INPUT rowObject.VK_Brutto:HANDLE, INPUT rowobject.Marge :HANDLE, INPUT rowObject.Ab_Datum :HANDLE, INPUT 'CHF' ). END. END. WHEN 'Marge' THEN DO: IF SELF:MODIFIED THEN DO: RUN ARTPREISRECHNEN ( INPUT 3, INPUT rowObject.VK_Netto :HANDLE, INPUT rowObject.VK_Brutto:HANDLE, INPUT rowobject.Marge :HANDLE, INPUT rowObject.Ab_Datum :HANDLE, INPUT 'CHF' ). END. END. END CASE. LEAVE. END. CASE RETURN-VALUE: WHEN 'MWSTCODE' THEN DO: RUN FEHLER ( INPUT 1080 ). RETURN 'ERROR'. END. WHEN 'MWSTANSATZ' THEN DO: RUN FEHLER ( INPUT 1079 ). RETURN 'ERROR'. 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: ------------------------------------------------------------------------------*/ DEF OUTPUT PARAMETER opJa AS LOG NO-UNDO. DEF VAR eHandle AS HANDLE NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR iNummer AS INT NO-UNDO. opJa = FALSE. eHandle = ?. IF NOT FMut THEN RETURN. AAA000: DO WHILE TRUE WITH FRAME {&FRAME-NAME}: 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: IF NOT rowObject.Aktion:SCREEN-VALUE IN FRAME {&FRAME-NAME} BEGINS 'n' THEN DO: DYNAMIC-FUNCTION('setFlagAbbruch':U, TRUE, Progname ) NO-ERROR. RUN FEHLER ( 8015 ). RETURN NO-APPLY. 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 Artnr AS INT NO-UNDO. DEF VAR Inhalt AS INT NO-UNDO. DEF VAR Jahr AS INT NO-UNDO. DEF VAR Preis_Grp AS INT NO-UNDO. DEF VAR Ab_Datum AS DATE NO-UNDO. DEF VAR Alt_Dat AS DATE NO-UNDO. DEF VAR VK_Netto AS DEC DECIMALS 4 NO-UNDO. DEF VAR Rabatt AS DEC DECIMALS 4 NO-UNDO. DEF VAR hArtStaff AS HANDLE NO-UNDO. DEF VAR hNetto AS HANDLE NO-UNDO. DEF VAR hBrutto AS HANDLE NO-UNDO. DEF VAR hMarge AS HANDLE NO-UNDO. DEF VAR hDatum AS HANDLE NO-UNDO. DEF BUFFER bArtPreis FOR ArtPreis. DO WITH FRAME {&FRAME-NAME}: IF FNeu THEN DO: DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE). rowObject.Preis_Grp:SCREEN-VALUE = CB_Preisgruppe:SCREEN-VALUE. END. Artnr = INTEGER(rowObject.Artnr:SCREEN-VALUE ). Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE ). Jahr = INTEGER(rowObject.Jahr:SCREEN-VALUE ). Preis_Grp = INTEGER(rowObject.Preis_Grp:SCREEN-VALUE). Ab_Datum = DATE (rowObject.Ab_Datum:SCREEN-VALUE ). rowObject.VK_Netto :MODIFIED = TRUE. rowObject.VK_Brutto:MODIFIED = TRUE. rowObject.Marge :MODIFIED = TRUE. VK_Netto = DECIMAL(rowObject.VK_Netto:SCREEN-VALUE). DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE). END. FNeu = FALSE. FCopy = FALSE. RUN SUPER. EMPTY TEMP-TABLE tArtStaff. FIND LAST ArtStaff USE-INDEX ArtStaff-k1 WHERE ArtStaff.Firma = Firma AND ArtStaff.Artnr = Artnr AND ArtStaff.Inhalt = Inhalt AND ArtStaff.Preis_Grp = Preis_Grp AND ArtStaff.Ab_Datum <= Ab_Datum NO-LOCK NO-ERROR. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: IF Ab_Datum <= TODAY AND AltPreisDel = TRUE THEN DO: FIND LAST bArtPreis USE-INDEX ArtPreis-k1 WHERE bArtPreis.Firma = Firma AND bArtPreis.Artnr = Artnr AND bArtPreis.Inhalt = Inhalt AND bArtPreis.Jahr = Jahr AND bArtPreis.Preis_Grp = Preis_Grp AND bArtPreis.Ab_Datum < Ab_Datum AND bArtPreis.Aktion = FALSE NO-ERROR. IF AVAILABLE bArtPreis THEN bArtPreis.Aktiv = FALSE. END. IF NOT AVAILABLE ArtStaff THEN LEAVE. Alt_Dat = ArtStaff.Ab_Datum. hArtStaff = TEMP-TABLE tArtStaff:DEFAULT-BUFFER-HANDLE. hNetto = hArtStaff:BUFFER-FIELD('VK_Netto') . hBrutto = hArtStaff:BUFFER-FIELD('VK_Brutto') . hMarge = hArtStaff:BUFFER-FIELD('Marge') . hDatum = hArtStaff:BUFFER-FIELD('Ab_Datum'). FOR EACH ArtStaff NO-LOCK USE-INDEX ArtStaff-k1 WHERE ArtStaff.Firma = Firma AND ArtStaff.Artnr = Artnr AND ArtStaff.Inhalt = Inhalt AND ArtStaff.Preis_Grp = Preis_Grp AND ArtStaff.Ab_Datum = Alt_Dat : CREATE TArtStaff. BUFFER-COPY ArtStaff TO TArtStaff. TArtStaff.VK_Netto = VK_Netto * (100 - TArtStaff.Rabatt) / 100. TArtStaff.Ab_Datum = Ab_Datum. RUN ARTPREISRECHNEN ( INPUT 1, hNetto , hBrutto , hMarge , hDatum , 'CHF' ). END. FOR EACH TArtStaff: IF Alt_Dat = Ab_Datum THEN FIND ArtStaff OF TArtStaff. ELSE CREATE ArtStaff. BUFFER-COPY TArtStaff TO ArtStaff. DELETE TArtStaff. END. LEAVE. END. RUN REPOS_TABELLE IN hDaten NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME