&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gDebitorumsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gDebitorumsatz /*------------------------------------------------------------------------ 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 --- */ DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO. DEFINE VARIABLE AdFirma AS CHARACTER NO-UNDO. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO. DEFINE VARIABLE iVer AS INTEGER NO-UNDO. DEFINE VARIABLE cVer AS CHARACTER NO-UNDO. DEFINE VARIABLE iVerband AS INTEGER NO-UNDO. DEFINE VARIABLE cVerband AS CHARACTER NO-UNDO. DEFINE VARIABLE iSubverband AS INTEGER NO-UNDO. DEFINE VARIABLE cSubverband AS CHARACTER NO-UNDO. DEFINE VARIABLE cVorlage AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE cZeile AS CHARACTER NO-UNDO. DEFINE VARIABLE AnzKol AS INTEGER NO-UNDO. DEFINE VARIABLE FKol AS LOG NO-UNDO EXTENT 20. DEFINE VARIABLE bKol AS CHARACTER NO-UNDO. DEFINE VARIABLE iAnzWgr AS INTEGER NO-UNDO. DEFINE VARIABLE iAnzPgr AS INTEGER NO-UNDO. DEFINE VARIABLE iAnzHer AS INTEGER NO-UNDO. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO. DEFINE VARIABLE iAnzKunde AS INTEGER NO-UNDO INIT 0. DEFINE VARIABLE UmsKnr AS INTEGER NO-UNDO. DEFINE VARIABLE iHerst AS INTEGER NO-UNDO. DEFINE VARIABLE Ma_Lf AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE Ma_Vj AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE iAblauf AS INTEGER NO-UNDO. DEFINE VARIABLE lTotale AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE lWgrTotale AS LOGICAL NO-UNDO INIT FALSE. DEFINE TEMP-TABLE tUmsatz FIELD RecArt AS CHARACTER FIELD Knr AS INTEGER FIELD Herst AS INTEGER FIELD Wgr AS INTEGER FIELD Pgr AS INTEGER FIELD Artnr AS INTEGER FIELD Inhalt AS INTEGER FIELD Jahr AS INTEGER FIELD Ep_Lf AS DECIMAL FIELD Ep_Vj AS DECIMAL FIELD Vp_Lf AS DECIMAL FIELD Vp_Vj AS DECIMAL FIELD Me_Lf AS DECIMAL FIELD Me_Vj AS DECIMAL FIELD Li_Lf AS DECIMAL DECIMALS 6 FIELD Li_Vj AS DECIMAL DECIMALS 6 FIELD Gr_Ep_Lf AS DECIMAL FIELD Gr_Ep_Vj AS DECIMAL FIELD Gr_Vp_Lf AS DECIMAL FIELD Gr_Vp_Vj AS DECIMAL FIELD Gr_Me_Lf AS DECIMAL FIELD Gr_Me_Vj AS DECIMAL FIELD Gr_Li_Lf AS DECIMAL DECIMALS 6 FIELD Gr_Li_Vj AS DECIMAL DECIMALS 6 FIELD KGeb_Cd AS CHARACTER FIELD Alk% AS DECIMAL INDEX tUmsatz-k1 IS PRIMARY RecArt Knr Herst Wgr Pgr Artnr Inhalt Jahr INDEX tUmsatz-k2 RecArt Herst Wgr Pgr Artnr Inhalt Jahr . DEFINE TEMP-TABLE vUmsatz LIKE tUmsatz. DEFINE TEMP-TABLE wUmsatz LIKE tUmsatz. DEFINE BUFFER btUmsatz FOR tUmsatz. DEFINE BUFFER bDebst FOR Debst. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbw FOR Artbw. DEFINE BUFFER bAufko FOR Aufko. DEFINE BUFFER bAufze FOR Aufze. /* _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 gDebitorumsatz /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS T_NurWgr F_VonKnr F_BisKnr CB_Vertreter ~ CB_Verband CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller 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_Gratis T_SubGrpHerst T_OffeneAuf ~ Btn_Cancel Btn_OK T_Lieferadresse T_Zusatz T_ProdTot RECT-12 &Scoped-Define DISPLAYED-OBJECTS T_NurWgr F_VonKnr F_BisKnr CB_Vertreter ~ CB_Verband CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller 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_Gratis T_SubGrpHerst T_OffeneAuf ~ T_Lieferadresse T_Zusatz T_ProdTot /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 T_NurWgr F_VonKnr F_BisKnr CB_Vertreter CB_Verband ~ CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller 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_Gratis T_SubGrpHerst T_OffeneAuf T_Lieferadresse ~ T_Zusatz T_ProdTot /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD GesamtTotal gDebitorumsatz FUNCTION GesamtTotal RETURNS CHARACTER PRIVATE ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD HerstellerHerstSchluss gDebitorumsatz FUNCTION HerstellerHerstSchluss RETURNS CHARACTER ( ipcAdresse AS CHARACTER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD HerstellerSchluss gDebitorumsatz FUNCTION HerstellerSchluss RETURNS CHARACTER ( ipcHerst AS CHARACTER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD HerstellerStart gDebitorumsatz FUNCTION HerstellerStart RETURNS CHARACTER ( ipHerst AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD KundenSchluss gDebitorumsatz FUNCTION KundenSchluss RETURNS CHARACTER ( ipcAdresse AS CHARACTER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD ProduktegruppenSchluss gDebitorumsatz FUNCTION ProduktegruppenSchluss RETURNS CHARACTER ( ipcProdgrp AS CHARACTER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD ProduktegruppenStart gDebitorumsatz FUNCTION ProduktegruppenStart RETURNS CHARACTER ( ipWgr AS INTEGER, ipPgr AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD WarengruppenSchluss gDebitorumsatz FUNCTION WarengruppenSchluss RETURNS CHARACTER ( ipcWarenGrp AS CHARACTER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD WarengruppenStart gDebitorumsatz FUNCTION WarengruppenStart RETURNS CHARACTER ( ipWgr AS INTEGER ) FORWARD. /* _UIB-CODE-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 CB_Subverband AS CHARACTER FORMAT "X(256)":U LABEL "Subverband" 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_Verband AS CHARACTER FORMAT "X(256)":U LABEL "Verband" 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_Vertreter AS CHARACTER FORMAT "X(256)":U LABEL "Vertreter" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "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_Kundengrp AS CHARACTER FORMAT "X(256)":U LABEL "Kudengruppen" VIEW-AS FILL-IN NATIVE SIZE 46.4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Preisgruppe AS CHARACTER FORMAT "X(256)":U LABEL "Preisgruppen" 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 Knr" 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 100 BY 26.67. DEFINE VARIABLE T_EP AS LOGICAL INITIAL NO LABEL "Einstandsbeträge" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_Gratis AS LOGICAL INITIAL NO LABEL "Gratislieferungen" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_Hersteller AS LOGICAL INITIAL NO LABEL "Herstellerbezogen" VIEW-AS TOGGLE-BOX SIZE 47 BY 1 NO-UNDO. DEFINE VARIABLE T_HL AS LOGICAL INITIAL NO LABEL "Hektoliter" VIEW-AS TOGGLE-BOX SIZE 19.6 BY 1 NO-UNDO. DEFINE VARIABLE T_Lieferadresse AS LOGICAL INITIAL NO LABEL "auf Lieferadressen" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 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 .81 NO-UNDO. DEFINE VARIABLE T_NurWgr AS LOGICAL INITIAL NO LABEL "Nur Warengruppentotale" VIEW-AS TOGGLE-BOX SIZE 31 BY 1 NO-UNDO. DEFINE VARIABLE T_OffeneAuf AS LOGICAL INITIAL NO LABEL "offene Aufträge" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_ProdTot AS LOGICAL INITIAL NO LABEL "Produktegruppentotale" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_SubGrpHerst AS LOGICAL INITIAL NO LABEL "Hersteller-Totale (nur wenn nicht Hersteller bezogen)" VIEW-AS TOGGLE-BOX SIZE 54 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. DEFINE VARIABLE T_Zusatz AS LOGICAL INITIAL NO LABEL "zusätzliche Rekap" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gDebitorumsatz T_NurWgr AT ROW 23.52 COL 62 WIDGET-ID 18 F_VonKnr AT ROW 1.52 COL 28 COLON-ALIGNED F_BisKnr AT ROW 1.52 COL 41 COLON-ALIGNED CB_Vertreter AT ROW 2.52 COL 28 COLON-ALIGNED CB_Verband AT ROW 3.52 COL 28 COLON-ALIGNED CB_Subverband AT ROW 4.52 COL 28 COLON-ALIGNED WIDGET-ID 4 F_Kundengrp AT ROW 5.52 COL 28 COLON-ALIGNED F_Preisgruppe AT ROW 6.52 COL 28 COLON-ALIGNED T_Hersteller AT ROW 9 COL 30 WIDGET-ID 6 F_VonArtnr AT ROW 10.24 COL 28 COLON-ALIGNED F_BisArtnr AT ROW 10.24 COL 41 COLON-ALIGNED F_Hersteller AT ROW 11.24 COL 28 COLON-ALIGNED F_Warengrp AT ROW 12.24 COL 28 COLON-ALIGNED F_VonDatum AT ROW 13.24 COL 28 COLON-ALIGNED F_BisDatum AT ROW 13.24 COL 47 COLON-ALIGNED T_Menge AT ROW 14.52 COL 30 T_Liter AT ROW 15.52 COL 30 T_HL AT ROW 15.52 COL 55 T_EP AT ROW 16.52 COL 30 T_VP AT ROW 17.52 COL 30 T_Marge AT ROW 18.52 COL 30 T_Vorjahr AT ROW 19.52 COL 30 T_Gratis AT ROW 20.52 COL 30 WIDGET-ID 2 T_SubGrpHerst AT ROW 7.62 COL 30 WIDGET-ID 8 T_OffeneAuf AT ROW 21.52 COL 30 WIDGET-ID 10 Btn_Cancel AT ROW 26.24 COL 55.8 Btn_OK AT ROW 26 COL 30 T_Lieferadresse AT ROW 22.52 COL 30 WIDGET-ID 12 T_Zusatz AT ROW 23.52 COL 30 WIDGET-ID 14 T_ProdTot AT ROW 24.52 COL 30 WIDGET-ID 16 RECT-12 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.22) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Debitorumsä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 gDebitorumsatz /* ************************* 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 gDebitorumsatz FRAME-NAME Custom */ ASSIGN FRAME gDebitorumsatz:SCROLLABLE = FALSE FRAME gDebitorumsatz:HIDDEN = TRUE. /* SETTINGS FOR COMBO-BOX CB_Subverband IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR COMBO-BOX CB_Verband IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR COMBO-BOX CB_Vertreter IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_Hersteller IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_Kundengrp IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_Preisgruppe IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR FILL-IN F_Warengrp IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_EP IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Gratis IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Hersteller IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_HL IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Lieferadresse IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Liter IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Marge IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Menge IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_NurWgr IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_OffeneAuf IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_ProdTot IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_SubGrpHerst IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Vorjahr IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_VP IN FRAME gDebitorumsatz 6 */ /* SETTINGS FOR TOGGLE-BOX T_Zusatz IN FRAME gDebitorumsatz 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gDebitorumsatz /* Query rebuild information for DIALOG-BOX gDebitorumsatz _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gDebitorumsatz */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gDebitorumsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDebitorumsatz gDebitorumsatz ON END-ERROR OF FRAME gDebitorumsatz /* Debitorumsätze (Detail) */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gDebitorumsatz gDebitorumsatz ON GO OF FRAME gDebitorumsatz /* Debitorumsä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 gDebitorumsatz gDebitorumsatz ON WINDOW-CLOSE OF FRAME gDebitorumsatz /* Debitorumsä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 gDebitorumsatz ON CHOOSE OF Btn_Cancel IN FRAME gDebitorumsatz /* 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 gDebitorumsatz ON CHOOSE OF Btn_OK IN FRAME gDebitorumsatz /* 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 CB_Subverband &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Subverband gDebitorumsatz ON RETURN OF CB_Subverband IN FRAME gDebitorumsatz /* Subverband */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Verband &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Verband gDebitorumsatz ON RETURN OF CB_Verband IN FRAME gDebitorumsatz /* Verband */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Verband gDebitorumsatz ON VALUE-CHANGED OF CB_Verband IN FRAME gDebitorumsatz /* Verband */ DO: DEFINE VARIABLE cString AS CHARACTER NO-UNDO. RUN COMBO_SUBVERBAND ( CB_Subverband:HANDLE, CB_Verband:SCREEN-VALUE ). cString = CB_Subverband:LIST-ITEM-PAIRS. IF cString <> '' THEN cString = cString + ';'. cString = cString + 'Alle Subverbände (999999);999999'. CB_Subverband:LIST-ITEM-PAIRS = cString. CB_Subverband:SCREEN-VALUE = '999999'. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Vertreter &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Vertreter gDebitorumsatz ON RETURN OF CB_Vertreter IN FRAME gDebitorumsatz /* Vertreter */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_BisKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BisKnr gDebitorumsatz ON ALT-F OF F_BisKnr IN FRAME gDebitorumsatz /* - */ DO: DEFINE VARIABLE iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'DEB', 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 gDebitorumsatz ON RIGHT-MOUSE-CLICK OF F_Hersteller IN FRAME gDebitorumsatz /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'HERST' ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Kundengrp &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kundengrp gDebitorumsatz ON RIGHT-MOUSE-CLICK OF F_Kundengrp IN FRAME gDebitorumsatz /* Kudengruppen */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'KUNDGRP' ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Preisgruppe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preisgruppe gDebitorumsatz ON RIGHT-MOUSE-CLICK OF F_Preisgruppe IN FRAME gDebitorumsatz /* Preisgruppen */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF, INPUT 'PREGRP' ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VonKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VonKnr gDebitorumsatz ON ALT-F OF F_VonKnr IN FRAME gDebitorumsatz /* von - bis Knr */ DO: DEFINE VARIABLE iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'DEB', 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 gDebitorumsatz ON RIGHT-MOUSE-CLICK OF F_Warengrp IN FRAME gDebitorumsatz /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT SELF ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_EP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_EP gDebitorumsatz ON RETURN OF T_EP IN FRAME gDebitorumsatz /* Einstandsbeträge */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Gratis &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Gratis gDebitorumsatz ON RETURN OF T_Gratis IN FRAME gDebitorumsatz /* Gratislieferungen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Hersteller &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Hersteller gDebitorumsatz ON RETURN OF T_Hersteller IN FRAME gDebitorumsatz /* Herstellerbezogen */ DO: APPLY 'TAB' TO SELF. RETURN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_HL &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_HL gDebitorumsatz ON RETURN OF T_HL IN FRAME gDebitorumsatz /* Hektoliter */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Lieferadresse &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Lieferadresse gDebitorumsatz ON RETURN OF T_Lieferadresse IN FRAME gDebitorumsatz /* auf Lieferadressen */ 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 gDebitorumsatz ON RETURN OF T_Liter IN FRAME gDebitorumsatz /* Liter */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Liter gDebitorumsatz ON VALUE-CHANGED OF T_Liter IN FRAME gDebitorumsatz /* 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 gDebitorumsatz ON RETURN OF T_Marge IN FRAME gDebitorumsatz /* 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 gDebitorumsatz ON RETURN OF T_Menge IN FRAME gDebitorumsatz /* Mengen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_OffeneAuf &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_OffeneAuf gDebitorumsatz ON RETURN OF T_OffeneAuf IN FRAME gDebitorumsatz /* offene Aufträge */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_ProdTot &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_ProdTot gDebitorumsatz ON RETURN OF T_ProdTot IN FRAME gDebitorumsatz /* Produktegruppentotale */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_SubGrpHerst &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_SubGrpHerst gDebitorumsatz ON RETURN OF T_SubGrpHerst IN FRAME gDebitorumsatz /* Hersteller-Totale (nur wenn nicht Hersteller bezogen) */ DO: APPLY 'TAB' TO SELF. RETURN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Vorjahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Vorjahr gDebitorumsatz ON RETURN OF T_Vorjahr IN FRAME gDebitorumsatz /* 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 gDebitorumsatz ON RETURN OF T_VP IN FRAME gDebitorumsatz /* Verkaufsbeträge */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Zusatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Zusatz gDebitorumsatz ON RETURN OF T_Zusatz IN FRAME gDebitorumsatz /* zusätzliche Rekap */ 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 gDebitorumsatz /* *************************** 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 gDebitorumsatz _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 gDebitorumsatz PROCEDURE AUSGABE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipArt AS INTEGER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cTitel AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE cHerst AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE cWgr AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE cPgr AS CHARACTER INIT '' NO-UNDO. ASSIGN iAnzKunde = 0 iAnzHer = 0 iAnzWgr = 0 iAnzPgr = 0 iAnzArt = 0 lTotale = FALSE. FOR EACH btUmsatz USE-INDEX tUmsatz-k1 NO-LOCK WHERE btUmsatz.RecArt = 'A' BREAK BY btUmsatz.Knr BY btUmsatz.Herst BY btUmsatz.Wgr BY btUmsatz.Pgr BY btUmsatz.Artnr BY btUmsatz.Inhalt BY btUmsatz.Jahr : IF FIRST-OF ( btUmsatz.Knr ) THEN DO: iAnzKunde = iAnzKunde + 1. CASE ipArt: WHEN 1 THEN DO: cTitel = DYNAMIC-FUNCTION('getAdressAnzeige':U, btUmsatz.Knr) NO-ERROR. END. WHEN 2 THEN DO: RUN FIND_VERBAND ( btUmsatz.Knr, OUTPUT cString ). cTitel = (IF cString <> '' THEN ENTRY(2, cString, CHR(01)) ELSE '?????'). END. WHEN 3 THEN DO: RUN FIND_VERBAND ( btUmsatz.Knr, OUTPUT cString ). cTitel = (IF cString <> '' THEN ENTRY(2, cString, CHR(01)) ELSE '?????'). END. END CASE. PUT CONTROL STRING(btUmsatz.Knr,'999999 ') cTitel CHR(10) '£' CHR(10). END. IF FIRST-OF ( btUmsatz.Herst ) THEN DO: cHerst = DYNAMIC-FUNCTION('HerstellerStart':U, btUmsatz.Herst) NO-ERROR. IF cHerst <> '' THEN PUT CONTROL '£' cHerst CHR(10). ASSIGN iAnzHer = iAnzHer + 1. iAnzArt = 0. END. IF FIRST-OF ( btUmsatz.Wgr ) THEN DO: cWgr = DYNAMIC-FUNCTION('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR. IF cWgr <> '' THEN PUT CONTROL '£' cWgr CHR(10). ASSIGN iAnzWgr = iAnzWgr + 1 iAnzArt = 0. END. IF FIRST-OF ( btUmsatz.Pgr ) AND T_ProdTot THEN DO: cPgr = DYNAMIC-FUNCTION('ProduktegruppenStart':U, btUmsatz.Wgr, btUmsatz.Pgr) NO-ERROR. IF cPgr <> '' THEN PUT CONTROL '£' cPgr CHR(10). ASSIGN iAnzPgr = iAnzPgr + 1 iAnzArt = 0. END. cZeile = ''. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = btUmsatz.KGeb_Cd NO-ERROR. FIND Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr = btUmsatz.Artnr AND Artst.Inhalt = btUmsatz.Inhalt AND Artst.Jahr = btUmsatz.Jahr NO-ERROR. FIND FIRST Artbez NO-LOCK USE-INDEX Artbez-k1 WHERE Artbez.Firma = Firma AND Artbez.Artnr = btUmsatz.Artnr AND Artbez.Inhalt = btUmsatz.Inhalt AND Artbez.Jahr = btUmsatz.Jahr NO-ERROR. cZeile = cZeile + '££' + STRING(btUmsatz.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(btUmsatz.Inhalt,'9999') + ' ?'. cZeile = cZeile + '£'. IF btUmsatz.Jahr > 10 THEN cZeile = cZeile + STRING(btUmsatz.Jahr,'9999 '). IF btUmsatz.Alk% > 0 THEN cZeile = cZeile + STRING(btUmsatz.Alk%,'z9.99%'). Ma_Vj = 0. Ma_Lf = 0. IF btUmsatz.Ep_Vj <> 0 AND btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj). IF btUmsatz.Ep_Lf <> 0 AND btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_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: ASSIGN btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100 btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100 btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100 btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100. END. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. DO WHILE TRUE. IF AVAILABLE Artbez AND Artbez.Bez2 <> '' THEN cZeile = '£££' + Artbez.Bez2. IF NOT T_Gratis THEN LEAVE. IF btUmsatz.Gr_Me_Lf = 0 AND btUmsatz.Gr_Me_VJ = 0 THEN LEAVE. IF cZeile = '' THEN cZeile = '£££'. cZeile = cZeile + '£GRATIS£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')). LEAVE. END. IF cZeile <> '' THEN DO: cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. iAnzArt = iAnzArt + 1. IF NOT LAST-OF ( btUmsatz.Pgr ) THEN NEXT. IF T_ProdTot AND cPgr <> '' THEN DO: DYNAMIC-FUNCTION('ProduktegruppenSchluss':U, cPgr) NO-ERROR. iAnzArt = 0. PUT CONTROL '£' CHR(10). END. IF NOT LAST-OF ( btUmsatz.Wgr ) THEN NEXT. DYNAMIC-FUNCTION('WarengruppenSchluss':U, cWgr) NO-ERROR. iAnzPgr = 0. IF NOT LAST-OF ( btUmsatz.Herst ) THEN DO: PUT CONTROL '£' CHR(10). NEXT. END. iAnzHer = 0. IF T_SubGrpHerst THEN DO: DYNAMIC-FUNCTION('HerstellerSchluss':U, cHerst) NO-ERROR. END. IF NOT LAST-OF ( btUmsatz.Knr ) THEN DO: PUT CONTROL '£' CHR(10). NEXT. END. iAnzKunde = 0. DYNAMIC-FUNCTION('KundenSchluss':U, cTitel ) NO-ERROR. PUT CONTROL '£' CHR(10) '£' CHR(10). END. DYNAMIC-FUNCTION('GesamtTotal':U ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_HERSTELLER gDebitorumsatz PROCEDURE AUSGABE_HERSTELLER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cTitel AS CHARACTER NO-UNDO. DEFINE VARIABLE cHerst AS CHARACTER NO-UNDO. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO. DEFINE VARIABLE cPgr AS CHARACTER NO-UNDO. DEFINE VARIABLE iWert AS INTEGER NO-UNDO. FOR EACH btUmsatz USE-INDEX tUmsatz-k1 NO-LOCK WHERE btUmsatz.RecArt = 'A' BREAK BY btUmsatz.Herst BY btUmsatz.Wgr BY btUmsatz.Pgr BY btUmsatz.Artnr BY btUmsatz.Inhalt BY btUmsatz.Jahr : IF FIRST-OF ( btUmsatz.Herst ) THEN DO: RUN FIND_HERSTELLER ( btUmsatz.Herst, OUTPUT cString ). iWert = INTEGER(ENTRY(1, cString, CHR(01))) NO-ERROR. ENTRY(1, cString, CHR(01)) = STRING(iWert,'999'). cHerst = REPLACE(cString, CHR(01), ' '). PUT CONTROL STRING(btUmsatz.Herst,'999 ') (IF cString = '' THEN '' ELSE ENTRY(2, cString, CHR(01))) CHR(10) '£' CHR(10). END. IF FIRST-OF ( btUmsatz.Wgr ) THEN DO: cWgr = DYNAMIC-FUNCTION('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR. IF cWgr <> '' THEN PUT CONTROL cWgr CHR(10). END. IF FIRST-OF ( btUmsatz.Pgr ) THEN DO: cPgr = DYNAMIC-FUNCTION('ProduktegruppenStart':U, btUmsatz.Wgr, btUmsatz.Pgr) NO-ERROR. IF cPgr <> '' THEN PUT CONTROL '£' cPgr CHR(10). END. cZeile = ''. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = btUmsatz.KGeb_Cd NO-ERROR. FIND Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr = btUmsatz.Artnr AND Artst.Inhalt = btUmsatz.Inhalt AND Artst.Jahr = btUmsatz.Jahr NO-ERROR. FIND FIRST Artbez NO-LOCK USE-INDEX Artbez-k1 WHERE Artbez.Firma = Firma AND Artbez.Artnr = btUmsatz.Artnr AND Artbez.Inhalt = btUmsatz.Inhalt AND Artbez.Jahr = btUmsatz.Jahr NO-ERROR. cZeile = cZeile + '££' + STRING(btUmsatz.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(btUmsatz.Inhalt,'9999') + ' ?'. cZeile = cZeile + '£'. IF btUmsatz.Jahr > 10 THEN cZeile = cZeile + STRING(btUmsatz.Jahr,'9999 '). IF btUmsatz.Alk% > 0 THEN cZeile = cZeile + STRING(btUmsatz.Alk%,'z9.99%'). Ma_Vj = 0. Ma_Lf = 0. IF btUmsatz.Ep_Vj <> 0 AND btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj). IF btUmsatz.Ep_Lf <> 0 AND btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_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: ASSIGN btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100 btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100 btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100 btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100. END. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. DO WHILE TRUE. IF AVAILABLE Artbez AND Artbez.Bez2 <> '' THEN cZeile = '£££' + Artbez.Bez2. IF NOT T_Gratis THEN LEAVE. IF btUmsatz.Gr_Me_Lf = 0 AND btUmsatz.Gr_Me_VJ = 0 THEN LEAVE. IF cZeile = '' THEN cZeile = '£££'. cZeile = cZeile + '£GRATIS£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')). LEAVE. END. IF cZeile <> '' THEN DO: cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. ASSIGN iAnzArt = iAnzArt + 1 iAnzPgr = iAnzPgr + 1 iAnzWgr = iAnzWgr + 1 iAnzHer = iAnzHer + 1. IF NOT LAST-OF ( btUmsatz.Pgr ) THEN NEXT. IF iAnzArt > 1 AND cPgr <> '' THEN DYNAMIC-FUNCTION('ProduktegruppenSchluss':U, cPgr) NO-ERROR. iAnzArt = 0. /* IF LAST-OF ( btUmsatz.Wgr ) AND */ /* iAnzPgr > 1 AND */ /* cPgr <> '' THEN DYNAMIC-FUNCTION('ProduktegruppenSchluss':U, cPgr) NO-ERROR.*/ IF NOT LAST-OF ( btUmsatz.Wgr ) THEN NEXT. DYNAMIC-FUNCTION('WarengruppenSchluss':U, cWgr) NO-ERROR. iAnzPgr = 0. IF NOT LAST-OF ( btUmsatz.Herst ) THEN DO: PUT CONTROL '£' CHR(10). NEXT. END. DYNAMIC-FUNCTION('HerstellerHerstSchluss':U, cHerst ) NO-ERROR. PUT CONTROL '£' CHR(10) '£' CHR(10). END. DYNAMIC-FUNCTION('GesamtTotal':U ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_TOTALE gDebitorumsatz PROCEDURE AUSGABE_TOTALE : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cTitel AS CHARACTER NO-UNDO. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO. DEFINE VARIABLE cPgr AS CHARACTER NO-UNDO. DEFINE VARIABLE nLiLf AS DECIMAL NO-UNDO. DEFINE VARIABLE nLiVj AS DECIMAL NO-UNDO. DEFINE VARIABLE cRecArt AS CHARACTER NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. IF T_ProdTot THEN cRecArt = 'B'. ELSE cRecArt = 'C'. ASSIGN iAnzKunde = 0 iAnzWgr = 0 iAnzPgr = 0 iAnzArt = 0. /* Warengruppentotale (inlusive Artikeltotale) */ PUT CONTROL 'Warengruppen Gesamttotale' CHR(10). lWgrTotale = TRUE. FOR EACH btUmsatz WHERE btUmsatz.RecArt = 'G' AND btUmsatz.Knr = 999999 BREAK BY btUmsatz.Knr BY btUmsatz.Wgr BY btUmsatz.Artnr BY btUmsatz.Inhalt BY btUmsatz.Jahr : IF FIRST-OF ( btUmsatz.Wgr ) THEN DO: iAnzKunde = iAnzKunde + 1. lTotale = FALSE. cTitel = DYNAMIC-FUNCTION ('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR. cWgr = cTitel. PUT CONTROL '£' CHR(10) '£' cTitel CHR(10). lTotale = TRUE. END. IF LAST-OF ( btUmsatz.Wgr ) THEN DO: cTitel = DYNAMIC-FUNCTION ('WarengruppenSchluss':U, cWgr) NO-ERROR. NEXT. END. FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = btUmsatz.Artnr AND bArtst.Inhalt = btUmsatz.Inhalt AND bArtst.Jahr = btUmsatz.Jahr. FIND FIRST bArtBez OF bArtst NO-LOCK. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = btUmsatz.KGeb_Cd NO-ERROR. PUT CONTROL '££' STRING(btUmsatz.Artnr ,'999999') '£' bArtbez.Bez1 '£'. IF AVAILABLE KGebinde THEN PUT CONTROL KGebinde.KBez. PUT CONTROL '£'. IF btUmsatz.Jahr > 10 THEN PUT CONTROL STRING(btUmsatz.Jahr,'9999 '). IF btUmsatz.Alk% > 0 THEN PUT CONTROL STRING(btUmsatz.Alk%,'z9.99%'). PUT CONTROL '£'. iAnzArt = iAnzArt + 1. Ma_Vj = 0. Ma_Lf = 0. IF btUmsatz.Ep_Vj <> 0 AND btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj). IF btUmsatz.Ep_Lf <> 0 AND btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_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: ASSIGN btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100 btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100 btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100 btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100. END. cZeile = ''. cZeile = TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF btUmsatz.Gr_Me_Lf <> 0 OR btUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. IF btUmsatz.Artnr > 0 AND bArtbez.Bez2 <> '' THEN PUT CONTROL '£££' bArtbez.Bez2 CHR(10). cZeile = ''. END. lWgrTotale = FALSE. IF T_NurWgr THEN DO: PUT CONTROL '£' CHR(10). DYNAMIC-FUNCTION('GesamtTotal':U) NO-ERROR. RETURN. END. ASSIGN iAnzKunde = 0 iAnzWgr = 0 iAnzPgr = 0 iAnzArt = 0. PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10). /* Warengruppen-, Produktegruppen-Totale pro Kunde */ FOR EACH btUmsatz WHERE btUmsatz.RecArt = cRecArt AND btUmsatz.Artnr = 9999999 BREAK BY btUmsatz.Knr BY btUmsatz.Wgr BY btUmsatz.Pgr : IF FIRST-OF ( btUmsatz.Knr ) THEN DO: iAnzKunde = iAnzKunde + 1. cTitel = (IF btUmsatz.Knr <> 999999 THEN DYNAMIC-FUNCTION('getAdressAnzeige':U, btUmsatz.Knr) ELSE 'Warengruppen Gesamttotale'). PUT CONTROL STRING(btUmsatz.Knr,'999999 ') cTitel CHR(10). IF cRecArt = 'B' THEN PUT CONTROL '£' CHR(10). iAnzWgr = 0. END. IF FIRST-OF ( btUmsatz.Wgr ) THEN DO: cWgr = DYNAMIC-FUNCTION('WarengruppenStart':U, btUmsatz.Wgr) NO-ERROR. IF cWgr <> '' THEN PUT CONTROL '£' cWgr. IF cRecArt = 'B' THEN PUT CONTROL CHR(10). ELSE PUT CONTROL '£££'. iAnzPgr = 0. END. IF FIRST-OF ( btUmsatz.Pgr ) AND cRecArt = 'B' THEN DO: cPgr = DYNAMIC-FUNCTION('ProduktegruppenStart':U, btUmsatz.Wgr, btUmsatz.Pgr) NO-ERROR. IF cPgr <> '' THEN PUT CONTROL '££' cPgr '££££'. ELSE PUT CONTROL '££££££'. END. iAnzWgr = iAnzWgr + 1. iAnzPgr = iAnzPgr + 1. Ma_Vj = 0. Ma_Lf = 0. IF btUmsatz.Ep_Vj <> 0 AND btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj). IF btUmsatz.Ep_Lf <> 0 AND btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_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: ASSIGN btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100 btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100 btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100 btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100. END. cZeile = ''. cZeile = TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF btUmsatz.Gr_Me_Lf <> 0 OR btUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. IF LAST-OF ( btUmsatz.Wgr ) AND iAnzWgr > 1 AND cRecArt = 'B' THEN DYNAMIC-FUNCTION('WarengruppenSchluss':U, cWgr) NO-ERROR. IF LAST-OF ( btUmsatz.Knr ) THEN DYNAMIC-FUNCTION('KundenSchluss':U, cTitel) NO-ERROR. END. DYNAMIC-FUNCTION('GesamtTotal':U) NO-ERROR. PUT CONTROL '£' CHR(10) '£' CHR(10) 'Kundentotale' CHR(10). /* Kundentotale */ cRecArt = 'E'. FOR EACH btUmsatz WHERE btUmsatz.RecArt = cRecArt AND btUmsatz.Wgr = 9999 BREAK BY btUmsatz.Knr BY btUmsatz.Wgr : iAnzKunde = iAnzKunde + 1. cTitel = DYNAMIC-FUNCTION('getAdressAnzeige':U, btUmsatz.Knr) NO-ERROR. PUT CONTROL '££' STRING(btUmsatz.Knr,'999999') '£' cTitel '£££'. Ma_Vj = 0. Ma_Lf = 0. IF btUmsatz.Ep_Vj <> 0 AND btUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (btUmsatz.Ep_Vj * 100 / btUmsatz.Vp_Vj). IF btUmsatz.Ep_Lf <> 0 AND btUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (btUmsatz.Ep_Lf * 100 / btUmsatz.Vp_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: ASSIGN btUmsatz.Li_Lf = btUmsatz.Li_Lf / 100 btUmsatz.Li_Vj = btUmsatz.Li_Vj / 100 btUmsatz.Gr_Li_Lf = btUmsatz.Gr_Li_Lf / 100 btUmsatz.Gr_Li_Vj = btUmsatz.Gr_Li_Vj / 100. END. cZeile = ''. cZeile = TRIM(STRING(btUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF btUmsatz.Gr_Me_Lf <> 0 OR btUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(btUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(btUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(btUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(btUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. END. DYNAMIC-FUNCTION('GesamtTotal':U) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_VERBAND gDebitorumsatz PROCEDURE AUSGABE_VERBAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE hvUmsatz AS HANDLE NO-UNDO. DEFINE VARIABLE htUmsatz AS HANDLE NO-UNDO. ASSIGN htUmsatz = TEMP-TABLE tUmsatz:DEFAULT-BUFFER-HANDLE hvUmsatz = TEMP-TABLE vUmsatz:DEFAULT-BUFFER-HANDLE. EMPTY TEMP-TABLE vUmsatz. hvUmsatz:COPY-TEMP-TABLE(htUmsatz). EMPTY TEMP-TABLE tUmsatz. FOR EACH vUmsatz NO-LOCK WHERE vUmsatz.RecArt >= 'K': CREATE tUmsatz. BUFFER-COPY vUmsatz EXCEPT RecArt TO tUmsatz. CASE vUmsatz.RecArt: WHEN 'K' THEN tUmsatz.RecArt = 'A'. WHEN 'L' THEN tUmsatz.RecArt = 'B'. WHEN 'M' THEN tUmsatz.RecArt = 'C'. WHEN 'N' THEN tUmsatz.RecArt = 'D'. WHEN 'O' THEN tUmsatz.RecArt = 'E'. WHEN 'P' THEN tUmsatz.RecArt = 'F'. WHEN 'Q' THEN tUmsatz.RecArt = 'G'. END CASE. END. PUT CONTROL '£' CHR(10) '£' CHR(10) 'Verbandstotale' CHR(10) '£' CHR(10). RUN AUSGABE ( 3 ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gDebitorumsatz PROCEDURE BEREINIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE i AS INTEGER 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 CREATE_tUmsatz gDebitorumsatz PROCEDURE CREATE_tUmsatz : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipHerk AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipZeit AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ipRecArt AS CHARACTER NO-UNDO. DEFINE VARIABLE iiKnr AS INTEGER INIT 9999999 NO-UNDO. DEFINE VARIABLE iiHerst AS INTEGER INIT 9999999 NO-UNDO. DEFINE VARIABLE iWgr AS INTEGER INIT 9999 NO-UNDO. DEFINE VARIABLE iPgr AS INTEGER INIT 9999 NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER INIT 9999999 NO-UNDO. DEFINE VARIABLE iInhalt AS INTEGER INIT 9999 NO-UNDO. DEFINE VARIABLE iJahr AS INTEGER INIT 9999 NO-UNDO. CASE ipRecArt: WHEN 'A' THEN DO: /* Artikeltotal */ ASSIGN iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr) iiHerst = iHerst iWgr = bArtst.Wg_Grp iArtnr = bArtst.Artnr iInhalt = bArtst.Inhalt iJahr = bArtst.Jahr. IF T_ProdTot THEN iPgr = bArtst.Prod_Grp. END. WHEN 'B' THEN DO: /* Produktetotal */ ASSIGN iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr) iiHerst = iHerst iWgr = bArtst.Wg_Grp iPgr = bArtst.Prod_Grp. END. WHEN 'C' THEN DO: /* Warengruppentotal */ ASSIGN iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr) iiHerst = iHerst iWgr = bArtst.Wg_Grp. END. WHEN 'D' THEN DO: /* Herstellertotal */ ASSIGN iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr) iiHerst = iHerst. END. WHEN 'E' THEN DO: /* Kundentotal */ ASSIGN iiKnr = (IF T_Hersteller THEN iHerst ELSE UmsKnr). END. WHEN 'F' THEN DO: /* Gesamttotal */ END. WHEN 'G' THEN DO: /* Warengruppentotale */ ASSIGN iiKnr = 999999 iWgr = bArtst.Wg_Grp. RUN WRITE_tUmsatz ( ipHerk , ipZeit , ipRecArt, iiKnr , iiHerst , iWgr , iPgr , iArtnr , iInhalt , iJahr ). ASSIGN iArtnr = bArtst.Artnr iInhalt = bArtst.Inhalt iJahr = bArtst.Jahr. END. /* VERBANDSGRUPPEN */ WHEN 'K' THEN DO: /* Artikeltotal */ ASSIGN iiKnr = bDebst.Verband_Grp iiHerst = iHerst iWgr = bArtst.Wg_Grp iArtnr = bArtst.Artnr iInhalt = bArtst.Inhalt iJahr = bArtst.Jahr. IF T_ProdTot THEN iPgr = bArtst.Prod_Grp. END. WHEN 'L' THEN DO: /* Produktetotal */ ASSIGN iiKnr = bDebst.Verband_Grp iiHerst = iHerst iWgr = bArtst.Wg_Grp iPgr = bArtst.Prod_Grp. END. WHEN 'M' THEN DO: /* Warengruppentotal */ ASSIGN iiKnr = bDebst.Verband_Grp iiHerst = iHerst iWgr = bArtst.Wg_Grp. END. WHEN 'N' THEN DO: /* Herstellertotal */ ASSIGN iiKnr = bDebst.Verband_Grp iiHerst = iHerst. END. WHEN 'O' THEN DO: /* Verbandstotal */ ASSIGN iiKnr = bDebst.Verband_Grp. END. WHEN 'P' THEN DO: /* Gesamttotal */ END. WHEN 'Q' THEN DO: /* Warengruppentotale */ ASSIGN iiKnr = 999999 iWgr = bArtst.Wg_Grp. RUN WRITE_tUmsatz ( ipHerk , ipZeit , ipRecArt, iiKnr , iiHerst , iWgr , iPgr , iArtnr , iInhalt , iJahr ). ASSIGN iArtnr = bArtst.Artnr iInhalt = bArtst.Inhalt iJahr = bArtst.Jahr. END. END CASE. RUN WRITE_tUmsatz ( ipHerk , ipZeit , ipRecArt, iiKnr , iiHerst , iWgr , iPgr , iArtnr , iInhalt , iJahr ). IF iVerband = 999999 THEN RETURN ''. CASE ipRecArt: WHEN 'A' THEN ipRecArt = 'K'. WHEN 'B' THEN ipRecArt = 'L'. WHEN 'C' THEN ipRecArt = 'M'. WHEN 'D' THEN ipRecArt = 'N'. WHEN 'E' THEN ipRecArt = 'O'. WHEN 'F' THEN ipRecArt = 'P'. WHEN 'G' THEN ipRecArt = 'Q'. OTHERWISE RETURN ''. END CASE. RUN CREATE_tUmsatz ( ipHerk, ipZeit, ipRecArt ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gDebitorumsatz _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 gDebitorumsatz. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gDebitorumsatz PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: cInstallation = DYNAMIC-FUNCTION('getInstallation':U ) NO-ERROR. RUN COMBO_VERTRETER ( INPUT CB_Vertreter:HANDLE ). cString = CB_Vertreter:LIST-ITEM-PAIRS. IF cString <> '' THEN cString = cString + ';'. cString = cString + 'Alle Vertreter;999999'. CB_Vertreter:LIST-ITEM-PAIRS = cString. CB_Vertreter:SCREEN-VALUE = '999999'. RUN COMBO_VERBAND ( INPUT CB_Verband:HANDLE ). cString = CB_Verband:LIST-ITEM-PAIRS. IF cString <> '' THEN cString = cString + ';'. cString = cString + 'Alle Verbände (999999);999999'. CB_Verband:LIST-ITEM-PAIRS = cString. CB_Verband:SCREEN-VALUE = '999999'. RUN COMBO_SUBVERBAND ( INPUT CB_Subverband:HANDLE, CB_Verband:SCREEN-VALUE ). cString = CB_Subverband:LIST-ITEM-PAIRS. IF cString <> '' THEN cString = cString + ';'. cString = cString + 'Alle Subverbände (999999);999999'. CB_Subverband:LIST-ITEM-PAIRS = cString. CB_Subverband:SCREEN-VALUE = '999999'. END. 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 gDebitorumsatz _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 T_NurWgr F_VonKnr F_BisKnr CB_Vertreter CB_Verband CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller 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_Gratis T_SubGrpHerst T_OffeneAuf T_Lieferadresse T_Zusatz T_ProdTot WITH FRAME gDebitorumsatz. ENABLE T_NurWgr F_VonKnr F_BisKnr CB_Vertreter CB_Verband CB_Subverband F_Kundengrp F_Preisgruppe T_Hersteller 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_Gratis T_SubGrpHerst T_OffeneAuf Btn_Cancel Btn_OK T_Lieferadresse T_Zusatz T_ProdTot RECT-12 WITH FRAME gDebitorumsatz. VIEW FRAME gDebitorumsatz. {&OPEN-BROWSERS-IN-QUERY-gDebitorumsatz} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gDebitorumsatz 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 gDebitorumsatz 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 gDebitorumsatz PROCEDURE FUELLEN_TEMPTABLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VonDat1 AS DATE NO-UNDO. DEFINE VARIABLE VonDat2 AS DATE NO-UNDO. DEFINE VARIABLE BisDat1 AS DATE NO-UNDO. DEFINE VARIABLE BisDat2 AS DATE NO-UNDO. EMPTY TEMP-TABLE tUmsatz. EMPTY TEMP-TABLE vUmsatz. 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). FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr >= F_VonKnr AND bDebst.Knr <= F_BisKnr AND ((iVer = 999999) OR (iVer <> 999999 AND bDebst.Vertr = iVer)) AND ((iVerband = 999999) OR (iVerband <> 999999 AND bDebst.Verband_Grp = iVerband)) AND ((iSubverband = 999999) OR (iSubverband <> 999999 AND bDebst.Subverband_Grp = iSubverband)) , EACH bArtbw NO-LOCK USE-INDEX Artbw-k10 WHERE bArtbw.Firma = bDebst.Firma AND bArtbw.Knr = bDebst.Knr AND bArtbw.Fak_Dat <> ? AND bArtbw.Fak_Dat >= VonDat1 AND bArtbw.Fak_Dat <= BisDat1 AND bArtbw.Artnr >= F_VonArtnr AND bArtbw.Artnr <= F_BisArtnr AND bArtbw.Menge <> 0 AND bArtbw.Tr_Art <= 10 AND ((T_Gratis) OR (NOT T_Gratis AND bArtbw.Preis <> 0)), FIRST bArtst NO-LOCK USE-INDEX Artst-k1 WHERE bArtst.Firma = bArtbw.Firma AND bArtst.Artnr = bArtbw.Artnr AND bArtst.Inhalt = bArtbw.Inhalt AND bArtst.Jahr = bArtbw.Jahr BREAK BY bDebst.Knr BY bArtst.Artnr BY bArtst.Inhalt BY bArtst.Jahr : IF F_Kundengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT. END. IF F_Preisgruppe = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT. END. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. IF T_Lieferadresse THEN DO: UmsKnr = bDebst.Knr. END. ELSE DO: IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak. ELSE UmsKnr = bDebst.Knr. END. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00). IF T_Hersteller THEN iHerst = bArtst.Herst. RUN CREATE_tUmsatz ( 1, 'LF', 'A' ). /* Artikel */ IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'LF', 'B' ). /* Produktegruppentotale */ RUN CREATE_tUmsatz ( 1, 'LF', 'C' ). /* Warengruppentotale */ IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'LF', 'D' ). /* Herstellertotale */ RUN CREATE_tUmsatz ( 1, 'LF', 'E' ). /* Kundentotale */ RUN CREATE_tUmsatz ( 1, 'LF', 'F' ). /* Gesamttotal */ RUN CREATE_tUmsatz ( 1, 'LF', 'G' ). /* WarengruppenGTotal */ END. IF T_Vorjahr THEN DO: FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr >= F_VonKnr AND bDebst.Knr <= F_BisKnr AND ((iVer = 999999) OR (iVer <> 999999 AND bDebst.Vertr = iVer)) AND ((iVerband = 999999) OR (iVerband <> 999999 AND bDebst.Verband_Grp = iVerband)) AND ((iSubverband = 999999) OR (iSubverband <> 999999 AND bDebst.Subverband_Grp = iSubverband)) , EACH bArtbw NO-LOCK USE-INDEX Artbw-k10 WHERE bArtbw.Firma = bDebst.Firma AND bArtbw.Knr = bDebst.Knr AND bArtbw.Fak_Dat <> ? AND bArtbw.Fak_Dat >= VonDat2 AND bArtbw.Fak_Dat <= BisDat2 AND bArtbw.Artnr >= F_VonArtnr AND bArtbw.Artnr <= F_BisArtnr AND bArtbw.Menge <> 0 AND bArtbw.Tr_Art <= 10 AND ((T_Gratis) OR (NOT T_Gratis AND bArtbw.Preis <> 0)), FIRST bArtst NO-LOCK USE-INDEX Artst-k1 WHERE bArtst.Firma = bArtbw.Firma AND bArtst.Artnr = bArtbw.Artnr AND bArtst.Inhalt = bArtbw.Inhalt AND bArtst.Jahr = bArtbw.Jahr BREAK BY bDebst.Knr BY bArtst.Artnr BY bArtst.Inhalt BY bArtst.Jahr : IF F_Kundengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT. END. IF F_Preisgruppe = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT. END. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. IF T_Lieferadresse THEN DO: UmsKnr = bDebst.Knr. END. ELSE DO: IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak. ELSE UmsKnr = bDebst.Knr. END. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00). IF T_Hersteller THEN iHerst = bArtst.Herst. RUN CREATE_tUmsatz ( 1, 'VJ', 'A' ). /* Artikel */ IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'B' ). /* Produktegruppentotale */ RUN CREATE_tUmsatz ( 1, 'VJ', 'C' ). /* Warengruppentotale */ IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'D' ). /* Herstellertotale */ RUN CREATE_tUmsatz ( 1, 'VJ', 'E' ). /* Kundentotale */ RUN CREATE_tUmsatz ( 1, 'VJ', 'F' ). /* Gesamttotal */ RUN CREATE_tUmsatz ( 1, 'VJ', 'G' ). /* WarengruppenGTotal */ END. END. IF T_OffeneAuf THEN DO: RUN SAMMELN_AUFTRAEGE ( VonDat1, BisDat1 ). END. IF iVerband < 999999 THEN DO: RUN VERBAND. END. IF T_Hersteller THEN RETURN. FOR EACH tUmsatz: FIND FIRST vUmsatz USE-INDEX tUmsatz-k1 WHERE vUmsatz.Knr = iVerband AND vUmsatz.Wgr = tUmsatz.Wgr AND vUmsatz.Pgr = tUmsatz.Pgr AND vUmsatz.Artnr = tUmsatz.Artnr AND vUmsatz.Inhalt = tUmsatz.Inhalt AND vUmsatz.Jahr = tUmsatz.Jahr NO-ERROR. IF NOT AVAILABLE vUmsatz THEN DO: CREATE vUmsatz. ASSIGN vUmsatz.Knr = iVerband vUmsatz.Wgr = tUmsatz.Wgr vUmsatz.Pgr = tUmsatz.Pgr vUmsatz.Artnr = tUmsatz.Artnr vUmsatz.Inhalt = tUmsatz.Inhalt vUmsatz.Jahr = tUmsatz.Jahr vUmsatz.Ep_Lf = 0 vUmsatz.Ep_Vj = 0 vUmsatz.Vp_Lf = 0 vUmsatz.Vp_Vj = 0 vUmsatz.Me_Lf = 0 vUmsatz.Me_Vj = 0 vUmsatz.Li_Lf = 0 vUmsatz.Li_Vj = 0 vUmsatz.Gr_Ep_Lf = 0 vUmsatz.Gr_Ep_Vj = 0 vUmsatz.Gr_Vp_Lf = 0 vUmsatz.Gr_Vp_Vj = 0 vUmsatz.Gr_Me_Lf = 0 vUmsatz.Gr_Me_Vj = 0 vUmsatz.Gr_Li_Lf = 0 vUmsatz.Gr_Li_Vj = 0 vUmsatz.KGeb_Cd = tUmsatz.KGeb_Cd vUmsatz.Alk% = tUmsatz.Alk%. END. ASSIGN vUmsatz.Ep_Lf = vUmsatz.Ep_Lf + tUmsatz.Ep_Lf vUmsatz.Vp_Lf = vUmsatz.Vp_Lf + tUmsatz.Vp_Lf vUmsatz.Me_Lf = vUmsatz.Me_Lf + tUmsatz.Me_Lf vUmsatz.Li_Lf = vUmsatz.Li_Lf + tUmsatz.Li_Lf vUmsatz.Ep_Vj = vUmsatz.Ep_Vj + tUmsatz.Ep_Vj vUmsatz.Vp_Vj = vUmsatz.Vp_Vj + tUmsatz.Vp_Vj vUmsatz.Me_Vj = vUmsatz.Me_Vj + tUmsatz.Me_Vj vUmsatz.Li_Vj = vUmsatz.Li_Vj + tUmsatz.Li_Vj vUmsatz.Gr_Ep_Lf = vUmsatz.Gr_Ep_Lf + tUmsatz.Gr_Ep_Lf vUmsatz.Gr_Vp_Lf = vUmsatz.Gr_Vp_Lf + tUmsatz.Gr_Vp_Lf vUmsatz.Gr_Me_Lf = vUmsatz.Gr_Me_Lf + tUmsatz.Gr_Me_Lf vUmsatz.Gr_Li_Lf = vUmsatz.Gr_Li_Lf + tUmsatz.Gr_Li_Lf vUmsatz.Gr_Ep_Vj = vUmsatz.Gr_Ep_Vj + tUmsatz.Gr_Ep_Vj vUmsatz.Gr_Vp_Vj = vUmsatz.Gr_Vp_Vj + tUmsatz.Gr_Vp_Vj vUmsatz.Gr_Me_Vj = vUmsatz.Gr_Me_Vj + tUmsatz.Gr_Me_Vj vUmsatz.Gr_Li_Vj = vUmsatz.Gr_Li_Vj + tUmsatz.Gr_Li_Vj. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_TEMPTABLE_LIEFERDATUM gDebitorumsatz PROCEDURE FUELLEN_TEMPTABLE_LIEFERDATUM : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VonDat1 AS DATE NO-UNDO. DEFINE VARIABLE VonDat2 AS DATE NO-UNDO. DEFINE VARIABLE BisDat1 AS DATE NO-UNDO. DEFINE VARIABLE BisDat2 AS DATE NO-UNDO. EMPTY TEMP-TABLE tUmsatz. EMPTY TEMP-TABLE vUmsatz. 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). FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr >= F_VonKnr AND bDebst.Knr <= F_BisKnr AND ((iVer = 999999) OR (iVer <> 999999 AND bDebst.Vertr = iVer)) AND ((iVerband = 999999) OR (iVerband <> 999999 AND bDebst.Verband_Grp = iVerband)) AND ((iSubverband = 999999) OR (iSubverband <> 999999 AND bDebst.Subverband_Grp = iSubverband)) , EACH bArtbw NO-LOCK USE-INDEX Artbw-k10 WHERE bArtbw.Firma = bDebst.Firma AND bArtbw.Knr = bDebst.Knr AND bArtbw.Datum >= VonDat1 AND bArtbw.Datum <= BisDat1 AND bArtbw.Artnr >= F_VonArtnr AND bArtbw.Artnr <= F_BisArtnr AND bArtbw.Menge <> 0 AND bArtbw.Tr_Art <= 10 AND ((T_Gratis) OR (NOT T_Gratis AND bArtbw.Preis <> 0)), FIRST bArtst NO-LOCK USE-INDEX Artst-k1 WHERE bArtst.Firma = bArtbw.Firma AND bArtst.Artnr = bArtbw.Artnr AND bArtst.Inhalt = bArtbw.Inhalt AND bArtst.Jahr = bArtbw.Jahr BREAK BY bDebst.Knr BY bArtst.Artnr BY bArtst.Inhalt BY bArtst.Jahr : IF F_Kundengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT. END. IF F_Preisgruppe = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT. END. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. IF T_Lieferadresse THEN DO: UmsKnr = bDebst.Knr. END. ELSE DO: IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak. ELSE UmsKnr = bDebst.Knr. END. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00). IF T_Hersteller THEN iHerst = bArtst.Herst. RUN CREATE_tUmsatz ( 1, 'LF', 'A' ). /* Artikel */ IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'LF', 'B' ). /* Produktegruppentotale */ RUN CREATE_tUmsatz ( 1, 'LF', 'C' ). /* Warengruppentotale */ IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'LF', 'D' ). /* Herstellertotale */ RUN CREATE_tUmsatz ( 1, 'LF', 'E' ). /* Kundentotale */ RUN CREATE_tUmsatz ( 1, 'LF', 'F' ). /* Gesamttotal */ RUN CREATE_tUmsatz ( 1, 'LF', 'G' ). /* WarengruppenGTotal */ END. IF T_Vorjahr THEN DO: FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr >= F_VonKnr AND bDebst.Knr <= F_BisKnr AND ((iVer = 999999) OR (iVer <> 999999 AND bDebst.Vertr = iVer)) AND ((iVerband = 999999) OR (iVerband <> 999999 AND bDebst.Verband_Grp = iVerband)) AND ((iSubverband = 999999) OR (iSubverband <> 999999 AND bDebst.Subverband_Grp = iSubverband)) , EACH bArtbw NO-LOCK USE-INDEX Artbw-k10 WHERE bArtbw.Firma = bDebst.Firma AND bArtbw.Knr = bDebst.Knr AND bArtbw.Datum >= VonDat2 AND bArtbw.Datum <= BisDat2 AND bArtbw.Artnr >= F_VonArtnr AND bArtbw.Artnr <= F_BisArtnr AND bArtbw.Menge <> 0 AND bArtbw.Tr_Art <= 10 AND ((T_Gratis) OR (NOT T_Gratis AND bArtbw.Preis <> 0)), FIRST bAufko NO-LOCK WHERE bAufko.Firma = bArtbw.Firma AND bAufko.Aufnr = bArtbw.Aufnr AND NOT bAufko.AlsOfferte, FIRST bArtst NO-LOCK USE-INDEX Artst-k1 WHERE bArtst.Firma = bArtbw.Firma AND bArtst.Artnr = bArtbw.Artnr AND bArtst.Inhalt = bArtbw.Inhalt AND bArtst.Jahr = bArtbw.Jahr BREAK BY bDebst.Knr BY bArtst.Artnr BY bArtst.Inhalt BY bArtst.Jahr : IF F_Kundengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT. END. IF F_Preisgruppe = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT. END. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. IF T_Lieferadresse THEN DO: UmsKnr = bDebst.Knr. END. ELSE DO: IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak. ELSE UmsKnr = bDebst.Knr. END. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 00). IF T_Hersteller THEN iHerst = bArtst.Herst. RUN CREATE_tUmsatz ( 1, 'VJ', 'A' ). /* Artikel */ IF T_ProdTot THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'B' ). /* Produktegruppentotale */ RUN CREATE_tUmsatz ( 1, 'VJ', 'C' ). /* Warengruppentotale */ IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 1, 'VJ', 'D' ). /* Herstellertotale */ RUN CREATE_tUmsatz ( 1, 'VJ', 'E' ). /* Kundentotale */ RUN CREATE_tUmsatz ( 1, 'VJ', 'F' ). /* Gesamttotal */ RUN CREATE_tUmsatz ( 1, 'VJ', 'G' ). /* WarengruppenGTotal */ END. END. IF iVerband < 999999 THEN DO: RUN VERBAND. END. IF T_Hersteller THEN RETURN. FOR EACH tUmsatz: FIND FIRST vUmsatz USE-INDEX tUmsatz-k1 WHERE vUmsatz.Knr = iVerband AND vUmsatz.Wgr = tUmsatz.Wgr AND vUmsatz.Pgr = tUmsatz.Pgr AND vUmsatz.Artnr = tUmsatz.Artnr AND vUmsatz.Inhalt = tUmsatz.Inhalt AND vUmsatz.Jahr = tUmsatz.Jahr NO-ERROR. IF NOT AVAILABLE vUmsatz THEN DO: CREATE vUmsatz. ASSIGN vUmsatz.Knr = iVerband vUmsatz.Wgr = tUmsatz.Wgr vUmsatz.Pgr = tUmsatz.Pgr vUmsatz.Artnr = tUmsatz.Artnr vUmsatz.Inhalt = tUmsatz.Inhalt vUmsatz.Jahr = tUmsatz.Jahr vUmsatz.Ep_Lf = 0 vUmsatz.Ep_Vj = 0 vUmsatz.Vp_Lf = 0 vUmsatz.Vp_Vj = 0 vUmsatz.Me_Lf = 0 vUmsatz.Me_Vj = 0 vUmsatz.Li_Lf = 0 vUmsatz.Li_Vj = 0 vUmsatz.Gr_Ep_Lf = 0 vUmsatz.Gr_Ep_Vj = 0 vUmsatz.Gr_Vp_Lf = 0 vUmsatz.Gr_Vp_Vj = 0 vUmsatz.Gr_Me_Lf = 0 vUmsatz.Gr_Me_Vj = 0 vUmsatz.Gr_Li_Lf = 0 vUmsatz.Gr_Li_Vj = 0 vUmsatz.KGeb_Cd = tUmsatz.KGeb_Cd vUmsatz.Alk% = tUmsatz.Alk%. END. ASSIGN vUmsatz.Ep_Lf = vUmsatz.Ep_Lf + tUmsatz.Ep_Lf vUmsatz.Vp_Lf = vUmsatz.Vp_Lf + tUmsatz.Vp_Lf vUmsatz.Me_Lf = vUmsatz.Me_Lf + tUmsatz.Me_Lf vUmsatz.Li_Lf = vUmsatz.Li_Lf + tUmsatz.Li_Lf vUmsatz.Ep_Vj = vUmsatz.Ep_Vj + tUmsatz.Ep_Vj vUmsatz.Vp_Vj = vUmsatz.Vp_Vj + tUmsatz.Vp_Vj vUmsatz.Me_Vj = vUmsatz.Me_Vj + tUmsatz.Me_Vj vUmsatz.Li_Vj = vUmsatz.Li_Vj + tUmsatz.Li_Vj vUmsatz.Gr_Ep_Lf = vUmsatz.Gr_Ep_Lf + tUmsatz.Gr_Ep_Lf vUmsatz.Gr_Vp_Lf = vUmsatz.Gr_Vp_Lf + tUmsatz.Gr_Vp_Lf vUmsatz.Gr_Me_Lf = vUmsatz.Gr_Me_Lf + tUmsatz.Gr_Me_Lf vUmsatz.Gr_Li_Lf = vUmsatz.Gr_Li_Lf + tUmsatz.Gr_Li_Lf vUmsatz.Gr_Ep_Vj = vUmsatz.Gr_Ep_Vj + tUmsatz.Gr_Ep_Vj vUmsatz.Gr_Vp_Vj = vUmsatz.Gr_Vp_Vj + tUmsatz.Gr_Vp_Vj vUmsatz.Gr_Me_Vj = vUmsatz.Gr_Me_Vj + tUmsatz.Gr_Me_Vj vUmsatz.Gr_Li_Vj = vUmsatz.Gr_Li_Vj + tUmsatz.Gr_Li_Vj. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gDebitorumsatz PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER eh AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO. DEFINE VARIABLE rechts AS INTEGER NO-UNDO. DEFINE VARIABLE mitte AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE Breite AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE TotBre AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE DifBre AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE FHoch AS LOG 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'. FKol = TRUE. IF NOT T_Vorjahr THEN DO: FKol[12] = FALSE. FKol[13] = FALSE. FKol[14] = FALSE. FKol[15] = FALSE. FKol[16] = FALSE. END. IF NOT T_Menge THEN ASSIGN FKol[07] = FALSE FKol[12] = FALSE. IF NOT T_Liter THEN ASSIGN FKol[08] = FALSE FKol[13] = 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 16: IF FKol[i1] THEN rechts = 64 + i1. END. mitte = 69. IF AnzKol > 2 THEN mitte = 70. IF AnzKol > 5 THEN mitte = 71. IF AnzKol > 8 THEN mitte = 72. IF AnzKol > 11 THEN mitte = 73. Breite = 0. TotBre = 0. DO i1 = 1 TO 16. 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:VALUE = Steuer.Firma1. Zelle = CHR(mitte) + '1'. eh:Range(Zelle):Select. eh:Selection:VALUE = 'Debitor-Umsätze (' + cVer + ')'. Zelle = 'Q1'. eh:Range(Zelle):Select. eh:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'B2'. eh:Range(Zelle):Select. eh:Selection:VALUE = Steuer.Ort. Zelle = CHR(mitte) + '2'. eh:Range(Zelle):Select. eh:Selection:VALUE = STRING(F_VonDatum,'99.99.9999') + ' - ' + STRING(F_BisDatum,'99.99.9999'). Zelle = 'Q2'. eh:Range(Zelle):Select. eh:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). Zelle = CHR(mitte) + '1:' + CHR(mitte) + '2'. eh:Range(Zelle):Select. eh:Selection:HorizontalAlignment = -4108. DO i1 = 1 TO 16: eh:Range('A1'):Select. Zelle = CHR(64 + i1) + ':' + CHR(64 + i1). eh:COLUMNS(Zelle):Select. IF FKol[i1] THEN eh:Selection:EntireColumn:HIDDEN = FALSE. ELSE DO: eh:Selection:ClearContents. eh:SELECTION:EntireColumn:HIDDEN = TRUE. END. IF NOT FKol[i1] THEN NEXT. Breite = DECIMAL(ENTRY(i1, bKol, ';')). IF i1 > 6 THEN Breite = Breite + DifBre. eh:Selection:ColumnWidth = Breite. IF i1 = 08 AND T_Hl THEN eh:Selection:NumberFormat = "0.00". IF i1 = 13 AND T_Hl THEN eh:Selection:NumberFormat = "0.00". END. IF FHoch THEN eh:ActiveSheet:PageSetup:ORIENTATION = 1. eh:Range('G3:K3'):Select. eh:Selection:MergeCells = TRUE. eh:Range('G3'):Select. eh:Selection:Value = 'aktive Periode'. eh:Range('L3:P3'):Select. eh:Selection:MergeCells = TRUE. eh:Range('L3'):Select. eh:Selection:Value = 'Vorperiode'. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_FEHLWERTE gDebitorumsatz PROCEDURE LESEN_FEHLWERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cVal AS CHARACTER NO-UNDO. DEFINE VARIABLE cKey AS CHARACTER NO-UNDO. DEFINE VARIABLE i AS INTEGER NO-UNDO. DEFINE VARIABLE cWert AS CHARACTER 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_Kundengrp :SCREEN-VALUE = cWert NO-ERROR. WHEN 4 THEN F_VonArtnr :SCREEN-VALUE = cWert NO-ERROR. WHEN 5 THEN F_BisArtnr :SCREEN-VALUE = cWert NO-ERROR. WHEN 6 THEN F_Hersteller :SCREEN-VALUE = cWert NO-ERROR. WHEN 7 THEN F_Warengrp :SCREEN-VALUE = cWert NO-ERROR. WHEN 8 THEN F_VonDatum :SCREEN-VALUE = cWert NO-ERROR. WHEN 9 THEN F_BisDatum :SCREEN-VALUE = cWert NO-ERROR. WHEN 10 THEN T_Menge :SCREEN-VALUE = cWert NO-ERROR. WHEN 11 THEN T_Liter :SCREEN-VALUE = cWert NO-ERROR. WHEN 12 THEN T_HL :SCREEN-VALUE = cWert NO-ERROR. WHEN 13 THEN T_EP :SCREEN-VALUE = cWert NO-ERROR. WHEN 14 THEN T_VP :SCREEN-VALUE = cWert NO-ERROR. WHEN 15 THEN T_Marge :SCREEN-VALUE = cWert NO-ERROR. WHEN 16 THEN T_Vorjahr :SCREEN-VALUE = cWert NO-ERROR. WHEN 17 THEN CB_Vertreter :SCREEN-VALUE = cWert NO-ERROR. WHEN 18 THEN CB_Verband :SCREEN-VALUE = cWert NO-ERROR. WHEN 19 THEN F_Preisgruppe :SCREEN-VALUE = cWert NO-ERROR. WHEN 20 THEN T_Gratis :SCREEN-VALUE = cWert NO-ERROR. WHEN 21 THEN CB_Subverband :SCREEN-VALUE = cWert NO-ERROR. WHEN 22 THEN T_Lieferadresse :SCREEN-VALUE = cWert NO-ERROR. WHEN 23 THEN T_OffeneAuf :SCREEN-VALUE = cWert NO-ERROR. WHEN 24 THEN T_Zusatz :SCREEN-VALUE = cWert NO-ERROR. WHEN 25 THEN T_ProdTot :SCREEN-VALUE = cWert NO-ERROR. WHEN 26 THEN T_SubGrpHerst :SCREEN-VALUE = cWert NO-ERROR. WHEN 27 THEN T_NurWgr :SCREEN-VALUE = cWert NO-ERROR. WHEN 28 THEN T_Hersteller :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 gDebitorumsatz PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE ja AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. RUN BEREINIGEN ( INPUT F_Kundengrp :HANDLE ). RUN BEREINIGEN ( INPUT F_Preisgruppe:HANDLE ). 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_VonKnr = 0 THEN F_VonKnr = 1. IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999. IF F_VonArtnr > F_BisArtnr THEN F_BisArtnr = F_VonArtnr. IF F_VonArtnr = 0 THEN F_VonArtnr = 1. 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. iVer = INTEGER(CB_Vertreter:SCREEN-VALUE). cVer = CB_Vertreter:LIST-ITEM-PAIRS. i1 = LOOKUP(CB_Vertreter:SCREEN-VALUE, cVer, ';') - 1. cVer = ENTRY(i1, cVer, ';'). iVerband = INTEGER(CB_Verband:SCREEN-VALUE). cVerband = CB_Verband:LIST-ITEM-PAIRS. i1 = LOOKUP(CB_Verband:SCREEN-VALUE, cVerband, ';') - 1. cVerband = ENTRY(i1, cVerband, ';'). iSubverband = INTEGER(CB_Subverband:SCREEN-VALUE). cSubverband = CB_Subverband:LIST-ITEM-PAIRS. i1 = LOOKUP(CB_Subverband:SCREEN-VALUE, cSubverband, ';') - 1. cSubverband = ENTRY(i1, cSubverband, ';'). DISPLAY {&List-6}. RUN SCHREIBEN_FEHLWERTE. IF T_Menge THEN AnzKol = AnzKol + 1. IF T_Liter THEN AnzKol = AnzKol + 1. IF T_Ep THEN AnzKol = AnzKol + 1. IF T_Vp THEN AnzKol = AnzKol + 1. IF T_Marge THEN AnzKol = AnzKol + 1. IF T_Vorjahr THEN AnzKol = AnzKol * 2. IF AnzKol = 0 THEN RETURN NO-APPLY. END. CASE cInstallation: WHEN 'realwines' THEN RUN FUELLEN_TEMPTABLE_LIEFERDATUM. OTHERWISE RUN FUELLEN_TEMPTABLE. END CASE. FOR EACH tUmsatz: IF tUmsatz.Me_Lf <> 0 THEN NEXT. IF tUmsatz.Me_Vj <> 0 THEN NEXT. IF tUmsatz.Li_Lf <> 0 THEN NEXT. IF tUmsatz.Li_Vj <> 0 THEN NEXT. IF tUmsatz.Ep_Lf <> 0 THEN NEXT. IF tUmsatz.Ep_Vj <> 0 THEN NEXT. IF tUmsatz.Vp_Lf <> 0 THEN NEXT. IF tUmsatz.Vp_Vj <> 0 THEN NEXT. IF tUmsatz.Gr_Me_Lf <> 0 THEN NEXT. IF tUmsatz.Gr_Me_Vj <> 0 THEN NEXT. IF tUmsatz.Gr_Li_Lf <> 0 THEN NEXT. IF tUmsatz.Gr_Li_Vj <> 0 THEN NEXT. IF tUmsatz.Gr_Ep_Lf <> 0 THEN NEXT. IF tUmsatz.Gr_Ep_Vj <> 0 THEN NEXT. IF tUmsatz.Gr_Vp_Lf <> 0 THEN NEXT. IF tUmsatz.Gr_Vp_Vj <> 0 THEN NEXT. DELETE tUmsatz. END. 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 = 'DebUmsDet.xls'. cDokument = 'DebUmsDet.xls'. cDaten = 'DebUmsDet.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). IF T_Hersteller THEN RUN AUSGABE_HERSTELLER. ELSE RUN AUSGABE ( 1 ). IF T_Zusatz THEN DO: PUT CONTROL '£' CHR(10) '£' CHR(10). lTotale = TRUE. RUN AUSGABE_TOTALE. END. IF iVerband <> 999999 THEN DO: RUN AUSGABE_VERBAND. END. 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 SAMMELN_AUFTRAEGE gDebitorumsatz PROCEDURE SAMMELN_AUFTRAEGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipvonDatum1 AS DATE NO-UNDO. DEFINE INPUT PARAMETER ipBisDatum1 AS DATE NO-UNDO. FOR EACH bDebst NO-LOCK USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr >= F_VonKnr AND bDebst.Knr <= F_BisKnr AND ((iVer = 999999) OR (iVer <> 999999 AND bDebst.Vertr = iVer)) AND ((iVerband = 999999) OR (iVerband <> 999999 AND bDebst.Verband_Grp = iVerband)) AND ((iSubverband = 999999) OR (iSubverband <> 999999 AND bDebst.Subverband_Grp = iSubverband)) , EACH bAufko NO-LOCK WHERE bAufko.Firma = bDebst.Firma AND bAufko.Knr = bDebst.Knr AND NOT bAufko.AlsOfferte AND bAufko.Lief_Datum >= ipvonDatum1 AND bAufko.Lief_Datum <= ipbisDatum1, EACH bAufze NO-LOCK WHERE bAufze.Firma = bAufko.Firma AND bAufze.Aufnr = bAufko.Aufnr AND bAufze.Artnr >= F_VonArtnr AND bAufze.Artnr <= F_BisArtnr AND bAufze.MBest <> 0 AND ((T_Gratis) OR (NOT T_Gratis AND bAufze.Preis <> 0)), FIRST bArtst NO-LOCK WHERE bArtst.Firma = bAufze.Firma AND bArtst.Artnr = bAufze.Artnr AND bArtst.Inhalt = bAufze.Inhalt AND bArtst.Jahr = bAufze.Jahr BREAK BY bDebst.Knr BY bArtst.Artnr BY bArtst.Inhalt BY bArtst.Jahr : IF F_Kundengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Ku_Grp,'999'), F_Kundengrp, ',') = 0 THEN NEXT. END. IF F_Preisgruppe = '' THEN. ELSE DO: IF LOOKUP(STRING(bDebst.Preis_Grp,'999'), F_Preisgruppe, ',') = 0 THEN NEXT. END. IF F_Hersteller = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Hersteller, ',') = 0 THEN NEXT. END. IF F_Warengrp = '' THEN. ELSE DO: IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Warengrp , ',') = 0 THEN NEXT. END. IF T_Lieferadresse THEN DO: UmsKnr = bDebst.Knr. END. ELSE DO: IF bDebst.KnrFak <> 0 THEN UmsKnr = bDebst.KnrFak. ELSE UmsKnr = bDebst.Knr. END. iHerst = (IF T_SubGrpHerst THEN bArtst.Herst ELSE 0). IF T_Hersteller THEN iHerst = bArtst.Herst. RUN CREATE_tUmsatz ( 2, 'LF', 'A' ). /* Artikel */ IF T_ProdTot THEN RUN CREATE_tUmsatz ( 2, 'LF', 'B' ). /* Produktegruppentotale */ RUN CREATE_tUmsatz ( 2, 'LF', 'C' ). /* Warengruppentotale */ IF T_SubGrpHerst THEN RUN CREATE_tUmsatz ( 2, 'LF', 'D' ). /* Herstellertotale */ RUN CREATE_tUmsatz ( 2, 'LF', 'E' ). /* Kundentotale */ RUN CREATE_tUmsatz ( 2, 'LF', 'F' ). /* Gesamttotal */ END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHREIBEN_FEHLWERTE gDebitorumsatz PROCEDURE SCHREIBEN_FEHLWERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cVal AS CHARACTER NO-UNDO. DEFINE VARIABLE cKey AS CHARACTER 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_Kundengrp :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 + '@' + CB_Vertreter :SCREEN-VALUE + '@' + CB_Verband :SCREEN-VALUE + '@' + F_Preisgruppe :SCREEN-VALUE + '@' + T_Gratis :SCREEN-VALUE + '@' + CB_Subverband :SCREEN-VALUE + '@' + T_Lieferadresse:SCREEN-VALUE + '@' + T_OffeneAuf :SCREEN-VALUE + '@' + T_Zusatz :SCREEN-VALUE + '@' + T_ProdTot :SCREEN-VALUE + '@' + T_SubGrpHerst :SCREEN-VALUE + '@' + T_NurWgr :SCREEN-VALUE + '@' + T_Hersteller :SCREEN-VALUE + '@' . PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cVal. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERBAND gDebitorumsatz PROCEDURE VERBAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ /* DEF VAR hvUmsatz AS HANDLE NO-UNDO. */ /* DEF VAR htUmsatz AS HANDLE NO-UNDO. */ /* */ /* ASSIGN htUmsatz = TEMP-TABLE tUmsatz:DEFAULT-BUFFER-HANDLE */ /* hvUmsatz = TEMP-TABLE vUmsatz:DEFAULT-BUFFER-HANDLE. */ /* EMPTY TEMP-TABLE vUmsatz. */ /* hvUmsatz:COPY-TEMP-TABLE(htUmsatz). */ /* EMPTY TEMP-TABLE tUmsatz. */ /* */ /* FOR EACH vUmsatz NO-LOCK */ /* WHERE vUmsatz.RecArt = 'A', */ /* FIRST bDebst NO-LOCK */ /* WHERE bDebst.Firma = Firma */ /* AND bDebst.Knr = vUmsatz.Knr */ /* AND bDebst.Artnr > 0, */ /* FIRST bArtst NO-LOCK */ /* WHERE bArtst.Firma = */ /* END. */ /* WHERE tUmsatz */ /* */ /* END. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WRITE_tUmsatz gDebitorumsatz PROCEDURE WRITE_tUmsatz : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipiHerk AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipcZeit AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ipcRecArt AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER ipiKnr AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipiHerst AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipiWgr AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipiPgr AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipiArtnr AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipiInhalt AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipiJahr AS INTEGER NO-UNDO. DEFINE VARIABLE MWST% AS DECIMAL NO-UNDO. DEFINE VARIABLE lMwstIncl AS LOG NO-UNDO. DEFINE VARIABLE Ep AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE Vp AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE nMenge AS DECIMAL INIT 0 NO-UNDO. DEFINE VARIABLE nLiter AS DECIMAL INIT 0 DECIMALS 3 NO-UNDO. DEFINE VARIABLE nPreis AS DECIMAL INIT 0 NO-UNDO. FIND FIRST tUmsatz WHERE tUmsatz.RecArt = ipcRecArt AND tUmsatz.Knr = ipiKnr AND tUmsatz.Herst = ipiHerst AND tUmsatz.Wgr = ipiWgr AND tUmsatz.Pgr = ipiPgr AND tUmsatz.Artnr = ipiArtnr AND tUmsatz.Inhalt = ipiInhalt AND tUmsatz.Jahr = ipiJahr NO-ERROR. IF NOT AVAILABLE tUmsatz THEN DO: CREATE tUmsatz. ASSIGN tUmsatz.RecArt = ipcRecArt tUmsatz.Knr = ipiKnr tUmsatz.Herst = ipiHerst tUmsatz.Wgr = ipiWgr tUmsatz.Pgr = ipiPgr tUmsatz.Artnr = ipiArtnr tUmsatz.Inhalt = ipiInhalt tUmsatz.Jahr = ipiJahr tUmsatz.Ep_Lf = 0 tUmsatz.Ep_Vj = 0 tUmsatz.Vp_Lf = 0 tUmsatz.Vp_Vj = 0 tUmsatz.Me_Lf = 0 tUmsatz.Me_Vj = 0 tUmsatz.Li_Lf = 0 tUmsatz.Li_Vj = 0 tUmsatz.Gr_Ep_Lf = 0 tUmsatz.Gr_Ep_Vj = 0 tUmsatz.Gr_Vp_Lf = 0 tUmsatz.Gr_Vp_Vj = 0 tUmsatz.Gr_Me_Lf = 0 tUmsatz.Gr_Me_Vj = 0 tUmsatz.Gr_Li_Lf = 0 tUmsatz.Gr_Li_Vj = 0 tUmsatz.KGeb_Cd = bArtst.KGeb_Cd tUmsatz.Alk% = bArtst.Alk_Gehalt. END. CASE ipiHerk: WHEN 1 THEN DO: ASSIGN nMenge = bArtbw.Menge nLiter = bArtbw.Liter nPreis = bArtbw.Preis MWST% = bArtbw.MWST% lMwstIncl = bArtbw.MWSt_Inkl Ep = bArtbw.EP * bArtbw.Menge Vp = bArtbw.Net_Betr - bArtbw.Auf_Rab - bArtbw.Abh_Rab - bArtbw.Auf_Sp_Rab. END. WHEN 2 THEN DO: ASSIGN nMenge = bAufze.MBest nLiter = bAufze.Liter nPreis = bAufze.Preis MWST% = bAufze.MWST% lMwstIncl = bAufze.MWSt_Inkl Ep = bAufze.EP * bAufze.MBest Vp = bAufze.Net_Betr - bAufze.Auf_Rab - bAufze.Abh_Rab - bAufze.Auf_Sp_Rab. END. END CASE. IF Ep = ? THEN Ep = nMenge * bArtst.DEP. IF Ep = 0 THEN Ep = nMenge * bArtst.DEP. IF Ep = ? THEN Ep = nMenge * bArtst.LEP. IF Ep = 0 THEN Ep = nMenge * bArtst.LEP. IF Ep = ? THEN Ep = nMenge * bArtst.Listen_EP. IF Ep = 0 THEN Ep = nMenge * bArtst.Listen_EP. IF Ep = ? THEN Ep = Vp * 0.78. IF lMWSTIncl THEN Vp = Vp * 100 / (100 + MWST%). CASE ipcZeit: WHEN 'LF' THEN DO: ASSIGN tUmsatz.Ep_Lf = tUmsatz.Ep_Lf + Ep tUmsatz.Vp_Lf = tUmsatz.Vp_Lf + Vp tUmsatz.Me_Lf = tUmsatz.Me_Lf + nMenge tUmsatz.Li_Lf = tUmsatz.Li_Lf + nLiter. IF nPreis = 0 THEN ASSIGN tUmsatz.Gr_Ep_Lf = tUmsatz.Gr_Ep_Lf + Ep tUmsatz.Gr_Vp_Lf = tUmsatz.Gr_Vp_Lf + Vp tUmsatz.Gr_Me_Lf = tUmsatz.Gr_Me_Lf + nMenge tUmsatz.Gr_Li_Lf = tUmsatz.Gr_Li_Lf + nLiter. END. WHEN 'VJ' THEN DO: ASSIGN tUmsatz.Ep_Vj = tUmsatz.Ep_Vj + Ep tUmsatz.Vp_Vj = tUmsatz.Vp_Vj + Vp tUmsatz.Me_Vj = tUmsatz.Me_Vj + nMenge tUmsatz.Li_Vj = tUmsatz.Li_Vj + nLiter. IF nPreis = 0 THEN ASSIGN tUmsatz.Gr_Ep_Vj = tUmsatz.Gr_Ep_Vj + Ep tUmsatz.Gr_Vp_Vj = tUmsatz.Gr_Vp_Vj + Vp tUmsatz.Gr_Me_Vj = tUmsatz.Gr_Me_Vj + nMenge tUmsatz.Gr_Li_Vj = tUmsatz.Gr_Li_Vj + nLiter. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION GesamtTotal gDebitorumsatz FUNCTION GesamtTotal RETURNS CHARACTER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER ttUmsatz FOR tUmsatz. IF iAnzKunde < 2 THEN RETURN ''. FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'F' AND ttUmsatz.Knr = 9999999 AND ttUmsatz.Wgr = 9999 AND ttUmsatz.Pgr = 9999 AND ttUmsatz.Herst = 9999999. Ma_Vj = 0. Ma_Lf = 0. IF ttUmsatz.Ep_Vj <> 0 AND ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj). IF ttUmsatz.Ep_Lf <> 0 AND ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_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: ASSIGN ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100 ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100 ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100 ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100. END. PUT CONTROL 'Gesamttotal ££££££'. cZeile = ''. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF ttUmsatz.Gr_Me_Lf <> 0 OR ttUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. RETURN ''. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION HerstellerHerstSchluss gDebitorumsatz FUNCTION HerstellerHerstSchluss RETURNS CHARACTER ( ipcAdresse AS CHARACTER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER ttUmsatz FOR tUmsatz. FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'E' AND ttUmsatz.Knr = btUmsatz.Herst AND ttUmsatz.Wgr = 9999 AND ttUmsatz.Pgr = 9999 AND ttUmsatz.Herst = 9999999. PUT CONTROL '£' CHR(10). Ma_Vj = 0. Ma_Lf = 0. IF ttUmsatz.Ep_Vj <> 0 AND ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj). IF ttUmsatz.Ep_Lf <> 0 AND ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_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: ASSIGN ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100 ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100 ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100 ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100. END. PUT CONTROL '£Total ' ipcAdresse '£££££'. cZeile = ''. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF ttUmsatz.Gr_Me_Lf <> 0 OR ttUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. RETURN ''. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION HerstellerSchluss gDebitorumsatz FUNCTION HerstellerSchluss RETURNS CHARACTER ( ipcHerst AS CHARACTER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER ttUmsatz FOR tUmsatz. IF iAnzWgr < 2 THEN RETURN ''. FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'D' AND ttUmsatz.Knr = btUmsatz.Knr AND ttUmsatz.Wgr = 9999 AND ttUmsatz.Pgr = 9999 AND ttUmsatz.Herst = btUmsatz.Herst. Ma_Vj = 0. Ma_Lf = 0. IF ttUmsatz.Ep_Vj <> 0 AND ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj). IF ttUmsatz.Ep_Lf <> 0 AND ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_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: ASSIGN ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100 ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100 ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100 ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100. END. PUT CONTROL '£Total ' ipcHerst '£££££'. cZeile = ''. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF ttUmsatz.Gr_Me_Lf <> 0 OR ttUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. RETURN ''. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION HerstellerStart gDebitorumsatz FUNCTION HerstellerStart RETURNS CHARACTER ( ipHerst AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cHerst AS CHARACTER NO-UNDO. ASSIGN cString = '' cHerst = ''. IF ipHerst > 0 THEN DO: RUN FIND_HERSTELLER ( ipHerst, OUTPUT cString ). IF cString = '?' THEN cString = FILL('?', 15). cHerst = STRING(ipHerst,'999 ') + ENTRY(2, cString, CHR(01)) NO-ERROR. END. RETURN cHerst. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION KundenSchluss gDebitorumsatz FUNCTION KundenSchluss RETURNS CHARACTER ( ipcAdresse AS CHARACTER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER ttUmsatz FOR tUmsatz. FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'E' AND ttUmsatz.Knr = btUmsatz.Knr AND ttUmsatz.Wgr = 9999 AND ttUmsatz.Pgr = 9999 AND ttUmsatz.Herst = 9999999. /* PUT CONTROL '£' CHR(10). */ Ma_Vj = 0. Ma_Lf = 0. IF ttUmsatz.Ep_Vj <> 0 AND ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj). IF ttUmsatz.Ep_Lf <> 0 AND ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_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: ASSIGN ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100 ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100 ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100 ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100. END. PUT CONTROL 'Total ' ipcAdresse '££££££'. cZeile = ''. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF ttUmsatz.Gr_Me_Lf <> 0 OR ttUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. PUT CONTROL '£' CHR(10). cZeile = ''. RETURN ''. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION ProduktegruppenSchluss gDebitorumsatz FUNCTION ProduktegruppenSchluss RETURNS CHARACTER ( ipcProdgrp AS CHARACTER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE BUFFER ttUmsatz FOR tUmsatz. IF iAnzArt < 2 THEN RETURN ''. FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'B' AND ttUmsatz.Knr = btUmsatz.Knr AND ttUmsatz.Wgr = btUmsatz.Wgr AND ttUmsatz.Pgr = btUmsatz.Pgr AND ttUmsatz.Herst = btUmsatz.Herst. Ma_Vj = 0. Ma_Lf = 0. IF ttUmsatz.Ep_Vj <> 0 AND ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj). IF ttUmsatz.Ep_Lf <> 0 AND ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_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: ASSIGN ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100 ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100 ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100 ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100. END. PUT CONTROL '£Total ' ipcProdgrp '£££££'. cZeile = ''. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF ttUmsatz.Gr_Me_Lf <> 0 OR ttUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. RETURN ''. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION ProduktegruppenStart gDebitorumsatz FUNCTION ProduktegruppenStart RETURNS CHARACTER ( ipWgr AS INTEGER, ipPgr AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cProdgrp AS CHARACTER NO-UNDO. ASSIGN cString = '' cProdGrp = ''. IF ipPgr > 0 THEN DO: RUN FIND_PRODGRP ( ipWgr, ipPgr, OUTPUT cString ). IF cString = '?' THEN cString = FILL('?', 15). cProdgrp = STRING(ipPgr,'999 ') + ENTRY(2, cString, CHR(01)) NO-ERROR. END. RETURN cProdgrp. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION WarengruppenSchluss gDebitorumsatz FUNCTION WarengruppenSchluss RETURNS CHARACTER ( ipcWarenGrp AS CHARACTER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iPgr AS INTEGER INIT 0 NO-UNDO. DEFINE BUFFER ttUmsatz FOR tUmsatz. IF T_ProdTot AND iAnzPgr < 2 THEN RETURN ''. IF NOT T_ProdTot AND iAnzArt < 2 THEN RETURN ''. IF lWgrTotale THEN DO: FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'G' AND ttUmsatz.Knr = btUmsatz.Knr AND ttUmsatz.Wgr = btUmsatz.Wgr AND ttUmsatz.Pgr = 9999 AND ttUmsatz.Herst = btUmsatz.Herst AND ttUmsatz.Artnr = 9999999. END. ELSE DO: FIND FIRST ttUmsatz NO-LOCK WHERE ttUmsatz.RecArt = 'C' AND ttUmsatz.Knr = btUmsatz.Knr AND ttUmsatz.Wgr = btUmsatz.Wgr AND ttUmsatz.Pgr = 9999 AND ttUmsatz.Herst = btUmsatz.Herst. END. Ma_Vj = 0. Ma_Lf = 0. IF ttUmsatz.Ep_Vj <> 0 AND ttUmsatz.Vp_Vj <> 0 THEN Ma_Vj = 100 - (ttUmsatz.Ep_Vj * 100 / ttUmsatz.Vp_Vj). IF ttUmsatz.Ep_Lf <> 0 AND ttUmsatz.Vp_Lf <> 0 THEN Ma_Lf = 100 - (ttUmsatz.Ep_Lf * 100 / ttUmsatz.Vp_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: ASSIGN ttUmsatz.Li_Lf = ttUmsatz.Li_Lf / 100 ttUmsatz.Li_Vj = ttUmsatz.Li_Vj / 100 ttUmsatz.Gr_Li_Lf = ttUmsatz.Gr_Li_Lf / 100 ttUmsatz.Gr_Li_Vj = ttUmsatz.Gr_Li_Vj / 100. END. PUT CONTROL '£Total ' ipcWarenGrp '£££££'. cZeile = ''. cZeile = TRIM(STRING(ttUmsatz.Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Lf ,'->>9.99')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Vp_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(Ma_Vj ,'->>9.99')). cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. IF T_Gratis THEN DO: IF ttUmsatz.Gr_Me_Lf <> 0 OR ttUmsatz.Gr_Me_VJ <> 0 THEN DO: cZeile = cZeile + '££££GRATIS££' + TRIM(STRING(ttUmsatz.Gr_Me_Lf,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Lf,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Lf,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Lf,'->>>>>>>>>')) + '£'. cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Me_Vj,'->>>>>>>>>')) + '£'. IF T_Hl THEN cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>9.99')). ELSE cZeile = cZeile + TRIM(STRING(ttUmsatz.Gr_Li_Vj,'->>>>>>>>>')). cZeile = cZeile + '£' + TRIM(STRING(ttUmsatz.Gr_Ep_Vj,'->>>>>>>>>')) + '£' + TRIM(STRING(ttUmsatz.Gr_Vp_Vj,'->>>>>>>>>')) + '£'. cZeile = REPLACE(cZeile, '£0.00£', '££'). PUT CONTROL cZeile CHR(10). cZeile = ''. END. END. cZeile = ''. RETURN ''. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION WarengruppenStart gDebitorumsatz FUNCTION WarengruppenStart RETURNS CHARACTER ( ipWgr AS INTEGER ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cWarenGrp AS CHARACTER NO-UNDO. ASSIGN cString = '' cWarenGrp = ''. /* IF ipWgr > 0 THEN DO:*/ RUN FIND_WarenGrp ( ipWgr, OUTPUT cString ). IF cString = '?' THEN cString = FILL('?', 15). IF NOT lTotale THEN cWarenGrp = STRING(ipWgr,'999 ') + ENTRY(2, cString, CHR(01)) NO-ERROR. ELSE cWarenGrp = '£' + STRING(ipWgr,'999') + '£' + ENTRY(2, cString, CHR(01)) NO-ERROR. /* END.*/ RETURN cWarenGrp. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME