&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gRueckverguetung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gRueckverguetung /*------------------------------------------------------------------------ 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 ProgName AS CHAR NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR AdFirma AS CHAR NO-UNDO. DEF VAR iHerst AS INT NO-UNDO. DEF VAR iMWSTCd AS INT NO-UNDO. DEF VAR iAdrCd AS INT NO-UNDO. DEF TEMP-TABLE TWork FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD Eingang AS DEC DECIMALS 4 FIELD EP AS DEC DECIMALS 4 FIELD Ausgang AS DEC DECIMALS 4 FIELD VP AS DEC DECIMALS 4 FIELD RID AS RECID FIELD Art AS LOG FIELD Wert AS DEC DECIMALS 4 FIELD MWST_Cd AS INT FIELD Preis_Grp AS INT. DEF TEMP-TABLE TKunden FIELD Knr AS INT FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD Eingang AS DEC DECIMALS 4 FIELD EP AS DEC DECIMALS 4 FIELD Ausgang AS DEC DECIMALS 4 FIELD VP AS DEC DECIMALS 4 FIELD RID AS RECID FIELD Art AS LOG FIELD Wert AS DEC DECIMALS 4 FIELD MWST_Cd AS INT INDEX TKunden-k1 Knr Artnr Inhalt Jahr. DEF TEMP-TABLE TMWST FIELD MWST_Cd AS INT FIELD MWST_Ansatz AS DEC FIELD Netto AS DEC. /* _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 first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME gRueckverguetung /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS CB_Hersteller F_Warengrp F_Knr F_Preisgrp ~ CB_AdrCode F_Inhalt F_VonDatum F_BisDatum CB_MWST Btn_Start Btn_Abbrechen ~ RECT-21 RECT-22 RECT-23 &Scoped-Define DISPLAYED-OBJECTS CB_Hersteller F_Warengrp F_Knr F_Preisgrp ~ CB_AdrCode F_Inhalt F_VonDatum F_BisDatum CB_MWST /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode ~ F_Inhalt F_VonDatum F_BisDatum CB_MWST Btn_Start Btn_Abbrechen &Scoped-define List-6 CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode ~ F_Inhalt F_VonDatum F_BisDatum CB_MWST /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Abbrechen LABEL "&Abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_Start IMAGE-UP FILE "grafik/results%.ico":U LABEL "&Starten" SIZE 7 BY 1.67. DEFINE VARIABLE CB_AdrCode AS CHARACTER FORMAT "X(256)":U LABEL "Adresscode" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 15 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS COMBO-BOX SORT INNER-LINES 5 DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_MWST AS CHARACTER FORMAT "X(256)":U LABEL "Mehrwertsteuer 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 F_BisDatum AS DATE FORMAT "99.99.9999":U VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Inhalt AS CHARACTER FORMAT "X(256)":U LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 TOOLTIP "Inhalt dieses Adresscodefeldes" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Knr AS CHARACTER FORMAT "X(256)":U LABEL "Kunden" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 TOOLTIP "mit rechter Maustaste zur Auswahl, Leer = alle; ALT-L -> Liste" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Preisgrp AS CHARACTER FORMAT "X(256)":U LABEL "Preisgruppen" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 TOOLTIP "mit rechter Maustaste zur Auswahl, Leer = alle" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U LABEL "von - bis Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Warengrp AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppen" VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 TOOLTIP "mit rechter Maustaste zur Auswahl, Leer = alle" BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-21 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 88 BY 3.33. DEFINE RECTANGLE RECT-22 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 88 BY 4.29. DEFINE RECTANGLE RECT-23 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 88 BY 5.71. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gRueckverguetung CB_Hersteller AT ROW 1.95 COL 42 COLON-ALIGNED F_Warengrp AT ROW 2.95 COL 42 COLON-ALIGNED F_Knr AT ROW 5.95 COL 42 COLON-ALIGNED F_Preisgrp AT ROW 6.95 COL 42 COLON-ALIGNED CB_AdrCode AT ROW 7.95 COL 42 COLON-ALIGNED F_Inhalt AT ROW 7.95 COL 62 COLON-ALIGNED F_VonDatum AT ROW 10.48 COL 42 COLON-ALIGNED F_BisDatum AT ROW 10.48 COL 66 COLON-ALIGNED NO-LABEL CB_MWST AT ROW 11.52 COL 42 COLON-ALIGNED Btn_Start AT ROW 13.38 COL 44 Btn_Abbrechen AT ROW 13.71 COL 68.2 RECT-21 AT ROW 1.48 COL 3 RECT-22 AT ROW 5.29 COL 3 RECT-23 AT ROW 10 COL 3 "Artikelselektion" VIEW-AS TEXT SIZE 21.2 BY 1 AT ROW 1.95 COL 5.2 "Kundenselektion" VIEW-AS TEXT SIZE 21.2 BY 1 AT ROW 5.95 COL 5.2 SPACE(66.59) SKIP(9.28) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Rückvergütung durch Hersteller". /* *********************** 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 gRueckverguetung /* ************************* 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 gRueckverguetung */ ASSIGN FRAME gRueckverguetung:SCROLLABLE = FALSE FRAME gRueckverguetung:HIDDEN = TRUE. /* SETTINGS FOR BUTTON Btn_Abbrechen IN FRAME gRueckverguetung 1 */ /* SETTINGS FOR BUTTON Btn_Start IN FRAME gRueckverguetung 1 */ /* SETTINGS FOR COMBO-BOX CB_AdrCode IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR COMBO-BOX CB_Hersteller IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR COMBO-BOX CB_MWST IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR FILL-IN F_Knr IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR FILL-IN F_Preisgrp IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gRueckverguetung 1 6 */ /* SETTINGS FOR FILL-IN F_Warengrp IN FRAME gRueckverguetung 1 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gRueckverguetung /* Query rebuild information for DIALOG-BOX gRueckverguetung _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gRueckverguetung */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gRueckverguetung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gRueckverguetung gRueckverguetung ON END-ERROR OF FRAME gRueckverguetung /* Rückvergütung durch Hersteller */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gRueckverguetung gRueckverguetung ON GO OF FRAME gRueckverguetung /* Rückvergütung durch Hersteller */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gRueckverguetung gRueckverguetung ON WINDOW-CLOSE OF FRAME gRueckverguetung /* Rückvergütung durch Hersteller */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Abbrechen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Abbrechen gRueckverguetung ON CHOOSE OF Btn_Abbrechen IN FRAME gRueckverguetung /* Abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Start &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start gRueckverguetung ON CHOOSE OF Btn_Start IN FRAME gRueckverguetung /* Starten */ DO: DEF VAR i AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN BEREINIGEN ( F_Warengrp:HANDLE ). RUN BEREINIGEN ( F_Preisgrp:HANDLE ). ASSIGN {&List-6}. IF F_VonDatum = ? THEN DO: BELL. APPLY 'ENTRY' TO F_VonDatum. RETURN NO-APPLY. END. IF F_BisDatum = ? THEN DO: BELL. APPLY 'ENTRY' TO F_BisDatum. RETURN NO-APPLY. END. IF F_BisDatum < F_VonDatum THEN DO: BELL. APPLY 'ENTRY' TO F_VonDatum. RETURN NO-APPLY. END. F_Knr = REPLACE(F_Knr, ';', ','). DO i = 1 TO NUM-ENTRIES(F_Knr, ','): ENTRY(i, F_Knr, ',') = TRIM(STRING(INTEGER(ENTRY(i, F_Knr, ',')))). END. iHerst = INTEGER(CB_Hersteller:SCREEN-VALUE). iMWSTCd = INTEGER(CB_MWST :SCREEN-VALUE). iAdrCd = INTEGER(CB_AdrCode :SCREEN-VALUE). DISPLAY {&List-6}. RUN SCHREIBENFWAUSWERTUNGEN ( INPUT ProgName, INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ) NO-ERROR. Btn_Start :SENSITIVE = FALSE. Btn_Abbrechen:SENSITIVE = FALSE. SESSION:SET-WAIT-STATE('GENERAL'). RUN REPORT. SESSION:SET-WAIT-STATE(''). Btn_Start :SENSITIVE = TRUE. Btn_Abbrechen:SENSITIVE = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. VHerst = INTEGER(SUBSTRING(CB_Hersteller :SCREEN-VALUE,01,03)). VWgr = INTEGER(SUBSTRING(CB_Warengrp :SCREEN-VALUE,01,03)). VPreisgrp = INTEGER(SUBSTRING(CB_Preisgruppe:SCREEN-VALUE,01,03)). VWcK = INTEGER(SUBSTRING(CB_MWST :SCREEN-VALUE,01,02)). IF F_VonDatum = ? THEN DO: APPLY 'ENTRY' TO F_VonDatum. RETURN NO-APPLY. END. IF F_BisDatum = ? THEN DO: APPLY 'ENTRY' TO F_BisDatum. RETURN NO-APPLY. END. IF F_BisDatum < F_VonDatum THEN DO: APPLY 'ENTRY' TO F_VonDatum. RETURN NO-APPLY. END. xKunden = F_Knr. F_Knr = ''. DO ix = 1 TO LENGTH(XKunden). IF SUBSTRING(xKunden,ix,01) >= '0' AND SUBSTRING(xKunden,ix,01) <= '9' THEN DO: F_Knr = F_Knr + SUBSTRING(xKunden,ix,01). NEXT. END. IF SUBSTRING(xKunden,ix,01) = ' ' THEN NEXT. IF SUBSTRING(xKunden,ix,01) > '9' THEN NEXT. F_Knr = F_Knr + ','. END. XKunden = F_Knr. DO ix = 1 TO NUM-ENTRIES(XKunden, ','): VKnr = INTEGER(ENTRY(ix, xKunden)). FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = GVFirma AND Debst.Knr = VKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN DO: Linktext = 'Die Kundennummer ' + STRING(VKnr) + ' gibt es nicht! '. MESSAGE Linktext VIEW-AS ALERT-BOX ERROR. DISPLAY F_Knr. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. END. F_Knr = ''. DO ix = 1 TO NUM-ENTRIES(XKunden, ','): VKnr = INTEGER(ENTRY(ix, xKunden)). IF ix > 1 THEN F_Knr = F_Knr + ','. F_Knr = F_Knr + TRIM(STRING(VKnr,'zzzzzz')). END. xKunden = F_Knr. DISPLAY F_Knr. IF FKMut THEN PUT-KEY-VALUE SECTION 'Rückvergütung' KEY 'Kunden' VALUE xKunden. VDatum = F_VonDatum. BDatum = F_BisDatum. DISPLAY {&List-6}. RUN SCHREIBENFWAUSWERTUNGEN ( INPUT 'd-rueckverguetung', INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ) NO-ERROR. DISABLE {&List-1}. RUN BERECHNEN. ENABLE {&List-1}. END. */ RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_AdrCode &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_AdrCode gRueckverguetung ON RETURN OF CB_AdrCode IN FRAME gRueckverguetung /* Adresscode */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Hersteller &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Hersteller gRueckverguetung ON RETURN OF CB_Hersteller IN FRAME gRueckverguetung /* Hersteller */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_MWST &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_MWST gRueckverguetung ON RETURN OF CB_MWST IN FRAME gRueckverguetung /* Mehrwertsteuer Hersteller */ 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 gRueckverguetung ON ALT-L OF F_Knr IN FRAME gRueckverguetung /* Kunden */ DO: RUN g-adresslisten.w ( INPUT SELF ). APPLY 'ENTRY' TO SELF. APPLY 'END' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gRueckverguetung ON RIGHT-MOUSE-CLICK OF F_Knr IN FRAME gRueckverguetung /* Kunden */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. END. RUN g-auswahl-adresse.w ( INPUT F_Knr:HANDLE ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Preisgrp &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preisgrp gRueckverguetung ON RIGHT-MOUSE-CLICK OF F_Preisgrp IN FRAME gRueckverguetung /* Preisgruppen */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'PREGRP' ). APPLY 'ENTRY' TO SELF. APPLY 'END' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Warengrp &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Warengrp gRueckverguetung ON RIGHT-MOUSE-CLICK OF F_Warengrp IN FRAME gRueckverguetung /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT F_Warengrp:HANDLE ). APPLY 'ENTRY' TO SELF. APPLY 'END' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gRueckverguetung /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR. ProgName = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'TOOLBAR' ANYWHERE. /* TRIGGERS ------------------------------------------------------ */ ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN NEXTPAGE. END. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN PREVPAGE. END. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENTRY_CURSOR. END. /* ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ). END. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ). END. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ). END. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ). END. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ). END. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ). END. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ). END. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ). END. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ). END. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. IF FMutFlag = FALSE THEN DO: RUN ENDE. RETURN NO-APPLY. END. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ). 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 gRueckverguetung _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 BEREINIGEN gRueckverguetung PROCEDURE BEREINIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR i AS INT NO-UNDO. cString = ipHandle:SCREEN-VALUE. DO i = 1 TO LENGTH(cString): IF SUBSTRING(cString,i,1) < '0' OR SUBSTRING(cString,i,1) > '9' THEN SUBSTRING(cString,i) = ','. END. ipHandle:SCREEN-VALUE = REPLACE(cString, ';', ','). cString = ''. DO i = 1 TO NUM-ENTRIES(ipHandle:SCREEN-VALUE, ','): IF cString <> '' THEN cString = cString + ','. cString = cString + STRING(INTEGER(ENTRY(i, ipHandle:SCREEN-VALUE, ',')),'999'). END. ipHandle:SCREEN-VALUE = cString. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gRueckverguetung PROCEDURE changePage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ /* RUN ToolbarInit ( INPUT h_d-auftr ). */ RUN ENTRY_CURSOR. END. WHEN 2 THEN DO: RUN ENTRY_CURSOR. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gRueckverguetung _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 gRueckverguetung. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gRueckverguetung PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR cText AS CHAR NO-UNDO. DEF VAR i AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN COMBO_HERSTELLER ( INPUT CB_Hersteller:HANDLE ). cString = CB_Hersteller:LIST-ITEM-PAIRS + ';Alle;000999'. CB_Hersteller:LIST-ITEM-PAIRS = cString. CB_Hersteller:SCREEN-VALUE = ENTRY(2, CB_Hersteller:LIST-ITEM-PAIRS, ';') NO-ERROR. FIND Femeld WHERE Femeld.Sprcd = 1 AND Femeld.Fenr = 999 NO-LOCK NO-ERROR. IF AVAILABLE Femeld THEN cText = Femeld.FeText. ELSE cText = ''. cString = 'Alle;00'. DO i = 1 TO NUM-ENTRIES(cText, ','): cString = cString + ';' + ENTRY(i, cText, ',') + ';' + STRING(i,'99'). END. CB_AdrCode:DELIMITER = ';'. CB_AdrCode:LIST-ITEM-PAIRS = cString. CB_AdrCode:SCREEN-VALUE = ENTRY(2, CB_AdrCode:LIST-ITEM-PAIRS, ';') NO-ERROR. RUN COMBO_MWSTKUND ( INPUT CB_MWST:HANDLE ). END. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. RUN LESENFWAUSWERTUNGEN ( INPUT ProgName, INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gRueckverguetung _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 CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode F_Inhalt F_VonDatum F_BisDatum CB_MWST WITH FRAME gRueckverguetung. ENABLE CB_Hersteller F_Warengrp F_Knr F_Preisgrp CB_AdrCode F_Inhalt F_VonDatum F_BisDatum CB_MWST Btn_Start Btn_Abbrechen RECT-21 RECT-22 RECT-23 WITH FRAME gRueckverguetung. VIEW FRAME gRueckverguetung. {&OPEN-BROWSERS-IN-QUERY-gRueckverguetung} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gRueckverguetung 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 ENTRY_CURSOR gRueckverguetung PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */ /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */ /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */ /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */ /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */ /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */ /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */ END CASE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gRueckverguetung 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 KOPF gRueckverguetung PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER excelAppl AS COM-HANDLE NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR VZelle AS CHAR NO-UNDO. DEF VAR xHerst AS CHAR NO-UNDO. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT 2, INPUT Steuer.Firma1 ). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT 3, INPUT Steuer.Strasse). RUN ZELLEFUELLEN ( INPUT excelAppl, INPUT 'F', INPUT 4, INPUT Steuer.Ort ). IF iHerst = 999 THEN xHerst = 'alle Hersteller'. IF iHerst <> 999 THEN DO: FIND Tabel USE-INDEX Tabel-k2 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'HERST' AND Tabel.CodeI = iHerst AND Tabel.CodeC = '' AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN xHerst = Tabel.Bez1. ELSE xHerst = '??????????'. END. VZelle = 'B1'. excelAppl:Range(VZelle):Select. cString = excelAppl:ActiveCell:Value. cString = cString + ' ' + xHerst. excelAppl:ActiveCell:FormulaR1C1 = cString. VZelle = 'B3'. excelAppl:Range(VZelle):Select. cString = excelAppl:ActiveCell:Value. cString = cString + ' ' + STRING(F_VonDatum,"99.99.9999") + ' - ' + STRING(F_BisDatum,"99.99.9999"). excelAppl:ActiveCell:FormulaR1C1 = cString. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gRueckverguetung PROCEDURE NEXTPAGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = MaxPage THEN AktSeite = 1. ELSE AktSeite = AktSeite + 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gRueckverguetung PROCEDURE PREVPAGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = 1 THEN AktSeite = MaxPage. ELSE AktSeite = AktSeite - 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gRueckverguetung PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR xKnr AS CHAR NO-UNDO. def var xAdresse AS CHAR NO-UNDO. def var xAdrCd AS CHAR NO-UNDO. DEF VAR VBetr AS DEC DECIMALS 4 NO-UNDO. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO. DEF VAR VProz AS DEC DECIMALS 4 NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR Rundbetr AS DEC DECIMALS 4. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR ja AS LOG NO-UNDO. EMPTY TEMP-TABLE TWork . EMPTY TEMP-TABLE TKunden. EMPTY TEMP-TABLE TMWST . i1 = 0. FOR EACH Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Firma NO-LOCK: IF iHerst <> 999 AND Artst.Herst <> iHerst THEN NEXT. IF F_Warengrp <> '' AND LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Warengrp, ',') = 0 THEN NEXT. FOR EACH ArtKanal USE-INDEX ArtKanal-k1 WHERE ArtKanal.Firma = Artst.Firma AND ArtKanal.Artnr = Artst.Artnr AND ArtKanal.Inhalt = Artst.Inhalt AND ArtKanal.Jahr = Artst.Jahr AND ((F_Preisgrp = '') OR (LOOKUP(STRING(ArtKanal.Preis_Grp,'999'), F_Preisgrp, ',') > 0)) AND ArtKanal.Ab_Datum <= F_BisDatum NO-LOCK BREAK BY ArtKanal.Preis_Grp BY ArtKanal.Ab_Datum DESCENDING : IF NOT FIRST-OF ( ArtKanal.Preis_Grp ) THEN NEXT. CREATE TWork. ASSIGN TWork.Artnr = Artst.Artnr TWork.Inhalt = Artst.Inhalt TWork.Jahr = Artst.Jahr TWork.EP = Artst.Listen_EP TWork.RID = RECID(Artst) TWork.Art = ArtKanal.Art TWork.Wert = ArtKanal.Wert TWork.MWST_Cd = Artst.MWST TWork.Preis_Grp = ArtKanal.Preis_Grp. i1 = i1 + 1. END. END. IF i1 = 0 THEN RETURN ''. FOR EACH TWork: FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = Firma AND Artbw.Artnr = TWork.Artnr AND Artbw.Inhalt = TWork.Inhalt AND Artbw.Jahr = TWork.Jahr AND Artbw.Datum >= F_VonDatum AND Artbw.Datum <= F_BisDatum AND Artbw.Tr_Art < 9 NO-LOCK: xKnr = TRIM(STRING(Artbw.Knr,'zzzzzz')). IF LOOKUP(xKnr, F_Knr, ',' ) = 0 THEN NEXT. IF Artbw.Tr_Art = 01 THEN DO: FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Artbw.Firma AND Debst.Knr = Artbw.Knr AND Debst.Preis_Grp = TWork.Preis_Grp NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN NEXT. IF iAdrCd <> 0 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Debst.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN NEXT. xAdrCd = ''. CASE iAdrCd: WHEN 1 THEN xAdrCd = Adresse.Cd01. WHEN 2 THEN xAdrCd = Adresse.Cd02. WHEN 3 THEN xAdrCd = Adresse.Cd03. WHEN 4 THEN xAdrCd = Adresse.Cd04. WHEN 5 THEN xAdrCd = Adresse.Cd05. WHEN 6 THEN xAdrCd = Adresse.Cd06. WHEN 7 THEN xAdrCd = Adresse.Cd07. WHEN 8 THEN xAdrCd = Adresse.Cd08. WHEN 9 THEN xAdrCd = Adresse.Cd09. WHEN 10 THEN xAdrCd = Adresse.Cd10. WHEN 11 THEN xAdrCd = Adresse.Cd11. WHEN 12 THEN xAdrCd = Adresse.Cd12. WHEN 13 THEN xAdrCd = Adresse.Cd13. WHEN 14 THEN xAdrCd = Adresse.Cd14. WHEN 15 THEN xAdrCd = Adresse.Cd15. END CASE. IF LOOKUP(xAdrCd, F_Inhalt, ',') = 0 THEN NEXT. END. TWork.Ausgang = TWork.Ausgang + Artbw.Menge. TWork.VP = TWork.VP + (Artbw.Menge * Artbw.Preis). FIND FIRST TKunden USE-INDEX TKunden-k1 WHERE TKunden.Knr = Artbw.Knr AND TKunden.Artnr = Artbw.Artnr AND TKunden.Inhalt = Artbw.Inhalt AND TKunden.Jahr = Artbw.Jahr NO-ERROR. IF NOT AVAILABLE TKunden THEN DO: CREATE TKunden. ASSIGN TKunden.Knr = Artbw.Knr TKunden.Artnr = Artbw.Artnr TKunden.Inhalt = Artbw.Inhalt TKunden.Jahr = Artbw.Jahr TKunden.EP = TWork.EP TKunden.RID = TWork.RID TKunden.Art = TWork.Art TKunden.Wert = TWork.Wert TKunden.MWST_Cd = TWork.MWST_Cd. END. TKunden.Ausgang = TKunden.Ausgang + Artbw.Menge. TKunden.VP = TKunden.VP + (Artbw.Menge * Artbw.Preis). NEXT. END. END. END. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. cVorlage = 'Rueckverg' + '.xls'. cDokument = 'Rueckverg' + '.xls'. cDaten = 'Rueckverg' + '.txt'. cDateiName = cDokument + CHR(01) + cVorlage. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDokument = RETURN-VALUE. RUN CREATEDATEI ( INPUT cDaten ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDaten = RETURN-VALUE. OUTPUT TO VALUE(cDaten). FOR EACH TKunden WHERE TKunden.Ausgang <> 0 NO-LOCK BREAK BY TKunden.Knr BY TKunden.Artnr BY TKunden.Inhalt BY TKunden.Jahr: IF FIRST-OF (TKunden.Knr) THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = ADFirma AND Adresse.Knr = TKunden.Knr NO-LOCK NO-ERROR. XAdresse = ''. XAdresse = XAdresse + STRING(Adresse.Knr,"999999 "). IF Adresse.Firma1 <> '' THEN XAdresse = XAdresse + Adresse.Firma1 + ', '. IF Adresse.Firma2 <> '' THEN XAdresse = XAdresse + Adresse.Firma2 + ', '. IF Adresse.Name <> '' THEN DO: IF Adresse.Vorname <> '' THEN XAdresse = XAdresse + Adresse.Vorname + ' '. XAdresse = XAdresse + Adresse.Name + ', '. END. IF Adresse.Strasse <> '' THEN XAdresse = XAdresse + Adresse.Strasse + ', '. XAdresse = XAdresse + Adresse.Plz + ' ' + Adresse.Ort. PUT CONTROL XAdresse CHR(10). END. FIND Artst WHERE RECID(Artst) = TKunden.RID NO-LOCK. FIND KGebinde WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd. IF TKunden.Art = TRUE THEN DO: VProz = TKunden.Wert. VBetr = TKunden.VP. Rundbetr = TKunden.VP * VProz / 100. END. ELSE DO: VBetr = TKunden.Wert. Rundbetr = TKunden.Wert * TKunden.Ausgang. VProz = Rundbetr * 100 / TKunden.VP. END. PUT CONTROL '£' Artst.Bez '£' KGebinde.KBez '£' TRIM(STRING(TKunden.Ausgang,'->>>,>>>,>>9' )) '£' TRIM(STRING(TKunden.VP ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(TKunden.Wert ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(Rundbetr ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(TKunden.MWST_Cd,'z9' )) CHR(10). IF NOT LAST-OF (TKunden.Knr) THEN NEXT. PUT CONTROL '£' CHR(10). END. PUT CONTROL 'Produktetotale' CHR(10). VBetrag = 0. FOR EACH TWork WHERE TWork.Ausgang <> 0: FIND Artst WHERE RECID(Artst) = TWork.RID NO-LOCK. FIND KGebinde WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd. IF TWork.Art = TRUE THEN DO: VProz = TWork.Wert. VBetr = TWork.VP. Rundbetr = TWork.VP * VProz / 100. END. ELSE DO: VBetr = TWork.Wert. Rundbetr = TWork.Wert * TWork.Ausgang. VProz = Rundbetr * 100 / TWork.VP. END. PUT CONTROL '£' STRING(TWork.Preis_Grp,'99 ') Artst.Bez '£' KGebinde.KBez '£' TRIM(STRING(TWork.Ausgang ,'->>>,>>>,>>9' )) '£' TRIM(STRING(TWork.VP ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(TWork.Wert ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(Rundbetr ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(TWork.MWST_Cd ,'z9' )) CHR(10). VBetrag = VBetrag + Rundbetr. FIND FIRST TMWST WHERE TMWST.MWST_Cd = TWork.MWST_Cd NO-ERROR. IF NOT AVAILABLE TMWST THEN DO: CREATE TMWST. ASSIGN TMWST.MWST_Cd = TWork.MWST_Cd. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = iMWSTCd AND Wust.CodeA = TWork.MWST_Cd NO-LOCK. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = Wust.WuCd AND MWSTAns.Datum <= F_BisDatum NO-LOCK NO-ERROR. TMWST.MWST_Ansatz = MWSTAns.Ans. END. TMWST.Netto = TMWST.Netto + Rundbetr. END. PUT CONTROL '£££££' 'Fr.' '£' TRIM(STRING(VBetrag,'->>>,>>>,>>9.99')) CHR(10) '£' CHR(10). PUT CONTROL '££' 'Mehrwertsteuer' CHR(10). VBetrag = 0. FOR EACH TMWST BY TMWST.MWST_Cd: Rundbetr = TMWST.Netto * TMWST.MWST_Ansatz / 100. VBetrag = VBetrag + TMWST.Netto + Rundbetr. PUT CONTROL '££££' TRIM(STRING(TMWST.Netto ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(TMWST.MWST_Ansatz,'z9.99%')) '£' TRIM(STRING(Rundbetr ,'->>>,>>>,>>9.99')) '£' TRIM(STRING(TMWST.MWST_Cd ,'z9')) CHR(10). END. Rundbetr = VBetrag. RUN RUNDEN ( INPUT 1, INPUT-OUTPUT Rundbetr ). PUT CONTROL '£' CHR(10) '£MWSt-Nummer : ' + Steuer.MWST_Nr '£' 'Gesamttotal inkl. Mehrwertsteuer' '£££' 'Fr.' '£' TRIM(STRING(Rundbetr,"->>>,>>>,>>9.99")) CHR(10). OUTPUT CLOSE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN. END. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ). IF NOT ja THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A8'. excelAppl:Range(Zelle):SELECT. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten. 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 PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gRueckverguetung PROCEDURE selectPage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER piPageNum AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR MutProg AS CHAR NO-UNDO. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. DO WHILE TRUE: IF NOT FMutFlag THEN LEAVE. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U). IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE. RETURN NO-APPLY. END. CASE piPageNum: END CASE. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ END. END CASE. RUN SUPER( INPUT piPageNum). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gRueckverguetung PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO. /* RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME