&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gSpezPreismutationen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gSpezPreismutationen /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* 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 ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR MaxPage AS INT NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR ok AS LOG NO-UNDO. DEF VAR AddText AS CHAR NO-UNDO. DEF VAR VWGrp AS INT NO-UNDO. DEF TEMP-TABLE TArtPreis LIKE ArtPreis. DEF BUFFER BArtPreis FOR ArtPreis. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gSpezPreismutationen /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-5 F_Datum CB_PreisGrp CB_WGrp CB_PGrp ~ F_vonArtnr F_bisArtnr F_vonInhalt F_bisInhalt F_vonJahr F_bisJahr CB_Land ~ CB_Hersteller F_bisDatum R_Runden CB_Art F_Wert Btn_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_Datum CB_PreisGrp CB_WGrp CB_PGrp ~ F_vonArtnr F_bisArtnr F_vonInhalt F_bisInhalt F_vonJahr F_bisJahr CB_Land ~ CB_Hersteller R_Runden CB_Art F_Wert /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Datum F_vonArtnr F_bisArtnr F_vonInhalt F_bisInhalt ~ F_vonJahr F_bisJahr F_bisDatum R_Runden F_Wert /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "&Abbrechen" SIZE 15 BY 1 BGCOLOR 15 . DEFINE BUTTON Btn_OK LABEL "&Starten" SIZE 15 BY 1 BGCOLOR 15 . DEFINE VARIABLE CB_Art AS CHARACTER FORMAT "X(256)":U LABEL "Auf-/Abschlagsart" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "Prozent","Betrag" DROP-DOWN-LIST SIZE 25 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Land AS CHARACTER FORMAT "X(256)":U LABEL "Herkunftsland" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_PGrp AS CHARACTER FORMAT "X(256)":U LABEL "Produktegruppe" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_PreisGrp 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 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_WGrp AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppe" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_bisArtnr AS INTEGER FORMAT "zzzzz9":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_bisDatum AS DATE FORMAT "99.99.9999":U LABEL "gültig bis Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_bisInhalt AS INTEGER FORMAT "zzz9":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_bisJahr AS INTEGER FORMAT "zzz9":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U LABEL "ab Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_vonArtnr AS INTEGER FORMAT "zzzzz9":U INITIAL 0 LABEL "von - bis Artikel" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_vonInhalt AS INTEGER FORMAT "zzz9":U INITIAL 0 LABEL "von - bis Inhalt (cl)" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_vonJahr AS INTEGER FORMAT "zzz9":U INITIAL 0 LABEL "von - bis Jahrgang" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Wert AS DECIMAL FORMAT "zz9.9999-":U INITIAL 0 LABEL "Wert" VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE R_Runden AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Keine Rundung", 1, "5er Rundung", 2, "10er Rundung", 3, "auf zwei Kommastellen", 4 SIZE 40 BY 3 NO-UNDO. DEFINE RECTANGLE RECT-5 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 86 BY 17.14. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gSpezPreismutationen F_Datum AT ROW 1.52 COL 20 COLON-ALIGNED CB_PreisGrp AT ROW 3 COL 20 COLON-ALIGNED CB_WGrp AT ROW 4 COL 20 COLON-ALIGNED CB_PGrp AT ROW 5 COL 20 COLON-ALIGNED F_vonArtnr AT ROW 6 COL 20 COLON-ALIGNED WIDGET-ID 16 F_bisArtnr AT ROW 6 COL 33 COLON-ALIGNED WIDGET-ID 14 F_vonInhalt AT ROW 7 COL 20 COLON-ALIGNED F_bisInhalt AT ROW 7 COL 33 COLON-ALIGNED F_vonJahr AT ROW 8 COL 20 COLON-ALIGNED WIDGET-ID 20 F_bisJahr AT ROW 8 COL 33 COLON-ALIGNED WIDGET-ID 18 CB_Land AT ROW 9 COL 20 COLON-ALIGNED WIDGET-ID 2 CB_Hersteller AT ROW 10 COL 20 COLON-ALIGNED WIDGET-ID 8 F_bisDatum AT ROW 11 COL 20 COLON-ALIGNED WIDGET-ID 12 R_Runden AT ROW 12.52 COL 22 NO-LABEL WIDGET-ID 4 CB_Art AT ROW 16 COL 20 COLON-ALIGNED F_Wert AT ROW 17 COL 20 COLON-ALIGNED Btn_OK AT ROW 15.52 COL 69 Btn_Cancel AT ROW 16.52 COL 69 RECT-5 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.28) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Spezialpreise linear mutieren". /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gSpezPreismutationen /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gSpezPreismutationen FRAME-NAME Custom */ ASSIGN FRAME gSpezPreismutationen:SCROLLABLE = FALSE FRAME gSpezPreismutationen:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN F_bisArtnr IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_bisDatum IN FRAME gSpezPreismutationen NO-DISPLAY 6 */ /* SETTINGS FOR FILL-IN F_bisInhalt IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_bisJahr IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_vonArtnr IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_vonInhalt IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_vonJahr IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR FILL-IN F_Wert IN FRAME gSpezPreismutationen 6 */ /* SETTINGS FOR RADIO-SET R_Runden IN FRAME gSpezPreismutationen 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gSpezPreismutationen /* Query rebuild information for DIALOG-BOX gSpezPreismutationen _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gSpezPreismutationen */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gSpezPreismutationen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSpezPreismutationen gSpezPreismutationen ON END-ERROR OF FRAME gSpezPreismutationen /* Spezialpreise linear mutieren */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSpezPreismutationen gSpezPreismutationen ON GO OF FRAME gSpezPreismutationen /* Spezialpreise linear mutieren */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gSpezPreismutationen gSpezPreismutationen ON WINDOW-CLOSE OF FRAME gSpezPreismutationen /* Spezialpreise linear mutieren */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gSpezPreismutationen ON CHOOSE OF Btn_OK IN FRAME gSpezPreismutationen /* Starten */ DO: SESSION:SET-WAIT-STATE('GENERAL'). RUN NEURECHNEN. SESSION:SET-WAIT-STATE(''). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_WGrp &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_WGrp gSpezPreismutationen ON VALUE-CHANGED OF CB_WGrp IN FRAME gSpezPreismutationen /* Warengruppe */ DO: DEF VAR Wgr AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Wgr = INTEGER(CB_WGrp:SCREEN-VALUE) NO-ERROR. RUN COMBO_PRODUKTEGRUPPE (INPUT CB_PGrp:HANDLE, INPUT Wgr) NO-ERROR. cString = 'Alle;XXXXXX;' + CB_PGrp:LIST-ITEM-PAIRS. CB_PGrp:LIST-ITEM-PAIRS = cString. CB_PGrp :SCREEN-VALUE = ENTRY(2, CB_PGrp :LIST-ITEM-PAIRS, ';'). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gSpezPreismutationen /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN ENDE. RETURN NO-APPLY. END. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gSpezPreismutationen _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gSpezPreismutationen _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 gSpezPreismutationen. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gSpezPreismutationen PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Wgr AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN COMBO_LAND (INPUT CB_Land :HANDLE) NO-ERROR. CB_Land:LIST-ITEM-PAIRS = 'alle Länder;ALLE;' + CB_Land:LIST-ITEM-PAIRS. CB_Land:SCREEN-VALUE = ENTRY(2, CB_Land:LIST-ITEM-PAIRS, ';'). RUN COMBO_HERSTELLER (INPUT CB_Hersteller:HANDLE) NO-ERROR. CB_Hersteller:LIST-ITEM-PAIRS = 'alle Hersteller;999999;' + CB_Hersteller:LIST-ITEM-PAIRS. CB_Hersteller:SCREEN-VALUE = ENTRY(2, CB_Hersteller:LIST-ITEM-PAIRS, ';'). RUN COMBO_PREISGRP (INPUT CB_PreisGrp:HANDLE) NO-ERROR. RUN COMBO_WARENGRUPPE (INPUT CB_WGrp :HANDLE) NO-ERROR. cString = 'Alle;XXXXXX;' + CB_WGrp:LIST-ITEM-PAIRS. CB_WGrp:LIST-ITEM-PAIRS = cString. CB_PreisGrp:SCREEN-VALUE = ENTRY(2, CB_PreisGrp:LIST-ITEM-PAIRS, ';'). CB_WGrp :SCREEN-VALUE = ENTRY(2, CB_WGrp :LIST-ITEM-PAIRS, ';'). CB_Art:SCREEN-VALUE = CB_Art:ENTRY(1). END. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: APPLY 'VALUE-CHANGED' TO CB_PreisGrp. APPLY 'VALUE-CHANGED' TO CB_WGrp. END. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gSpezPreismutationen _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Datum CB_PreisGrp CB_WGrp CB_PGrp F_vonArtnr F_bisArtnr F_vonInhalt F_bisInhalt F_vonJahr F_bisJahr CB_Land CB_Hersteller R_Runden CB_Art F_Wert WITH FRAME gSpezPreismutationen. ENABLE RECT-5 F_Datum CB_PreisGrp CB_WGrp CB_PGrp F_vonArtnr F_bisArtnr F_vonInhalt F_bisInhalt F_vonJahr F_bisJahr CB_Land CB_Hersteller F_bisDatum R_Runden CB_Art F_Wert Btn_OK Btn_Cancel WITH FRAME gSpezPreismutationen. VIEW FRAME gSpezPreismutationen. {&OPEN-BROWSERS-IN-QUERY-gSpezPreismutationen} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gSpezPreismutationen PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. IF AktSeite > 1 THEN DO: RUN selectPage ( INPUT 1 ). RETURN NO-APPLY. END. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gSpezPreismutationen PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEURECHNEN gSpezPreismutationen PROCEDURE NEURECHNEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VWGrp AS INT NO-UNDO. DEF VAR VPGrp AS INT NO-UNDO. DEF VAR VPreisGrp AS INT NO-UNDO. DEF VAR VArt AS INT NO-UNDO. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO. DEF VAR WucdK AS INT NO-UNDO. DEF VAR WucdA AS INT NO-UNDO. DEF VAR Ansatz AS DEC NO-UNDO. DEF VAR Rundbetr AS DEC DECIMALS 4 NO-UNDO. DEF VAR cLkz AS CHAR NO-UNDO. DEF VAR iHerst AS INT NO-UNDO. DEF VAR cDBUser AS CHAR NO-UNDO. EMPTY TEMP-TABLE tArtPreis. CREATE tArtPreis. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. VPreisGrp = INTEGER(CB_PreisGrp :SCREEN-VALUE) NO-ERROR. VWGrp = INTEGER(CB_WGrp :SCREEN-VALUE) NO-ERROR. VPGrp = INTEGER(CB_PGrp :SCREEN-VALUE) NO-ERROR. iHerst = INTEGER(CB_Hersteller:SCREEN-VALUE) NO-ERROR. VArt = LOOKUP (CB_Art:SCREEN-VALUE, CB_Art:LIST-ITEMS). cLkz = CB_Land :SCREEN-VALUE NO-ERROR. IF CB_WGrp:SCREEN-VALUE = 'XXXXXX' THEN VWGrp = ?. IF CB_PGrp:SCREEN-VALUE = 'XXXXXX' THEN VPGrp = ?. IF F_bisDatum = ? THEN F_bisDatum = DATE(12/31/2099). IF F_vonArtnr = 0 AND F_bisArtnr = 0 THEN F_bisArtnr = 999999. IF F_vonInhalt = 0 AND F_bisInhalt = 0 THEN F_bisInhalt = 9999. IF F_vonJahr = 0 AND F_bisJahr = 0 THEN F_bisJahr = 9999. IF F_bisArtnr < F_vonArtnr THEN F_bisArtnr = F_vonArtnr . IF F_bisInhalt < F_vonInhalt THEN F_bisInhalt = F_vonInhalt. IF F_bisJahr < F_vonJahr THEN F_bisJahr = F_vonJahr . DISPLAY {&List-6}. DISABLE Btn_OK Btn_Cancel. cDBUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. FOR EACH SpezPrei WHERE SpezPrei.Firma = Firma AND SpezPrei.Artnr >= F_vonArtnr AND SpezPrei.Artnr <= F_bisArtnr AND SpezPrei.Inhalt >= F_vonInhalt AND SpezPrei.Inhalt <= F_bisInhalt AND SpezPrei.Jahr >= F_vonJahr AND SpezPrei.Jahr <= F_bisJahr AND SpezPrei.Bis_Datum > F_Datum AND SpezPrei.Proz_Betr = FALSE, FIRST Debst NO-LOCK WHERE Debst.Firma = SpezPrei.Firma AND Debst.Knr = SpezPrei.Knr AND Debst.Preis_Grp = VPreisGrp, FIRST Artst NO-LOCK WHERE Artst.Firma = Firma AND Artst.Artnr = SpezPrei.Artnr AND Artst.Inhalt = SpezPrei.Inhalt AND Artst.Jahr = SpezPrei.Jahr AND Artst.Aktiv = TRUE AND ((VWGrp = ?) OR (Artst.Wg_Grp = VWGrp)) AND ((VPGrp = ?) OR (Artst.Prod_Grp = VPGrp)) AND ((cLkz = 'ALLE') OR (Artst.Herk_Lkz = cLkz)) AND ((iHerst = 999999) OR (Artst.Herst = iHerst)) : FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Artst.Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR. IF NOT AVAILABLE KGebinde THEN NEXT. IF KGebinde.Inhalt < F_VonInhalt OR KGebinde.Inhalt > F_BisINhalt THEN NEXT. VPreis = SpezPrei.Wert. CASE VArt: WHEN 1 THEN DO: /* Prozent */ Rundbetr = VPreis * (100 + F_Wert) / 100. END. WHEN 2 THEN DO: /* Betrag */ Rundbetr = VPreis + F_Wert. END. END CASE. CASE R_Runden: WHEN 2 THEN RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ). WHEN 3 THEN RUN RUNDEN ( INPUT 2, INPUT-OUTPUT Rundbetr ). WHEN 4 THEN RUN RUNDEN ( INPUT 99, INPUT-OUTPUT Rundbetr ). END CASE. ASSIGN SpezPrei.Wert = Rundbetr SpezPrei.Ab_Datum = F_Datum SpezPrei.Bis_Datum = F_bisdatum. END. ENABLE Btn_OK Btn_Cancel. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME