&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-spezrab.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_Rabattgruppe &Scoped-define LETZTES_FELD Auf_Wert &Scoped-define KEY_FELDER CB_Rabattgruppe,Menge &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 AdFirma AS CHAR NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR hDaten AS HANDLE NO-UNDO. DEF VAR vDatum AS DATE NO-UNDO. DEF VAR bDatum AS DATE NO-UNDO. DEF VAR dZRab AS DEC DECIMALS 4 NO-UNDO. DEF VAR dARab AS DEC DECIMALS 4 NO-UNDO. DEF VAR iRabGrp AS INT NO-UNDO. DEF VAR lZArt AS LOG INIT TRUE NO-UNDO FORMAT 'P/B'. DEF VAR lAArt AS LOG INIT TRUE NO-UNDO FORMAT 'P/B'. DEF VAR dMenge AS DEC INIT 1 NO-UNDO. DEF TEMP-TABLE TSpPrRab LIKE SpPrRab. /* _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-spezrab.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.Menge RowObject.Ab_Datum ~ RowObject.Bis_Datum RowObject.lNetto RowObject.Wert RowObject.Auf_Wert &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS CB_Rabattgruppe CB_Z_Art CB_A_Art ~ Btn_Kopieren Btn_Loeschen Btn_Excel RECT-2 RECT-3 &Scoped-Define DISPLAYED-FIELDS RowObject.Menge RowObject.Ab_Datum ~ RowObject.Bis_Datum RowObject.lNetto RowObject.Knr RowObject.Wert ~ RowObject.Auf_Wert RowObject.Firma RowObject.RabGrp RowObject.Proz_Betr ~ RowObject.Auf_Proz_Betr RowObject.Rab_Grp &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS CB_Rabattgruppe CB_Z_Art CB_A_Art F_Knr ~ F_Datum /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 Btn_Kopieren Btn_Loeschen Btn_Excel &Scoped-define List-6 F_Knr /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Excel IMAGE-UP FILE "grafik/results%.ico":U IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.81. DEFINE BUTTON Btn_Kopieren LABEL "&Kopieren" SIZE 12 BY 1. DEFINE BUTTON Btn_Loeschen LABEL "&Löschen" SIZE 12 BY 1. DEFINE VARIABLE CB_A_Art AS CHARACTER FORMAT "X(256)":U LABEL "Auftrags-Rabatt" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Prozent","P", "Abzug Betrag","B" DROP-DOWN-LIST SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Rabattgruppe AS CHARACTER FORMAT "X(256)":U LABEL "Rabattgruppe" 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_Z_Art AS CHARACTER FORMAT "X(256)":U LABEL "Zeilen-Rabatt" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Prozent","P", "Abzug Betrag","B" DROP-DOWN-LIST SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U LABEL "bis Datum" VIEW-AS FILL-IN NATIVE SIZE 15 BY 1 TOOLTIP "Löschen mit -Taste" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "zu Kundennummer" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 TOOLTIP "Kopieren mit -Taste" BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 110 BY 2.48. DEFINE RECTANGLE RECT-3 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 110 BY 4.71. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main CB_Rabattgruppe AT ROW 1.52 COL 17 COLON-ALIGNED RowObject.Menge AT ROW 2.52 COL 17 COLON-ALIGNED LABEL "ab Menge" FORMAT "zzz,zz9" VIEW-AS FILL-IN NATIVE SIZE 11.8 BY 1 BGCOLOR 15 RowObject.Ab_Datum AT ROW 3.52 COL 17 COLON-ALIGNED LABEL "gültig ab/bis" FORMAT "99.99.9999" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 RowObject.Bis_Datum AT ROW 3.52 COL 36 COLON-ALIGNED LABEL "/" FORMAT "99.99.9999" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 RowObject.lNetto AT ROW 3.52 COL 72 WIDGET-ID 4 LABEL "auf Nettoartikel?" VIEW-AS TOGGLE-BOX SIZE 20.6 BY 1 RowObject.Knr AT ROW 2.52 COL 78 COLON-ALIGNED VIEW-AS FILL-IN SIZE 4 BY 1 NO-TAB-STOP CB_Z_Art AT ROW 4.52 COL 17 COLON-ALIGNED RowObject.Wert AT ROW 4.52 COL 36 COLON-ALIGNED LABEL "/" FORMAT "zzz9.9999-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 CB_A_Art AT ROW 4.52 COL 70 COLON-ALIGNED RowObject.Auf_Wert AT ROW 4.52 COL 89.2 COLON-ALIGNED LABEL "/" FORMAT "zzz9.9999-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 RowObject.Firma AT ROW 2.52 COL 78 COLON-ALIGNED VIEW-AS FILL-IN SIZE 4 BY 1 NO-TAB-STOP Btn_Kopieren AT ROW 7.14 COL 4.6 F_Knr AT ROW 7.14 COL 35.6 COLON-ALIGNED Btn_Loeschen AT ROW 7.14 COL 55 Btn_Excel AT ROW 6.76 COL 102.4 RowObject.RabGrp AT ROW 2.52 COL 78 COLON-ALIGNED VIEW-AS FILL-IN SIZE 4 BY 1 NO-TAB-STOP F_Datum AT ROW 7.14 COL 77.6 COLON-ALIGNED NO-TAB-STOP RowObject.Proz_Betr AT ROW 2.52 COL 78 COLON-ALIGNED VIEW-AS FILL-IN SIZE 4 BY 1 NO-TAB-STOP RowObject.Auf_Proz_Betr AT ROW 2.52 COL 78 COLON-ALIGNED VIEW-AS FILL-IN SIZE 4 BY 1 NO-TAB-STOP RowObject.Rab_Grp AT ROW 2.52 COL 78 COLON-ALIGNED LABEL "Rab_Grp" FORMAT "999999" VIEW-AS FILL-IN SIZE 4 BY 1 NO-TAB-STOP RECT-2 AT ROW 6.43 COL 2 RECT-3 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-spezrab.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-spezrab.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 = 8.38 WIDTH = 112.4. /* 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 EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Auf_Proz_Betr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Auf_Proz_Betr:HIDDEN IN FRAME F-Main = TRUE RowObject.Auf_Proz_Betr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Auf_Wert IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Bis_Datum IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR BUTTON Btn_Excel IN FRAME F-Main 5 */ /* SETTINGS FOR BUTTON Btn_Kopieren IN FRAME F-Main 5 */ /* SETTINGS FOR BUTTON Btn_Loeschen IN FRAME F-Main 5 */ /* 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 F_Datum IN FRAME F-Main NO-ENABLE */ ASSIGN F_Datum:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main NO-ENABLE 6 */ /* SETTINGS FOR FILL-IN RowObject.Knr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Knr:HIDDEN IN FRAME F-Main = TRUE RowObject.Knr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.lNetto IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Menge IN FRAME F-Main EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN RowObject.Proz_Betr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Proz_Betr:HIDDEN IN FRAME F-Main = TRUE RowObject.Proz_Betr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.RabGrp IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.RabGrp:HIDDEN IN FRAME F-Main = TRUE RowObject.RabGrp:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Rab_Grp IN FRAME F-Main NO-ENABLE EXP-LABEL EXP-FORMAT */ ASSIGN RowObject.Rab_Grp:HIDDEN IN FRAME F-Main = TRUE RowObject.Rab_Grp:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Wert 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 /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel vTableWin ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */ DO: DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}. RUN REPORT. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Kopieren &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Kopieren vTableWin ON CHOOSE OF Btn_Kopieren IN FRAME F-Main /* Kopieren */ DO: IF FMut THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: DISABLE {&List-5}. F_Knr:SENSITIVE = TRUE. F_Knr:TAB-STOP = TRUE. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Loeschen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen vTableWin ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */ DO: IF FMut THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: SELF:SENSITIVE = FALSE. F_Datum:SENSITIVE = TRUE. F_Datum:TAB-STOP = TRUE. APPLY 'ENTRY' TO F_Datum. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_A_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_A_Art vTableWin ON VALUE-CHANGED OF CB_A_Art IN FRAME F-Main /* Auftrags-Rabatt */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Auf_Proz_Betr:SCREEN-VALUE. rowObject.Auf_Proz_Betr:SCREEN-VALUE = SELF:SCREEN-VALUE. rowObject.Auf_Proz_Betr:MODIFIED = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Rabattgruppe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Rabattgruppe vTableWin ON RETURN OF CB_Rabattgruppe IN FRAME F-Main /* Rabattgruppe */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Rabattgruppe vTableWin ON VALUE-CHANGED OF CB_Rabattgruppe IN FRAME F-Main /* Rabattgruppe */ DO: IF NOT FNeu THEN SELF:SCREEN-VALUE = rowObject.Rab_Grp:SCREEN-VALUE NO-ERROR. rowObject.Rab_Grp:SCREEN-VALUE = SELF:SCREEN-VALUE NO-ERROR. IF FNeu THEN rowObject.Rab_Grp:MODIFIED = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Z_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Z_Art vTableWin ON VALUE-CHANGED OF CB_Z_Art IN FRAME F-Main /* Zeilen-Rabatt */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE. rowObject.Proz_Betr:SCREEN-VALUE = SELF:SCREEN-VALUE. rowObject.Proz_Betr:MODIFIED = TRUE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin ON END-ERROR OF F_Datum IN FRAME F-Main /* bis Datum */ DO: DO WITH FRAME {&FRAME-NAME}: SELF:SCREEN-VALUE = ''. SELF:SENSITIVE = FALSE. SELF:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin ON LEAVE OF F_Datum IN FRAME F-Main /* bis Datum */ DO: RUN LOESCHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum vTableWin ON RETURN OF F_Datum IN FRAME F-Main /* bis Datum */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin ON END-ERROR OF F_Knr IN FRAME F-Main /* zu Kundennummer */ DO: DO WITH FRAME {&FRAME-NAME}: SELF:SCREEN-VALUE = '0'. SELF:SENSITIVE = FALSE. SELF:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin ON LEAVE OF F_Knr IN FRAME F-Main /* zu Kundennummer */ DO: RUN KOPIEREN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr vTableWin ON RETURN OF F_Knr IN FRAME F-Main /* zu Kundennummer */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.lNetto &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lNetto vTableWin ON VALUE-CHANGED OF RowObject.lNetto IN FRAME F-Main /* auf Nettoartikel? */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE) ). 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. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. END. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR. IF Knr = 0 THEN DO: DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR. RETURN NO-APPLY. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN DO: RUN FEHLER ( INPUT 1016 ). DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR. RETURN NO-APPLY. END. 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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. END. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR. IF Knr = 0 THEN DO: DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR. RETURN NO-APPLY. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN DO: RUN FEHLER ( INPUT 1016 ). DYNAMIC-FUNCTION('SETFLAGABBRUCHALT':U, INPUT TRUE) NO-ERROR. RETURN NO-APPLY. END. 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}: ENABLE {&list-5}. 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_Rabattgruppe:SCREEN-VALUE = rowObject.Rab_Grp:SCREEN-VALUE NO-ERROR. CB_Z_Art:SCREEN-VALUE = rowObject.Proz_Betr:SCREEN-VALUE NO-ERROR. CB_A_Art:SCREEN-VALUE = rowObject.Auf_Proz_Betr:SCREEN-VALUE NO-ERROR. F_Knr :SCREEN-VALUE = ''. F_Datum:SCREEN-VALUE = ''. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin PROCEDURE enableFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ /* RUN SUPER. */ IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ). IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ). END. DO WITH FRAME {&FRAME-NAME}: DISABLE {&list-5}. ENABLE CB_Rabattgruppe. 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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: RUN COMBO_RABATTGRUPPE ( INPUT CB_Rabattgruppe:HANDLE ). 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: ------------------------------------------------------------------------------*/ 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: 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. IF vDatum = ? THEN vDatum = TODAY. IF bDatum = ? THEN bDatum = DATE(12,31,YEAR(TODAY)). i1 = LOOKUP('Ab_Datum', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(vDatum) NO-ERROR. i1 = LOOKUP('Bis_Datum', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = (IF bDatum = ? THEN '31.12.2099' ELSE STRING(bDatum)) NO-ERROR. i1 = LOOKUP('Wert', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(dZRab) NO-ERROR. i1 = LOOKUP('Auf_Wert', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(dARab) NO-ERROR. i1 = LOOKUP('Menge', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(dMenge) NO-ERROR. i1 = LOOKUP('Proz_Betr', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(lZArt) NO-ERROR. i1 = LOOKUP('Auf_Proz_Betr', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(lAArt) NO-ERROR. i1 = LOOKUP('Rab_Grp', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = STRING(iRabGrp) NO-ERROR. ix = DYNAMIC-FUNCTION('getFWNettoRab':U) NO-ERROR. i1 = LOOKUP('lNetto', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(01)) = (IF ix = 0 THEN STRING(TRUE) ELSE STRING(FALSE)) NO-ERROR. END. IF FCopy THEN DO: END. OldColValues = pcColValues. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF vTableWin PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'Links1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'Mitte1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Spezialrabatte eines Kunden'. Zelle = 'Rechts1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'Links2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'Mitte2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = ''. Zelle = 'Rechts2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPIEREN vTableWin PROCEDURE KOPIEREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR NeuKnr AS INT NO-UNDO. DEF VAR Ja AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO: F_Knr:SCREEN-VALUE = ''. F_Knr:SENSITIVE = FALSE. F_Knr:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. NeuKnr = INTEGER(F_Knr:SCREEN-VALUE). Knr = INTEGER(rowObject.Knr:SCREEN-VALUE). IF Knr = 0 OR Knr = ? THEN DO: F_Knr:SCREEN-VALUE = ''. F_Knr:SENSITIVE = FALSE. F_Knr:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = NeuKnr AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: RUN FEHLER ( INPUT 1015 ). APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = NeuKnr AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN DO: RUN FEHLER ( INPUT 1016 ). APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. FIND FIRST SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = Debst.Firma AND SpPrRab.Knr = NeuKnr NO-LOCK NO-ERROR. IF AVAILABLE SpPrRab THEN DO: Ja = FALSE. MESSAGE 'Kunde hat bereits Spezialrabatte! Sollen diese gelöscht werden?' SKIP VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE Ja. IF Ja THEN DO: FOR EACH SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = Firma AND SpPrRab.Knr = NeuKnr TRANSACTION: DELETE SpPrRab. END. END. END. Ja = TRUE. MESSAGE 'Wollen Sie diese Konditionen vom Kunden ' STRING(Knr,'999999') ' zum Kunden ' SKIP STRING(NeuKnr,"999999 ") Adresse.Anzeig_Br ' übertragen ? ' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE Ja. IF NOT Ja THEN DO: F_Knr:SCREEN-VALUE = ''. F_Knr:SENSITIVE = FALSE. F_Knr:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. EMPTY TEMP-TABLE tSpPrRab. FOR EACH SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = Firma AND SpPrRab.Knr = Knr NO-LOCK: CREATE TSpPrRab. BUFFER-COPY SpPrRab TO TSpPrRab ASSIGN TSpPrRab.Knr = NeuKnr. END. REPEAT TRANSACTION: FOR EACH TSpPrRab: FIND SpPrRab OF TSpPrRab NO-ERROR. IF NOT AVAILABLE SpPrRab THEN CREATE SpPrRab. BUFFER-COPY TSpPrRab TO SpPrRab. DELETE TSpPrRab. END. LEAVE. END. F_Knr:SCREEN-VALUE = ''. F_Knr:SENSITIVE = FALSE. F_Knr:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. 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 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 WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Menge' THEN DO: IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN ''. IF VALID-HANDLE(hENTER) AND hENTER:NAME = 'CB_Rabattgruppe' THEN RETURN ''. FIND SpPrRab NO-LOCK USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = Firma AND SpPrRab.Knr = Knr AND SpPrRab.Rab_Grp = INTEGER(CB_Rabattgruppe:SCREEN-VALUE) AND SpPrRab.Menge = INTEGER(FeldInhalt) NO-ERROR. IF AVAILABLE(SpPrRab) THEN DO: RUN FEHLER ( INPUT 1044 ). RETURN 'ERROR'. END. END. END CASE. LEAVE. END. DO WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Ab_Datum' THEN DO: IF DATE(FeldInhalt) = ? THEN ipHandle:SCREEN-VALUE = STRING(DATE(01,01,YEAR(TODAY))). END. WHEN 'Bis_Datum' THEN DO: IF DATE(FeldInhalt) = ? THEN ipHandle:SCREEN-VALUE = STRING(DATE(12,31,YEAR(TODAY) + 1)). END. END CASE. 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 LOESCHEN vTableWin PROCEDURE LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Ja AS LOG NO-UNDO. DEF VAR dHandle AS HANDLE NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) <> 'RETURN' THEN DO: F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. Knr = INTEGER(rowObject.Knr:SCREEN-VALUE). IF DATE(F_Datum:SCREEN-VALUE) = ? THEN DO: F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Knr AND Adresse.Aktiv = TRUE NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: RUN FEHLER ( INPUT 1015 ). F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = Knr AND Debst.Aktiv = TRUE NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN DO: RUN FEHLER ( INPUT 1016 ). F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. Ja = FALSE. F_Datum = DATE(F_Datum:SCREEN-VALUE). MESSAGE 'Wollen Sie alle Spezialrabatte mit Gültigkeit ' SKIP 'bis ' STRING(F_Datum,'99.99.9999') ' dieses Kunden löschen ? ' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE Ja. IF NOT Ja THEN DO: F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. FOR EACH SpPrRab USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = Firma AND SpPrRab.Knr = Knr AND SpPrRab.Bis_Datum <= F_Datum TRANSACTION: DELETE SpPrRab. END. dHandle = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. IF VALID-HANDLE(dHandle) THEN DYNAMIC-FUNCTION('openQuery':U IN dHandle ) NO-ERROR. F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. ENABLE {&List-5}. APPLY 'U1'. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT vTableWin PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR DatenName AS CHAR NO-UNDO. DEF VAR DateiName AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR xText AS CHAR NO-UNDO. DEF VAR Ja AS LOG NO-UNDO. DEF VAR RabGrp AS CHAR NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR Kunde AS CHAR NO-UNDO. Knr = DYNAMIC-FUNCTION('GETKNR':U) NO-ERROR. Kunde = DYNAMIC-FUNCTION('GETADRESSEANZEIGEBR':U, INPUT Knr, INPUT 0) NO-ERROR. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. DatenName = 'KundenSpezialRabatte.txt'. DateiName = 'KundenSpezialRabatte.xls' + CHR(01) + 'KundenSpezialRabatte.xls'. DO WITH FRAME {&FRAME-NAME}: DO WHILE TRUE: excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN NO-APPLY. END. LEAVE. END. DO WHILE TRUE: RUN CREATEDATEI ( INPUT DateiName ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. DateiName = RETURN-VALUE. DO WHILE TRUE: RUN CREATEDATEI ( INPUT DatenName ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. DatenName = RETURN-VALUE. OUTPUT TO VALUE(DatenName) APPEND. PUT CONTROL '£' STRING(Knr,'999999 ') Kunde CHR(10). PUT CONTROL '£££££££Zeilen£££Auftrag' CHR(10) '£Grp£Rabattgruppe£Menge£ab£bis£Art££Wert' '£Art££Wert' CHR(10) '£' CHR(10). FOR EACH SpPrRab NO-LOCK USE-INDEX SpPrRab-k1 WHERE SpPrRab.Firma = Firma AND SpPrRab.Knr = Knr : RUN FIND_RABATTGRUPPE ( INPUT SpPrRab.Rab_Grp, OUTPUT xText ) NO-ERROR. IF xText <> '' THEN RabGrp = ENTRY(2, xText, CHR(01)). ELSE RabGrp = '??????????'. PUT CONTROL '£'. PUT CONTROL STRING(SpPrRab.Rab_Grp ,'999') '£' RabGrp '£' STRING(SpPrRab.Menge ,'zzzzzz') '£' STRING(SpPrRab.Ab_Datum ,'99.99.9999') '£' STRING(SpPrRab.Bis_Datum ,'99.99.9999') '£' STRING(SpPrRab.Proz_Betr ,'%/Fr') '£' '£' STRING(SpPrRab.Wert ,'>>>>9.999') '£' STRING(SpPrRab.Auf_Proz_Betr,'%/Fr') '£' '£' STRING(SpPrRab.Auf_Wert ,'>>>>9.999') CHR(10). END. OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT DateiName, INPUT '', OUTPUT Ja ). IF NOT Ja THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A3'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + DatenName. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END. 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. CASE pcMode: WHEN 'updateBegin' THEN DO: DO WITH FRAME {&FRAME-NAME}: F_Datum:SCREEN-VALUE = ''. F_Datum:SENSITIVE = FALSE. F_Datum:TAB-STOP = FALSE. 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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF FNeu THEN DO: rowObject.Rab_Grp:SCREEN-VALUE = CB_Rabattgruppe:SCREEN-VALUE. rowObject.Rab_Grp :MODIFIED = TRUE. rowObject.Ab_Datum :MODIFIED = TRUE. rowObject.Bis_Datum:MODIFIED = TRUE. END. rowObject.Proz_Betr:SCREEN-VALUE = CB_Z_Art:SCREEN-VALUE. rowObject.Auf_Proz_Betr:SCREEN-VALUE = CB_A_Art:SCREEN-VALUE. rowObject.Proz_Betr:MODIFIED = TRUE. rowObject.Auf_Proz_Betr:MODIFIED = TRUE. iRabGrp = INTEGER(rowObject.Rab_Grp :SCREEN-VALUE) NO-ERROR. lZArt = (IF rowObject.Proz_Betr :SCREEN-VALUE BEGINS 'P' THEN TRUE ELSE FALSE) NO-ERROR. lAArt = (IF rowObject.Auf_Proz_Betr:SCREEN-VALUE BEGINS 'P' THEN TRUE ELSE FALSE) NO-ERROR. dMenge = DECIMAL(rowObject.Menge :SCREEN-VALUE) NO-ERROR. vDatum = DATE(rowObject.Ab_Datum :SCREEN-VALUE) NO-ERROR. bDatum = DATE(rowObject.Bis_Datum:SCREEN-VALUE) NO-ERROR. IF lZArt THEN dZRab = DECIMAL(rowObject.Wert:SCREEN-VALUE) NO-ERROR. ELSE dZRab = 0. IF lAArt THEN dARab = DECIMAL(rowObject.Auf_Wert:SCREEN-VALUE) NO-ERROR. ELSE dARab = 0. END. FNeu = FALSE. FCopy = FALSE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME