&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE XSchrift NO-UNDO LIKE Schrift. DEFINE NEW SHARED TEMP-TABLE XTermOut NO-UNDO LIKE TermOut. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win /*------------------------------------------------------------------------ File: Description: from BROWSER.W - Basic SmartBrowser Object Template Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress UIB. */ /*----------------------------------------------------------------------*/ /* 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 AltSchname LIKE Schrift.Schname NO-UNDO. DEF VAR QOpen AS LOG NO-UNDO. DEF VAR FOpen AS LOG NO-UNDO. DEF VAR OBreite AS INT. DEF VAR VProgname AS CHAR NO-UNDO. DEF VAR XArtnr LIKE Artst.Artnr. DEF VAR ARecid AS RECID INIT -1 NO-UNDO. DEF VAR BRecid AS RECID INIT -1 NO-UNDO. DEF VAR FInit AS LOG NO-UNDO. DEF VAR Aktive AS LOG NO-UNDO. DEF VAR cCodeArt AS CHAR INIT 'P0206100' NO-UNDO. DEF VAR cBarCode AS CHAR NO-UNDO. DEF VAR iLager AS INT NO-UNDO. /* ------------------------------------------------------------------------- */ DEF VAR VArtnr LIKE Artst.Artnr NO-UNDO. DEF VAR BArtnr LIKE Artst.Artnr NO-UNDO. DEF VAR VInhalt LIKE Artst.Inhalt NO-UNDO. DEF VAR BInhalt LIKE Artst.Inhalt NO-UNDO. DEF VAR VWgr LIKE Artst.Wg_Grp NO-UNDO. DEF VAR BWgr LIKE Artst.Wg_Grp NO-UNDO. DEF VAR VPgr LIKE Artst.Prod_Grp NO-UNDO. DEF VAR BPgr LIKE Artst.Prod_Grp NO-UNDO. DEF VAR VAgr LIKE Artst.Art_Grp NO-UNDO. DEF VAR BAgr LIKE Artst.Art_Grp NO-UNDO. DEF VAR VHerst LIKE Artst.Herst NO-UNDO. DEF VAR BHerst LIKE Artst.Herst NO-UNDO. DEF VAR VDatum AS DATE FORMAT "99.99.9999" NO-UNDO. DEF VAR VPerDat AS DATE FORMAT "99.99.9999" NO-UNDO. DEF VAR VInvDat AS DATE FORMAT "99.99.9999" NO-UNDO. DEF VAR VZweite AS LOG NO-UNDO. DEF VAR VGebinde AS LOG NO-UNDO. DEF VAR VPreis AS INT NO-UNDO. DEF VAR VInvneu AS DEC DECIMALS 4 NO-UNDO. DEF VAR VBestand AS DEC DECIMALS 4 NO-UNDO. DEF VAR VBetrag AS DEC DECIMALS 4 NO-UNDO. DEF VAR VVerlust AS DEC DECIMALS 4 NO-UNDO. DEF VAR VInvwert AS DEC DECIMALS 4 NO-UNDO. DEF VAR VLagwert AS DEC DECIMALS 4 NO-UNDO. DEF VAR VEingang AS DEC DECIMALS 4 NO-UNDO. DEF VAR VAusgang AS DEC DECIMALS 4 NO-UNDO. DEF VAR VVorMonat AS DEC DECIMALS 4 NO-UNDO. DEF VAR VKGebMe AS DEC DECIMALS 4 NO-UNDO. DEF VAR VVGebMe AS DEC DECIMALS 4 NO-UNDO. DEF VAR VKGebPr AS DEC DECIMALS 4 NO-UNDO. DEF VAR VVGebPr AS DEC DECIMALS 4 NO-UNDO. DEF VAR VKGebWe AS DEC DECIMALS 4 NO-UNDO. DEF VAR VVGebWe AS DEC DECIMALS 4 NO-UNDO. DEF VAR VJJ AS INT NO-UNDO. DEF VAR VMM AS INT NO-UNDO. DEF VAR VGebInh AS INT NO-UNDO. DEF VAR VGebText AS CHAR NO-UNDO. DEF VAR VLkz AS CHAR NO-UNDO. DEF VAR FLandSort AS LOG NO-UNDO. DEF VAR FLager AS LOG NO-UNDO. DEF VAR FBestand AS LOG NO-UNDO. DEF VAR FAusverk AS LOG NO-UNDO. DEF VAR Sprcd AS INT NO-UNDO. DEF VAR FAltBest AS LOG NO-UNDO. DEF VAR AufSort AS INT NO-UNDO. DEF VAR XWgr AS CHAR FORMAT "x(30)" NO-UNDO. DEF VAR XPgr AS CHAR FORMAT "x(30)" NO-UNDO. DEF VAR XAgr AS CHAR FORMAT "x(30)" NO-UNDO. DEF VAR XLkz AS CHAR FORMAT "x(30)" NO-UNDO. DEF VAR XStern AS CHAR FORMAT "x" NO-UNDO. DEF VAR VTotal0 AS DEC EXTENT 10. DEF VAR VTotal1 AS DEC EXTENT 10. DEF VAR VTotal2 AS DEC EXTENT 10. DEF VAR VTotal3 AS DEC EXTENT 10. DEF VAR VTotal4 AS DEC EXTENT 10. DEF VAR VTotal5 AS DEC EXTENT 10. DEF VAR VZeile AS CHAR FORMAT "x(180)". DEF VAR RRand AS INT INIT 0. DEF VAR VExcelZeile AS INT INIT 0. DEF VAR cDateiName AS CHAR NO-UNDO. DEF STREAM Inp_Stream. DEF STREAM Out_Stream. DEF BUFFER BArtLief FOR ArtLief. DEF BUFFER BArtst FOR Artst. DEF BUFFER BAdresse FOR Adresse. DEF TEMP-TABLE TArtst LIKE Artst FIELD Bez1 AS CHAR FIELD Bez2 AS CHAR FIELD Preis AS DEC DECIMALS 4 FIELD Verlust AS DEC DECIMALS 4 FIELD KGeb_Wert AS DEC DECIMALS 4 FIELD VGeb_Wert AS DEC DECIMALS 4 FIELD LagOrt AS CHAR FIELD cSort AS CHAR. DEF TEMP-TABLE TExcel FIELD Zeile AS INT FIELD Sonder AS INT FIELD Feld AS CHAR EXTENT 20. /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } { v8/listtitv.i "NEW" "SHARED" } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartBrowser &Scoped-define DB-AWARE no &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME Br_Druckername /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES XSchrift Schrift /* Definitions for BROWSE Br_Druckername */ &Scoped-define FIELDS-IN-QUERY-Br_Druckername XSchrift.Schname &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Druckername &Scoped-define QUERY-STRING-Br_Druckername FOR EACH XSchrift NO-LOCK ~ BY XSchrift.Schname &Scoped-define OPEN-QUERY-Br_Druckername OPEN QUERY Br_Druckername FOR EACH XSchrift NO-LOCK ~ BY XSchrift.Schname. &Scoped-define TABLES-IN-QUERY-Br_Druckername XSchrift &Scoped-define FIRST-TABLE-IN-QUERY-Br_Druckername XSchrift /* Definitions for BROWSE Br_Schriftbild */ &Scoped-define FIELDS-IN-QUERY-Br_Schriftbild Schrift.Schbild &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Schriftbild &Scoped-define QUERY-STRING-Br_Schriftbild FOR EACH Schrift NO-LOCK ~ BY Schrift.Schbild &Scoped-define OPEN-QUERY-Br_Schriftbild OPEN QUERY Br_Schriftbild FOR EACH Schrift NO-LOCK ~ BY Schrift.Schbild. &Scoped-define TABLES-IN-QUERY-Br_Schriftbild Schrift &Scoped-define FIRST-TABLE-IN-QUERY-Br_Schriftbild Schrift /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-FIELDS Listen.ENr[2] Listen.VFl[6] Listen.VNr[1] ~ Listen.VNr[4] Listen.BNr[1] Listen.BNr[4] Listen.VNr[2] Listen.BNr[2] ~ Listen.VNr[5] Listen.BNr[5] Listen.VNr[6] Listen.BNr[6] Listen.VNr[3] ~ Listen.BNr[3] Listen.EDa[1] Listen.VFl[4] Listen.ENr[1] Listen.VFl[1] ~ Listen.VFl[2] Listen.VFl[3] Listen.VFl[5] Listen.VFl[7] &Scoped-define ENABLED-TABLES Listen &Scoped-define FIRST-ENABLED-TABLE Listen &Scoped-Define ENABLED-OBJECTS Br_Schriftbild Br_Druckername F_Sort F_TZZ ~ F_KZZ F_FZZ F_LQ F_KOPIE F_SCHACHT CB_Lager F_USER F_Programm CB_Land ~ F_Zeichen Btn_Start Btn_Ende Btn_Excel RECT-37 RECT-38 RECT-39 RECT-40 ~ RECT-41 RECT-42 &Scoped-Define DISPLAYED-FIELDS Listen.ENr[2] Listen.VFl[6] Listen.VNr[1] ~ Listen.VNr[4] Listen.BNr[1] Listen.BNr[4] Listen.VNr[2] Listen.BNr[2] ~ Listen.VNr[5] Listen.BNr[5] Listen.VNr[6] Listen.BNr[6] Listen.VNr[3] ~ Listen.BNr[3] Listen.EDa[1] Listen.VFl[4] Listen.ENr[1] Listen.VFl[1] ~ Listen.VFl[2] Listen.VFl[3] Listen.VFl[5] Listen.VFl[7] &Scoped-define DISPLAYED-TABLES Listen &Scoped-define FIRST-DISPLAYED-TABLE Listen &Scoped-Define DISPLAYED-OBJECTS F_Sort F_TZZ F_KZZ F_FZZ F_LQ F_KOPIE ~ F_SCHACHT CB_Lager F_USER F_Programm CB_Land F_Zeichen /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Sort F_TZZ F_KZZ F_FZZ F_LQ F_KOPIE F_SCHACHT ~ F_USER F_Programm F_Zeichen &Scoped-define List-2 Listen.ENr[2] Listen.VFl[6] Listen.VNr[1] ~ Listen.VNr[4] Listen.BNr[1] Listen.BNr[4] Listen.VNr[2] Listen.BNr[2] ~ Listen.VNr[5] Listen.BNr[5] Listen.VNr[6] Listen.BNr[6] Listen.VNr[3] ~ Listen.BNr[3] Listen.EDa[1] Listen.VFl[4] Listen.ENr[1] Listen.VFl[1] ~ Listen.VFl[2] Listen.VFl[3] Listen.VFl[5] Listen.VFl[7] /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE /* Actions: ? adm/support/keyedit.w ? ? ? */ /* STRUCTURED-DATA &BROWSE-NAME ************************** * Set attributes related to FOREIGN KEYS */ RUN set-attribute-list ( 'Keys-Accepted = "", Keys-Supplied = ""':U). /************************** */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE /* Actions: ? adm/support/advqedit.w ? ? ? */ /* STRUCTURED-DATA &BROWSE-NAME ************************ * Set attributes related to SORTBY-OPTIONS */ RUN set-attribute-list ( 'SortBy-Options = ""':U). /************************ */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Ende LABEL "&Ende" SIZE 11 BY 1. DEFINE BUTTON Btn_Excel LABEL "E&xcel" SIZE 11 BY 1. DEFINE BUTTON Btn_Start LABEL "&Starten" SIZE 11 BY 1. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 25 BY 1 NO-UNDO. DEFINE VARIABLE CB_Land AS CHARACTER FORMAT "X(256)":U LABEL "Land" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_FZZ AS INTEGER FORMAT "999":U INITIAL 0 LABEL "Fusszeilen" VIEW-AS FILL-IN NATIVE SIZE 6 BY 1 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_KOPIE AS INTEGER FORMAT "9":U INITIAL 0 LABEL "Anz. Kopien" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 TOOLTIP "Anzahl Listenkopien" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_KZZ AS INTEGER FORMAT "999":U INITIAL 0 LABEL "Kopfzeilen" VIEW-AS FILL-IN NATIVE SIZE 6 BY 1 TOOLTIP "Wieviele leere Kopfzeilen müssen gedruckt werden" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_LQ AS LOGICAL FORMAT "j/n":U INITIAL NO LABEL "Schönschrift" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 TOOLTIP "Wieviele Zeilen müssen am Ende der Seite leer bleiben" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Programm AS CHARACTER FORMAT "X(20)":U INITIAL "INVENTAR" LABEL "Programm" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SCHACHT AS INTEGER FORMAT "9":U INITIAL 0 LABEL "Schacht" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 TOOLTIP "Welcher Schacht muss angesteuer werden" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_TZZ AS INTEGER FORMAT "999":U INITIAL 0 LABEL "Zeilen" VIEW-AS FILL-IN NATIVE SIZE 6 BY 1 TOOLTIP "Wieviele Zeilen hat die ganze Seite" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_USER AS CHARACTER FORMAT "X(20)":U LABEL "Benutzer" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Zeichen AS INTEGER FORMAT "zzz,zz9":U INITIAL 0 LABEL "Anz. Zeichen" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Sort AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Inventaraufnahme", 1, "Inventar", 2, "Bestand", 3 SIZE 30.8 BY 2.19 NO-UNDO. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 73 BY 7.38. DEFINE RECTANGLE RECT-38 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 50 BY 7.38. DEFINE RECTANGLE RECT-39 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 125 BY 1.52. DEFINE RECTANGLE RECT-40 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 69 BY 12.38. DEFINE RECTANGLE RECT-41 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 50 BY 11.43. DEFINE RECTANGLE RECT-42 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 127 BY 23.33. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Druckername FOR XSchrift SCROLLING. DEFINE QUERY Br_Schriftbild FOR Schrift SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Druckername &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Druckername B-table-Win _STRUCTURED QUERY Br_Druckername NO-LOCK DISPLAY XSchrift.Schname COLUMN-LABEL "Drucker" FORMAT "x(30)":U WIDTH 28 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 33 BY 6.91 BGCOLOR 15 . DEFINE BROWSE Br_Schriftbild &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Schriftbild B-table-Win _STRUCTURED QUERY Br_Schriftbild DISPLAY Schrift.Schbild FORMAT "x(30)":U WIDTH 28 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 33 BY 6.91 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main Br_Schriftbild AT ROW 1.71 COL 41 Br_Druckername AT ROW 1.71 COL 4 Listen.ENr[2] AT ROW 21.14 COL 25 NO-LABEL VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Sort Waren-,Prod-,Artikelgruppe,Artnr,Inhalt", 0, "Sort Land,Inhalt,Bezeichnung", 1, "Nach Lagerort", 2, "Nach Suchbegriff", 3 SIZE 45.6 BY 2.86 Listen.VFl[6] AT ROW 19.71 COL 79 LABEL "nur ausverkaufte Artikel" VIEW-AS TOGGLE-BOX SIZE 32 BY 1 F_Sort AT ROW 6.05 COL 93 NO-LABEL F_TZZ AT ROW 9.76 COL 10 COLON-ALIGNED F_KZZ AT ROW 9.76 COL 29 COLON-ALIGNED F_FZZ AT ROW 9.76 COL 49 COLON-ALIGNED F_LQ AT ROW 9.76 COL 72 COLON-ALIGNED F_KOPIE AT ROW 9.76 COL 92 COLON-ALIGNED F_SCHACHT AT ROW 9.76 COL 109 COLON-ALIGNED CB_Lager AT ROW 12.52 COL 23 COLON-ALIGNED WIDGET-ID 2 Listen.VNr[1] AT ROW 13.52 COL 23 COLON-ALIGNED HELP "" LABEL "von - bis Artikelnr." FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 Listen.VNr[4] AT ROW 13.52 COL 34 COLON-ALIGNED NO-LABEL FORMAT "9999" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 Listen.BNr[1] AT ROW 13.52 COL 49 COLON-ALIGNED HELP "" LABEL "-" FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 Listen.BNr[4] AT ROW 13.52 COL 60 COLON-ALIGNED NO-LABEL FORMAT "9999" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 Listen.VNr[2] AT ROW 14.52 COL 23 COLON-ALIGNED LABEL "von - bis Warengrp." FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 Listen.BNr[2] AT ROW 14.52 COL 49 COLON-ALIGNED LABEL "-" FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 Listen.VNr[5] AT ROW 15.52 COL 23 COLON-ALIGNED LABEL "von - bis Prodgrp." FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 Listen.BNr[5] AT ROW 15.52 COL 49 COLON-ALIGNED LABEL "-" FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 F_USER AT ROW 2.29 COL 91 COLON-ALIGNED NO-TAB-STOP Listen.VNr[6] AT ROW 16.52 COL 23 COLON-ALIGNED LABEL "von - bis Artikelgrp." FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 Listen.BNr[6] AT ROW 16.52 COL 49 COLON-ALIGNED LABEL "-" FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 Listen.VNr[3] AT ROW 17.52 COL 23 COLON-ALIGNED LABEL "von - bis Hersteller" FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 Listen.BNr[3] AT ROW 17.52 COL 49 COLON-ALIGNED LABEL "-" FORMAT "999" VIEW-AS FILL-IN NATIVE SIZE 7 BY 1 BGCOLOR 15 F_Programm AT ROW 3.14 COL 91 COLON-ALIGNED NO-TAB-STOP Listen.EDa[1] AT ROW 18.52 COL 23 COLON-ALIGNED HELP "" AUTO-RETURN LABEL "per Datum" FORMAT "99.99.9999" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 WITH 1 DOWN KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE . /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */ DEFINE FRAME F-Main CB_Land AT ROW 19.52 COL 23 COLON-ALIGNED Listen.VFl[4] AT ROW 19.52 COL 51 LABEL "Land sortieren" VIEW-AS TOGGLE-BOX SIZE 20 BY 1 Listen.ENr[1] AT ROW 12.29 COL 79 NO-LABEL VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Bewertung zu DEP", 1, "Bewertung zu LEP", 2, "Bewertung zu Listen EP", 3, "Bewertung zu VP", 4 SIZE 32 BY 3 Listen.VFl[1] AT ROW 15.71 COL 79 LABEL "zweite Artikelzeile andrucken" VIEW-AS TOGGLE-BOX SIZE 32 BY 1 Listen.VFl[2] AT ROW 16.71 COL 79 HELP "" LABEL "Gebindewert andrucken" VIEW-AS TOGGLE-BOX SIZE 32 BY 1 Listen.VFl[3] AT ROW 17.71 COL 79 LABEL "Nur Artikel mit Lagerführung" VIEW-AS TOGGLE-BOX SIZE 32 BY 1 Listen.VFl[5] AT ROW 18.71 COL 79 LABEL "nur mit Bestand" VIEW-AS TOGGLE-BOX SIZE 32 BY 1 F_Zeichen AT ROW 4.1 COL 91 COLON-ALIGNED NO-TAB-STOP Listen.VFl[7] AT ROW 20.71 COL 79 LABEL "Bestand bei Inventaraufnahme" VIEW-AS TOGGLE-BOX SIZE 37.2 BY 1 Btn_Start AT ROW 12.52 COL 115.4 Btn_Ende AT ROW 14.05 COL 115.4 Btn_Excel AT ROW 15.52 COL 115.4 RECT-37 AT ROW 1.48 COL 3 RECT-38 AT ROW 1.48 COL 78 RECT-39 AT ROW 9.52 COL 3 RECT-40 AT ROW 11.95 COL 3 RECT-41 AT ROW 11.95 COL 78 RECT-42 AT ROW 1.24 COL 2 WITH 1 DOWN KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE . /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartBrowser Allow: Basic,Browse Frames: 1 Add Fields to: EXTERNAL-TABLES Other Settings: PERSISTENT-ONLY COMPILE Temp-Tables and Buffers: TABLE: XSchrift T "?" NO-UNDO AnaDat Schrift TABLE: XTermOut T "NEW SHARED" NO-UNDO AnaDat TermOut END-TABLES. */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW B-table-Win ASSIGN HEIGHT = 23.81 WIDTH = 130. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win /* ************************* Included-Libraries *********************** */ {src/adm/method/browser.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW B-table-Win NOT-VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */ /* BROWSE-TAB Br_Schriftbild 1 F-Main */ /* BROWSE-TAB Br_Druckername Br_Schriftbild F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN Listen.BNr[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT EXP-HELP */ /* SETTINGS FOR FILL-IN Listen.BNr[2] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.BNr[3] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.BNr[4] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.BNr[5] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.BNr[6] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.EDa[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT EXP-HELP */ /* SETTINGS FOR RADIO-SET Listen.ENr[1] IN FRAME F-Main 2 */ /* SETTINGS FOR RADIO-SET Listen.ENr[2] IN FRAME F-Main 2 */ /* SETTINGS FOR FILL-IN F_FZZ IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_KOPIE IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_KZZ IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_LQ IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_Programm IN FRAME F-Main 1 */ ASSIGN F_Programm:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_SCHACHT IN FRAME F-Main 1 */ /* SETTINGS FOR RADIO-SET F_Sort IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_TZZ IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_USER IN FRAME F-Main 1 */ ASSIGN F_USER:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Zeichen IN FRAME F-Main 1 */ ASSIGN F_Zeichen:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR TOGGLE-BOX Listen.VFl[1] IN FRAME F-Main 2 EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[2] IN FRAME F-Main 2 EXP-LABEL EXP-HELP */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[3] IN FRAME F-Main 2 EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[4] IN FRAME F-Main 2 EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[5] IN FRAME F-Main 2 EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[6] IN FRAME F-Main 2 EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX Listen.VFl[7] IN FRAME F-Main 2 EXP-LABEL */ /* SETTINGS FOR FILL-IN Listen.VNr[1] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT EXP-HELP */ /* SETTINGS FOR FILL-IN Listen.VNr[2] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.VNr[3] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.VNr[4] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.VNr[5] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Listen.VNr[6] IN FRAME F-Main 2 EXP-LABEL EXP-FORMAT */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Druckername /* Query rebuild information for BROWSE Br_Druckername _TblList = "Temp-Tables.XSchrift" _Options = "NO-LOCK" _OrdList = "Temp-Tables.XSchrift.Schname|yes" _FldNameList[1] > Temp-Tables.XSchrift.Schname "XSchrift.Schname" "Drucker" ? "character" ? ? ? ? ? ? no ? no no "28" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Druckername */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Schriftbild /* Query rebuild information for BROWSE Br_Schriftbild _TblList = "AnaDat.Schrift" _OrdList = "AnaDat.Schrift.Schbild|yes" _FldNameList[1] > AnaDat.Schrift.Schbild "Schrift.Schbild" ? ? "character" ? ? ? ? ? ? no ? no no "28" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Schriftbild */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME F-Main &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main B-table-Win ON GO OF FRAME F-Main DO: DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. END. RUN new-state ('drucken_ende':U). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Druckername &Scoped-define SELF-NAME Br_Druckername &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win ON ROW-ENTRY OF Br_Druckername IN FRAME F-Main DO: /* This code displays initial values for newly added or copied rows. */ {src/adm/template/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win ON ROW-LEAVE OF Br_Druckername IN FRAME F-Main DO: /* Do not disable this code or no updates will take place except by pressing the Save button on an Update SmartPanel. */ {src/adm/template/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Druckername B-table-Win ON VALUE-CHANGED OF Br_Druckername IN FRAME F-Main DO: DEF VAR VRecid AS RECID NO-UNDO. {src/adm/template/brschnge.i} DO WHILE TRUE WITH FRAME {&FRAME-NAME}: ASchname = XSchrift.Schname. RUN dispatch IN THIS-PROCEDURE ('open-query':U). IF NUM-RESULTS('Br_Schriftbild':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Schriftbild':U) = 0 THEN LEAVE. FIND FIRST BSchrift WHERE BSchrift.Schname = ASchname AND BSchrift.Schbild = ASchbild NO-LOCK NO-ERROR. IF AVAILABLE BSchrift THEN VRecid = RECID(BSchrift). ELSE DO: GET FIRST Br_Schriftbild. VRecid = RECID(Schrift). END. REPOSITION Br_Schriftbild TO RECID(VRecid). ASchbild = Schrift.Schbild. LEAVE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Schriftbild &Scoped-define SELF-NAME Br_Schriftbild &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win ON ROW-ENTRY OF Br_Schriftbild IN FRAME F-Main DO: /* This code displays initial values for newly added or copied rows. */ {src/adm/template/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win ON ROW-LEAVE OF Br_Schriftbild IN FRAME F-Main DO: /* Do not disable this code or no updates will take place except by pressing the Save button on an Update SmartPanel. */ {src/adm/template/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Schriftbild B-table-Win ON VALUE-CHANGED OF Br_Schriftbild IN FRAME F-Main DO: {src/adm/template/brschnge.i} IF ASchbild <> Schrift.Schbild THEN DO: ASSIGN F_TZZ = Schrift.Schzztot F_KZZ = Schrift.Schzzbeg F_FZZ = Schrift.Schzzend. DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}. END. ASchbild = Schrift.Schbild. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Ende &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ende B-table-Win ON CHOOSE OF Btn_Ende IN FRAME F-Main /* Ende */ DO: DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. Listen.ECh[01] = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}. END. { v8/druck_ende.i } RUN new-state ('Seite_1':U). APPLY 'GO' TO FRAME {&FRAME-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel B-table-Win ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */ DO: DO TRANSACTION WITH FRAME {&FRAME-NAME}: ASSIGN {&List-1}. iLager = INTEGER(CB_Lager:SCREEN-VALUE). i1 = Br_Druckername:NUM-SELECTED-ROWS. IF i1 = 0 THEN RETURN NO-APPLY. Br_Druckername:FETCH-SELECTED-ROW(1). i1 = Br_Schriftbild:NUM-SELECTED-ROWS. IF i1 = 0 THEN RETURN NO-APPLY. Br_Schriftbild:FETCH-SELECTED-ROW(1). FIND Listen WHERE RECID(Listen) = ARecid. FIND LiDruck WHERE RECID(LiDruck) = BRecid. ASSIGN Breite = F_Zeichen Listen.Sort = F_Sort Listen.ProgWahl = F_Sort LiDruck.Listtzz = F_TZZ LiDruck.Listkzz = F_KZZ LiDruck.Listfzz = F_FZZ LiDruck.Listlq = F_LQ LiDruck.ListCopy = F_KOPIE LiDruck.Schacht = F_SCHACHT LiDruck.Listdru = XSchrift.Schname LiDruck.Listbild = Schrift.Schbild. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1. ASSIGN {&List-2}. IF VNr[01] = 0 AND BNr[01] = 0 THEN BNr[01] = 999999. IF VNr[01] > BNr[01] THEN BNr[01] = VNr[01]. IF VNr[04] = 0 AND BNr[04] = 0 THEN BNr[04] = 9999. IF VNr[04] > BNr[04] THEN BNr[04] = VNr[04]. IF VNr[02] = 0 AND BNr[02] = 0 THEN BNr[02] = 999. IF VNr[02] > BNr[02] THEN BNr[02] = VNr[02]. IF VNr[05] = 0 AND BNr[05] = 0 THEN BNr[05] = 999. IF VNr[05] > BNr[05] THEN BNr[05] = VNr[05]. IF VNr[06] = 0 AND BNr[06] = 0 THEN BNr[06] = 999. IF VNr[06] > BNr[06] THEN BNr[06] = VNr[06]. IF VNr[03] = 0 AND BNr[03] = 0 THEN BNr[03] = 999. IF VNr[03] > BNr[03] THEN BNr[03] = VNr[03]. ECh[01] = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}. VGebinde = VFl[02]. fAltBest = VFl[07]. AufSort = ENr[02]. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}. ASSIGN LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99'). RELEASE Listen . RELEASE LiDruck. END. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK. DISABLE Btn_Start WITH FRAME {&FRAME-NAME}. DISABLE Btn_Ende WITH FRAME {&FRAME-NAME}. DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}. RUN EXCEL. DO TRANSACTION WITH FRAME {&FRAME-NAME}: FIND Listen WHERE RECID(Listen) = ARecid. ASSIGN Listen.Listfl = ''. RELEASE Listen . END. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK. ENABLE Btn_Start WITH FRAME {&FRAME-NAME}. ENABLE Btn_Ende WITH FRAME {&FRAME-NAME}. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Start &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Start B-table-Win ON CHOOSE OF Btn_Start IN FRAME F-Main /* Starten */ DO: DO TRANSACTION WITH FRAME {&FRAME-NAME}: ASSIGN {&List-1}. iLager = INTEGER(CB_Lager:SCREEN-VALUE). i1 = Br_Druckername:NUM-SELECTED-ROWS. IF i1 = 0 THEN RETURN NO-APPLY. Br_Druckername:FETCH-SELECTED-ROW(1). i1 = Br_Schriftbild:NUM-SELECTED-ROWS. IF i1 = 0 THEN RETURN NO-APPLY. Br_Schriftbild:FETCH-SELECTED-ROW(1). FIND Listen WHERE RECID(Listen) = ARecid. FIND LiDruck WHERE RECID(LiDruck) = BRecid. ASSIGN Breite = F_Zeichen Listen.Sort = F_Sort Listen.ProgWahl = F_Sort LiDruck.Listtzz = F_TZZ LiDruck.Listkzz = F_KZZ LiDruck.Listfzz = F_FZZ LiDruck.Listlq = F_LQ LiDruck.ListCopy = F_KOPIE LiDruck.Schacht = F_SCHACHT LiDruck.Listdru = XSchrift.Schname LiDruck.Listbild = Schrift.Schbild. IF LiDruck.ListCopy = 0 THEN LiDruck.ListCopy = 1. ASSIGN {&List-2}. IF VNr[01] = 0 AND BNr[01] = 0 THEN BNr[01] = 999999. IF VNr[01] > BNr[01] THEN BNr[01] = VNr[01]. IF VNr[04] = 0 AND BNr[04] = 0 THEN BNr[04] = 9999. IF VNr[04] > BNr[04] THEN BNr[04] = VNr[04]. IF VNr[02] = 0 AND BNr[02] = 0 THEN BNr[02] = 999. IF VNr[02] > BNr[02] THEN BNr[02] = VNr[02]. IF VNr[03] = 0 AND BNr[03] = 0 THEN BNr[03] = 999. IF VNr[03] > BNr[03] THEN BNr[03] = VNr[03]. IF VNr[05] = 0 AND BNr[05] = 0 THEN BNr[05] = 999. IF VNr[05] > BNr[05] THEN BNr[05] = VNr[05]. IF VNr[06] = 0 AND BNr[06] = 0 THEN BNr[06] = 999. IF VNr[06] > BNr[06] THEN BNr[06] = VNr[06]. ECh[01] = CB_Land:SCREEN-VALUE IN FRAME {&FRAME-NAME}. VGebinde = VFl[02]. fAltBest = VFl[07]. AufSort = ENr[02]. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}. ASSIGN LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99'). RELEASE Listen . RELEASE LiDruck. END. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK. DISABLE Btn_Start WITH FRAME {&FRAME-NAME}. DISABLE Btn_Ende WITH FRAME {&FRAME-NAME}. DISABLE Btn_Excel WITH FRAME {&FRAME-NAME}. RUN LIBILD. IF F_Sort = 2 THEN Breite = F_Zeichen. RUN DRUCKEN. DO TRANSACTION WITH FRAME {&FRAME-NAME}: FIND Listen WHERE RECID(Listen) = ARecid. ASSIGN Listen.Listfl = ''. RELEASE Listen . END. FIND Listen WHERE RECID(Listen ) = ARecid NO-LOCK. ENABLE Btn_Start WITH FRAME {&FRAME-NAME}. ENABLE Btn_Ende WITH FRAME {&FRAME-NAME}. ENABLE Btn_Excel WITH FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager B-table-Win ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */ DO: iLager = INTEGER(SELF:SCREEN-VALUE). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.ENr[2] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.ENr[2] B-table-Win ON VALUE-CHANGED OF Listen.ENr[2] IN FRAME F-Main /* ENr */ DO: IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN Btn_Start:SENSITIVE = TRUE. ELSE Btn_Start:SENSITIVE = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Sort &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Sort B-table-Win ON VALUE-CHANGED OF F_Sort IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: F_Sort = INTEGER(F_Sort:SCREEN-VALUE). FIND LiBild USE-INDEX LiBild-k1 WHERE LiBild.Sprcd = GVSprcd AND LiBild.Prog = F_Programm + STRING(F_Sort,"99") AND LiBild.Tenr = 1 NO-LOCK. F_Zeichen = INTEGER(SUBSTRING(LiBild.Litext,02,03)). IF VFl[02]:SCREEN-VALUE = '1' AND F_Sort = 2 THEN F_Zeichen = F_Zeichen + 20. DISPLAY F_Zeichen. IF F_Sort = 1 THEN DO: Listen.ENr[01]:SENSITIVE = FALSE. Listen.ENr[02]:SENSITIVE = TRUE. Listen.EDa[01]:SENSITIVE = FALSE. Listen.VFl[07]:SENSITIVE = TRUE . END. ELSE DO: Listen.ENr[01]:SENSITIVE = TRUE. Listen.ENr[02]:SENSITIVE = FALSE. Listen.EDa[01]:SENSITIVE = TRUE. Listen.VFl[07]:SENSITIVE = FALSE. END. IF F_Sort = 2 OR F_Sort = 3 THEN DO: VFl[02]:SENSITIVE = TRUE. END. ELSE DO WITH FRAME {&FRAME-NAME}: VFl[02]:SENSITIVE = FALSE. END. IF F_Sort = 3 THEN DO: Listen.EDa[01]:SENSITIVE = TRUE. END. ELSE DO: Listen.EDa[01]:SENSITIVE = FALSE. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.VFl[1] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[1] B-table-Win ON RETURN OF Listen.VFl[1] IN FRAME F-Main /* zweite Artikelzeile andrucken */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.VFl[2] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[2] B-table-Win ON RETURN OF Listen.VFl[2] IN FRAME F-Main /* Gebindewert andrucken */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[2] B-table-Win ON VALUE-CHANGED OF Listen.VFl[2] IN FRAME F-Main /* Gebindewert andrucken */ DO: IF VFL[2]:SCREEN-VALUE = '0' THEN F_Zeichen = F_Zeichen - 20. ELSE F_Zeichen = F_Zeichen + 20. DISPLAY F_Zeichen WITH FRAME {&FRAME-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.VFl[3] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[3] B-table-Win ON RETURN OF Listen.VFl[3] IN FRAME F-Main /* Nur Artikel mit Lagerführung */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Listen.VFl[5] &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Listen.VFl[5] B-table-Win ON RETURN OF Listen.VFl[5] IN FRAME F-Main /* nur mit Bestand */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Druckername &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win /* *************************** Main Block *************************** */ Aktive = DYNAMIC-FUNCTION('getSuperAktiv') NO-ERROR. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF ON END-ERROR ANYWHERE DO: DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. RELEASE Listen. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE PROCEDURE adm-row-available : /*------------------------------------------------------------------------------ Purpose: Dispatched to this procedure when the Record- Source has a new row available. This procedure tries to get the new row (or foriegn keys) from the Record-Source and process it. Parameters: ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/row-head.i} /* Process the newly available records (i.e. display fields, open queries, and/or pass records on to any RECORD-TARGETS). */ {src/adm/template/row-end.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_INVENTARAUFNAHME B-table-Win PROCEDURE AUSGABE_INVENTARAUFNAHME : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR XWgr AS CHAR NO-UNDO. DEF VAR XPro AS CHAR NO-UNDO. DEF VAR XAgr AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR VTexte AS CHAR NO-UNDO INIT ';;'. FOR EACH TExcel: DELETE TExcel. END. IF AufSort = 0 THEN DO: FOR EACH TArtst BREAK BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). END. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. IF XWgr <> '' THEN DO: ENTRY(1, VTexte, ';') = XWgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XWgr. END. IF XPgr <> '' THEN DO: ENTRY(2, VTexte, ';') = XPgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XPgr. END. IF XAgr <> '' THEN DO: ENTRY(3, VTexte, ';') = XAgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XAgr. END. XWgr = ''. XPGr = ''. XAgr = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag. ELSE VInvwert = 0. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag. ELSE VLagwert = 0. RUN NEUEZEILE. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999") TExcel.Feld[03] = STRING(TArtst.Inhalt ,"9999") TExcel.Feld[04] = TArtst.Bez1 TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz")) TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz")) TExcel.Feld[08] = VGebText TExcel.Feld[09] = TRIM(STRING(TArtst.Bestand ,"->>>>>>>9.99")) TExcel.Feld[11] = '__________' TExcel.Feld[12] = '__________' TExcel.Feld[13] = '__________'. IF TArtst.Alk_Gehalt > 0 THEN TExcel.Feld[06] = TRIM(STRING(TArtst.Alk_Gehalt,"z9.99%")). IF TArtst.Bez2 <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[04] = TArtst.Bez2. END. IF LAST-OF ( TArtst.Art_Grp ) THEN DO: RUN NEUEZEILE. END. END. END. IF AufSort = 1 THEN DO: FOR EACH TArtst BREAK BY TArtst.Herk_Lkz BY TArtst.Inhalt BY TArtst.Bez1 BY TArtst.Jahr : IF FIRST-OF ( TArtst.Herk_Lkz ) THEN DO: FIND Land USE-INDEX Land-k2 WHERE Land.Lkz = TArtst.Herk_Lkz NO-LOCK NO-ERROR. IF AVAILABLE Land THEN XWgr = Land.Bez. ELSE XWgr = FILL('?', 20). END. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. IF XWgr <> '' THEN DO: ENTRY(1, VTexte, ';') = XWgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XWgr. END. IF XPgr <> '' THEN DO: ENTRY(2, VTexte, ';') = XPgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XPgr. END. IF XAgr <> '' THEN DO: ENTRY(3, VTexte, ';') = XAgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XAgr. END. XWgr = ''. XPGr = ''. XAgr = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag. ELSE VInvwert = 0. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag. ELSE VLagwert = 0. RUN NEUEZEILE. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999") TExcel.Feld[03] = STRING(TArtst.Inhalt ,"9999") TExcel.Feld[04] = TArtst.Bez1 TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz")) TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz")) TExcel.Feld[08] = VGebText TExcel.Feld[09] = TRIM(STRING(TArtst.Bestand ,"->>>>>>>9.99")) TExcel.Feld[11] = '__________' TExcel.Feld[12] = '__________' TExcel.Feld[13] = '__________'. IF TArtst.Alk_Gehalt > 0 THEN TExcel.Feld[06] = TRIM(STRING(TArtst.Alk_Gehalt,"z9.99%")). IF TArtst.Bez2 <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[04] = TArtst.Bez2. END. IF LAST-OF ( TArtst.Herk_Lkz ) THEN DO: RUN NEUEZEILE. END. END. END. IF AufSort = 2 OR AufSort = 3 THEN DO: FOR EACH TArtst BREAK BY TArtst.cSort BY TArtst.Inhalt BY TArtst.Bez1 BY TArtst.Jahr : XWgr = ''. XPGr = ''. XAgr = ''. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag. ELSE VInvwert = 0. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag. ELSE VLagwert = 0. RUN NEUEZEILE. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999") TExcel.Feld[03] = STRING(TArtst.Inhalt ,"9999") TExcel.Feld[04] = TArtst.Bez1 TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz")) TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz")) TExcel.Feld[08] = VGebText TExcel.Feld[09] = TRIM(STRING(TArtst.Bestand ,"->>>>>>>9.99")) TExcel.Feld[11] = '__________' TExcel.Feld[12] = '__________' TExcel.Feld[13] = '__________'. IF TArtst.Alk_Gehalt > 0 THEN TExcel.Feld[06] = TRIM(STRING(TArtst.Alk_Gehalt,"z9.99%")). IF TArtst.Bez2 <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[04] = TArtst.Bez2. END. END. END. cVorlage = 'InventarAufnahme.xls'. cDokument = 'InventarAufnahme.xls'. cDaten = 'InventarAufnahme.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). FOR EACH TExcel: PUT CONTROL TExcel.Feld[01] '£' TExcel.Feld[02] '£' TExcel.Feld[03] '£' TExcel.Feld[04] '£' TExcel.Feld[05] '£' TExcel.Feld[06] '£' TExcel.Feld[07] '£' TExcel.Feld[08] '£' TExcel.Feld[09] '£' TExcel.Feld[10] '£' TExcel.Feld[11] '£' TExcel.Feld[12] '£' TExcel.Feld[13] CHR(13). 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 = 'A5'. 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 AUSGABE_INVENTARBESTAND B-table-Win PROCEDURE AUSGABE_INVENTARBESTAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR XWgr AS CHAR NO-UNDO. DEF VAR XPro AS CHAR NO-UNDO. DEF VAR XAgr AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR VTexte AS CHAR NO-UNDO INIT ';;'. FOR EACH TExcel: DELETE TExcel. END. FOR EACH TArtst BREAK BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). END. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. IF XWgr <> '' THEN DO: ENTRY(1, VTexte, ';') = XWgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XWgr. END. IF XPgr <> '' THEN DO: ENTRY(2, VTexte, ';') = XPgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XPgr. END. IF XAgr <> '' THEN DO: ENTRY(3, VTexte, ';') = XAgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XAgr. END. XWgr = ''. XPGr = ''. XAgr = ''. VKGebPr = 0. VVGebPr = 0. VKGebWe = 0. VVGebWe = 0. VGebInh = 0. VGebText = '?????????'. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. IF VGebinde THEN DO: VKGebPr = KGebinde.Depot. VVGebPr = VGebinde.Depot. IF KGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot. END. IF VGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot. END. VKGebWe = TArtst.KGeb_Wert * VKGebPr. VVGebWe = TArtst.VGeb_Wert * VVGebPr. END. FIND ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = TArtst.Firma AND ArtUms.Jahr = VJJ AND ArtUms.Artnr = TArtst.Artnr AND ArtUms.Inhalt = TArtst.Inhalt AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR. VBetrag = TArtst.Preis. VVorMonat = 0. IF AVAILABLE ArtUms THEN DO: VVorMonat = ArtUms.Me_Mon[VMM]. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag. ELSE VInvwert = 0. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag. ELSE VLagwert = 0. RUN NEUEZEILE. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999") TExcel.Feld[03] = STRING(TArtst.Inhalt,"9999") TExcel.Feld[04] = TArtst.Bez1 TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz")) TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz")) TExcel.Feld[08] = VGebText TExcel.Feld[09] = TRIM(STRING(VInvneu ,"->>>>>>>>9")) TExcel.Feld[10] = TRIM(STRING(VVerlust ,"->>>>>>>>9")) TExcel.Feld[11] = TRIM(STRING(VBetrag ,"->>>>>9.99")) TExcel.Feld[12] = TRIM(STRING(VInvwert ,"->>>>>9.99")). IF TArtst.Alk_Gehalt > 0 THEN TExcel.Feld[06] = STRING(TArtst.Alk_Gehalt,"z9.99%"). IF VGebinde THEN DO: TExcel.Feld[13] = TRIM(STRING(VKGebWe ,"->>>>>9.99")). TExcel.Feld[14] = TRIM(STRING(VVGebWe ,"->>>>>9.99")). END. IF TArtst.Bez2 <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[04] = TArtst.Bez2. END. VTotal0[01] = VTotal0[01] + VInvneu. VTotal0[02] = VTotal0[02] + VVerlust. VTotal0[03] = VTotal0[03] + VInvwert. VTotal0[04] = VTotal0[04] + VBestand. VTotal0[05] = VTotal0[05] + VLagwert. VTotal0[06] = VTotal0[06] + VKGebWe . VTotal0[07] = VTotal0[07] + VVGebWe . VTotal1[01] = VTotal1[01] + VInvneu. VTotal1[02] = VTotal1[02] + VVerlust. VTotal1[03] = VTotal1[03] + VInvwert. VTotal1[04] = VTotal1[04] + VBestand. VTotal1[05] = VTotal1[05] + VLagwert. VTotal1[06] = VTotal1[06] + VKGebWe . VTotal1[07] = VTotal1[07] + VVGebWe . VTotal2[01] = VTotal2[01] + VInvneu. VTotal2[02] = VTotal2[02] + VVerlust. VTotal2[03] = VTotal2[03] + VInvwert. VTotal2[04] = VTotal2[04] + VBestand. VTotal2[05] = VTotal2[05] + VLagwert. VTotal2[06] = VTotal2[06] + VKGebWe . VTotal2[07] = VTotal2[07] + VVGebWe . VTotal3[01] = VTotal3[01] + VInvneu. VTotal3[02] = VTotal3[02] + VVerlust. VTotal3[03] = VTotal3[03] + VInvwert. VTotal3[04] = VTotal3[04] + VBestand. VTotal3[05] = VTotal3[05] + VLagwert. VTotal3[06] = VTotal3[06] + VKGebWe . VTotal3[07] = VTotal3[07] + VVGebWe . IF LAST-OF ( TArtst.Art_Grp ) THEN DO: XAgr = ENTRY(3, VTexte, ';'). IF XAgr <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[01] = 'Total ' + XAgr. TExcel.Feld[09] = TRIM(STRING(VTotal3[01],'->>>>>>9')). TExcel.Feld[10] = TRIM(STRING(VTotal3[02],'->>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal3[03],'->>>>>>>>9')). IF VGebinde THEN DO: TExcel.Feld[13] = TRIM(STRING(VTotal3[06],'->>>>>>>>9')). TExcel.Feld[14] = TRIM(STRING(VTotal3[07],'->>>>>>>>9')). END. END. VTotal3 = 0. XAgr = ''. END. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO: XPgr = ENTRY(2, VTexte, ';'). IF XPgr <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[01] = 'Total ' + XPgr. TExcel.Feld[09] = TRIM(STRING(VTotal2[01],'->>>>>>9')). TExcel.Feld[10] = TRIM(STRING(VTotal2[02],'->>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal2[03],'->>>>>>>>9')). IF VGebinde THEN DO: TExcel.Feld[13] = TRIM(STRING(VTotal2[06],'->>>>>>>>9')). TExcel.Feld[14] = TRIM(STRING(VTotal2[07],'->>>>>>>>9')). END. END. VTotal2 = 0. XPgr = ''. END. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO: XWgr = ENTRY(1, VTexte, ';'). IF XWgr <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[01] = 'Total ' + XWgr. TExcel.Feld[09] = TRIM(STRING(VTotal1[01],'->>>>>>9')). TExcel.Feld[10] = TRIM(STRING(VTotal1[02],'->>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal1[03],'->>>>>>>>9')). IF VGebinde THEN DO: TExcel.Feld[13] = TRIM(STRING(VTotal1[06],'->>>>>>>>9')). TExcel.Feld[14] = TRIM(STRING(VTotal1[07],'->>>>>>>>9')). END. END. VTotal1 = 0. XWgr = ''. END. IF LAST-OF ( TArtst.Art_Grp ) THEN DO: RUN NEUEZEILE. END. END. RUN NEUEZEILE. RUN NEUEZEILE. TExcel.Feld[01] = 'Gesamttotal'. TExcel.Feld[09] = TRIM(STRING(VTotal0[01],'->>>>>>9')). TExcel.Feld[10] = TRIM(STRING(VTotal0[02],'->>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal0[03],'->>>>>>>>9')). IF VGebinde THEN DO: TExcel.Feld[13] = TRIM(STRING(VTotal0[06],'->>>>>>>>9')). TExcel.Feld[14] = TRIM(STRING(VTotal0[07],'->>>>>>>>9')). END. cVorlage = 'InventarBestand.xls'. cDokument = 'InventarBestand.xls'. cDaten = 'InventarBestand.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). FOR EACH TExcel: PUT CONTROL TExcel.Feld[01] '£' TExcel.Feld[02] '£' TExcel.Feld[03] '£' TExcel.Feld[04] '£' TExcel.Feld[05] '£' TExcel.Feld[06] '£' TExcel.Feld[07] '£' TExcel.Feld[08] '£' TExcel.Feld[09] '£' TExcel.Feld[10] '£' TExcel.Feld[11] '£' TExcel.Feld[12] '£' TExcel.Feld[13] '£' TExcel.Feld[14] CHR(13). 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 = 'A5'. 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 AUSGABE_LAGERBESTAND B-table-Win PROCEDURE AUSGABE_LAGERBESTAND : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR XWgr AS CHAR NO-UNDO. DEF VAR XPro AS CHAR NO-UNDO. DEF VAR XAgr AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR VTexte AS CHAR NO-UNDO INIT ';;'. FOR EACH TExcel: DELETE TExcel. END. FOR EACH TArtst BREAK BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). END. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. IF XWgr <> '' THEN DO: ENTRY(1, VTexte, ';') = XWgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XWgr. END. IF XPgr <> '' THEN DO: ENTRY(2, VTexte, ';') = XPgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XPgr. END. IF XAgr <> '' THEN DO: ENTRY(3, VTexte, ';') = XAgr. RUN NEUEZEILE. ASSIGN TExcel.Sonder = 1 TExcel.Feld[01] = XAgr. END. XWgr = ''. XPGr = ''. XAgr = ''. VKGebPr = 0. VVGebPr = 0. VKGebWe = 0. VVGebWe = 0. VGebInh = 0. VGebText = '?????????'. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. IF VGebinde THEN DO: VKGebPr = KGebinde.Depot. VVGebPr = VGebinde.Depot. IF KGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot. END. IF VGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot. END. VKGebWe = TArtst.KGeb_Wert * VKGebPr. VVGebWe = TArtst.VGeb_Wert * VVGebPr. END. FIND ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = TArtst.Firma AND ArtUms.Jahr = VJJ AND ArtUms.Artnr = TArtst.Artnr AND ArtUms.Inhalt = TArtst.Inhalt AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR. VBetrag = TArtst.Preis. VVorMonat = 0. IF AVAILABLE ArtUms THEN DO: VVorMonat = ArtUms.Me_Mon[VMM]. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. IF VInvneu > 0 THEN VInvwert = VInvneu * VBetrag. ELSE VInvwert = 0. IF VBestand > 0 THEN VLagwert = VBestand * VBetrag. ELSE VLagwert = 0. RUN NEUEZEILE. ASSIGN TExcel.Feld[02] = STRING(TArtst.Artnr ,"999999") TExcel.Feld[03] = STRING(TArtst.Inhalt,"9999") TExcel.Feld[04] = TArtst.Bez1 TExcel.Feld[05] = TRIM(STRING(TArtst.Jahr ,"zzzz")) TExcel.Feld[07] = TRIM(STRING(VGebInh ,"zzzz")) TExcel.Feld[08] = VGebText TExcel.Feld[09] = TRIM(STRING(VBestand ,"->>>>>>>>9")) TExcel.Feld[10] = TRIM(STRING(VBetrag ,"->>>>>>9.99")) TExcel.Feld[11] = TRIM(STRING(VLagWert ,"->>>>>>>>9.99")) TExcel.Feld[12] = TRIM(STRING(VKGebWe ,"->>>>>9.99")). TExcel.Feld[13] = TRIM(STRING(VVGebWe ,"->>>>>9.99")). TExcel.Feld[14] = TRIM(STRING(VVorMonat ,"->>>>>>>>>")). IF TArtst.Alk_Gehalt > 0 THEN TExcel.Feld[06] = STRING(TArtst.Alk_Gehalt,"z9.99%"). IF TArtst.Bez2 <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[04] = TArtst.Bez2. END. VTotal0[01] = VTotal0[01] + VInvneu. VTotal0[02] = VTotal0[02] + VVerlust. VTotal0[03] = VTotal0[03] + VInvwert. VTotal0[04] = VTotal0[04] + VBestand. VTotal0[05] = VTotal0[05] + VLagwert. VTotal0[06] = VTotal0[06] + VKGebWe . VTotal0[07] = VTotal0[07] + VVGebWe . VTotal1[01] = VTotal1[01] + VInvneu. VTotal1[02] = VTotal1[02] + VVerlust. VTotal1[03] = VTotal1[03] + VInvwert. VTotal1[04] = VTotal1[04] + VBestand. VTotal1[05] = VTotal1[05] + VLagwert. VTotal1[06] = VTotal1[06] + VKGebWe . VTotal1[07] = VTotal1[07] + VVGebWe . VTotal2[01] = VTotal2[01] + VInvneu. VTotal2[02] = VTotal2[02] + VVerlust. VTotal2[03] = VTotal2[03] + VInvwert. VTotal2[04] = VTotal2[04] + VBestand. VTotal2[05] = VTotal2[05] + VLagwert. VTotal2[06] = VTotal2[06] + VKGebWe . VTotal2[07] = VTotal2[07] + VVGebWe . VTotal3[01] = VTotal3[01] + VInvneu. VTotal3[02] = VTotal3[02] + VVerlust. VTotal3[03] = VTotal3[03] + VInvwert. VTotal3[04] = VTotal3[04] + VBestand. VTotal3[05] = VTotal3[05] + VLagwert. VTotal3[06] = VTotal3[06] + VKGebWe . VTotal3[07] = VTotal3[07] + VVGebWe . IF LAST-OF ( TArtst.Art_Grp ) THEN DO: XAgr = ENTRY(3, VTexte, ';'). IF XAgr <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[01] = 'Total ' + XAgr. TExcel.Feld[09] = TRIM(STRING(VTotal3[04],'->>>>>>>>9')). TExcel.Feld[11] = TRIM(STRING(VTotal3[05],'->>>>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal3[06],'->>>>>>>>9')). TExcel.Feld[13] = TRIM(STRING(VTotal3[07],'->>>>>>>>9')). END. VTotal3 = 0. XAgr = ''. END. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO: XPgr = ENTRY(2, VTexte, ';'). IF XPgr <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[01] = 'Total ' + XPgr. TExcel.Feld[09] = TRIM(STRING(VTotal2[04],'->>>>>>>>9')). TExcel.Feld[11] = TRIM(STRING(VTotal2[05],'->>>>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal2[06],'->>>>>>>>9')). TExcel.Feld[13] = TRIM(STRING(VTotal2[07],'->>>>>>>>9')). END. VTotal2 = 0. XPgr = ''. END. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO: XWgr = ENTRY(1, VTexte, ';'). IF XWgr <> '' THEN DO: RUN NEUEZEILE. TExcel.Feld[01] = 'Total ' + XWgr. TExcel.Feld[09] = TRIM(STRING(VTotal1[04],'->>>>>>>>9')). TExcel.Feld[11] = TRIM(STRING(VTotal1[05],'->>>>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal1[06],'->>>>>>>>9')). TExcel.Feld[13] = TRIM(STRING(VTotal1[07],'->>>>>>>>9')). END. VTotal1 = 0. XWgr = ''. END. IF LAST-OF ( TArtst.Art_Grp ) THEN DO: RUN NEUEZEILE. END. END. RUN NEUEZEILE. RUN NEUEZEILE. TExcel.Feld[01] = 'Gesamttotal'. TExcel.Feld[09] = TRIM(STRING(VTotal0[04],'->>>>>>>>9')). TExcel.Feld[11] = TRIM(STRING(VTotal0[05],'->>>>>>>>9')). TExcel.Feld[12] = TRIM(STRING(VTotal0[06],'->>>>>>>>9')). TExcel.Feld[13] = TRIM(STRING(VTotal0[07],'->>>>>>>>9')). cVorlage = 'LagerBestand.xls'. cDokument = 'LagerBestand.xls'. cDaten = 'LagerBestand.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). FOR EACH TExcel: PUT CONTROL TExcel.Feld[01] '£' TExcel.Feld[02] '£' TExcel.Feld[03] '£' TExcel.Feld[04] '£' TExcel.Feld[05] '£' TExcel.Feld[06] '£' TExcel.Feld[07] '£' TExcel.Feld[08] '£' TExcel.Feld[09] '£' TExcel.Feld[10] '£' TExcel.Feld[11] '£' TExcel.Feld[12] '£' TExcel.Feld[13] '£' TExcel.Feld[14] CHR(13). 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 = 'A5'. 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 disable_UI B-table-Win _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 F-Main. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKAUSGABE B-table-Win PROCEDURE DRUCKAUSGABE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR sRecid AS RECID NO-UNDO. DEF VAR iSchacht AS INT NO-UNDO. DEF VAR iSize AS INT NO-UNDO. sRecid = RECID(Schrift). iSchacht = LiDruck.Schacht. iSize = DYNAMIC-FUNCTION('putDateiToPrinter':U, cDateiName , sRecid , iSchacht , 240 , /* Blockgrösse */ 'ibm850' , 1 ). /* AnzahlKopien */ IF iSize = 0 THEN DO: MESSAGE 'Druckvorgang gescheitert !!! ' VIEW-AS ALERT-BOX ERROR. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN B-table-Win PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. RUN FUELLEN_TEMPFILE. RUN LISTTIT1. cDateiName = SESSION:TEMP-DIR + 'Inventar' + STRING(TIME,'999999'). Sprcd = 1. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD') NO-ERROR. IF Sprcd = ? THEN Sprcd = 1. IF AufSort = 2 OR AufSort = 3 THEN DO: RUN SORT03. END. ELSE DO: IF NOT FLandSort THEN DO: IF VSort = 1 THEN RUN SORT01. IF VSort = 2 THEN RUN SORT02. IF VSort = 3 THEN RUN SORT02. END. ELSE DO: IF VSort = 1 THEN RUN SORT11. IF VSort = 2 THEN RUN SORT12. IF VSort = 3 THEN RUN SORT12. END. END. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL B-table-Win PROCEDURE EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR XWgr AS CHAR NO-UNDO. DEF VAR XPro AS CHAR NO-UNDO. DEF VAR XAgr AS CHAR NO-UNDO. DEF VAR VTexte AS CHAR NO-UNDO. DEF VAR VMakroDatei AS CHAR NO-UNDO. DEF VAR VExcelDatei AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR AktZei AS INT NO-UNDO. DEF VAR MaxZei AS INT NO-UNDO. DEF VAR FSW AS LOG NO-UNDO. RUN FUELLEN_TEMPFILE. CASE VSort: WHEN 1 THEN RUN AUSGABE_INVENTARAUFNAHME. WHEN 2 THEN RUN AUSGABE_INVENTARBESTAND . WHEN 3 THEN RUN AUSGABE_LAGERBESTAND . END CASE. APPLY 'CHOOSE' TO Btn_Ende IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_TEMPFILE B-table-Win PROCEDURE FUELLEN_TEMPFILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VSort = Listen.Sort. VArtnr = Listen.VNr[01]. BArtnr = Listen.BNr[01]. VInhalt = Listen.VNr[04]. BInhalt = Listen.BNr[04]. VWgr = Listen.VNr[02]. BWgr = Listen.BNr[02]. VPgr = Listen.VNr[05]. BPgr = Listen.BNr[05]. VAgr = Listen.VNr[06]. BAgr = Listen.BNr[06]. VHerst = Listen.VNr[03]. BHerst = Listen.BNr[03]. VPreis = Listen.ENr[01]. VDatum = Listen.EDa[01]. VPerDat = Listen.EDa[01]. VZweite = Listen.VFl[01]. VGebinde = Listen.VFl[02]. VLkz = Listen.ECh[01]. FLandSort = Listen.VFl[04]. FLager = Listen.VFl[03]. FBestand = Listen.VFl[05]. FAusverk = Listen.VFl[06]. IF VLkz = '0' THEN VLkz = ''. FOR EACH TArtst: DELETE TArtst. END. IF VSort = 2 THEN VDatum = ?. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma. FOR EACH Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr >= VArtnr AND Artst.Artnr <= BArtnr AND Artst.Inhalt >= VInhalt AND Artst.Inhalt <= BInhalt AND Artst.Wg_Grp >= VWgr AND Artst.Wg_Grp <= BWgr AND Artst.Prod_Grp >= VPgr AND Artst.Prod_Grp <= BPgr AND Artst.Art_Grp >= VAgr AND Artst.Art_Grp <= BAgr AND Artst.Herst >= VHerst AND Artst.Herst <= BHerst AND ((VLkz = '') OR (Artst.Herk_Lkz = VLkz)) AND Artst.Aktiv = TRUE NO-LOCK: IF FLager AND NOT Artst.Lager THEN NEXT. IF FAusverk AND Artst.Ausverk <> 9 THEN NEXT. FIND ArtLager NO-LOCK WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr AND ArtLager.Lager = iLager NO-ERROR. IF NOT AVAILABLE ArtLager THEN NEXT. VInvneu = 0. VBestand = 0. VKGebMe = 0. VVGebMe = 0. VVerlust = 0. VEingang = 0. VAusgang = 0. DO WHILE VSort = 1: IF NOT fAltBest THEN VBestand = ArtLager.Bestand. ELSE DO: FIND FIRST ArtLager OF Artst NO-LOCK NO-ERROR. VBestand = ArtLager.Bestand_Alt. END. LEAVE. END. DO WHILE VSort = 2: Ja = FALSE. FOR EACH ArtLager OF Artst NO-LOCK WHERE ArtLager.Lager = iLager: IF VDatum = ? THEN VDatum = ArtLager.Datum_Inv. IF VDatum = ? THEN NEXT. VInvneu = VInvneu + ArtLager.Inv_Best. VBestand = VBestand + ArtLager.Bestand_Alt. END. VVerlust = VBestand - VInvneu. VBestand = VInvNeu. IF VDatum = ? THEN LEAVE. FOR EACH Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = Artst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Tr_Art = 21 AND Artbw.Lager = iLager AND Artbw.Datum = VDatum NO-LOCK: VKGebMe = VKGebMe + Artbw.KGeb_Me. VVGebMe = VVGebMe + Artbw.VGeb_Me. END. IF VInvNeu = 0 AND VKGebMe = 0 AND VVGebMe = 0 THEN LEAVE. Ja = TRUE. LEAVE. END. IF VSort = 2 AND Ja = FALSE THEN NEXT. DO WHILE VSort = 3: IF VDatum = ? THEN DO: VBestand = ArtLager.Bestand. LEAVE. END. VInvDat = ?. FIND FIRST Artbw NO-LOCK USE-INDEX Artbw-k7 WHERE Artbw.Firma = Artst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Datum <= VDatum AND Artbw.Tr_Art = 21 AND Artbw.Lager = iLager NO-ERROR. IF AVAILABLE Artbw THEN DO: VInvDat = Artbw.Datum. FOR EACH Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = Artst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Tr_Art = 21 AND Artbw.Lager = iLager AND Artbw.Datum = VInvDat NO-LOCK: VInvNeu = VInvNeu + Artbw.Menge. END. END. ELSE VInvDat = 01/01/0001. FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = Artst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Lager = iLager AND Artbw.Datum > VInvDat AND Artbw.Datum <= VDatum NO-LOCK: IF Artbw.Tr_Art > 20 THEN NEXT. IF Artbw.Tr_Art > 10 THEN VEingang = VEingang + Artbw.Menge. ELSE VAusgang = VAusgang + Artbw.Menge. END. VBestand = VInvNeu + VEingang - VAusgang. LEAVE. END. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = Artst.Firma AND Artbez.Artnr = Artst.Artnr AND Artbez.Inhalt = Artst.Inhalt AND Artbez.Jahr = Artst.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 = Artst.Firma AND Artbez.Artnr = Artst.Artnr AND Artbez.Inhalt = Artst.Inhalt AND Artbez.Jahr = Artst.Jahr NO-LOCK NO-ERROR. END. CASE VPreis: WHEN 1 THEN DO: VBetrag = Artst.DEP. IF VBetrag = 0 THEN VBetrag = Artst.LEP. IF VBetrag = 0 THEN VBetrag = Artst.Listen_Ep. END. WHEN 2 THEN DO: VBetrag = Artst.LEP. IF VBetrag = 0 THEN VBetrag = Artst.DEP. IF VBetrag = 0 THEN VBetrag = Artst.Listen_Ep. IF VSort = 2 THEN DO: IF VPreis = 1 THEN DO: FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k7 WHERE Artbw.Firma = Artst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Tr_Art = 1 AND Artbw.Datum <= VDatum NO-ERROR. IF AVAILABLE Artbw THEN VPreis = Artbw.EP. END. IF VPreis = 2 THEN DO: FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k7 WHERE Artbw.Firma = Artst.Firma AND Artbw.Artnr = Artst.Artnr AND Artbw.Inhalt = Artst.Inhalt AND Artbw.Jahr = Artst.Jahr AND Artbw.Tr_Art = 11 AND Artbw.Datum <= VDatum NO-ERROR. IF AVAILABLE Artbw THEN VPreis = Artbw.Preis. END. END. END. WHEN 3 THEN DO: VBetrag = Artst.Listen_EP. IF VBetrag = 0 THEN VBetrag = Artst.DEP. IF VBetrag = 0 THEN VBetrag = Artst.LEP. END. WHEN 4 THEN DO: FIND LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = Artst.Firma AND ArtPreis.Artnr = Artst.Artnr AND ArtPreis.Inhalt = Artst.Inhalt AND ArtPreis.Jahr = Artst.Jahr AND ArtPreis.Preis_Grp = Steuer.Fwi14 AND ArtPreis.Ab_Datum <= TODAY AND ArtPreis.Aktion = FALSE NO-LOCK NO-ERROR. IF AVAILABLE ArtPreis THEN VBetrag = ArtPreis.VK_Netto. IF VBetrag = 0 THEN VBetrag = Artst.DEP. IF VBetrag = 0 THEN VBetrag = Artst.LEP. IF VBetrag = 0 THEN VBetrag = Artst.Listen_Ep. END. END CASE. IF VSort > 1 AND FBestand AND VBestand < 1 THEN NEXT. IF VSort = 3 THEN DO: VKGebMe = VBestand. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Artst.Firma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE VGebinde AND VGebinde.Inhalt > 0 THEN DO: VVGebMe = VBestand / VGebinde.Inhalt. END. END. CREATE TArtst. BUFFER-COPY Artst TO TArtst ASSIGN TArtst.Bez1 = ArtBez.Bez1 TArtst.Bez2 = ArtBez.Bez2 TArtst.Preis = VBetrag TArtst.Bestand = VBestand TArtst.Verlust = VVerlust TArtst.KGeb_Wert = VKGebMe TArtst.VGeb_Wert = VVGebMe. TArtst.LagOrt = DYNAMIC-FUNCTION('getLagerort':U, INPUT iLager , INPUT TArtst.Artnr , INPUT TArtst.Inhalt, INPUT TArtst.Jahr ) NO-ERROR. IF Artbez.Bez2_Druck = FALSE THEN TArtst.Bez2 = ''. IF NOT VZweite THEN TArtst.Bez2 = ''. IF AufSort = 2 THEN TArtst.cSort = TArtst.LagOrt. IF AufSort = 3 THEN TArtst.cSort = TArtst.Suchbe. END. FOR EACH TArtst WHERE TArtst.Ausverk = 9 AND TArtst.Bestand < 1: DELETE TArtst. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF B-table-Win PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR rechts AS INT NO-UNDO. DEF VAR mitte AS INT NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR Breite AS DEC DECIMALS 4 NO-UNDO. DEF VAR TotBre AS DEC DECIMALS 4 NO-UNDO. DEF VAR DifBre AS DEC DECIMALS 4 NO-UNDO. DEF VAR FHoch AS LOG NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. CASE VSort: WHEN 2 THEN DO: Zelle = 'G1'. eh:Range(Zelle):Select. cString = eh:Selection:VALUE + ' ' + STRING(VDatum,'99.99.9999'). eh:Selection:VALUE = cString. IF VGebinde THEN RETURN. Zelle = 'M:N'. eh:COLUMNS(Zelle):Select. eh:Selection:EntireColumn:HIDDEN = TRUE . END. WHEN 3 THEN DO: IF VPerDat = ? THEN RETURN. Zelle = 'G1'. eh:Range(Zelle):Select. cString = eh:Selection:VALUE + ' ' + STRING(VPerDat,'99.99.9999'). eh:Selection:VALUE = cString. END. END CASE. /* IF VPerDat <> ? THEN DO: VTexte = excelAppl:ActiveCell:FormulaR1C1. VTexte = VTexte + ' per ' + STRING(VPerDat,'99.99.9999'). excelAppl:ActiveCell:FormulaR1C1 = VTexte. 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 = CHR(rechts) + '1'. 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 = CHR(rechts) + '2'. 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 eh:Selection:EntireColumn:HIDDEN = TRUE . 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 LIBILD B-table-Win PROCEDURE LIBILD : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/libild.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT1 B-table-Win PROCEDURE LISTTIT1 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF VSort = 2 THEN DO: CASE VPreis: WHEN 1 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],01,35)). WHEN 2 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],36,35)). WHEN 3 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],01,35)). WHEN 4 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],36,35)). END CASE. IF NOT VGebinde THEN DO: Helptext[04] = SUBSTRING(Helptext[04],01,43). END. SUBSTRING(Helptext[01],02) = STRING(F_Zeichen,'999'). END. IF VSort = 3 THEN DO: CASE VPreis: WHEN 1 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],01,35)). WHEN 2 THEN Tittxt = TRIM(SUBSTRING(Helptext[12],36,35)). WHEN 3 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],01,35)). WHEN 4 THEN Tittxt = TRIM(SUBSTRING(Helptext[13],36,35)). END CASE. IF VDatum <> ? THEN DO: Tittxt = Tittxt + ' Bestand per: ' + STRING(VDatum,'99.99.9999'). END. END. { v8/listtit1.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LISTTIT2 B-table-Win PROCEDURE LISTTIT2 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { v8/listtit2.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields B-table-Win PROCEDURE local-display-fields : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) . DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}. IF ARecid > -1 THEN DO: FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. DISPLAY {&List-2} WITH FRAME {&FRAME-NAME}. END. ENABLE {&List-2} WITH FRAME {&FRAME-NAME}. FIND LiBild USE-INDEX LiBild-k1 WHERE LiBild.Sprcd = GVSprcd AND LiBild.Prog = F_Programm + STRING(F_Sort,"99") AND LiBild.Tenr = 1 NO-LOCK. F_Zeichen = INTEGER(SUBSTRING(LiBild.Litext,02,03)). IF Listen.VFl[02] = TRUE THEN F_Zeichen = F_Zeichen + 20. DISPLAY F_Zeichen WITH FRAME {&FRAME-NAME}. IF F_Sort = 1 THEN DO WITH FRAME {&FRAME-NAME}: Listen.ENr[01]:SENSITIVE = FALSE. Listen.VFl[07]:SENSITIVE = TRUE . END. ELSE DO WITH FRAME {&FRAME-NAME}: Listen.ENr[01]:SENSITIVE = TRUE. Listen.VFl[07]:SENSITIVE = FALSE. END. IF F_Sort > 1 THEN DO WITH FRAME {&FRAME-NAME}: VFl[02]:SENSITIVE = TRUE. END. ELSE DO WITH FRAME {&FRAME-NAME}: VFl[02]:SENSITIVE = FALSE. END. IF F_Sort = 3 THEN DO WITH FRAME {&FRAME-NAME}: Listen.EDa[01]:SENSITIVE = TRUE. END. ELSE DO WITH FRAME {&FRAME-NAME}: Listen.EDa[01]:SENSITIVE = FALSE. END. DO WITH FRAME {&FRAME-NAME}: CB_Land:SCREEN-VALUE = '0' NO-ERROR. CB_Land:SCREEN-VALUE = Listen.ECh[01] NO-ERROR. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win PROCEDURE local-hide : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DO TRANSACTION: FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = ''. END. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize B-table-Win PROCEDURE local-initialize : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF BUFFER BListen FOR Listen. DEF VAR VListnr LIKE Listen.Listnr. DEF VAR VRecid AS RECID. F_USER = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. QOpen = FALSE. FInit = TRUE. FOpen = FALSE. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . RUN OPEN_XSCHRIFT. VProgname = TRIM(F_USER) + '!' + TRIM(F_Programm). FIND FIRST Listen USE-INDEX Listen-k1 WHERE Listen.Firma = GVFirma AND Listen.Progname = VProgname AND Listen.Listfl = '' NO-LOCK NO-ERROR. REPEAT TRANSACTION: IF NOT AVAILABLE Listen THEN DO: FIND LAST BListen USE-INDEX Listen-k1 WHERE BListen.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE BListen THEN VListnr = BListen.Listnr + 1. ELSE VListnr = 1. CREATE Listen. ASSIGN Listen.Firma = GVFirma Listen.Listnr = VListnr Listen.Progname = VProgname Listen.Listfl = '' Listen.Jahr = GVJahr Listen.Sprcd = GVSprcd Listen.Sort = 1 Listen.ProgWahl = 1. END. ARecid = RECID(Listen). FIND LiDruck USE-INDEX LiDruck-k1 WHERE LiDruck.Firma = GVFirma AND LiDruck.Listnr = Listen.Listnr AND LiDruck.ProgWahl = Listen.ProgWahl NO-LOCK NO-ERROR. IF NOT AVAILABLE LiDruck THEN DO: CREATE LiDruck. ASSIGN LiDruck.Firma = GVFirma LiDruck.Listnr = Listen.Listnr LiDruck.ProgWahl = Listen.ProgWahl LiDruck.Listprog = TRIM(F_Programm) + STRING(Listen.ProgWahl,'99') LiDruck.ListCopy = 1 LiDruck.Schacht = 0 LiDruck.Listlq = FALSE. END. BRecid = RECID(LiDruck). FIND Listen WHERE RECID(Listen) = ARecid. Listen.Listfl = 'A'. RELEASE Listen. RELEASE LiDruck. LEAVE. END. /* TRANSACTION */ FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. FIND LiDruck WHERE RECID(LiDruck) = BRecid NO-LOCK. FOpen = TRUE. ASchname = LiDruck.ListDru. ASchbild = LiDruck.ListBild. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF NUM-RESULTS('Br_Druckername':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Druckername':U) = 0 THEN LEAVE. FIND FIRST XSchrift WHERE XSchrift.Schname = ASchname NO-LOCK NO-ERROR. IF AVAILABLE XSchrift THEN VRecid = RECID(XSchrift). ELSE DO: GET FIRST Br_Druckername. VRecid = RECID(XSchrift). END. REPOSITION Br_Druckername TO RECID(VRecid). ASchname = XSchrift.Schname. RUN dispatch IN THIS-PROCEDURE ('open-query':U). IF NUM-RESULTS('Br_Schriftbild':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Schriftbild':U) = 0 THEN LEAVE. FIND FIRST BSchrift WHERE BSchrift.Schname = ASchname AND BSchrift.Schbild = ASchbild NO-LOCK NO-ERROR. IF AVAILABLE BSchrift THEN VRecid = RECID(BSchrift). ELSE DO: GET FIRST Br_Schriftbild. VRecid = RECID(Schrift). END. REPOSITION Br_Schriftbild TO RECID(VRecid). ASchbild = Schrift.Schbild. LEAVE. END. RUN LIBILD. F_Zeichen = Breite. F_Sort = Listen.Sort. F_TZZ = LiDruck.Listtzz. F_KZZ = LiDruck.Listkzz. F_FZZ = LiDruck.Listfzz. F_LQ = LiDruck.Listlq. F_KOPIE = LiDruck.ListCopy. F_SCHACHT = LiDruck.Schacht. OBreite = Breite. DO WITH FRAME {&FRAME-NAME}: IF Aktive THEN DO: iLager = DYNAMIC-FUNCTION('getBenLager':U). RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR. RUN COMBO_LAND ( INPUT CB_Land:HANDLE ) NO-ERROR. CB_Land :ADD-LAST('Alle' , '0' ) NO-ERROR. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999') NO-ERROR. END. IF F_Sort = 1 THEN ENr[02] :SENSITIVE = TRUE . ELSE ENr[02] :SENSITIVE = FALSE. IF ENr[02] = 0 THEN Btn_Start:SENSITIVE = TRUE . ELSE Btn_Start:SENSITIVE = FALSE. END. RUN dispatch IN THIS-PROCEDURE ('display-fields':U). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win PROCEDURE local-open-query : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ IF FOpen = FALSE THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF QOpen = TRUE THEN DO: CLOSE QUERY Br_Schriftbild. END. QOpen = FALSE. OPEN QUERY Br_Schriftbild FOR EACH Schrift USE-INDEX Schrift-k1 WHERE Schrift.Schname = ASchname NO-LOCK. Br_Schriftbild:SET-REPOSITIONED-ROW(6, "ALWAYS"). QOpen = TRUE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-row-changed B-table-Win PROCEDURE local-row-changed : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'row-changed':U ) . OPEN QUERY Br_Schriftbild FOR EACH Schrift WHERE Schrift.Schname = XSchrift.Schname NO-LOCK. IF AVAILABLE LiDruck THEN DO: FIND BSchrift WHERE BSchrift.Schname = LiDruck.ListDru AND BSchrift.Schbild = LiDruck.ListBild NO-LOCK NO-ERROR. IF AVAILABLE BSchrift THEN DO: REPOSITION Br_Schriftbild TO RECID RECID(BSchrift) NO-ERROR. END. END. APPLY 'VALUE-CHANGED' TO BROWSE Br_Schriftbild. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win PROCEDURE local-view : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) . IF ARecid < 0 THEN RETURN. FIND Listen WHERE RECID(Listen) = ARecid NO-LOCK. RUN dispatch IN THIS-PROCEDURE ('display-fields':U). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUEZEILE B-table-Win PROCEDURE NEUEZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VExcelZeile = VExcelZeile + 1. CREATE TExcel. ASSIGN TExcel.Zeile = VExcelZeile. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_XSCHRIFT B-table-Win PROCEDURE OPEN_XSCHRIFT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: FOR EACH XSchrift: DELETE XSchrift. END. AltSchname = ''. FOR EACH Schrift NO-LOCK: IF Schrift.Schname = AltSchname THEN NEXT. CREATE XSchrift. BUFFER-COPY Schrift TO XSchrift. AltSchname = Schrift.Schname. END. OPEN QUERY Br_Druckername FOR EACH XSchrift NO-LOCK. Br_Druckername:SET-REPOSITIONED-ROW(6, "ALWAYS"). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS PROCEDURE send-records : /*------------------------------------------------------------------------------ Purpose: Send record ROWID's for all tables used by this file. Parameters: see template/snd-head.i ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/snd-head.i} /* For each requested table, put it's ROWID in the output list. */ {src/adm/template/snd-list.i "Schrift"} {src/adm/template/snd-list.i "XSchrift"} /* Deal with any unexpected table requests before closing. */ {src/adm/template/snd-end.i} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT01 B-table-Win PROCEDURE SORT01 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO PRESELECT EACH TArtst NO-LOCK BREAK BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.LagOrt BY TArtst.Bez BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : DO VCopy = 1 TO LiDruck.ListCopy: LNeu = TRUE. VZeile = "". VTotal0 = 0. VTotal1 = 0. XWgr = ''. XPgr = ''. XAgr = ''. IF BDrucker.Emul <> "TERMINAL" THEN DO: OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150. DOpen = TRUE. END. ELSE DO: FOR EACH XTermOut: DELETE XTermOut. END. DOpen = FALSE. VZNr = 0. VLine = 0. VSeite = 0. END. REPEAT: IF LNeu THEN FIND FIRST TArtst. ELSE FIND NEXT TArtst. IF NOT AVAILABLE TArtst THEN LEAVE. LNeu = FALSE. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). END. RUN LISTTIT2. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. IF XWgr <> '' THEN DO: VZeile = XWgr. { v8/putzeilf.i "1" } END. IF XPgr <> '' THEN DO: VZeile = XPgr. { v8/putzeilf.i "1" } END. IF XAgr <> '' THEN DO: VZeile = XAgr. { v8/putzeilf.i "1" } END. XWgr = ''. XPGr = ''. XAgr = ''. VGebInh = 0. VGebText = '??????????'. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = TArtst.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 = TArtst.Firma AND Artbez.Artnr = TArtst.Artnr AND Artbez.Inhalt = TArtst.Inhalt AND Artbez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR. END. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999'). SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999'). IF AVAILABLE ArtBez THEN SUBSTRING(VZeile,014) = STRING(ArtBez.Bez1,'x(30)'). ELSE SUBSTRING(VZeile,014) = STRING(TArtst.Bez ,'x(30)'). SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz'). IF TArtst.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99'). SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz'). SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)'). SUBSTRING(VZeile,077) = STRING(TArtst.Bestand ,'zzz,zz9-'). SUBSTRING(VZeile,090) = '_____ _____ _____'. { v8/putzeile.i "1" } IF VZweite THEN DO: IF AVAILABLE ArtBez THEN DO: IF Artbez.Bez2 <> '' AND Artbez.Bez2_Druck THEN DO: SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)'). { v8/putzeile.i "1" } END. END. END. IF LAST-OF ( TArtst.Wg_Grp ) OR LAST-OF ( TArtst.Prod_Grp) OR LAST-OF ( TArtst.Art_Grp ) THEN DO: { v8/putzeile.i "1" } END. END. /* REPEAT */ TiDruck = TRUE. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. RUN DRUCKAUSGABE. OS-DELETE VALUE(cDateiName) NO-ERROR. END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. END. /* Kopien */ END. /* DO PRESELECT */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT02 B-table-Win PROCEDURE SORT02 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO PRESELECT EACH TArtst NO-LOCK BREAK BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : DO VCopy = 1 TO LiDruck.ListCopy: LNeu = TRUE. VZeile = "". VTotal0 = 0. VTotal1 = 0. VTotal2 = 0. VTotal3 = 0. VTotal4 = 0. VTotal5 = 0. XWgr = ''. XPgr = ''. XAgr = ''. IF VDatum = ? THEN VDatum = TODAY. VJJ = YEAR (VDatum). VMM = MONTH(VDatum). IF VMM = 1 THEN DO: VMM = 12. VJJ = VJJ - 1. END. ELSE DO: VMM = VMM - 1. END. IF BDrucker.Emul <> "TERMINAL" THEN DO: OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150. DOpen = TRUE. END. ELSE DO: FOR EACH XTermOut: DELETE XTermOut. END. DOpen = FALSE. VZNr = 0. VLine = 0. VSeite = 0. END. REPEAT: IF LNeu THEN FIND FIRST TArtst NO-ERROR. ELSE FIND NEXT TArtst NO-ERROR. IF NOT AVAILABLE TArtst THEN LEAVE. LNeu = FALSE. RUN LISTTIT2. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). IF XWgr <> '' AND NOT XWgr BEGINS '-' THEN DO: VZeile = XWgr. { v8/putzeilf.i "1" } END. END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). IF XPgr <> '' AND NOT XPgr BEGINS '-' THEN DO: VZeile = XPgr. { v8/putzeilf.i "1" } END. END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). IF XAgr <> '' AND NOT XAgr BEGINS '-' THEN DO: VZeile = XAgr. { v8/putzeilf.i "1" } END. END. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. VKGebPr = 0. VVGebPr = 0. VKGebWe = 0. VVGebWe = 0. VGebInh = 0. VGebText = '?????????'. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. IF VGebinde AND VSort > 1 THEN DO: VKGebPr = KGebinde.Depot. VVGebPr = VGebinde.Depot. IF KGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot. END. IF VGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot. END. VKGebWe = TArtst.KGeb_Wert * VKGebPr. VVGebWe = TArtst.VGeb_Wert * VVGebPr. END. FIND ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = TArtst.Firma AND ArtUms.Jahr = VJJ AND ArtUms.Artnr = TArtst.Artnr AND ArtUms.Inhalt = TArtst.Inhalt AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR. VBetrag = TArtst.Preis. VVorMonat = 0. IF AVAILABLE ArtUms THEN DO: VVorMonat = ArtUms.Me_Mon[VMM]. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. VInvwert = VInvneu * VBetrag. VLagwert = VBestand * VBetrag. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999'). SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999'). SUBSTRING(VZeile,014) = STRING(TArtst.Bez1 ,'x(30)'). SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz'). IF TArtst.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99'). SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz'). SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)'). IF VSort = 2 THEN DO: SUBSTRING(VZeile,076) = STRING(VInvneu ,'zzzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VVerlust ,'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VBetrag ,'zzz9.999'). SUBSTRING(VZeile,104) = STRING(VInvwert ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VKGebWe ,'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VVGebWe ,'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,076) = STRING(VBestand ,'zzzz,zz9-'). SUBSTRING(VZeile,086) = STRING(VBetrag ,'zzz9.999'). SUBSTRING(VZeile,096) = STRING(VLagwert ,'zz,zzz,zz9-'). SUBSTRING(VZeile,107) = STRING(VVorMonat ,'zzzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VKGebWe ,'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VVGebWe ,'z,zzz,zz9-'). END. END. VTotal0[01] = VTotal0[01] + VInvneu. VTotal0[02] = VTotal0[02] + VVerlust. VTotal0[03] = VTotal0[03] + VInvwert. VTotal0[04] = VTotal0[04] + VBestand. VTotal0[05] = VTotal0[05] + VLagwert. VTotal0[06] = VTotal0[06] + VKGebWe . VTotal0[07] = VTotal0[07] + VVGebWe . VTotal1[01] = VTotal1[01] + VInvneu. VTotal1[02] = VTotal1[02] + VVerlust. VTotal1[03] = VTotal1[03] + VInvwert. VTotal1[04] = VTotal1[04] + VBestand. VTotal1[05] = VTotal1[05] + VLagwert. VTotal1[06] = VTotal1[06] + VKGebWe . VTotal1[07] = VTotal1[07] + VVGebWe . VTotal2[01] = VTotal2[01] + VInvneu. VTotal2[02] = VTotal2[02] + VVerlust. VTotal2[03] = VTotal2[03] + VInvwert. VTotal2[04] = VTotal2[04] + VBestand. VTotal2[05] = VTotal2[05] + VLagwert. VTotal2[06] = VTotal2[06] + VKGebWe . VTotal2[07] = VTotal2[07] + VVGebWe . VTotal3[01] = VTotal3[01] + VInvneu. VTotal3[02] = VTotal3[02] + VVerlust. VTotal3[03] = VTotal3[03] + VInvwert. VTotal3[04] = VTotal3[04] + VBestand. VTotal3[05] = VTotal3[05] + VLagwert. VTotal3[06] = VTotal3[06] + VKGebWe . VTotal3[07] = VTotal3[07] + VVGebWe . { v8/putzeile.i "1" } IF VZweite THEN DO: IF TArtst.Bez2 <> '' THEN DO: SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)'). { v8/putzeile.i "1" } END. END. IF LAST-OF ( TArtst.Art_Grp ) THEN DO: IF XAgr <> '' THEN DO: VZeile = 'Total ' + XAgr. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal3[01] ,'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal3[02] ,'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal3[03] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal3[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal3[07] ,'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal3[04] ,'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal3[05] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal3[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal3[07] ,'z,zzz,zz9-'). END. END. { v8/putzeilf.i "1" } END. VTotal3 = 0. END. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO: IF XPgr <> '' THEN DO: VZeile = 'Total ' + XPgr. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal2[01] ,'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal2[02] ,'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal2[03] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal2[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal2[07] ,'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal2[04] ,'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal2[05] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal2[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal2[07] ,'z,zzz,zz9-'). END. END. { v8/putzeilf.i "1" } END. VTotal2 = 0. END. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO: IF XWgr <> '' THEN DO: VZeile = 'Total ' + XWgr. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal1[01] ,'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal1[02] ,'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal1[03] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal1[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal1[07] ,'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal1[04] ,'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal1[05] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal1[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal1[07] ,'z,zzz,zz9-'). END. END. { v8/putzeilf.i "1" } END. VTotal1 = 0. END. IF LAST-OF ( TArtst.Wg_Grp ) OR LAST-OF ( TArtst.Prod_Grp) OR LAST-OF ( TArtst.Art_Grp ) THEN DO: { v8/putzeile.i "1" } END. END. /* REPEAT */ VZeile = 'Gesamttotal'. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal0[01] ,'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal0[02] ,'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal0[03] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal0[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal0[07] ,'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal0[04] ,'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal0[05] ,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal0[06] ,'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal0[07] ,'z,zzz,zz9-'). END. END. { v8/putzeilf.i "2" } VTotal0 = 0. TiDruck = TRUE. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. RUN DRUCKAUSGABE. OS-DELETE VALUE(cDateiName) NO-ERROR. END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. END. /* Kopien */ END. /* DO PRESELECT */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT03 B-table-Win PROCEDURE SORT03 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO PRESELECT EACH TArtst NO-LOCK BREAK BY TArtst.cSort BY TArtst.Inhalt BY TArtst.Bez1 BY TArtst.Jahr : DO VCopy = 1 TO LiDruck.ListCopy: LNeu = TRUE. VZeile = "". VTotal0 = 0. VTotal1 = 0. XWgr = ''. XPgr = ''. XAgr = ''. IF BDrucker.Emul <> "TERMINAL" THEN DO: OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150. DOpen = TRUE. END. ELSE DO: FOR EACH XTermOut: DELETE XTermOut. END. DOpen = FALSE. VZNr = 0. VLine = 0. VSeite = 0. END. REPEAT: IF LNeu THEN FIND FIRST TArtst. ELSE FIND NEXT TArtst. IF NOT AVAILABLE TArtst THEN LEAVE. LNeu = FALSE. RUN LISTTIT2. XWgr = ''. XPGr = ''. XAgr = ''. VGebInh = 0. VGebText = '??????????'. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = TArtst.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 = TArtst.Firma AND Artbez.Artnr = TArtst.Artnr AND Artbez.Inhalt = TArtst.Inhalt AND Artbez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR. END. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999'). SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999'). IF AVAILABLE ArtBez THEN SUBSTRING(VZeile,014) = STRING(ArtBez.Bez1,'x(30)'). ELSE SUBSTRING(VZeile,014) = STRING(TArtst.Bez ,'x(30)'). SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz'). IF TArtst.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99'). SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz'). SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)'). SUBSTRING(VZeile,077) = STRING(TArtst.Bestand ,'zzz,zz9-'). SUBSTRING(VZeile,090) = '_____ _____ _____'. { v8/putzeile.i "1" } IF VZweite THEN DO: IF AVAILABLE ArtBez THEN DO: IF Artbez.Bez2 <> '' AND Artbez.Bez2_Druck THEN DO: SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)'). { v8/putzeile.i "1" } END. END. END. END. /* REPEAT */ TiDruck = TRUE. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. RUN DRUCKAUSGABE. OS-DELETE VALUE(cDateiName) NO-ERROR. END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. END. /* Kopien */ END. /* DO PRESELECT */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT11 B-table-Win PROCEDURE SORT11 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO PRESELECT EACH TArtst NO-LOCK BREAK BY TArtst.Herk_Lkz BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.LagOrt BY TArtst.Bez BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : DO VCopy = 1 TO LiDruck.ListCopy: LNeu = TRUE. VZeile = "". VTotal0 = 0. VTotal1 = 0. XWgr = ''. XPgr = ''. XAgr = ''. IF BDrucker.Emul <> "TERMINAL" THEN DO: OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150. DOpen = TRUE. END. ELSE DO: FOR EACH XTermOut: DELETE XTermOut. END. DOpen = FALSE. VZNr = 0. VLine = 0. VSeite = 0. END. REPEAT: IF LNeu THEN FIND FIRST TArtst. ELSE FIND NEXT TArtst. IF NOT AVAILABLE TArtst THEN LEAVE. LNeu = FALSE. IF FIRST-OF ( TArtst.Herk_Lkz ) THEN DO: FIND Land USE-INDEX Land-k2 WHERE Land.Lkz = TArtst.Herk_Lkz NO-LOCK NO-ERROR. IF AVAILABLE Land THEN XLkz = Land.Bez. ELSE XLkz = FILL('?', 20). END. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). END. RUN LISTTIT2. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. IF XLkz <> '' THEN DO: VZeile = XLkz. { v8/putzeilf.i "1" } END. IF XWgr <> '' THEN DO: VZeile = XWgr. { v8/putzeilf.i "1" } END. IF XPgr <> '' THEN DO: VZeile = XPgr. { v8/putzeilf.i "1" } END. IF XAgr <> '' THEN DO: VZeile = XAgr. { v8/putzeilf.i "1" } END. XWgr = ''. XPGr = ''. XAgr = ''. XLkz = ''. VGebInh = 0. VGebText = '??????????'. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = TArtst.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 = TArtst.Firma AND Artbez.Artnr = TArtst.Artnr AND Artbez.Inhalt = TArtst.Inhalt AND Artbez.Jahr = TArtst.Jahr NO-LOCK NO-ERROR. END. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999'). SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt ,'9999'). IF AVAILABLE ArtBez THEN SUBSTRING(VZeile,014) = STRING(ArtBez.Bez1,'x(30)'). ELSE SUBSTRING(VZeile,014) = STRING(TArtst.Bez ,'x(30)'). SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz'). IF TArtst.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt ,'z9.99'). SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz'). SUBSTRING(VZeile,065) = STRING(VGebText ,'x(10)'). SUBSTRING(VZeile,077) = STRING(TArtst.Bestand ,'zzz,zz9-'). SUBSTRING(VZeile,090) = '_____ _____ _____'. { v8/putzeile.i "1" } IF VZweite THEN DO: IF AVAILABLE ArtBez THEN DO: IF Artbez.Bez2 <> '' AND Artbez.Bez2_Druck THEN DO: SUBSTRING(VZeile,014) = STRING(Artbez.Bez2 ,'x(30)'). { v8/putzeile.i "1" } END. END. END. IF LAST-OF ( TArtst.Herk_Lkz) OR LAST-OF ( TArtst.Wg_Grp ) OR LAST-OF ( TArtst.Prod_Grp) OR LAST-OF ( TArtst.Art_Grp ) THEN DO: { v8/putzeile.i "1" } END. END. /* REPEAT */ TiDruck = TRUE. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. RUN DRUCKAUSGABE. OS-DELETE VALUE(cDateiName) NO-ERROR. END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. END. /* Kopien */ END. /* DO PRESELECT */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SORT12 B-table-Win PROCEDURE SORT12 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO PRESELECT EACH TArtst NO-LOCK BREAK BY TArtst.Herk_Lkz BY TArtst.Wg_Grp BY TArtst.Prod_Grp BY TArtst.Art_Grp BY TArtst.Artnr BY TArtst.Inhalt BY TArtst.Jahr : DO VCopy = 1 TO LiDruck.ListCopy: LNeu = TRUE. VZeile = "". VTotal0 = 0. VTotal1 = 0. VTotal2 = 0. VTotal3 = 0. VTotal4 = 0. VTotal5 = 0. XWgr = ''. XPgr = ''. XAgr = ''. IF VDatum = ? THEN VDatum = TODAY. VJJ = YEAR (VDatum). VMM = MONTH(VDatum). IF VMM = 1 THEN DO: VMM = 12. VJJ = VJJ - 1. END. ELSE DO: VMM = VMM - 1. END. IF BDrucker.Emul <> "TERMINAL" THEN DO: OUTPUT TO VALUE(cDateiName) PAGED PAGE-SIZE 150. DOpen = TRUE. END. ELSE DO: FOR EACH XTermOut: DELETE XTermOut. END. DOpen = FALSE. VZNr = 0. VLine = 0. VSeite = 0. END. REPEAT: IF LNeu THEN FIND FIRST TArtst NO-ERROR. ELSE FIND NEXT TArtst NO-ERROR. IF NOT AVAILABLE TArtst THEN LEAVE. LNeu = FALSE. RUN LISTTIT2. IF FIRST-OF ( TArtst.Herk_Lkz ) THEN DO: FIND Land USE-INDEX Land-k2 WHERE Land.Lkz = TArtst.Herk_Lkz NO-LOCK NO-ERROR. IF AVAILABLE Land THEN XLkz = Land.Bez. ELSE XLkz = FILL('?', 20). VZeile = XLkz. { v8/putzeilf.i "1" } END. IF FIRST-OF ( TArtst.Wg_Grp ) THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = GVFirma AND WarenGrp.Wgr = TArtst.Wg_Grp NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN XWgr = WarenGrp.Bez1. ELSE XWgr = FILL('?', 20). IF XWgr <> '' AND NOT XWgr BEGINS '-' THEN DO: VZeile = XWgr. { v8/putzeilf.i "1" } END. END. IF FIRST-OF ( TArtst.Prod_Grp ) THEN DO: FIND ProdGrp USE-INDEX ProdGrp-k1 WHERE ProdGrp.Firma = GVFirma AND ProdGrp.Wgr = TArtst.Wg_Grp AND ProdGrp.Prod_Grp = TArtst.Prod_Grp NO-LOCK NO-ERROR. IF AVAILABLE ProdGrp THEN XPgr = ProdGrp.Bez1. ELSE XPgr = FILL('?', 20). IF XPgr <> '' AND NOT XPgr BEGINS '-' THEN DO: VZeile = XPgr. { v8/putzeilf.i "1" } END. END. IF FIRST-OF ( TArtst.Art_Grp ) THEN DO: FIND ArtikGrp USE-INDEX ArtikGrp-k1 WHERE ArtikGrp.Firma = GVFirma AND ArtikGrp.Wgr = TArtst.Wg_Grp AND ArtikGrp.Prod_Grp = TArtst.Prod_Grp AND ArtikGrp.Art_Grp = TArtst.Art_Grp NO-LOCK NO-ERROR. IF AVAILABLE ArtikGrp THEN XAgr = ArtikGrp.Bez1. ELSE XAgr = FILL('?', 20). IF XAgr <> '' AND NOT XAgr BEGINS '-' THEN DO: VZeile = XAgr. { v8/putzeilf.i "1" } END. END. IF XWgr <> '' AND XWgr BEGINS '-' THEN XWgr = ''. IF XPgr <> '' AND XPgr BEGINS '-' THEN XPgr = ''. IF XAgr <> '' AND XAgr BEGINS '-' THEN XAgr = ''. VKGebPr = 0. VVGebPr = 0. VKGebWe = 0. VVGebWe = 0. VGebInh = 0. VGebText = '?????????'. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = TArtst.KGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = TArtst.VGeb_Cd NO-LOCK NO-ERROR. IF AVAILABLE KGebinde THEN DO: VGebInh = KGebinde.Inhalt. VGebText = KGebinde.KBez. END. IF VGebinde AND VSort = 2 THEN DO: VKGebPr = KGebinde.Depot. VVGebPr = VGebinde.Depot. IF KGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VKGebPr = GebKonto.Depot. END. IF VGebinde.Geb_Kto <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR. IF AVAILABLE GebKonto THEN VVGebPr = GebKonto.Depot. END. VKGebWe = TArtst.KGeb_Wert * VKGebPr. VVGebWe = TArtst.VGeb_Wert * VVGebPr. END. FIND ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = TArtst.Firma AND ArtUms.Jahr = VJJ AND ArtUms.Artnr = TArtst.Artnr AND ArtUms.Inhalt = TArtst.Inhalt AND ArtUms.Jahrg = TArtst.Jahr NO-LOCK NO-ERROR. VBetrag = TArtst.Preis. VVorMonat = 0. IF AVAILABLE ArtUms THEN DO: VVorMonat = ArtUms.Me_Mon[VMM]. END. VInvneu = TArtst.Bestand. VBestand = TArtst.Bestand. VVerlust = TArtst.Verlust. VInvwert = VInvneu * VBetrag. VLagwert = VBestand * VBetrag. SUBSTRING(VZeile,001) = STRING(TArtst.Artnr ,'999999'). SUBSTRING(VZeile,008) = STRING(TArtst.Inhalt,'9999'). SUBSTRING(VZeile,014) = STRING(TArtst.Bez1 ,'x(30)'). SUBSTRING(VZeile,046) = STRING(TArtst.Jahr ,'zzzz'). IF TArtst.Alk_Gehalt <> 0 THEN SUBSTRING(VZeile,052) = STRING(TArtst.Alk_Gehalt,'z9.99'). SUBSTRING(VZeile,059) = STRING(VGebInh ,'zzzz'). SUBSTRING(VZeile,065) = STRING(VGebText,'x(10)'). IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VInvneu ,'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VVerlust,'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VBetrag ,'zzz9.999'). SUBSTRING(VZeile,104) = STRING(VInvwert,'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VKGebWe,'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VVGebWe,'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VBestand ,'zzz,zz9-'). SUBSTRING(VZeile,086) = STRING(VBetrag ,'zzz9.999'). SUBSTRING(VZeile,096) = STRING(VLagwert ,'zz,zzz,zz9-'). SUBSTRING(VZeile,108) = STRING(VVorMonat,'zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VKGebWe,'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VVGebWe,'z,zzz,zz9-'). END. END. VTotal0[01] = VTotal0[01] + VInvneu. VTotal0[02] = VTotal0[02] + VVerlust. VTotal0[03] = VTotal0[03] + VInvwert. VTotal0[04] = VTotal0[04] + VBestand. VTotal0[05] = VTotal0[05] + VLagwert. VTotal0[06] = VTotal0[06] + VKGebWe . VTotal0[07] = VTotal0[07] + VVGebWe . VTotal1[01] = VTotal1[01] + VInvneu. VTotal1[02] = VTotal1[02] + VVerlust. VTotal1[03] = VTotal1[03] + VInvwert. VTotal1[04] = VTotal1[04] + VBestand. VTotal1[05] = VTotal1[05] + VLagwert. VTotal1[06] = VTotal1[06] + VKGebWe . VTotal1[07] = VTotal1[07] + VVGebWe . VTotal2[01] = VTotal2[01] + VInvneu. VTotal2[02] = VTotal2[02] + VVerlust. VTotal2[03] = VTotal2[03] + VInvwert. VTotal2[04] = VTotal2[04] + VBestand. VTotal2[05] = VTotal2[05] + VLagwert. VTotal2[06] = VTotal2[06] + VKGebWe . VTotal2[07] = VTotal2[07] + VVGebWe . VTotal3[01] = VTotal3[01] + VInvneu. VTotal3[02] = VTotal3[02] + VVerlust. VTotal3[03] = VTotal3[03] + VInvwert. VTotal3[04] = VTotal3[04] + VBestand. VTotal3[05] = VTotal3[05] + VLagwert. VTotal3[06] = VTotal3[06] + VKGebWe . VTotal3[07] = VTotal3[07] + VVGebWe . { v8/putzeile.i "1" } IF VZweite THEN DO: IF TArtst.Bez2 <> '' THEN DO: SUBSTRING(VZeile,014) = STRING(Artbez.Bez2,'x(30)'). { v8/putzeile.i "1" } END. END. IF LAST-OF ( TArtst.Art_Grp ) THEN DO: IF XAgr <> '' THEN DO: VZeile = 'Total ' + XAgr. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal3[01],'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal3[02],'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal3[03],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal3[06],'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal3[07],'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal3[04],'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal3[05],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal3[06],'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal3[07],'z,zzz,zz9-'). END. END. { v8/putzeilf.i "1" } END. VTotal3 = 0. END. IF LAST-OF ( TArtst.Prod_Grp ) THEN DO: IF XPgr <> '' THEN DO: VZeile = 'Total ' + XPgr. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal2[01],'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal2[02],'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal2[03],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal2[06],'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal2[07],'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal2[04],'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal2[05],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal2[06],'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal2[07],'z,zzz,zz9-'). END. END. { v8/putzeilf.i "1" } END. VTotal2 = 0. END. IF LAST-OF ( TArtst.Wg_Grp ) THEN DO: IF XWgr <> '' THEN DO: VZeile = 'Total ' + XWgr. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal1[01],'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal1[02],'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal1[03],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal1[06],'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal1[07],'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal1[04],'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal1[05],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal1[06],'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal1[07],'z,zzz,zz9-'). END. END. { v8/putzeilf.i "1" } END. VTotal1 = 0. END. IF LAST-OF ( TArtst.Herk_Lkz) OR LAST-OF ( TArtst.Wg_Grp ) OR LAST-OF ( TArtst.Prod_Grp) OR LAST-OF ( TArtst.Art_Grp ) THEN DO: { v8/putzeile.i "1" } END. END. /* REPEAT */ VZeile = 'Gesamttotal'. IF VSort = 2 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal0[01],'zzz,zz9-'). SUBSTRING(VZeile,087) = STRING(VTotal0[02],'zzz,zz9-'). SUBSTRING(VZeile,104) = STRING(VTotal0[03],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,115) = STRING(VTotal0[06],'z,zzz,zz9-'). SUBSTRING(VZeile,125) = STRING(VTotal0[07],'z,zzz,zz9-'). END. END. IF VSort = 3 THEN DO: SUBSTRING(VZeile,077) = STRING(VTotal0[04],'zzz,zz9-'). SUBSTRING(VZeile,096) = STRING(VTotal0[05],'zz,zzz,zz9-'). IF VGebinde THEN DO: SUBSTRING(VZeile,116) = STRING(VTotal0[06],'z,zzz,zz9-'). SUBSTRING(VZeile,126) = STRING(VTotal0[07],'z,zzz,zz9-'). END. END. { v8/putzeilf.i "2" } VTotal0 = 0. TiDruck = TRUE. IF DOpen = TRUE THEN DO: OUTPUT CLOSE. RUN DRUCKAUSGABE. OS-DELETE VALUE(cDateiName) NO-ERROR. END. ELSE DO: RUN "v8/d-liste.w" ( INPUT Helptext[02] ). END. END. /* Kopien */ END. /* DO PRESELECT */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win PROCEDURE state-changed : /* ----------------------------------------------------------- Purpose: Parameters: Notes: -------------------------------------------------------------*/ DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO. CASE p-state: /* Object instance CASEs can go here to replace standard behavior or add new cases. */ {src/adm/template/bstates.i} END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME