&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gLieferantenrumsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gLieferantenrumsatz /*------------------------------------------------------------------------ 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 AdFirma AS CHAR NO-UNDO. DEF VAR iVer AS INT NO-UNDO. DEF VAR cVer AS CHAR NO-UNDO. DEF VAR cVerband AS CHAR NO-UNDO. 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 cZeile AS CHAR NO-UNDO. DEF VAR AnzKol AS INT NO-UNDO. DEF VAR FKol AS LOG NO-UNDO EXTENT 25. DEF VAR bKol AS CHAR NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR iWgr AS INT NO-UNDO. DEF VAR cAdresse AS CHAR NO-UNDO. DEF VAR cWgr AS CHAR NO-UNDO. DEF BUFFER BArtbw FOR Artbw. DEF TEMP-TABLE tUmsatz FIELD Knr AS INT FIELD Wgr AS INT FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD EpVk_Lf AS DEC FIELD EpVk_Vj AS DEC FIELD VpVk_Lf AS DEC FIELD VpVk_Vj AS DEC FIELD MeVk_Lf AS DEC FIELD MeVk_Vj AS DEC FIELD LiVk_Lf AS DEC DECIMALS 6 FIELD LiVk_Vj AS DEC DECIMALS 6 FIELD EpEk_Lf AS DEC FIELD EPEk_Vj AS DEC FIELD MeEk_Lf AS DEC FIELD MeEk_Vj AS DEC FIELD LiEk_Lf AS DEC DECIMALS 6 FIELD LiEk_Vj AS DEC DECIMALS 6 FIELD Adresse AS CHAR FIELD cWgr AS CHAR FIELD KGeb_Cd AS CHAR FIELD Alk% AS DEC INDEX tUmsatz-k1 Knr Wgr Artnr Inhalt Jahr . DEF TEMP-TABLE tTotUmsatz LIKE tUmsatz. DEF BUFFER btTotUmsatz FOR tTotUmsatz. /* _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 gLieferantenrumsatz /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr ~ F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL T_EP ~ T_VP T_Marge T_Vorjahr Btn_OK Btn_Cancel T_Verkauf T_EinkaufVSVerkauf ~ RECT-12 &Scoped-Define DISPLAYED-OBJECTS F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr ~ F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL T_EP ~ T_VP T_Marge T_Vorjahr T_Verkauf T_EinkaufVSVerkauf /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_Hersteller ~ F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL T_EP T_VP T_Marge ~ T_Vorjahr T_Verkauf T_EinkaufVSVerkauf /* _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 14 BY 1.19. DEFINE BUTTON Btn_OK IMAGE-UP FILE "grafik/results%.ico":U IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.71. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":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 "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS FILL-IN NATIVE SIZE 46.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Artikelnummer" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 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_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Lnr" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Warengrp AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppen" VIEW-AS FILL-IN NATIVE SIZE 46.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-12 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 84 BY 17.14. DEFINE VARIABLE T_EinkaufVSVerkauf AS LOGICAL INITIAL no LABEL "Einkauf vs Verkauf" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_EP AS LOGICAL INITIAL no LABEL "Einstansbeträge" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_HL AS LOGICAL INITIAL no LABEL "Hektoliter" VIEW-AS TOGGLE-BOX SIZE 19.6 BY .81 NO-UNDO. DEFINE VARIABLE T_Liter AS LOGICAL INITIAL no LABEL "Liter" VIEW-AS TOGGLE-BOX SIZE 21.4 BY 1 NO-UNDO. DEFINE VARIABLE T_Marge AS LOGICAL INITIAL no LABEL "Margenberechnung" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_Menge AS LOGICAL INITIAL no LABEL "Mengen" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_Verkauf AS LOGICAL INITIAL no LABEL "Verkaufszahlen" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_Vorjahr AS LOGICAL INITIAL no LABEL "Vorjahreszahlen" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_VP AS LOGICAL INITIAL no LABEL "Verkaufsbeträge" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gLieferantenrumsatz F_VonKnr AT ROW 1.62 COL 28 COLON-ALIGNED F_BisKnr AT ROW 1.62 COL 41 COLON-ALIGNED F_VonArtnr AT ROW 3 COL 28 COLON-ALIGNED F_BisArtnr AT ROW 3 COL 41 COLON-ALIGNED F_Hersteller AT ROW 4 COL 28 COLON-ALIGNED F_Warengrp AT ROW 5 COL 28 COLON-ALIGNED F_VonDatum AT ROW 6.29 COL 28 COLON-ALIGNED F_BisDatum AT ROW 6.29 COL 47 COLON-ALIGNED T_Menge AT ROW 7.52 COL 30 T_Liter AT ROW 8.52 COL 30 T_HL AT ROW 8.33 COL 55 T_EP AT ROW 9.52 COL 30 T_VP AT ROW 10.52 COL 30 T_Marge AT ROW 11.52 COL 30 T_Vorjahr AT ROW 12.52 COL 30 Btn_OK AT ROW 16.33 COL 30 Btn_Cancel AT ROW 16.57 COL 55.8 T_Verkauf AT ROW 13.52 COL 30 T_EinkaufVSVerkauf AT ROW 14.52 COL 30 WIDGET-ID 2 RECT-12 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.18) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Lieferantenumsätze (Detail)" CANCEL-BUTTON Btn_Cancel. /* *********************** 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 gLieferantenrumsatz /* ************************* 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 gLieferantenrumsatz FRAME-NAME Custom */ ASSIGN FRAME gLieferantenrumsatz:SCROLLABLE = FALSE FRAME gLieferantenrumsatz:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_Hersteller IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR FILL-IN F_Warengrp IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_EinkaufVSVerkauf IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_EP IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_HL IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Liter IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Marge IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Menge IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Verkauf IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Vorjahr IN FRAME gLieferantenrumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_VP IN FRAME gLieferantenrumsatz 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gLieferantenrumsatz /* Query rebuild information for DIALOG-BOX gLieferantenrumsatz _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gLieferantenrumsatz */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gLieferantenrumsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLieferantenrumsatz gLieferantenrumsatz ON END-ERROR OF FRAME gLieferantenrumsatz /* Lieferantenumsätze (Detail) */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLieferantenrumsatz gLieferantenrumsatz ON GO OF FRAME gLieferantenrumsatz /* Lieferantenumsätze (Detail) */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLieferantenrumsatz gLieferantenrumsatz ON WINDOW-CLOSE OF FRAME gLieferantenrumsatz /* Lieferantenumsätze (Detail) */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gLieferantenrumsatz ON CHOOSE OF Btn_Cancel IN FRAME gLieferantenrumsatz /* abbrechen */ 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 gLieferantenrumsatz ON CHOOSE OF Btn_OK IN FRAME gLieferantenrumsatz /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_OK:SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. SESSION:SET-WAIT-STATE ('GENERAL'). END. RUN REPORT. DO WITH FRAME {&FRAME-NAME}: Btn_OK:SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. SESSION:SET-WAIT-STATE(''). END. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_BisKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisKnr gLieferantenrumsatz ON ALT-F OF F_BisKnr IN FRAME gLieferantenrumsatz /* - */ DO: DEF VAR iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'LIE', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR. SELF:SCREEN-VALUE = STRING(Adresse.Knr). APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Hersteller &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Hersteller gLieferantenrumsatz ON RIGHT-MOUSE-CLICK OF F_Hersteller IN FRAME gLieferantenrumsatz /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'HERST' ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VonKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr gLieferantenrumsatz ON ALT-F OF F_VonKnr IN FRAME gLieferantenrumsatz /* von - bis Lnr */ DO: DEF VAR iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'LIE', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR. SELF:SCREEN-VALUE = STRING(Adresse.Knr). F_BisKnr:SCREEN-VALUE = STRING(Adresse.Knr). APPLY 'ENTRY' 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 gLieferantenrumsatz ON RIGHT-MOUSE-CLICK OF F_Warengrp IN FRAME gLieferantenrumsatz /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT SELF ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_EinkaufVSVerkauf &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_EinkaufVSVerkauf gLieferantenrumsatz ON RETURN OF T_EinkaufVSVerkauf IN FRAME gLieferantenrumsatz /* Einkauf vs Verkauf */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_EinkaufVSVerkauf gLieferantenrumsatz ON VALUE-CHANGED OF T_EinkaufVSVerkauf IN FRAME gLieferantenrumsatz /* Einkauf vs Verkauf */ DO: ASSIGN {&List-6}. IF SELF:SCREEN-VALUE BEGINS 'n' THEN DO: END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_EP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_EP gLieferantenrumsatz ON RETURN OF T_EP IN FRAME gLieferantenrumsatz /* Einstansbeträge */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_HL &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_HL gLieferantenrumsatz ON RETURN OF T_HL IN FRAME gLieferantenrumsatz /* Hektoliter */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Liter &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Liter gLieferantenrumsatz ON RETURN OF T_Liter IN FRAME gLieferantenrumsatz /* Liter */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Liter gLieferantenrumsatz ON VALUE-CHANGED OF T_Liter IN FRAME gLieferantenrumsatz /* Liter */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN T_Liter . IF T_Liter = TRUE THEN T_HL:SENSITIVE = TRUE. ELSE T_HL:SENSITIVE = FALSE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Marge &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Marge gLieferantenrumsatz ON RETURN OF T_Marge IN FRAME gLieferantenrumsatz /* Margenberechnung */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Menge &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Menge gLieferantenrumsatz ON RETURN OF T_Menge IN FRAME gLieferantenrumsatz /* Mengen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Verkauf &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Verkauf gLieferantenrumsatz ON RETURN OF T_Verkauf IN FRAME gLieferantenrumsatz /* Verkaufszahlen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Vorjahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Vorjahr gLieferantenrumsatz ON RETURN OF T_Vorjahr IN FRAME gLieferantenrumsatz /* Vorjahreszahlen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_VP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_VP gLieferantenrumsatz ON RETURN OF T_VP IN FRAME gLieferantenrumsatz /* Verkaufsbeträge */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gLieferantenrumsatz /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ /* 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 gLieferantenrumsatz _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 AUSGABE gLieferantenrumsatz PROCEDURE AUSGABE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR Ma_Lf AS DEC NO-UNDO. DEF VAR Ma_Vj AS DEC NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR iAnzArt AS INT NO-UNDO. DEF VAR iAnzKun AS INT NO-UNDO. DEF VAR iAnzWgr AS INT NO-UNDO. EMPTY TEMP-TABLE tTotUmsatz. FOR EACH tUmsatz USE-INDEX tUmsatz-k1 NO-LOCK BREAK BY tUmsatz.Knr BY tUmsatz.Wgr BY tUmsatz.Artnr BY tUmsatz.Inhalt BY tUmsatz.Jahr : IF FIRST-OF ( tUmsatz.Knr ) THEN DO: PUT CONTROL STRING(tUmsatz.Knr,'999999 ') tUmsatz.Adresse CHR(10) '£' CHR(10). iAnzKun = iAnzKun + 1. iAnzWgr = 0. END. IF FIRST-OF ( tUmsatz.Wgr ) THEN DO: PUT CONTROL STRING(tUmsatz.Wgr,'£999 ') tUmsatz.cWgr CHR(10). iAnzWgr = iAnzWgr + 1. iAnzArt = 0. END. cZeile = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = tUmsatz.KGeb_Cd NO-LOCK NO-ERROR. FIND FIRST Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = Firma AND Artbez.Artnr = tUmsatz.Artnr AND Artbez.Inhalt = tUmsatz.Inhalt AND Artbez.Jahr = tUmsatz.Jahr NO-LOCK NO-ERROR. cZeile = cZeile + '££' + STRING(tUmsatz.Artnr,'999999'). IF AVAILABLE Artbez THEN cZeile = cZeile + '£' + Artbez.Bez1. ELSE cZeile = cZeile + '£' + Artst.Bez. IF AVAILABLE KGebinde THEN cZeile = cZeile + '£' + KGebinde.KBez. ELSE cZeile = cZeile + '£ ? ' + STRING(tUmsatz.Inhalt,'9999') + ' ?'. cZeile = cZeile + '£'. IF tUmsatz.Jahr > 10 THEN cZeile = cZeile + STRING(tUmsatz.Jahr,'9999 '). IF tUmsatz.Alk% > 0 THEN cZeile = cZeile + STRING(tUmsatz.Alk%,'z9.99%'). Ma_Vj = 0. Ma_Lf = 0. IF tUmsatz.EpVk_Vj <> 0 AND tUmsatz.VpVk_Vj <> 0 THEN Ma_Vj = 100 - (tUmsatz.EpVk_Vj * 100 / tUmsatz.VpVk_Vj). IF tUmsatz.EpVk_Lf <> 0 AND tUmsatz.VpVk_Lf <> 0 THEN Ma_Lf = 100 - (tUmsatz.EpVk_Lf * 100 / tUmsatz.VpVk_Lf). IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99 . IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99 . IF T_HL THEN DO: tUmsatz.LiVK_Lf = tUmsatz.LiVk_Lf / 100. tUmsatz.LiVk_Vj = tUmsatz.LiVk_Vj / 100. tUmsatz.LiEK_Lf = tUmsatz.LiEk_Lf / 100. tUmsatz.LiEk_Vj = tUmsatz.LiEk_Vj / 100. END. cZeile = cZeile + '£' + TRIM(STRING(tUmsatz.MeVk_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(tUmsatz.LiVk_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(tUmsatz.LiVk_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(tUmsatz.EpVk_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(tUmsatz.VpVk_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(tUmsatz.MeVk_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(tUmsatz.LiVk_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(tUmsatz.LiVk_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(tUmsatz.EpVk_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(tUmsatz.VpVk_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(tUmsatz.MeEk_Lf,'->>>>>>>>>')) + '£' + (IF T_Hl THEN TRIM(STRING(tUmsatz.LiEk_Lf,'->>>>>>9.99')) ELSE TRIM(STRING(tUmsatz.LiEk_Lf,'->>>>>>>>>'))) + '£' + TRIM(STRING(tUmsatz.EpEk_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(tUmsatz.MeEk_Vj,'->>>>>>>>>')) + '£' + (IF T_Hl THEN TRIM(STRING(tUmsatz.LiEk_Vj,'->>>>>>9.99')) ELSE TRIM(STRING(tUmsatz.LiEk_Vj,'->>>>>>>>>'))) + '£' + TRIM(STRING(tUmsatz.EpEk_Vj,'->>>>>>>>>')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF AVAILABLE Artbez AND Artbez.Bez2 <> '' THEN PUT CONTROL '£££' Artbez.Bez2 CHR(10). DO ii = 1 TO 4: CASE ii: WHEN 1 THEN ASSIGN iKnr = tUmsatz.Knr iWgr = tUmsatz.Wgr cAdresse = 'Total ' + tUmsatz.Adresse cWgr = 'Total ' + tUmsatz.cWgr. WHEN 2 THEN ASSIGN iKnr = tUmsatz.Knr iWgr = 999 cAdresse = 'Total ' + tUmsatz.Adresse cWgr = 'Total Kunde'. WHEN 3 THEN ASSIGN iKnr = 999999 iWgr = tUmsatz.Wgr cAdresse = 'Zusammenfassung aller Lieferanten' cWgr = 'Total ' + tUmsatz.cWgr. WHEN 4 THEN ASSIGN iKnr = 999999 iWgr = 999 cAdresse = 'Gesamttotal aller Lieferanten' cWgr = 'Gesamttotal'. END CASE. FIND FIRST tTotUmsatz WHERE tTotUmsatz.Knr = iKnr AND tTotUmsatz.Wg = iWgr NO-ERROR. IF NOT AVAILABLE tTotUmsatz THEN DO: CREATE tTotUmsatz. ASSIGN tTotUmsatz.Knr = iKnr tTotUmsatz.Wgr = iWgr tTotUmsatz.Adresse = cAdresse tTotUmsatz.cWgr = cWgr. END. ASSIGN tTotUmsatz.EpVk_Lf = tTotUmsatz.EpVk_Lf + tUmsatz.EpVk_Lf tTotUmsatz.EpVk_Vj = tTotUmsatz.EpVk_Vj + tUmsatz.EpVk_Vj tTotUmsatz.VpVk_Lf = tTotUmsatz.VpVk_Lf + tUmsatz.VpVk_Lf tTotUmsatz.VpVk_Vj = tTotUmsatz.VpVk_Vj + tUmsatz.VpVk_Vj tTotUmsatz.MeVk_Lf = tTotUmsatz.MeVk_Lf + tUmsatz.MeVk_Lf tTotUmsatz.MeVk_Vj = tTotUmsatz.MeVk_Vj + tUmsatz.MeVk_Vj tTotUmsatz.LiVk_Lf = tTotUmsatz.LiVk_Lf + tUmsatz.LiVk_Lf tTotUmsatz.LiVk_Vj = tTotUmsatz.LiVk_Vj + tUmsatz.LiVk_Vj tTotUmsatz.EpEk_Lf = tTotUmsatz.EpEk_Lf + tUmsatz.EpEk_Lf tTotUmsatz.EpEk_Vj = tTotUmsatz.EpEk_Vj + tUmsatz.EpEk_Vj tTotUmsatz.MeEk_Lf = tTotUmsatz.MeEk_Lf + tUmsatz.MeEk_Lf tTotUmsatz.MeEk_Vj = tTotUmsatz.MeEk_Vj + tUmsatz.MeEk_Vj tTotUmsatz.LiEk_Lf = tTotUmsatz.LiEk_Lf + tUmsatz.LiEk_Lf tTotUmsatz.LiEk_Vj = tTotUmsatz.LiEk_Vj + tUmsatz.LiEk_Vj . END. iAnzArt = iAnzArt + 1. IF NOT LAST-OF ( tUmsatz.Wgr ) THEN NEXT. ASSIGN iKnr = tUmsatz.Knr iWgr = tUmsatz.Wgr. IF iAnzArt > 1 THEN RUN AUSGABE_TOTAL. IF NOT LAST-OF ( tUmsatz.Knr) THEN DO: PUT CONTROL '£' CHR(10). NEXT. END. ASSIGN iKnr = tUmsatz.Knr iWgr = 999. IF iAnzWgr > 1 THEN RUN AUSGABE_TOTAL. PUT CONTROL '£' CHR(10). END. IF iAnzKun < 2 THEN RETURN. FOR EACH btTotUmsatz NO-LOCK WHERE btTotUmsatz.Knr = 999999 BREAK BY btTotUmsatz.Knr BY btTotUmsatz.Wgr: IF FIRST-OF ( btTotUmsatz.Knr ) THEN DO: PUT CONTROL '£' CHR(10) btTotUmsatz.Adresse '£' CHR(10). END. ASSIGN iKnr = btTotUmsatz.Knr iWgr = btTotUmsatz.Wgr. RUN AUSGABE_TOTAL. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_TOTAL gLieferantenrumsatz PROCEDURE AUSGABE_TOTAL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR Ma_Lf AS DEC NO-UNDO. DEF VAR Ma_Vj AS DEC NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR ix AS INT NO-UNDO. FIND FIRST tTotUmsatz WHERE tTotUmsatz.Knr = iKnr AND tTotUmsatz.Wgr = iWgr. cZeile = (IF iWgr = 999 THEN '' + tTotUmsatz.Adresse + '£' ELSE '£' + tTotUmsatz.cWgr) + '££££'. Ma_Vj = 0. Ma_Lf = 0. IF tTotUmsatz.EpVk_Vj <> 0 AND tTotUmsatz.VpVk_Vj <> 0 THEN Ma_Vj = 100 - (tTotUmsatz.EpVk_Vj * 100 / tTotUmsatz.VpVk_Vj). IF tTotUmsatz.EpVk_Lf <> 0 AND tTotUmsatz.VpVk_Lf <> 0 THEN Ma_Lf = 100 - (tTotUmsatz.EpVk_Lf * 100 / tTotUmsatz.VpVk_Lf). IF Ma_Vj < 999.99- THEN Ma_Vj = 999.99-. IF Ma_Vj > 999.99 THEN Ma_Vj = 999.99 . IF Ma_Lf < 999.99- THEN Ma_Lf = 999.99-. IF Ma_Lf > 999.99 THEN Ma_Lf = 999.99 . /* IF T_HL THEN DO: */ /* tTotUmsatz.LiVK_Lf = tTotUmsatz.LiVk_Lf / 100. */ /* tTotUmsatz.LiVk_Vj = tTotUmsatz.LiVk_Vj / 100. */ /* tTotUmsatz.LiEK_Lf = tTotUmsatz.LiEk_Lf / 100. */ /* tTotUmsatz.LiEk_Vj = tTotUmsatz.LiEk_Vj / 100. */ /* END. */ cZeile = cZeile + '£' + TRIM(STRING(tTotUmsatz.MeVk_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(tTotUmsatz.LiVk_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(tTotUmsatz.LiVk_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(tTotUmsatz.EpVk_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(tTotUmsatz.VpVk_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(tTotUmsatz.MeVk_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(tTotUmsatz.LiVk_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(tTotUmsatz.LiVk_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(tTotUmsatz.EpVk_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(tTotUmsatz.VpVk_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(tTotUmsatz.MeEk_Lf,'->>>>>>>>>')) + '£' + (IF T_Hl THEN TRIM(STRING(tTotUmsatz.LiEk_Lf,'->>>>>>9.99')) ELSE TRIM(STRING(tTotUmsatz.LiEk_Lf,'->>>>>>>>>'))) + '£' + TRIM(STRING(tTotUmsatz.EpEk_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(tTotUmsatz.MeEk_Vj,'->>>>>>>>>')) + '£' + (IF T_Hl THEN TRIM(STRING(tTotUmsatz.LiEk_Vj,'->>>>>>9.99')) ELSE TRIM(STRING(tTotUmsatz.LiEk_Vj,'->>>>>>>>>'))) + '£' + TRIM(STRING(tTotUmsatz.EpEk_Vj,'->>>>>>>>>')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gLieferantenrumsatz 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 = ''. DO i = 1 TO LENGTH(ipHandle:SCREEN-VALUE): IF SUBSTRING(ipHandle:SCREEN-VALUE,i,1) < '0' OR SUBSTRING(ipHandle:SCREEN-VALUE,i,1) > '9' THEN DO: SUBSTRING(ipHandle:SCREEN-VALUE,i) = ','. END. END. 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 disable_UI gLieferantenrumsatz _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 gLieferantenrumsatz. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gLieferantenrumsatz PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. RUN LESEN_FEHLWERTE. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&list-6}. IF T_Liter = TRUE THEN T_HL:SENSITIVE = TRUE. ELSE T_HL:SENSITIVE = FALSE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gLieferantenrumsatz _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_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL T_EP T_VP T_Marge T_Vorjahr T_Verkauf T_EinkaufVSVerkauf WITH FRAME gLieferantenrumsatz. ENABLE F_VonKnr F_BisKnr F_VonArtnr F_BisArtnr F_Hersteller F_Warengrp F_VonDatum F_BisDatum T_Menge T_Liter T_HL T_EP T_VP T_Marge T_Vorjahr Btn_OK Btn_Cancel T_Verkauf T_EinkaufVSVerkauf RECT-12 WITH FRAME gLieferantenrumsatz. VIEW FRAME gLieferantenrumsatz. {&OPEN-BROWSERS-IN-QUERY-gLieferantenrumsatz} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gLieferantenrumsatz 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 gLieferantenrumsatz 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 FUELLEN_TEMPTABLE gLieferantenrumsatz PROCEDURE FUELLEN_TEMPTABLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VonDat1 AS DATE NO-UNDO. DEF VAR VonDat2 AS DATE NO-UNDO. DEF VAR BisDat1 AS DATE NO-UNDO. DEF VAR BisDat2 AS DATE NO-UNDO. DEF VAR MWST% AS DEC NO-UNDO. DEF VAR Ep AS DEC DECIMALS 4 NO-UNDO. DEF VAR Vp AS DEC DECIMALS 4 NO-UNDO. DEF VAR VTr_Art AS INT NO-UNDO. DEF VAR BTr_Art AS INT NO-UNDO. DEF VAR cWgr AS CHAR NO-UNDO. DEF VAR cAdresse AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. EMPTY TEMP-TABLE tUmsatz. VonDat1 = F_VonDatum. BisDat1 = F_BisDatum. VonDat2 = ?. BisDat2 = ?. VonDat2 = DATE(MONTH(VonDat1),DAY(VonDat1),YEAR(VonDat1) - 1) NO-ERROR. BisDat2 = DATE(MONTH(BisDat1),DAY(BisDat1),YEAR(BisDat1) - 1) NO-ERROR. IF VonDat2 = ? THEN VonDat2 = DATE(MONTH(VonDat1),DAY(VonDat1) - 1,YEAR(VonDat1) - 1). IF BisDat2 = ? THEN BisDat2 = DATE(MONTH(BisDat1),DAY(BisDat1) - 1,YEAR(BisDat1) - 1). IF T_Verkauf THEN ASSIGN VTr_Art = 01 BTr_Art = 10. ELSE ASSIGN VTr_Art = 11 BTr_Art = 20. IF T_EinkaufVSVerkauf THEN ASSIGN VTr_Art = 01 BTr_Art = 20. FOR EACH Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = Firma AND Liefst.Knr >= F_VonKnr AND Liefst.Knr <= F_BisKnr NO-LOCK, FIRST Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Liefst.Knr NO-LOCK, EACH ArtLief USE-INDEX ArtLief-k2 WHERE ArtLief.Firma = Liefst.Firma AND ArtLief.Knr = Liefst.Knr AND ArtLief.Artnr >= F_VonArtnr AND ArtLief.Artnr <= F_BisArtnr NO-LOCK, FIRST Artst USE-INDEX Artst-k1 WHERE Artst.Firma = ArtLief.Firma AND Artst.Artnr = ArtLief.Artnr AND Artst.Inhalt = ArtLief.Inhalt AND Artst.Jahr = ArtLief.Jahr NO-LOCK, EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = Liefst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Datum >= VonDat1 AND Artbw.Datum <= BisDat1 AND Artbw.Tr_Art >= VTr_Art AND Artbw.Tr_Art <= BTr_Art NO-LOCK BREAK BY Liefst.Knr BY Artst.Wg_Grp: IF FIRST-OF ( Liefst.Knr ) THEN DO: cAdresse = Adresse.Anzeig_Br. END. IF FIRST-OF ( Artst.Wg_Grp ) THEN DO: RUN FIND_WARENGRP ( INPUT Artst.Wg_Grp, OUTPUT cString ). IF cString = '?' THEN cWgr = '??????????'. ELSE cWgr = ENTRY(2, cString, CHR(01)). END. IF Artbw.Tr_Art = 11 AND Artbw.Knr <> Liefst.Knr THEN NEXT. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(Artst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. FIND FIRST tUmsatz USE-INDEX tUmsatz-k1 WHERE tUmsatz.Knr = Liefst.Knr AND tUmsatz.Wgr = Artst.Wg_Grp AND tUmsatz.Artnr = Artst.Artnr AND tUmsatz.Inhalt = Artst.Inhalt AND tUmsatz.Jahr = Artst.Jahr NO-ERROR. IF NOT AVAILABLE tUmsatz THEN DO: CREATE tUmsatz. ASSIGN tUmsatz.Knr = Liefst.Knr tUmsatz.Wgr = Artst.Wg_Grp tUmsatz.Artnr = Artst.Artnr tUmsatz.Inhalt = Artst.Inhalt tUmsatz.Jahr = Artst.Jahr tUmsatz.EpVk_Lf = 0 tUmsatz.EpVk_Vj = 0 tUmsatz.VpVk_Lf = 0 tUmsatz.VpVk_Vj = 0 tUmsatz.MeVk_Lf = 0 tUmsatz.MeVk_Vj = 0 tUmsatz.LiVk_Lf = 0 tUmsatz.LiVk_Vj = 0 tUmsatz.EpEk_Lf = 0 tUmsatz.EpEk_Vj = 0 tUmsatz.MeEk_Lf = 0 tUmsatz.MeEk_Vj = 0 tUmsatz.LiEk_Lf = 0 tUmsatz.LiEk_Vj = 0 tUmsatz.Adresse = Adresse.Anzeig_Br tUmsatz.cWgr = cWgr tUmsatz.KGeb_Cd = Artst.KGeb_Cd tUmsatz.Alk% = Artst.Alk_Gehalt. END. MWST% = Artbw.MWST%. IF Artbw.Tr_Art > 10 AND T_EinkaufVSVerkauf THEN DO: Ep = Artbw.Menge * Artbw.Preis * (100 - Artbw.Rab_Wert) / 100. Vp = 0.00. tUmsatz.EpEk_Lf = tUmsatz.EpEk_Lf + Ep. tUmsatz.MeEk_Lf = tUmsatz.MeEk_Lf + Artbw.Menge. tUmsatz.LiEk_Lf = tUmsatz.LiEk_Lf + Artbw.Liter. END. ELSE DO: Ep = Artbw.Ep * Artbw.Menge. Vp = Artbw.Net_Betr - Artbw.Auf_Rab - Artbw.Abh_Rab - Artbw.Auf_Sp_Rab. IF Ep = 0 THEN Ep = Artbw.Menge * Artst.DEP. IF Ep = 0 THEN Ep = Artbw.Menge * Artst.LEP. IF Ep = 0 THEN Ep = Artbw.Menge * Artst.Listen_EP. IF Artbw.MWST_Inkl THEN DO: IF MWST% = 0 THEN DO: FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = Artbw.WuCd AND MWSTAns.Datum <= Artbw.Datum NO-LOCK NO-ERROR. IF AVAILABLE MWSTAns THEN MWST% = MWSTAns.Ansatz. END. Vp = Vp * 100 / (100 + MWST%). END. tUmsatz.EpVk_Lf = tUmsatz.EpVk_Lf + Ep. tUmsatz.VpVk_Lf = tUmsatz.VpVk_Lf + Vp. tUmsatz.MeVk_Lf = tUmsatz.MeVk_Lf + Artbw.Menge. tUmsatz.LiVk_Lf = tUmsatz.LiVk_Lf + Artbw.Liter. END. END. IF T_Vorjahr = TRUE THEN DO: FOR EACH Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = Firma AND Liefst.Knr >= F_VonKnr AND Liefst.Knr <= F_BisKnr NO-LOCK, FIRST Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Liefst.Knr NO-LOCK, EACH ArtLief USE-INDEX ArtLief-k2 WHERE ArtLief.Firma = Liefst.Firma AND ArtLief.Knr = Liefst.Knr AND ArtLief.Artnr >= F_VonArtnr AND ArtLief.Artnr <= F_BisArtnr NO-LOCK, FIRST Artst USE-INDEX Artst-k1 WHERE Artst.Firma = ArtLief.Firma AND Artst.Artnr = ArtLief.Artnr AND Artst.Inhalt = ArtLief.Inhalt AND Artst.Jahr = ArtLief.Jahr NO-LOCK, EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = Liefst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Datum >= VonDat2 AND Artbw.Datum <= BisDat2 AND Artbw.Tr_Art >= VTr_Art AND Artbw.Tr_Art <= BTr_Art NO-LOCK BREAK BY Liefst.Knr BY Artst.Wg_Grp: IF FIRST-OF ( Liefst.Knr ) THEN DO: cAdresse = Adresse.Anzeig_Br. END. IF FIRST-OF ( Artst.Wg_Grp ) THEN DO: RUN FIND_WARENGRP ( INPUT Artst.Wg_Grp, OUTPUT cString ). IF cString = '?' THEN cWgr = '??????????'. ELSE cWgr = ENTRY(2, cString, CHR(01)). END. IF Artbw.Tr_Art = 11 AND Artbw.Knr <> Liefst.Knr THEN NEXT. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(Artst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. FIND FIRST tUmsatz USE-INDEX tUmsatz-k1 WHERE tUmsatz.Knr = Liefst.Knr AND tUmsatz.Wgr = Artst.Wg_Grp AND tUmsatz.Artnr = Artst.Artnr AND tUmsatz.Inhalt = Artst.Inhalt AND tUmsatz.Jahr = Artst.Jahr NO-ERROR. IF NOT AVAILABLE tUmsatz THEN DO: CREATE tUmsatz. ASSIGN tUmsatz.Knr = Liefst.Knr tUmsatz.Wgr = Artst.Wg_Grp tUmsatz.Artnr = Artst.Artnr tUmsatz.Inhalt = Artst.Inhalt tUmsatz.Jahr = Artst.Jahr tUmsatz.EpVk_Lf = 0 tUmsatz.EpVk_Vj = 0 tUmsatz.VpVk_Lf = 0 tUmsatz.VpVk_Vj = 0 tUmsatz.MeVk_Lf = 0 tUmsatz.MeVk_Vj = 0 tUmsatz.LiVk_Lf = 0 tUmsatz.LiVk_Vj = 0 tUmsatz.EpEk_Lf = 0 tUmsatz.EpEk_Vj = 0 tUmsatz.MeEk_Lf = 0 tUmsatz.MeEk_Vj = 0 tUmsatz.LiEk_Lf = 0 tUmsatz.LiEk_Vj = 0 tUmsatz.Adresse = Adresse.Anzeig_Br tUmsatz.cWgr = cWgr tUmsatz.KGeb_Cd = Artst.KGeb_Cd tUmsatz.Alk% = Artst.Alk_Gehalt. END. MWST% = Artbw.MWST%. IF Artbw.Tr_Art > 10 AND T_EinkaufVSVerkauf THEN DO: Ep = Artbw.Menge * Artbw.Preis * (100 - Artbw.Rab_Wert) / 100. Vp = 0.00. tUmsatz.EpEk_Vj = tUmsatz.EpEk_Vj + Ep. tUmsatz.MeEk_Vj = tUmsatz.MeEk_Vj + Artbw.Menge. tUmsatz.LiEk_Vj = tUmsatz.LiEk_Vj + Artbw.Liter. END. ELSE DO: Ep = Artbw.Ep * Artbw.Menge. Vp = Artbw.Net_Betr - Artbw.Auf_Rab - Artbw.Abh_Rab - Artbw.Auf_Sp_Rab. IF Ep = 0 THEN Ep = Artbw.Menge * Artst.DEP. IF Ep = 0 THEN Ep = Artbw.Menge * Artst.LEP. IF Ep = 0 THEN Ep = Artbw.Menge * Artst.Listen_EP. IF Artbw.MWST_Inkl THEN DO: IF MWST% = 0 THEN DO: FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = Artbw.WuCd AND MWSTAns.Datum <= Artbw.Datum NO-LOCK NO-ERROR. IF AVAILABLE MWSTAns THEN MWST% = MWSTAns.Ansatz. END. Vp = Vp * 100 / (100 + MWST%). END. tUmsatz.EpVk_Vj = tUmsatz.EpVk_Vj + Ep. tUmsatz.VpVk_Vj = tUmsatz.VpVk_Vj + Vp. tUmsatz.MeVk_Vj = tUmsatz.MeVk_Vj + Artbw.Menge. tUmsatz.LiVk_Vj = tUmsatz.LiVk_Vj + Artbw.Liter. END. END. END. FOR EACH tUmsatz: IF tUmsatz.MeVk_Lf <> 0 THEN NEXT. IF tUmsatz.MeVk_Vj <> 0 THEN NEXT. IF tUmsatz.LiVk_Lf <> 0 THEN NEXT. IF tUmsatz.LiVk_Vj <> 0 THEN NEXT. IF tUmsatz.EpVk_Lf <> 0 THEN NEXT. IF tUmsatz.EpVk_Vj <> 0 THEN NEXT. IF tUmsatz.VpVk_Lf <> 0 THEN NEXT. IF tUmsatz.VpVk_Vj <> 0 THEN NEXT. IF tUmsatz.MeEk_Lf <> 0 THEN NEXT. IF tUmsatz.MeEk_Vj <> 0 THEN NEXT. IF tUmsatz.LiEk_Lf <> 0 THEN NEXT. IF tUmsatz.LiEk_Vj <> 0 THEN NEXT. IF tUmsatz.EpEk_Lf <> 0 THEN NEXT. IF tUmsatz.EpEk_Vj <> 0 THEN NEXT. DELETE tUmsatz. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gLieferantenrumsatz PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR rechts AS INT NO-UNDO. DEF VAR mitte AS INT NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DEF VAR Breite AS DEC DECIMALS 4 NO-UNDO. DEF VAR TotBre AS DEC DECIMALS 4 NO-UNDO. DEF VAR DifBre AS DEC DECIMALS 4 NO-UNDO. DEF VAR FHoch AS LOG NO-UNDO. DEF VAR iBeg1 AS INT NO-UNDO. DEF VAR iBeg2 AS INT NO-UNDO. DEF VAR iBeg3 AS INT NO-UNDO. DEF VAR iBeg4 AS INT NO-UNDO. DEF VAR iEnd1 AS INT NO-UNDO. DEF VAR iEnd2 AS INT NO-UNDO. DEF VAR iEnd3 AS INT NO-UNDO. DEF VAR iEnd4 AS INT NO-UNDO. bKol = '0.3;0.5;6.0;25.0;7.0;8.0;6.0;6.0;7.0;7.0;6.0;6.0;6.0;7.0;7.0;6.0;7.0;7.0;7.0;7.0;7.0;7.0'. FKol = TRUE. AnzKol = 6. IF NOT T_EinkaufVSVerkauf THEN DO: ASSIGN FKol[17] = FALSE FKol[18] = FALSE FKol[19] = FALSE FKol[20] = FALSE FKol[21] = FALSE FKol[22] = FALSE. END. IF NOT T_Vorjahr THEN DO: FKol[12] = FALSE. FKol[13] = FALSE. FKol[14] = FALSE. FKol[15] = FALSE. FKol[16] = FALSE. FKol[20] = FALSE. FKol[21] = FALSE. FKol[22] = FALSE. END. IF NOT T_Menge THEN ASSIGN FKol[07] = FALSE FKol[12] = FALSE FKol[17] = FALSE FKol[20] = FALSE. IF NOT T_Liter THEN ASSIGN FKol[08] = FALSE FKol[13] = FALSE FKol[18] = FALSE FKol[21] = FALSE. IF NOT T_Ep THEN ASSIGN FKol[09] = FALSE FKol[14] = FALSE. IF NOT T_Vp THEN ASSIGN FKol[10] = FALSE FKol[15] = FALSE. IF NOT T_Marge THEN ASSIGN FKol[11] = FALSE FKol[16] = FALSE. DO i1 = 7 TO 22: IF FKol[i1] THEN ASSIGN rechts = 64 + i1 AnzKol = AnzKol + 1. END. DO i1 = 1 TO 22: IF FKol[i1] AND i1 <= (AnzKol / 2) THEN mitte = i1. END. mitte = mitte + 64. /* Breite = 0. */ /* TotBre = 0. */ /* DO i1 = 1 TO 22. */ /* TotBre = TotBre + DECIMAL(ENTRY(i1, bKol, ';')). */ /* IF FKol[i1] THEN Breite = Breite + DECIMAL(ENTRY(i1, bKol, ';')). */ /* END. */ /* IF Breite < 77.5 THEN DO: */ /* FHoch = TRUE. */ /* DifBre = (77.5 - Breite) / AnzKol. */ /* END. */ /* ELSE DO: */ /* FHoch = FALSE. */ /* DifBre = (TotBre - Breite) / AnzKol. */ /* END. */ /* IF DifBre < 0.2 THEN DIfBre = 0. */ FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'B1'. eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4131. eh:Selection:VALUE = Steuer.Firma1. Zelle = CHR(mitte) + '1'. eh:Range(Zelle):Select. eh:Selection:VALUE = 'Lieferanten-Umsätze'. eh:Selection:HorizontalAlignment = -4108. Zelle = CHR(rechts) + '1'. eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4152. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'B2'. eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4131. eh:Selection:VALUE = Steuer.Ort. Zelle = CHR(mitte) + '2'. eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4108. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999') + ' - ' + STRING(F_BisDatum,'99.99.9999'). Zelle = CHR(rechts) + '2'. eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4152. eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). i2 = 0. DO i1 = 1 TO 22: IF FKol[i1] THEN i2 = i2 + 1. IF i1 >= 7 AND i1 <= 11 THEN DO: IF FKol[i1] = TRUE THEN DO: IF iBeg1 = 0 THEN iBeg1 = i2. iEnd1 = i2. END. END . IF i1 >= 12 AND i1 <= 16 THEN DO: IF FKol[i1] = TRUE THEN DO: IF iBeg2 = 0 THEN iBeg2 = i2. iEnd2 = i2. END. END . IF i1 >= 17 AND i1 <= 19 THEN DO: IF FKol[i1] = TRUE THEN DO: IF iBeg3 = 0 THEN iBeg3 = i2. iEnd3 = i2. END. END . IF i1 >= 20 AND i1 <= 22 THEN DO: IF FKol[i1] = TRUE THEN DO: IF iBeg4 = 0 THEN iBeg4 = i2. iEnd4 = i2. END. END . IF NOT FKol[i1] THEN NEXT. eh:Range('A1'):Select. Zelle = CHR(64 + i1) + ':' + CHR(64 + i1). eh:COLUMNS(Zelle):Select. IF i1 = 08 AND T_Hl THEN eh:Selection:NumberFormat = "0.00". IF i1 = 13 AND T_Hl THEN eh:Selection:NumberFormat = "0.00". IF i1 = 18 AND T_Hl THEN eh:Selection:NumberFormat = "0.00". IF i1 = 21 AND T_Hl THEN eh:Selection:NumberFormat = "0.00". END. IF FHoch THEN eh:ActiveSheet:PageSetup:ORIENTATION = 1. /* eh:Range('A1'):Select. */ /* eh:Selection:MergeCells = TRUE. */ /* eh:Range('L3'):Select. */ /* eh:Selection:Value = 'Vorperiode'. */ DO i1 = 22 TO 7 BY -1: IF FKol[i1] THEN NEXT. Zelle = CHR(64 + i1) + ':' + CHR(64 + i1). eh:COLUMNS(Zelle):Select. eh:Selection:DELETE ( -4159 ). END. IF iBeg1 > 0 THEN DO: Zelle = SUBSTITUTE('&13:&23', CHR(64 + iBeg1), CHR(64 + iEnd1)). eh:Range(Zelle):Select. eh:Selection:MergeCells = TRUE. Zelle = SUBSTITUTE('&13', CHR(64 + iBeg1)). eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4108. eh:Selection:Value = 'Lfd Periode'. END. IF iBeg2 > 0 THEN DO: Zelle = SUBSTITUTE('&13:&23', CHR(64 + iBeg2), CHR(64 + iEnd2)). eh:Range(Zelle):Select. eh:Selection:MergeCells = TRUE. Zelle = SUBSTITUTE('&13', CHR(64 + iBeg2)). eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4108. eh:Selection:Value = 'Vorperiode'. END. IF iBeg3 > 0 THEN DO: Zelle = SUBSTITUTE('&13:&23', CHR(64 + iBeg3), CHR(64 + iEnd3)). eh:Range(Zelle):Select. eh:Selection:MergeCells = TRUE. Zelle = SUBSTITUTE('&13', CHR(64 + iBeg3)). eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4108. eh:Selection:Value = 'Lfd Einkauf'. END. IF iBeg4 > 0 THEN DO: Zelle = SUBSTITUTE('&13:&23', CHR(64 + iBeg4), CHR(64 + iEnd4)). eh:Range(Zelle):Select. eh:Selection:MergeCells = TRUE. Zelle = SUBSTITUTE('&13', CHR(64 + iBeg4)). eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4108. eh:Selection:Value = 'Vorperiode Einkauf'. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_FEHLWERTE gLieferantenrumsatz PROCEDURE LESEN_FEHLWERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cVal AS CHAR NO-UNDO. DEF VAR cKey AS CHAR NO-UNDO. DEF VAR i AS INT NO-UNDO. DEF VAR cWert AS CHAR NO-UNDO. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR. GET-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal. IF cVal = ? THEN RETURN. DO WITH FRAME {&FRAME-NAME}: DO i = 1 TO NUM-ENTRIES(cVal, '@'): cWert = ENTRY(i, cVal, '@'). CASE i: WHEN 1 THEN F_VonKnr :SCREEN-VALUE = cWert NO-ERROR. WHEN 2 THEN F_BisKnr :SCREEN-VALUE = cWert NO-ERROR. WHEN 3 THEN F_VonArtnr :SCREEN-VALUE = cWert NO-ERROR. WHEN 4 THEN F_BisArtnr :SCREEN-VALUE = cWert NO-ERROR. WHEN 5 THEN F_Hersteller :SCREEN-VALUE = cWert NO-ERROR. WHEN 6 THEN F_Warengrp :SCREEN-VALUE = cWert NO-ERROR. WHEN 7 THEN F_VonDatum :SCREEN-VALUE = cWert NO-ERROR. WHEN 8 THEN F_BisDatum :SCREEN-VALUE = cWert NO-ERROR. WHEN 9 THEN T_Menge :SCREEN-VALUE = cWert NO-ERROR. WHEN 10 THEN T_Liter :SCREEN-VALUE = cWert NO-ERROR. WHEN 11 THEN T_HL :SCREEN-VALUE = cWert NO-ERROR. WHEN 12 THEN T_EP :SCREEN-VALUE = cWert NO-ERROR. WHEN 13 THEN T_VP :SCREEN-VALUE = cWert NO-ERROR. WHEN 14 THEN T_Marge :SCREEN-VALUE = cWert NO-ERROR. WHEN 15 THEN T_Vorjahr :SCREEN-VALUE = cWert NO-ERROR. WHEN 16 THEN T_Verkauf :SCREEN-VALUE = cWert NO-ERROR. WHEN 17 THEN T_EinkaufVsVerkauf :SCREEN-VALUE = cWert NO-ERROR. END CASE. END. ASSIGN {&List-6}. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gLieferantenrumsatz PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR i1 AS INT NO-UNDO. DEF VAR ja AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN BEREINIGEN ( INPUT F_Hersteller:HANDLE ). RUN BEREINIGEN ( INPUT F_Warengrp :HANDLE ). ASSIGN {&List-6}. IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999. IF F_VonKnr > F_BisKnr THEN F_BisKnr = F_VonKnr. IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999. IF F_VonArtnr > F_BisArtnr THEN F_BisArtnr = F_VonArtnr. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)). IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)). IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_VonDatum. DISPLAY {&List-6}. RUN SCHREIBEN_FEHLWERTE. END. RUN FUELLEN_TEMPTABLE. FIND FIRST tUmsatz NO-LOCK NO-ERROR. IF NOT AVAILABLE tUmsatz THEN DO: MESSAGE 'Keine Daten selektiert !' VIEW-AS ALERT-BOX INFORMATION. RETURN. END. cVorlage = 'LiefUmsDet.xls'. cDokument = 'LiefUmsDet.xls'. cDaten = 'LiefUmsDet.txt'. cDateiName = cDokument + CHR(01) + cVorlage. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDokument = RETURN-VALUE. cDateiName = cDaten. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDaten = RETURN-VALUE. OUTPUT TO VALUE(cDaten). RUN AUSGABE. 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 = 'A6'. excelAppl:Range(Zelle):SELECT. excelAppl:SELECTION:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHREIBEN_FEHLWERTE gLieferantenrumsatz PROCEDURE SCHREIBEN_FEHLWERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cVal AS CHAR NO-UNDO. DEF VAR cKey AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. cKey = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.' ) NO-ERROR. cVal = F_VonKnr :SCREEN-VALUE + '@' + F_BisKnr :SCREEN-VALUE + '@' + F_VonArtnr :SCREEN-VALUE + '@' + F_BisArtnr :SCREEN-VALUE + '@' + F_Hersteller :SCREEN-VALUE + '@' + F_Warengrp :SCREEN-VALUE + '@' + F_VonDatum :SCREEN-VALUE + '@' + F_BisDatum :SCREEN-VALUE + '@' + T_Menge :SCREEN-VALUE + '@' + T_Liter :SCREEN-VALUE + '@' + T_HL :SCREEN-VALUE + '@' + T_EP :SCREEN-VALUE + '@' + T_VP :SCREEN-VALUE + '@' + T_Marge :SCREEN-VALUE + '@' + T_Vorjahr :SCREEN-VALUE + '@' + T_Verkauf :SCREEN-VALUE + '@' + T_EinkaufVsVerkauf:SCREEN-VALUE + '@'. PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME