&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gEWK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gEWK /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR MaxPage AS INT NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR VLiArt AS INT NO-UNDO. DEF VAR cRetVal AS CHAR NO-UNDO. DEF VAR cKey AS CHAR NO-UNDO. DEF VAR FAbbruch AS LOG NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR AdFirma AS CHAR NO-UNDO. DEF VAR Sprcd AS INT NO-UNDO. DEF VAR Bez1 AS CHAR NO-UNDO. DEF VAR Bez2 AS CHAR NO-UNDO. DEF VAR Gebinde AS CHAR NO-UNDO. DEF VAR cJahr AS CHAR NO-UNDO. DEF VAR Bestand AS DEC DECIMALS 4 NO-UNDO. DEF VAR InvDatum AS DATE NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR cAlt AS CHAR NO-UNDO. DEF VAR cNeu AS CHAR NO-UNDO. DEF VAR dMenge AS DEC DECIMALS 3 NO-UNDO. DEF VAR dLiter AS DEC DECIMALS 3 NO-UNDO. DEF VAR cKey1 AS CHAR NO-UNDO. DEF VAR cKey2 AS CHAR NO-UNDO. DEF VAR cKey3 AS CHAR NO-UNDO. DEF VAR cKey4 AS CHAR NO-UNDO. DEF VAR cTKey1 AS CHAR NO-UNDO. DEF VAR cTKey2 AS CHAR NO-UNDO. DEF VAR cTKey3 AS CHAR NO-UNDO. DEF VAR cTKey4 AS CHAR NO-UNDO. DEF VAR FKey1 AS LOG NO-UNDO. DEF VAR FKey2 AS LOG NO-UNDO. DEF VAR FKey3 AS LOG NO-UNDO. DEF VAR FKey4 AS LOG NO-UNDO. DEF VAR LKey1 AS LOG NO-UNDO. DEF VAR LKey2 AS LOG NO-UNDO. DEF VAR LKey3 AS LOG NO-UNDO. DEF VAR LKey4 AS LOG NO-UNDO. DEF VAR Zeile1 AS INT NO-UNDO. DEF VAR Zeile2 AS INT NO-UNDO. DEF STREAM IN_Stream. DEF BUFFER BArtst FOR Artst. DEF TEMP-TABLE TArtst LIKE Artst FIELD InvMenge AS DEC DECIMALS 3 FIELD InvMengeNeu AS DEC DECIMALS 3 FIELD InvLiter AS DEC DECIMALS 3. DEF TEMP-TABLE TArtbw LIKE Artbw. DEF TEMP-TABLE Totale FIELD Sort_1 AS CHAR FIELD Menge AS DEC DECIMALS 3 FIELD Liter AS DEC DECIMALS 3 FIELD Eingang AS DEC DECIMALS 3 FIELD Ausgang AS DEC DECIMALS 3 INDEX Totale-k1 IS UNIQUE PRIMARY SORT_1. /* _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 gEWK /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-5 RECT-6 RECT-7 CB_LiArt F_VonArtnr ~ F_VonInhalt F_VonJahr F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp ~ F_VonDatum F_BisDatum T_Abschluss T_Detail Btn_Excel Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS CB_LiArt F_VonArtnr F_VonInhalt F_VonJahr ~ F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum ~ T_Abschluss T_Detail /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 Btn_Excel &Scoped-define List-6 F_VonArtnr F_VonInhalt F_VonJahr F_BisArtnr ~ F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum T_Abschluss ~ T_Detail /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "&Abbrechen" SIZE 15 BY 1.81. DEFINE BUTTON Btn_Excel IMAGE-UP FILE "grafik/results%.ico":U IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.81. DEFINE VARIABLE CB_LiArt AS CHARACTER FORMAT "X(256)":U LABEL "Listenart" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Artikel mit EWK-Code","01", "EWK Inventar","02", "Weinverkäufe","03", "Kellerbuchhaltung","04" DROP-DOWN-LIST SIZE 50 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_BisInhalt AS INTEGER FORMAT "9999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisJahr AS INTEGER FORMAT "9999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Herst AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS FILL-IN NATIVE SIZE 53 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_VonInhalt AS INTEGER FORMAT "9999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonJahr AS INTEGER FORMAT "9999":U INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Wgrp AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppe" VIEW-AS FILL-IN NATIVE SIZE 53 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-5 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 1.95. DEFINE RECTANGLE RECT-6 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 4.95. DEFINE RECTANGLE RECT-7 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 2.95. DEFINE VARIABLE T_Abschluss AS LOGICAL INITIAL no LABEL "Inventar abschliessen" VIEW-AS TOGGLE-BOX SIZE 31.8 BY 1 NO-UNDO. DEFINE VARIABLE T_Detail AS LOGICAL INITIAL no LABEL "ohne Artikel/Kunden-Detail" VIEW-AS TOGGLE-BOX SIZE 31.8 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gEWK CB_LiArt AT ROW 2 COL 18 COLON-ALIGNED F_VonArtnr AT ROW 5 COL 28 COLON-ALIGNED F_VonInhalt AT ROW 5 COL 39 COLON-ALIGNED NO-LABEL F_VonJahr AT ROW 5 COL 46 COLON-ALIGNED NO-LABEL F_BisArtnr AT ROW 5 COL 56 COLON-ALIGNED F_BisInhalt AT ROW 5 COL 67 COLON-ALIGNED NO-LABEL F_BisJahr AT ROW 5 COL 74 COLON-ALIGNED NO-LABEL F_Herst AT ROW 6 COL 28 COLON-ALIGNED F_Wgrp AT ROW 7 COL 28 COLON-ALIGNED F_VonDatum AT ROW 8 COL 28 COLON-ALIGNED F_BisDatum AT ROW 8 COL 47 COLON-ALIGNED T_Abschluss AT ROW 11 COL 30 T_Detail AT ROW 12 COL 30 Btn_Excel AT ROW 14 COL 3.8 Btn_Cancel AT ROW 14 COL 78 RECT-5 AT ROW 1.48 COL 3 RECT-6 AT ROW 4.52 COL 3 RECT-7 AT ROW 10.52 COL 3 SPACE(1.79) SKIP(3.23) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Weinkellerbuchhaltung" 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 gEWK /* ************************* 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 gEWK FRAME-NAME */ ASSIGN FRAME gEWK:SCROLLABLE = FALSE FRAME gEWK:HIDDEN = TRUE. /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gEWK 5 */ /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_BisInhalt IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_BisJahr IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_Herst IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_VonInhalt IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_VonJahr IN FRAME gEWK 6 */ /* SETTINGS FOR FILL-IN F_Wgrp IN FRAME gEWK 6 */ /* SETTINGS FOR TOGGLE-BOX T_Abschluss IN FRAME gEWK 6 */ /* SETTINGS FOR TOGGLE-BOX T_Detail IN FRAME gEWK 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gEWK /* Query rebuild information for DIALOG-BOX gEWK _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gEWK */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gEWK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gEWK gEWK ON END-ERROR OF FRAME gEWK /* Weinkellerbuchhaltung */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gEWK gEWK ON GO OF FRAME gEWK /* Weinkellerbuchhaltung */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gEWK gEWK ON WINDOW-CLOSE OF FRAME gEWK /* Weinkellerbuchhaltung */ 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 gEWK ON CHOOSE OF Btn_Cancel IN FRAME gEWK /* Abbrechen */ DO: FAbbruch = TRUE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gEWK ON CHOOSE OF Btn_Excel IN FRAME gEWK /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_Excel:SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. END. RUN BEREINIGEN. RUN REPORT. DO WITH FRAME {&FRAME-NAME}: Btn_Excel:SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. END. FAbbruch = FALSE. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_LiArt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_LiArt gEWK ON VALUE-CHANGED OF CB_LiArt IN FRAME gEWK /* Listenart */ DO: VLiArt = INTEGER(SELF:SCREEN-VALUE). RUN WERTE_EINLESEN. RUN FELDER_AKTIVIEREN ( FRAME {&FRAME-NAME}:CURRENT-ITERATION ). DO WITH FRAME {&FRAME-NAME}: CASE VLiArt: WHEN 1 THEN DO: F_VonDatum :SENSITIVE = FALSE. F_VonDatum :HIDDEN = TRUE . F_BisDatum :SENSITIVE = FALSE. F_BisDatum :HIDDEN = TRUE . T_Abschluss:SENSITIVE = FALSE. T_Abschluss:HIDDEN = TRUE . T_Detail :SENSITIVE = FALSE. T_Detail :HIDDEN = TRUE . END. WHEN 2 THEN DO: F_BisDatum :SENSITIVE = FALSE. F_BisDatum :HIDDEN = TRUE . T_Detail :SENSITIVE = FALSE. T_Detail :HIDDEN = TRUE . F_VonDatum :LABEL = 'Inventardatum'. END. WHEN 3 THEN DO: T_Abschluss:SENSITIVE = FALSE. T_Abschluss:HIDDEN = TRUE . F_VonDatum :LABEL = 'von - bis Datum'. END. WHEN 4 THEN DO: T_Abschluss:SENSITIVE = FALSE. T_Abschluss:HIDDEN = TRUE . F_VonDatum :LABEL = 'von - bis Datum'. END. END CASE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Herst &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Herst gEWK ON ANY-PRINTABLE OF F_Herst IN FRAME gEWK /* Hersteller */ DO: IF CHR(LASTKEY) = ',' THEN RETURN. IF CHR(LASTKEY) < '0' THEN RETURN NO-APPLY. IF CHR(LASTKEY) > '9' THEN RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Herst gEWK ON LEFT-MOUSE-DBLCLICK OF F_Herst IN FRAME gEWK /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Wgrp &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Wgrp gEWK ON ANY-PRINTABLE OF F_Wgrp IN FRAME gEWK /* Warengruppe */ DO: IF CHR(LASTKEY) = ',' THEN RETURN. IF CHR(LASTKEY) < '0' THEN RETURN NO-APPLY. IF CHR(LASTKEY) > '9' THEN RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Wgrp gEWK ON LEFT-MOUSE-DBLCLICK OF F_Wgrp IN FRAME gEWK /* Warengruppe */ DO: RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gEWK /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. FAbbruch = FALSE. SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'TOOLBAR' ANYWHERE. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. /* TRIGGERS ------------------------------------------------------ */ ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN NEXTPAGE. END. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN PREVPAGE. END. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENTRY_CURSOR. END. /* ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ). END. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ). END. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ). END. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ). END. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ). END. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ). END. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ). END. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ). END. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ). END. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. IF FMutFlag = FALSE THEN DO: RUN ENDE. RETURN NO-APPLY. END. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ). RETURN NO-APPLY. END. */ /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gEWK _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 AUSGABE01 gEWK PROCEDURE AUSGABE01 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. cVorlage = 'EWKArtikel.xls'. cDokument = 'EWKArtikel.xls'. cDaten = 'EWKArtikel.txt'. cAlt = ''. cNeu = ''. FKey1 = FALSE. FKey2 = FALSE. FKey3 = FALSE. FKey4 = FALSE. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR. 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. FOR EACH TArtst: DELETE TArtst. END. FOR EACH Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr >= F_VonArtnr AND Artst.Artnr <= F_BisArtnr AND Artst.Inhalt >= F_VonInhalt AND Artst.Inhalt <= F_BisInhalt AND Artst.Jahr >= F_VonJahr AND Artst.Jahr <= F_BisJahr AND Artst.WHK_Code <> '' AND Artst.Aktiv = TRUE NO-LOCK: IF Artst.Ausverk = 9 THEN DO: IF Artst.Bestand = 0 THEN NEXT. END. IF F_Herst <> '' THEN DO: IF LOOKUP(STRING(Artst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT. END. IF F_Wgrp <> '' THEN DO: IF LOOKUP(STRING(Artst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT. END. CREATE TArtst. BUFFER-COPY Artst TO TArtst. END. OUTPUT TO VALUE(cDaten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£Artnr£Artikel£££Inhalt£Jahr£Code' CHR(10) '£' CHR(10). FOR EACH TArtst NO-LOCK BREAK BY TArtst.WHK_Code BY TArtst.Bez : IF FIRST-OF(TArtst.WHK_Code) THEN DO: cNeu = TArtst.WHK_Code. RUN SCHLUESSEL. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10). IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10). IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10). IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10). END. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = TArtst.Artnr AND ArtBez.Inhalt = TArtst.Inhalt AND ArtBez.Jahr = TArtst.Jahr AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = TArtst.Artnr AND ArtBez.Inhalt = TArtst.Inhalt AND ArtBez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1 Bez2 = ArtBez.Bez2. ELSE ASSIGN Bez1 = '??????????' Bez2 = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = TArtst.Firma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l'). ELSE Gebinde = TArtst.KGeb_Cd + ' ?????'. IF TArtst.Jahr > 10 THEN cJahr = STRING(TArtst.Jahr,'9999'). ELSE cJahr = ''. PUT CONTROL '£' STRING(TArtst.Artnr,'999999') '£' Bez1 '£££' Gebinde '£' cJahr '£' TArtst.WHK_Code CHR(10). IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10). IF LAST-OF ( TArtst.WHK_Code ) THEN DO: cNeu = TArtst.WHK_Code. RUN LETZTER. PUT CONTROL '£' CHR(10). END. 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 io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE02 gEWK PROCEDURE AUSGABE02 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR cSort AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DEF VAR Anz AS INT NO-UNDO. DEF VAR Menge AS DEC DECIMALS 3 NO-UNDO. DEF VAR Liter AS DEC DECIMALS 3 NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. cVorlage = 'EWKInventar.xls'. cDokument = 'EWKInventar.xls'. cDaten = 'EWKInventar.txt'. cAlt = ''. cNeu = ''. FKey1 = FALSE. FKey2 = FALSE. FKey3 = FALSE. FKey4 = FALSE. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR. InvDatum = F_VonDatum. 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. FOR EACH TArtst: DELETE TArtst. END. FOR EACH Totale: DELETE Totale. END. FOR EACH BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = Firma AND BArtst.Artnr >= F_VonArtnr AND BArtst.Artnr <= F_BisArtnr AND BArtst.Inhalt >= F_VonInhalt AND BArtst.Inhalt <= F_BisInhalt AND BArtst.Jahr >= F_VonJahr AND BArtst.Jahr <= F_BisJahr AND BArtst.WHK_Code <> '' AND BArtst.Lager = TRUE NO-LOCK: DO WHILE TRUE: io = TRUE. IF BArtst.Aktiv THEN LEAVE. IF BArtst.MDat >= InvDatum THEN LEAVE. io = FALSE. LEAVE. END. IF NOT io THEN NEXT. IF F_Herst <> '' THEN DO: IF LOOKUP(STRING(BArtst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT. END. IF F_Wgrp <> '' THEN DO: IF LOOKUP(STRING(BArtst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT. END. RUN INVENTARBESTAND. IF Bestand = ? THEN NEXT. IF Bestand = 0 THEN NEXT. CREATE TArtst. BUFFER-COPY BArtst TO TArtst. TArtst.InvMenge = Bestand. END. OUTPUT TO VALUE(cDaten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£££Jahr£Inhalt/£Anzahl£Total' CHR(10) '£Artnr£Artikel£gang£Einheit£Einheiten£Liter' CHR(10) '£' CHR(10). Menge = 0. Liter = 0. FOR EACH TArtst BREAK BY TArtst.WHK_Code BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : IF FIRST-OF(TArtst.WHK_Code) THEN DO: cNeu = TArtst.WHK_Code. IF NOT FIRST (TArtst.WHK_Code) THEN DO: RUN LETZTER. RUN TOTALE02. END. RUN SCHLUESSEL. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10). IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10). IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10). IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10). Anz = 0. END. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = TArtst.Artnr AND ArtBez.Inhalt = TArtst.Inhalt AND ArtBez.Jahr = TArtst.Jahr AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = TArtst.Artnr AND ArtBez.Inhalt = TArtst.Inhalt AND ArtBez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1 Bez2 = ArtBez.Bez2. ELSE ASSIGN Bez1 = '??????????' Bez2 = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = TArtst.Firma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l'). ELSE Gebinde = TArtst.KGeb_Cd + ' ?????'. IF TArtst.Jahr > 10 THEN cJahr = STRING(TArtst.Jahr,'9999'). ELSE cJahr = ''. TArtst.InvLiter = TArtst.InvMenge * KGebinde.Inhalt / 100. DO i1 = 1 TO 4: i2 = ((i1 - 1) * 2) + 1. IF SUBSTRING(TArtst.WHK_Code,i2,02) = '00' THEN LEAVE. i2 = i1 * 2. cSort = SUBSTRING(TArtst.WHK_Code,01,i2). FIND FIRST Totale WHERE Totale.Sort_1 = cSort NO-ERROR. IF NOT AVAILABLE Totale THEN DO: CREATE Totale. ASSIGN Totale.Sort_1 = cSort. END. Totale.Menge = Totale.Menge + TArtst.InvMenge. Totale.Liter = Totale.Liter + TArtst.InvLiter. END. PUT CONTROL '£' STRING(TArtst.Artnr ,'999999') '£' Bez1 '£' cJahr '£' Gebinde '£' STRING(TArtst.InvMenge ,'->>>>,>>9.99') '£' STRING(TArtst.InvLiter ,'->>>>,>>9.99') CHR(10). IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10). Anz = Anz + 1. dMenge = TArtst.InvMenge. dLiter = TArtst.InvLiter. Menge = Menge + TArtst.InvMenge. Liter = Liter + TArtst.InvLiter. IF LAST ( TArtst.WHK_Code ) THEN DO: LKey1 = TRUE. LKey2 = TRUE. LKey3 = TRUE. LKey4 = TRUE. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE. RUN TOTALE02. END. END. PUT CONTROL '££Gesamttotal£££' STRING(Menge,'->>>>,>>9.99') '£' STRING(Liter,'->>>>,>>9.99') CHR(10) 'ENDE' CHR(10). FOR EACH Totale BREAK BY SUBSTRING(Totale.Sort_1,01,02): cAlt = '99999999'. cNeu = Totale.Sort_1. RUN SCHLUESSEL. IF LENGTH(Totale.Sort_1) = 2 THEN cString = Totale.Sort_1 + '£' + cKey1 + '£££££'. IF LENGTH(Totale.Sort_1) = 4 THEN cString = Totale.Sort_1 + '£' + cKey2 + '££££'. IF LENGTH(Totale.Sort_1) = 6 THEN cString = Totale.Sort_1 + '£' + cKey3 + '£££'. IF LENGTH(Totale.Sort_1) = 8 THEN cString = Totale.Sort_1 + '£' + cKey4 + '££'. PUT CONTROL cString STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). IF LAST-OF ( SUBSTRING(Totale.Sort_1,01,02) ) THEN PUT CONTROL '£' CHR(10). END. PUT CONTROL '£' CHR(10). PUT CONTROL '£Gesamttotal£££££' STRING(Liter,'->>>>,>>9.99') CHR(10) '£' CHR(10). OUTPUT CLOSE. Zeile1 = 0. Zeile2 = 0. io = FALSE. INPUT STREAM In_Stream FROM VALUE(cDaten) NO-ECHO NO-MAP. REPEAT ON STOP UNDO, LEAVE WITH FRAME f_Print: IMPORT STREAM In_Stream UNFORMATTED cSort. IF NOT io THEN Zeile1 = Zeile1 + 1. Zeile2 = Zeile2 + 1. IF cSort BEGINS 'ENDE' THEN io = TRUE. END. INPUT STREAM In_Stream 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 io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Sheets("Liste"):Select. excelAppl:Range(Zelle):Select. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):Select. excelAppl:Selection:ColumnWidth = 0.3. Zelle = 'A' + STRING(Zeile1). excelAppl:Range(Zelle):Select. excelAppl:Selection:FormulaR1C1 = ''. Zeile1 = Zeile1 + 1. excelAppl:Selection:CUT. Zelle = 'A' + STRING(Zeile1) + ':H' + STRING(Zeile2). excelAppl:Range(Zelle):Select. excelAppl:Selection:CUT. Zelle = 'A10'. excelAppl:Sheets("Total"):Select. excelAppl:Range(Zelle):Select. excelAppl:ActiveSheet:Paste. excelAppl:Application:CutCopyMode = FALSE. i1 = Zeile2 - Zeile1. Zelle = 'A10:C' + STRING(10 + i1). excelAppl:Range(Zelle):Select. excelAppl:Selection:HorizontalAlignment = -4131. excelAppl:Selection:Font:Bold = False. Zelle = 'A10:C14'. excelAppl:Sheets("Texte"):Select. excelAppl:Range(Zelle):Select. excelAppl:Selection:COPY. excelAppl:Sheets("Total"):Select. Zelle = 'A' + STRING(10 + i1 + 4). excelAppl:Range(Zelle):Select. excelAppl:ActiveSheet:Paste. excelAppl:Application:CutCopyMode = FALSE. Zelle = 'A1'. excelAppl:Range(Zelle):Select. excelAppl:Sheets("Liste"):Select. 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 AUSGABE03 gEWK PROCEDURE AUSGABE03 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR cSort AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DEF VAR Anz AS INT NO-UNDO. DEF VAR Datum AS DATE NO-UNDO. DEF VAR cAdr AS CHAR NO-UNDO. DEF VAR aMenge AS DEC DECIMALS 3 NO-UNDO. DEF VAR aLiter AS DEC DECIMALS 3 NO-UNDO. DEF VAR gMenge AS DEC DECIMALS 3 NO-UNDO. DEF VAR gLiter AS DEC DECIMALS 3 NO-UNDO. cVorlage = 'EWKVerkäufe.xls'. cDokument = 'EWKVerkäufe.xls'. cDaten = 'EWKVerkäufe.txt'. cAlt = ''. cNeu = ''. FKey1 = FALSE. FKey2 = FALSE. FKey3 = FALSE. FKey4 = FALSE. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR. InvDatum = F_VonDatum. 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. EMPTY TEMP-TABLE tArtst. EMPTY TEMP-TABLE Totale. EMPTY TEMP-TABLE tArtbw. FOR EACH BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = Firma AND BArtst.Artnr >= F_VonArtnr AND BArtst.Artnr <= F_BisArtnr AND BArtst.Inhalt >= F_VonInhalt AND BArtst.Inhalt <= F_BisInhalt AND BArtst.Jahr >= F_VonJahr AND BArtst.Jahr <= F_BisJahr AND BArtst.WHK_Code <> '' AND BArtst.Lager = TRUE NO-LOCK: DO WHILE TRUE: io = TRUE. IF BArtst.Aktiv THEN LEAVE. IF BArtst.MDat >= F_VonDatum THEN LEAVE. io = FALSE. LEAVE. END. IF NOT io THEN NEXT. IF F_Herst <> '' THEN DO: IF LOOKUP(STRING(BArtst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT. END. IF F_Wgrp <> '' THEN DO: IF LOOKUP(STRING(BArtst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT. END. CREATE tArtst. BUFFER-COPY BArtst TO tArtst. END. FOR EACH tArtst: Anz = 0. FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = tArtst.Firma AND Artbw.Artnr = tArtst.Artnr AND Artbw.Inhalt = tArtst.Inhalt AND Artbw.Jahr = tArtst.Jahr AND Artbw.Datum >= F_VonDatum AND Artbw.Datum <= F_BisDatum AND Artbw.Lag_Buch = TRUE AND Artbw.Tr_Art < 09 NO-LOCK: Anz = Anz + 1. IF T_Detail AND Artbw.Tr_Art <> 9 THEN DO: Datum = DATE(MONTH(Artbw.Datum),01,YEAR(Artbw.Datum)). IF Datum < F_VonDatum THEN Datum = F_VonDatum. FIND FIRST tArtbw USE-INDEX Artbw-k2 WHERE tArtbw.Firma = Artbw.Firma AND tArtbw.Artnr = Artbw.Artnr AND tArtbw.Inhalt = Artbw.Inhalt AND tArtbw.Jahr = Artbw.Jahr AND tArtbw.Datum = Datum NO-ERROR. IF NOT AVAILABLE tArtbw THEN DO: CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw ASSIGN tArtbw.Datum = Datum tArtbw.Faknr = 0 tArtbw.Menge = 0 tArtbw.Liter = 0 tArtbw.Knr = -1. END. ASSIGN tArtbw.Menge = tArtbw.Menge + Artbw.Menge tArtbw.Liter = tArtbw.Liter + Artbw.Liter. END. ELSE DO: CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw. END. END. IF Anz = 0 THEN DELETE tArtst. END. OUTPUT TO VALUE(cDaten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£Datum££Faknr£Kunde££££Ausgang£Saldo£Liter' CHR(10) '£' CHR(10). gMenge = 0. gLiter = 0. FOR EACH tArtst, EACH tArtbw OF tArtst BREAK BY tArtst.WHK_Code BY tArtst.Artnr BY tArtst.Inhalt BY tArtst.Jahr BY tArtbw.Datum BY tArtbw.Trnr : IF FIRST-OF ( tArtst.WHK_Code ) THEN DO: cNeu = tArtst.WHK_Code. IF NOT FIRST (tArtst.WHK_Code) THEN DO: RUN LETZTER. RUN TOTALE03. END. RUN SCHLUESSEL. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10). IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10). IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10). IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10). PUT CONTROL '£' CHR(10). Anz = 0. END. IF FIRST-OF ( tArtst.Jahr ) THEN DO: FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = tArtst.Artnr AND ArtBez.Inhalt = tArtst.Inhalt AND ArtBez.Jahr = tArtst.Jahr AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = tArtst.Artnr AND ArtBez.Inhalt = tArtst.Inhalt AND ArtBez.Jahr = tArtst.Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1 Bez2 = ArtBez.Bez2. ELSE ASSIGN Bez1 = '??????????' Bez2 = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = tArtst.Firma AND KGebinde.Geb_Cd = tArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l'). ELSE Gebinde = tArtst.KGeb_Cd + ' ?????'. IF tArtst.Jahr > 10 THEN cJahr = STRING(tArtst.Jahr,'9999'). ELSE cJahr = ''. PUT CONTROL STRING(tArtst.Artnr,'999999') '££' Bez1 '£££' cJahr '£' Gebinde CHR(10). IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10). aMenge = 0. aLiter = 0. END. DO i1 = 1 TO 4: i2 = ((i1 - 1) * 2) + 1. IF SUBSTRING(tArtst.WHK_Code,i2,02) = '00' THEN LEAVE. i2 = i1 * 2. cSort = SUBSTRING(tArtst.WHK_Code,01,i2). FIND FIRST Totale WHERE Totale.Sort_1 = cSort NO-ERROR. IF NOT AVAILABLE Totale THEN DO: CREATE Totale. ASSIGN Totale.Sort_1 = cSort. END. Totale.Menge = Totale.Menge + tArtbw.Menge. Totale.Liter = Totale.Liter + tArtbw.Liter. END. aMenge = aMenge + tArtbw.Menge. aLiter = aLiter + tArtbw.Liter. IF tArtbw.Knr = -1 THEN DO: cAdr = 'Verkäufe Monat ' + STRING(MONTH(tArtbw.Datum),'99.') + STRING(YEAR (tArtbw.Datum),'9999'). END. ELSE DO: IF tArtbw.Knr <> 0 THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = tArtbw.Knr NO-LOCK NO-ERROR. IF AVAILABLE Adresse THEN cAdr = Adresse.Anzeig_Br. ELSE cAdr = '???????????????'. END. ELSE DO: RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_ARt, OUTPUT cAdr ). IF cAdr = '' THEN cAdr = '??????????'. ELSE cAdr = ENTRY(2, cAdr, CHR(01)). END. END. PUT CONTROL '£' STRING(tArtbw.Datum ,'99.99.9999') '££' STRING(tArtbw.Faknr ,'>>>>>>') '£' cAdr '££££' STRING(tArtbw.Menge ,'->>>>,>>9.99') '£' STRING(aMenge ,'->>>>,>>9.99') '£' STRING(aLiter ,'->>>>,>>9.99') CHR(10). Anz = Anz + 1. dMenge = aMenge. dLiter = aLiter. gMenge = gMenge + tArtbw.Menge. gLiter = gLiter + tArtbw.Liter. IF LAST-OF ( tArtst.Jahr ) AND NOT LAST-OF ( tArtst.WHK_Code ) THEN PUT CONTROL '£' CHR(10). IF LAST ( tArtst.WHK_Code ) THEN DO: LKey1 = TRUE. LKey2 = TRUE. LKey3 = TRUE. LKey4 = TRUE. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE. RUN TOTALE03. END. END. IF gMenge <> 0 OR gLiter <> 0 THEN DO: PUT CONTROL '£' CHR(10) 'Gesamtverkäufe' '£££££££££' STRING(gMenge,'->>>>,>>9.99') '£' STRING(gLiter,'->>>>,>>9.99') CHR(10). 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 io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE04 gEWK PROCEDURE AUSGABE04 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR cSort AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DEF VAR Anz AS INT NO-UNDO. DEF VAR Datum AS DATE NO-UNDO. DEF VAR cAdr AS CHAR NO-UNDO. DEF VAR aMenge AS DEC DECIMALS 3 NO-UNDO. DEF VAR aLiter AS DEC DECIMALS 3 NO-UNDO. DEF VAR aEing AS DEC DECIMALS 3 NO-UNDO. DEF VAR aAusg AS DEC DECIMALS 3 NO-UNDO. DEF VAR aDiff AS DEC DECIMALS 3 NO-UNDO. DEF VAR aInhalt AS DEC DECIMALS 3 NO-UNDO. DEF VAR gMenge AS DEC DECIMALS 3 NO-UNDO. DEF VAR gLiter AS DEC DECIMALS 3 NO-UNDO. DEF VAR gEing AS DEC DECIMALS 3 NO-UNDO. DEF VAR gAusg AS DEC DECIMALS 3 NO-UNDO. DEF VAR FEing AS LOG NO-UNDO. DEF VAR Artnr AS INT NO-UNDO. DEF VAR Inhalt AS INT NO-UNDO. DEF VAR Jahr AS INT NO-UNDO. DEF VAR Doknr AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR Faktor AS INT NO-UNDO. cVorlage = 'EWKBuchhaltung.xls'. cDokument = 'EWKBuchhaltung.xls'. cDaten = 'EWKBuchhaltung.txt'. cAlt = ''. cNeu = ''. FKey1 = FALSE. FKey2 = FALSE. FKey3 = FALSE. FKey4 = FALSE. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR. InvDatum = F_VonDatum. 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. EMPTY TEMP-TABLE tArtst. EMPTY TEMP-TABLE tArtbw. EMPTY TEMP-TABLE Totale. FOR EACH bArtst NO-LOCK USE-INDEX Artst-k1 WHERE bArtst.Firma = Firma AND bArtst.Artnr >= F_VonArtnr AND bArtst.Artnr <= F_BisArtnr AND bArtst.Inhalt >= F_VonInhalt AND bArtst.Inhalt <= F_BisInhalt AND bArtst.Jahr >= F_VonJahr AND bArtst.Jahr <= F_BisJahr AND bArtst.WHK_Code <> '' AND bArtst.Lager = TRUE: DO WHILE TRUE: io = TRUE. IF bArtst.Aktiv THEN LEAVE. IF bArtst.MDat >= F_VonDatum THEN LEAVE. io = FALSE. LEAVE. END. IF NOT io THEN NEXT. IF F_Herst <> '' THEN DO: IF LOOKUP(STRING(bArtst.Herst ,'999'), F_Herst, ',') = 0 THEN NEXT. END. IF F_Wgrp <> '' THEN DO: IF LOOKUP(STRING(bArtst.Wg_Grp,'999'), F_Wgrp , ',') = 0 THEN NEXT. END. CREATE tArtst. BUFFER-COPY bArtst TO tArtst. InvDatum = F_VonDatum - 1. RUN INVENTARBESTAND. tArtst.InvMenge = Bestand. InvDatum = F_BisDatum. RUN INVENTARBESTAND. tArtst.InvMengeNeu = Bestand. END. FOR EACH tArtst: Anz = 0. FOR EACH Artbw NO-LOCK USE-INDEX Artbw-k2 WHERE Artbw.Firma = tArtst.Firma AND Artbw.Artnr = tArtst.Artnr AND Artbw.Inhalt = tArtst.Inhalt AND Artbw.Jahr = tArtst.Jahr AND Artbw.Datum >= F_VonDatum AND Artbw.Datum <= F_BisDatum AND Artbw.Lag_Buch = TRUE AND Artbw.Tr_Art < 21 : Anz = Anz + 1. IF T_Detail THEN DO: IF Artbw.Tr_Art >= 9 THEN DO: CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw. END. ELSE DO: Datum = DATE(MONTH(Artbw.Datum),01,YEAR(Artbw.Datum)). IF Datum < F_VonDatum THEN Datum = F_VonDatum. FIND FIRST tArtbw USE-INDEX Artbw-k2 WHERE tArtbw.Firma = Artbw.Firma AND tArtbw.Artnr = Artbw.Artnr AND tArtbw.Inhalt = Artbw.Inhalt AND tArtbw.Jahr = Artbw.Jahr AND tArtbw.Datum = Datum AND tArtbw.Tr_Art = Artbw.Tr_Art NO-ERROR. IF NOT AVAILABLE tArtbw THEN DO: CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw ASSIGN tArtbw.Datum = Datum tArtbw.Faknr = 0 tArtbw.Menge = 0 tArtbw.Liter = 0 tArtbw.Knr = -1. END. ASSIGN tArtbw.Menge = tArtbw.Menge + Artbw.Menge tArtbw.Liter = tArtbw.Liter + Artbw.Liter. END. END. ELSE DO: CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw. END. END. IF Anz = 0 AND tArtst.InvMengeNeu = 0 AND (tArtst.InvMenge = ? OR tArtst.InvMenge = 0) THEN DELETE tArtst. END. OUTPUT TO VALUE(cDaten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£Datum££Faknr£Kunde£££Eingang£Ausgang£Saldo£Liter' CHR(10) '£' CHR(10). gEing = 0. gAusg = 0. gMenge = 0. gLiter = 0. FOR EACH tArtst, EACH tArtbw OF tArtst BREAK BY tArtst.WHK_Code BY tArtst.Artnr BY tArtst.Inhalt BY tArtst.Jahr BY tArtbw.Datum BY tArtbw.Trnr : IF FIRST-OF ( tArtst.WHK_Code ) THEN DO: cNeu = tArtst.WHK_Code. IF NOT FIRST (tArtst.WHK_Code) THEN DO: RUN LETZTER. RUN TOTALE04. END. RUN SCHLUESSEL. IF FKey1 AND cKey1 <> '' THEN PUT CONTROL cKey1 CHR(10). IF FKey2 AND cKey2 <> '' THEN PUT CONTROL cKey2 CHR(10). IF FKey3 AND cKey3 <> '' THEN PUT CONTROL cKey3 CHR(10). IF FKey4 AND cKey4 <> '' THEN PUT CONTROL cKey4 CHR(10). PUT CONTROL '£' CHR(10). Anz = 0. END. IF FIRST-OF ( tArtst.Jahr ) THEN DO: FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = tArtst.Artnr AND ArtBez.Inhalt = tArtst.Inhalt AND ArtBez.Jahr = tArtst.Jahr AND ArtBez.Sprcd = Sprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Firma AND ArtBez.Artnr = tArtst.Artnr AND ArtBez.Inhalt = tArtst.Inhalt AND ArtBez.Jahr = tArtst.Jahr NO-LOCK NO-ERROR. END. IF AVAILABLE ArtBez THEN ASSIGN Bez1 = ArtBez.Bez1 Bez2 = ArtBez.Bez2. ELSE ASSIGN Bez1 = '??????????' Bez2 = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = tArtst.Firma AND KGebinde.Geb_Cd = tArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN Gebinde = STRING(KGebinde.Inhalt / 100,'>>9.99 l'). ELSE Gebinde = tArtst.KGeb_Cd + ' ?????'. IF AVAILABLE KGebinde THEN aInhalt = KGebinde.Inhalt. ELSE aInhalt = tArtst.Inhalt. IF tArtst.Jahr > 10 THEN cJahr = STRING(tArtst.Jahr,'9999'). ELSE cJahr = ''. PUT CONTROL STRING(tArtst.Artnr,'999999') '££' Bez1 '£££' cJahr '£' Gebinde CHR(10). IF Bez2 <> '' THEN PUT CONTROL '££' Bez2 CHR(10). aMenge = 0. aLiter = 0. aAusg = 0. aEing = 0. IF tArtst.InvMenge <> ? THEN DO: tArtst.InvLiter = tArtst.InvMenge * KGebinde.Inhalt / 100. aMenge = tArtst.InvMenge. aLiter = tArtst.InvLiter. PUT CONTROL '£' STRING(F_VonDatum - 1,'99.99.9999') '£££' 'Inventarbestand' '£££' STRING(tArtst.InvMenge,'->>>>,>>9.99') '££' STRING(aMenge ,'->>>>,>>9.99') '£' STRING(aLiter ,'->>>>,>>9.99') CHR(10). END. END. FEing = FALSE. cAdr = ''. Bez1 = ''. Bez2 = ''. Doknr = ''. DO WHILE TRUE: IF tArtbw.Tr_Art < 9 THEN LEAVE. IF tArtbw.Tr_Art > 10 THEN DO: FEing = TRUE. LEAVE. END. Artnr = INTEGER(ENTRY(2, tArtbw.Bez2, ';')) NO-ERROR. Inhalt = INTEGER(ENTRY(3, tArtbw.Bez2, ';')) NO-ERROR. Jahr = INTEGER(ENTRY(4, tArtbw.Bez2, ';')) NO-ERROR. Doknr = ENTRY(5, tArtbw.Bez2, ';') NO-ERROR. Bez2 = ENTRY(6, tArtbw.Bez2, ';') NO-ERROR. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr = Artnr AND Artst.Inhalt = Inhalt AND Artst.Jahr = Jahr NO-LOCK NO-ERROR. Bez1 = STRING(Artnr ,'999999/') + STRING(Inhalt,'9999/') + STRING(Jahr ,'9999 ') + Artst.Bez. RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_Art, OUTPUT cString ). cAdr = ENTRY(2, cString, CHR(01) ). IF tArtbw.Bez2 BEGINS 'A;' THEN DO: FEing = TRUE. tArtbw.Menge = tArtbw.Menge * -1. tArtbw.Liter = tArtbw.Liter * -1. END. IF Bez2 = ? THEN Bez2 = ''. IF Doknr = ? THEN Doknr = ''. LEAVE. END. DO WHILE TRUE: IF tArtbw.Tr_Art = 9 THEN LEAVE. IF tArtbw.Knr = -1 THEN DO: IF tArtbw.Tr_Art < 9 THEN DO: cAdr = 'Verkäufe Monat ' + STRING(MONTH(tArtbw.Datum),'99.') + STRING(YEAR (tArtbw.Datum),'9999'). LEAVE. END. IF tArtbw.Tr_Art = 11 THEN DO: cAdr = 'Einkäufe Monat ' + STRING(MONTH(tArtbw.Datum),'99.') + STRING(YEAR (tArtbw.Datum),'9999'). LEAVE. END. IF tArtbw.Tr_Art > 11 THEN DO: RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_Art, OUTPUT cString ). cAdr = ENTRY(2, cString, CHR(01) ). LEAVE. END. LEAVE. END. IF tArtbw.Tr_Art > 11 THEN DO: RUN FIND_LAGTRANSART ( INPUT tArtbw.Tr_Art, OUTPUT cString ). cAdr = ENTRY(2, cString, CHR(01) ). Bez1 = tArtbw.Bez1. Bez2 = tArtbw.Bez2. LEAVE. END. IF tArtbw.Tr_Art = 11 AND tArtbw.Aufnr > 0 THEN Doknr = STRING(tArtbw.Aufnr,'B999999'). ELSE DO: IF tArtbw.Faknr <> 0 THEN Doknr = STRING(tArtbw.Faknr,'F999999'). ELSE Doknr = STRING(tArtbw.Aufnr,'A999999'). END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = tArtbw.Knr NO-LOCK NO-ERROR. IF AVAILABLE Adresse THEN cAdr = Adresse.Anzeig_Br. ELSE cAdr = '???????????????'. IF tArtbw.Knr = 0 THEN cAdr = 'man. Lagereingang'. LEAVE. END. IF FEing THEN Faktor = 1. ELSE Faktor = -1. DO i1 = 1 TO 4: i2 = ((i1 - 1) * 2) + 1. IF SUBSTRING(tArtst.WHK_Code,i2,02) = '00' THEN LEAVE. i2 = i1 * 2. cSort = SUBSTRING(tArtst.WHK_Code,01,i2). FIND FIRST Totale WHERE Totale.Sort_1 = cSort NO-ERROR. IF NOT AVAILABLE Totale THEN DO: CREATE Totale. ASSIGN Totale.Sort_1 = cSort. END. Totale.Menge = Totale.Menge + (tArtbw.Menge * Faktor). Totale.Liter = Totale.Liter + (tArtbw.Liter * Faktor). IF FEing THEN Totale.Eingang = Totale.Eingang + tArtbw.Menge. ELSE Totale.Ausgang = Totale.Ausgang + tArtbw.Menge. END. aMenge = aMenge + (tArtbw.Menge * Faktor). aLiter = aLiter + (tArtbw.Liter * Faktor). IF FEing THEN aEing = aEing + tArtbw.Menge. ELSE aAusg = aAusg + tArtbw.Menge. PUT CONTROL '£' STRING(tArtbw.Datum ,'99.99.9999') '££' Doknr '£' cAdr '£££'. IF FEing THEN PUT CONTROL STRING(tArtbw.Menge,'->>>>,>>9.99') '££'. ELSE PUT CONTROL '£' STRING(tArtbw.Menge,'->>>>,>>9.99') '£'. PUT CONTROL STRING(aMenge ,'->>>>,>>9.99') '£' STRING(aLiter ,'->>>>,>>9.99') CHR(10). IF Bez1 <> '' THEN PUT CONTROL '££££' Bez1 CHR(10). IF Bez2 <> '' THEN PUT CONTROL '££££' Bez2 CHR(10). IF LAST-OF ( tArtst.Jahr ) THEN DO: IF aMenge <> tArtst.InvMengeNeu THEN DO: aDiff = tArtst.InvMengeNeu - aMenge. aEing = aEing + aDiff. aMenge = aMenge + aDiff. aLiter = aLiter + (aDiff * aInhalt / 100). PUT CONTROL '££££Lagerdifferenz£££' STRING(aDiff ,'->>>>,>>9.99') '££' STRING(aMenge,'->>>>,>>9.99') '£' STRING(aLiter,'->>>>,>>9.99') CHR(10). END. PUT CONTROL '££££Total Artikel£££' STRING(aEing ,'->>>>,>>9.99') '£' STRING(aAusg ,'->>>>,>>9.99') '£' STRING(aMenge,'->>>>,>>9.99') '£' STRING(aLiter,'->>>>,>>9.99') CHR(10) '£' CHR(10). gEing = gEing + aEing. gAusg = gAusg + aAusg. gMenge = gMenge + aMenge. gLiter = gLiter + aLiter. END. IF LAST ( tArtst.WHK_Code ) THEN DO: LKey1 = TRUE. LKey2 = TRUE. LKey3 = TRUE. LKey4 = TRUE. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE. RUN TOTALE04. PUT CONTROL '££Gesamttotal £££££' STRING(gEing ,'->>>>,>>9.99') '£' STRING(gAusg ,'->>>>,>>9.99') '£' STRING(gMenge,'->>>>,>>9.99') '£' STRING(gLiter,'->>>>,>>9.99') CHR(10). END. 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 io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gEWK PROCEDURE BEREINIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR i AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR cDelim AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&list-6}. cString = ''. cDelim = ''. DO i = 1 TO NUM-ENTRIES(F_Herst, ','): cString = cString + cDelim + STRING(INTEGER(ENTRY(i, F_Herst, ',')),'999'). cDelim = ','. END. F_Herst = cString. cString = ''. cDelim = ''. DO i = 1 TO NUM-ENTRIES(F_Wgrp, ','): cString = cString + cDelim + STRING(INTEGER(ENTRY(i, F_Wgrp , ',')),'999'). cDelim = ','. END. F_Wgrp = cString. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gEWK PROCEDURE changePage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ /* RUN ToolbarInit ( INPUT h_d-auftr ). */ RUN ENTRY_CURSOR. END. WHEN 2 THEN DO: RUN ENTRY_CURSOR. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gEWK _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 gEWK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gEWK PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. GET-KEY-VALUE SECTION 'Auswertungen' KEY 'EWKArt' VALUE cRetVal. IF cRetVal = ? THEN VLiArt = 1. ELSE VLiArt = INTEGER(cRetVal) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: CB_LiArt:SCREEN-VALUE = STRING(VLiArt,'99') NO-ERROR. RUN WERTE_EINLESEN. APPLY 'VALUE-CHANGED' TO CB_LiArt. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gEWK _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY CB_LiArt F_VonArtnr F_VonInhalt F_VonJahr F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum T_Abschluss T_Detail WITH FRAME gEWK. ENABLE RECT-5 RECT-6 RECT-7 CB_LiArt F_VonArtnr F_VonInhalt F_VonJahr F_BisArtnr F_BisInhalt F_BisJahr F_Herst F_Wgrp F_VonDatum F_BisDatum T_Abschluss T_Detail Btn_Excel Btn_Cancel WITH FRAME gEWK. VIEW FRAME gEWK. {&OPEN-BROWSERS-IN-QUERY-gEWK} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gEWK 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. IF NOT FAbbruch THEN DO WITH FRAME {&FRAME-NAME}: ASSIGN {&list-6}. PUT-KEY-VALUE SECTION 'Auswertungen' KEY 'EWKArt' VALUE STRING(VLiArt). cKey = 'EWKArt' + STRING(VLiArt,'99'). cRetVal = STRING(F_VonArtnr) + '@' + STRING(F_VonInhalt) + '@' + STRING(F_VonJahr ) + '@' + STRING(F_BisArtnr ) + '@' + STRING(F_BisInhalt) + '@' + STRING(F_BisJahr ) + '@' + STRING(F_Herst ) + '@' + STRING(F_Wgrp ) + '@'. IF F_VonDatum <> ? THEN cRetVal = cRetVal + STRING(F_VonDatum). cRetVal = cRetVal + '@'. IF F_BisDatum <> ? THEN cRetVal = cRetVal + STRING(F_BisDatum). cRetVal = cRetVal + '@'. cRetVal = cRetVal + STRING(T_Abschluss) + '@' + STRING(T_Detail ) + '@'. PUT-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cRetVal. END. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gEWK PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */ /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */ /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */ /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */ /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */ /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */ /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */ END CASE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gEWK 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 FELDER_AKTIVIEREN gEWK PROCEDURE FELDER_AKTIVIEREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER Fenster AS HANDLE NO-UNDO. ASSIGN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE (Fenster) : DO WHILE TRUE: IF Fenster:TYPE = 'LITERAL' THEN LEAVE. Fenster:HIDDEN = FALSE NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: MESSAGE 'Falscher Typ . ' Fenster:TYPE. LEAVE. END. Fenster:SENSITIVE = TRUE NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: MESSAGE 'Falscher Typ . ' Fenster:TYPE. LEAVE. END. LEAVE. END. ASSIGN Fenster = Fenster:NEXT-SIBLING. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INVENTARBESTAND gEWK PROCEDURE INVENTARBESTAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Verkehr AS DEC NO-UNDO. DEF VAR InvBest AS DEC NO-UNDO. DEF VAR InvDat AS DATE NO-UNDO. DEF VAR cCodeC AS CHAR NO-UNDO. DEF VAR iCodeI AS INT NO-UNDO. DEF VAR DiffTg AS INT NO-UNDO. DEF VAR GDat AS DATE NO-UNDO. DEF VAR KDat AS DATE NO-UNDO. cCodeC = STRING(BArtst.Artnr ,'999999') + STRING(BArtst.Inhalt,'9999') + STRING(BArtst.Jahr ,'9999'). iCodeI = INTEGER(InvDatum). Bestand = ?. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = BArtst.Firma AND Tabel.RecArt = 'EWKINV' AND Tabel.CodeC = cCodeC AND Tabel.CodeI = iCodeI AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN DO: Bestand = DECIMAL(Tabel.Bez1). RETURN. END. DO WHILE TRUE: InvDat = ?. GDat = ?. KDat = ?. FIND FIRST Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Tr_Art = 21 AND Artbw.Datum = InvDatum NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN DO: InvDat = Artbw.Datum. LEAVE. END. FIND FIRST Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Tr_Art = 21 AND Artbw.Datum < InvDatum NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN KDat = Artbw.Datum. ELSE DO: FIND LAST Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Lag_Buch = TRUE AND Artbw.Datum <= InvDatum AND Artbw.Tr_Art < 21 NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbw THEN RETURN. KDat = 01/01/0001. END. FIND LAST Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Tr_Art = 21 AND Artbw.Datum > InvDatum NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN GDat = Artbw.Datum. IF KDat = ? AND GDat <> ? THEN DO: InvDat = GDat. KDat = InvDatum. LEAVE. END. IF KDat <> ? AND GDat = ? THEN DO: InvDat = KDat. GDat = InvDatum. LEAVE. END. DiffTg = InvDatum - KDat. IF (GDat - InvDatum) < DiffTg THEN DO: InvDat = GDat. KDat = InvDatum. LEAVE. END. InvDat = KDat. GDat = InvDatum. LEAVE. END. InvBest = 0. Verkehr = 0. FOR EACH Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Tr_Art = 21 AND Artbw.Datum = InvDat NO-LOCK : InvBest = InvBest + Artbw.Menge. END. IF InvDat < InvDatum THEN DO: FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Lag_Buch = TRUE AND Artbw.Datum > InvDat AND Artbw.Datum <= InvDatum NO-LOCK: IF Artbw.Tr_Art = 21 THEN NEXT. IF Artbw.Tr_Art < 11 THEN DO: Verkehr = Verkehr - Artbw.Menge. NEXT. END. IF Artbw.Tr_Art < 21 THEN DO: Verkehr = Verkehr + Artbw.Menge. NEXT. END. END. END. IF InvDat > InvDatum THEN DO: FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = BArtst.Firma AND Artbw.Artnr = BArtst.Artnr AND Artbw.Inhalt = BArtst.Inhalt AND Artbw.Jahr = BArtst.Jahr AND Artbw.Lag_Buch = TRUE AND Artbw.Datum > InvDatum AND Artbw.Datum <= InvDat NO-LOCK: IF Artbw.Tr_Art = 21 THEN NEXT. IF Artbw.Tr_Art < 11 THEN DO: Verkehr = Verkehr - Artbw.Menge. NEXT. END. IF Artbw.Tr_Art < 21 THEN DO: Verkehr = Verkehr + Artbw.Menge. NEXT. END. END. END. InvBest = InvBest + Verkehr. Bestand = InvBest. IF VLiArt <> 2 THEN RETURN. REPEAT TRANSACTION: IF T_Abschluss = FALSE THEN LEAVE. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = BArtst.Firma AND Tabel.RecArt = 'EWKINV' AND Tabel.CodeC = cCodeC AND Tabel.CodeI = iCodeI AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN LEAVE. CREATE Tabel. ASSIGN Tabel.Firma = BArtst.Firma Tabel.RecArt = 'EWKINV' Tabel.CodeC = cCodeC Tabel.CodeI = iCodeI Tabel.Sprcd = 1 Tabel.Bez1 = STRING(InvBest,'999999999.999-'). RELEASE Tabel. LEAVE. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gEWK PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. CASE VLiArt: WHEN 1 THEN DO: Zelle = 'B1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'D1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Artikel mit WHK-Code'. Zelle = 'H1'. 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 = 'D2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = ''. Zelle = 'H2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END. WHEN 2 THEN DO: Zelle = 'A1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'D1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Weininventar'. Zelle = 'G1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'A2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'D2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'per ' + STRING(F_VonDatum,'99.99.9999'). Zelle = 'G2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END. WHEN 3 THEN DO: Zelle = 'A1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'F1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Weinverkäufe'. Zelle = 'K1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'A2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'F2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = STRING(F_VonDatum,'99.99.9999') + ' - ' + STRING(F_BisDatum,'99.99.9999'). Zelle = 'K2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END. WHEN 4 THEN DO: Zelle = 'A1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'F1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Kellerbuchhaltung (Eidg. WKK)'. Zelle = 'K1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'A2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'F2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = STRING(F_VonDatum,'99.99.9999') + ' - ' + STRING(F_BisDatum,'99.99.9999'). Zelle = 'K2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LETZTER gEWK PROCEDURE LETZTER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF LENGTH(cNeu) < 8 THEN cNeu = cNeu + FILL('0', 8 - LENGTH(cNeu)). LKey1 = FALSE. LKey2 = FALSE. LKey3 = FALSE. LKey4 = FALSE. DO WHILE TRUE: IF SUBSTRING(cNeu,01,02) <> SUBSTRING(cAlt,01,02) THEN DO: LKey1 = TRUE. LKey2 = TRUE. LKey3 = TRUE. LKey4 = TRUE. LEAVE. END. IF SUBSTRING(cNeu,03,02) <> SUBSTRING(cAlt,03,02) THEN DO: LKey2 = TRUE. LKey3 = TRUE. LKey4 = TRUE. LEAVE. END. IF SUBSTRING(cNeu,05,02) <> SUBSTRING(cAlt,05,02) THEN DO: LKey3 = TRUE. LKey4 = TRUE. LEAVE. END. IF SUBSTRING(cNeu,07,02) <> SUBSTRING(cAlt,07,02) THEN DO: LKey4 = TRUE. LEAVE. END. LEAVE. END. IF SUBSTRING(cAlt,01,02) = '00' THEN LKey1 = FALSE. IF SUBSTRING(cAlt,03,02) = '00' THEN LKey2 = FALSE. IF SUBSTRING(cAlt,05,02) = '00' THEN LKey3 = FALSE. IF SUBSTRING(cAlt,07,02) = '00' THEN LKey4 = FALSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gEWK PROCEDURE NEXTPAGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = MaxPage THEN AktSeite = 1. ELSE AktSeite = AktSeite + 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gEWK PROCEDURE PREVPAGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = 1 THEN AktSeite = MaxPage. ELSE AktSeite = AktSeite - 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gEWK PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: ASSIGN {&list-6}. VLiArt = INTEGER(CB_LiArt:SCREEN-VALUE). SESSION:SET-WAIT-STATE('GENERAL'). IF VLiArt = 01 THEN RUN AUSGABE01. IF VLiArt = 02 THEN RUN AUSGABE02. IF VLiArt = 03 THEN RUN AUSGABE03. IF VLiArt = 04 THEN RUN AUSGABE04. SESSION:SET-WAIT-STATE(''). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SCHLUESSEL gEWK PROCEDURE SCHLUESSEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Cd_1 AS INT NO-UNDO. DEF VAR Cd_2 AS INT NO-UNDO. DEF VAR Cd_3 AS INT NO-UNDO. DEF VAR Cd_4 AS INT NO-UNDO. IF LENGTH(cNeu) < 8 THEN cNeu = cNeu + FILL('0', 8 - LENGTH(cNeu)). FKey1 = FALSE. FKey2 = FALSE. FKey3 = FALSE. FKey4 = FALSE. DO WHILE TRUE: IF SUBSTRING(cNeu,01,02) <> SUBSTRING(cAlt,01,02) THEN DO: FKey1 = TRUE. FKey2 = TRUE. FKey3 = TRUE. FKey4 = TRUE. END. ELSE IF SUBSTRING(cNeu,03,02) <> SUBSTRING(cAlt,03,02) THEN DO: FKey2 = TRUE. FKey3 = TRUE. FKey4 = TRUE. END. ELSE IF SUBSTRING(cNeu,05,02) <> SUBSTRING(cAlt,05,02) THEN DO: FKey3 = TRUE. FKey4 = TRUE. END. ELSE IF SUBSTRING(cNeu,07,02) <> SUBSTRING(cAlt,07,02) THEN DO: FKey4 = TRUE. END. Cd_1 = INTEGER(SUBSTRING(cNeu,01,02)). Cd_2 = INTEGER(SUBSTRING(cNeu,03,02)). Cd_3 = INTEGER(SUBSTRING(cNeu,05,02)). Cd_4 = INTEGER(SUBSTRING(cNeu,07,02)). IF FKey1 THEN DO: FIND EWKSt1 USE-INDEX EWKSt1-k1 WHERE EWKSt1.Firma = Firma AND EWKSt1.Cd_1 = Cd_1 NO-LOCK NO-ERROR. IF AVAILABLE EWKSt1 THEN cKey1 = EWKSt1.Bez. ELSE cKey1 = STRING(Cd_1,'99'). cTKey1 = 'Total ' + cKey1. END. IF FKey2 THEN DO: IF Cd_2 = 0 THEN DO: cKey2 = ''. cTKey2 = ''. END. ELSE DO: FIND EWKSt2 USE-INDEX EWKSt2-k1 WHERE EWKSt2.Firma = Firma AND EWKSt2.Cd_1 = Cd_1 AND EWKSt2.Cd_2 = Cd_2 NO-LOCK NO-ERROR. IF AVAILABLE EWKSt2 THEN cKey2 = EWKSt2.Bez. ELSE cKey2 = STRING(Cd_1,'99') + STRING(Cd_2,'99'). cTKey2 = 'Total ' + cKey2. END. END. IF FKey3 THEN DO: IF Cd_3 = 0 THEN DO: cKey3 = ''. cTKey3 = ''. END. ELSE DO: FIND EWKSt3 USE-INDEX EWKSt3-k1 WHERE EWKSt3.Firma = Firma AND EWKSt3.Cd_1 = Cd_1 AND EWKSt3.Cd_2 = Cd_2 AND EWKSt3.Cd_3 = Cd_3 NO-LOCK NO-ERROR. IF AVAILABLE EWKSt3 THEN cKey3 = EWKSt3.Bez. ELSE cKey3 = STRING(Cd_1,'99') + STRING(Cd_2,'99') + STRING(Cd_3,'99'). cTKey3 = 'Total ' + cKey3. END. END. IF FKey4 THEN DO: IF Cd_4 = 0 THEN DO: cKey4 = ''. cTKey4 = ''. END. ELSE DO: FIND EWKSt4 USE-INDEX EWKSt4-k1 WHERE EWKSt4.Firma = Firma AND EWKSt4.Cd_1 = Cd_1 AND EWKSt4.Cd_2 = Cd_2 AND EWKSt4.Cd_3 = Cd_3 AND EWKSt4.Cd_4 = Cd_4 NO-LOCK NO-ERROR. IF AVAILABLE EWKSt4 THEN cKey4 = EWKSt4.Bez. ELSE cKey4 = STRING(Cd_1,'99') + STRING(Cd_2,'99') + STRING(Cd_3,'99') + STRING(Cd_4,'99'). cTKey4 = 'Total ' + cKey4. END. END. LEAVE. END. cAlt = cNeu. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gEWK PROCEDURE selectPage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER piPageNum AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR MutProg AS CHAR NO-UNDO. FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. DO WHILE TRUE: IF NOT FMutFlag THEN LEAVE. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U). IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE. RETURN NO-APPLY. END. CASE piPageNum: END CASE. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ END. END CASE. RUN SUPER( INPUT piPageNum). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gEWK PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO. /* RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOTALE02 gEWK PROCEDURE TOTALE02 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cSort AS CHAR NO-UNDO. IF LKey4 THEN DO: cSort = SUBSTRING(cAlt,01,08). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey4 '£££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. IF LKey3 THEN DO: cSort = SUBSTRING(cAlt,01,06). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey3 '£££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. IF LKey2 THEN DO: cSort = SUBSTRING(cAlt,01,04). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey2 '£££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. IF LKey1 THEN DO: cSort = SUBSTRING(cAlt,01,02). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey1 '£££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. PUT CONTROL '£' CHR(10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOTALE03 gEWK PROCEDURE TOTALE03 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cSort AS CHAR NO-UNDO. IF LKey4 THEN DO: cSort = SUBSTRING(cAlt,01,08). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey4 '£££££££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. IF LKey3 THEN DO: cSort = SUBSTRING(cAlt,01,06). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey3 '£££££££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. IF LKey2 THEN DO: cSort = SUBSTRING(cAlt,01,04). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey2 '£££££££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. IF LKey1 THEN DO: cSort = SUBSTRING(cAlt,01,02). FIND Totale WHERE Totale.Sort_1 = cSort. IF Totale.Menge <> dMenge OR Totale.Liter <> dLiter THEN DO: PUT CONTROL cTKey1 '£££££££££' STRING(Totale.Menge,'->>>>,>>9.99') '£' STRING(Totale.Liter,'->>>>,>>9.99') CHR(10). END. END. PUT CONTROL '£' CHR(10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOTALE04 gEWK PROCEDURE TOTALE04 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ PUT CONTROL '£' CHR(10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE WERTE_EINLESEN gEWK PROCEDURE WERTE_EINLESEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: VLiArt = INTEGER(CB_LiArt:SCREEN-VALUE). cKey = 'EWKArt' + STRING(INTEGER(CB_LiArt:SCREEN-VALUE),'99'). GET-KEY-VALUE SECTION 'Auswertungen' KEY cKey VALUE cRetVal. IF cRetVal = ? THEN cRetVal = '0@0@0@999999@9999@9999@@@@@no@no@'. DO ix = 1 TO NUM-ENTRIES(cRetVal, '@'). CASE ix: WHEN 1 THEN F_VonArtnr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 2 THEN F_VonInhalt = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 3 THEN F_VonJahr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 4 THEN F_BisArtnr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 5 THEN F_BisInhalt = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 6 THEN F_BisJahr = INTEGER(ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 7 THEN F_Herst = ENTRY(ix, cRetVal, '@') NO-ERROR. WHEN 8 THEN F_Wgrp = ENTRY(ix, cRetVal, '@') NO-ERROR. WHEN 9 THEN F_VonDatum = DATE( ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 10 THEN F_BisDatum = DATE( ENTRY(ix, cRetVal, '@')) NO-ERROR. WHEN 11 THEN DO: IF ENTRY(ix, cRetVal, '@') BEGINS 'n' THEN T_Abschluss = FALSE. ELSE T_Abschluss = TRUE. END. WHEN 12 THEN DO: IF ENTRY(ix, cRetVal, '@') BEGINS 'n' THEN T_Detail = FALSE. ELSE T_Detail = TRUE. END. END CASE. END. DISPLAY {&list-6}. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME