DEF VAR Firma AS CHAR NO-UNDO INIT '2000'. DEF VAR Jahr AS INT NO-UNDO INIT 2003. DEF VAR JJ AS INT NO-UNDO. DEF VAR MM AS INT NO-UNDO. DEF VAR VNetto AS DEC DECIMALS 4 NO-UNDO. DEF VAR VEp AS DEC DECIMALS 4 NO-UNDO. DEF VAR VLiter AS DEC DECIMALS 4 NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR inkl AS LOG NO-UNDO. DEF VAR Ansatz AS DEC NO-UNDO. DO Jahr = 2003 TO 2004: FOR EACH DebUms WHERE DebUms.Firma = Firma AND DebUms.Jahr = Jahr: DELETE DebUms. END. FOR EACH ArtUms WHERE ArtUms.Firma = Firma AND ArtUms.Jahr = Jahr: DELETE ArtUms. END. FOR EACH DeArUms WHERE DeArUms.Firma = Firma AND DeArUms.Jahr = Jahr: DELETE DeArUms. END. FOR EACH Debst WHERE Debst.Firma = Firma NO-LOCK: CREATE DebUms. ASSIGN DebUms.Firma = Firma DebUms.Jahr = Jahr DebUms.Knr = Debst.Knr DebUms.Ums_Grp = 999. END. FOR EACH Artst WHERE Artst.Firma = Firma NO-LOCK: CREATE ArtUms. ASSIGN ArtUms.Firma = Firma ArtUms.Jahr = Jahr ArtUms.Artnr = Artst.Artnr ArtUms.Inhalt = Artst.Inhalt ArtUms.Jahrg = Artst.Jahr. END. FOR EACH Savko WHERE Savko.Firma = Firma AND YEAR(Savko.Fak_Datum) = Jahr NO-LOCK, EACH Savze OF Savko NO-LOCK: IF Savze.MGeli = 0 THEN NEXT. IF Savko.Fak_Knr <> 0 THEN Knr = Savko.Fak_Knr. ELSE Knr = Savko.Knr. JJ = YEAR (Savko.Fak_Datum). MM = MONTH(Savko.Fak_Datum). FIND FIRST Wust USE-INDEX Wust-k2 WHERE Wust.WuCd = Savze.WuCd NO-LOCK NO-ERROR. IF AVAILABLE Wust THEN inkl = Wust.Incl. ELSE inkl = FALSE. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = Savze.WuCd AND MWSTAns.Datum <= Savko.Kond_Datum NO-LOCK NO-ERROR. IF AVAILABLE MWSTAns THEN Ansatz = MWSTAns.Ansatz. ELSE Ansatz = 2.4. VNetto = Savze.Net_Betr - Savze.Auf_Rab - Savze.Abh_Rab - Savze.Auf_Sp_Rab. IF Inkl THEN VNetto = VNetto * 100 / (100 + Ansatz). VLiter = Savze.Liter. VEp = Savze.Ep * Savze.MGeli. FIND DebUms USE-INDEX DebUms-k1 WHERE DebUms.Firma = Firma AND DebUms.Jahr = JJ AND DebUms.Knr = Knr AND DebUms.Ums_Grp = 999 NO-ERROR. IF NOT AVAILABLE DebUms THEN DO: CREATE DebUms. ASSIGN DebUms.Firma = Firma DebUms.Jahr = JJ DebUms.Knr = Knr DebUms.Ums_Grp = 999. END. ASSIGN DebUms.Me_Mon[MM] = DebUms.Me_Mon[MM] + Savze.MGeli DebUms.Me_Kum = DebUms.Me_Kum + Savze.MGeli DebUms.Ep_Mon[MM] = DebUms.Ep_Mon[MM] + VEp DebUms.Ep_Kum = DebUms.Ep_Kum + VEp DebUms.Vp_Mon[MM] = DebUms.Vp_Mon[MM] + VNetto DebUms.Vp_Kum = DebUms.Vp_Kum + VNetto. FIND ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = Firma AND ArtUms.Jahr = JJ AND ArtUms.Artnr = Savze.Artnr AND ArtUms.Inhalt = Savze.Inhalt AND ArtUms.Jahrg = Savze.Jahr NO-ERROR. IF NOT AVAILABLE ArtUms THEN DO: CREATE ArtUms. ASSIGN ArtUms.Firma = Firma ArtUms.Jahr = JJ ArtUms.Artnr = Savze.Artnr ArtUms.Inhalt = Savze.Inhalt ArtUms.Jahrg = Savze.Jahr NO-ERROR. END. ASSIGN ArtUms.Me_Mon[MM] = ArtUms.Me_Mon[MM] + Savze.MGeli ArtUms.Me_Kum = ArtUms.Me_Kum + Savze.MGeli ArtUms.Ep_Mon[MM] = ArtUms.Ep_Mon[MM] + VEp ArtUms.Ep_Kum = ArtUms.Ep_Kum + VEp ArtUms.Li_Mon[MM] = ArtUms.Li_Mon[MM] + VLiter ArtUms.Li_Kum = ArtUms.Li_Kum + VLiter ArtUms.Vp_Mon[MM] = ArtUms.Vp_Mon[MM] + VNetto ArtUms.Vp_Kum = ArtUms.Vp_Kum + VNetto. FIND DeArUms USE-INDEX DeArUms-k1 WHERE DeArUms.Firma = Firma AND DeArUms.Jahr = JJ AND DeArUms.Knr = Knr AND DeArUms.Artnr = Savze.Artnr AND DeArUms.Inhalt = Savze.Inhalt AND DeArUms.Jahrg = Savze.Jahr NO-ERROR. IF NOT AVAILABLE DeArUms THEN DO: CREATE DeArUms. ASSIGN DeArUms.Firma = Firma DeArUms.Jahr = JJ DeArUms.Knr = Knr DeArUms.Artnr = Savze.Artnr DeArUms.Inhalt = Savze.Inhalt DeArUms.Jahrg = Savze.Jahr NO-ERROR. END. ASSIGN DeArUms.Me_Mon[MM] = DeArUms.Me_Mon[MM] + Savze.MGeli DeArUms.Me_Kum = DeArUms.Me_Kum + Savze.MGeli DeArUms.Ep_Mon[MM] = DeArUms.Ep_Mon[MM] + VEp DeArUms.Ep_Kum = DeArUms.Ep_Kum + VEp DeArUms.Li_Mon[MM] = DeArUms.Li_Mon[MM] + VLiter DeArUms.Li_Kum = DeArUms.Li_Kum + VLiter DeArUms.Vp_Mon[MM] = DeArUms.Vp_Mon[MM] + VNetto DeArUms.Vp_Kum = DeArUms.Vp_Kum + VNetto. END. END.