&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS F-Frame-Win /*------------------------------------------------------------------------ File: Description: from cntnrfrm.w - ADM SmartFrame 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 --- */ &Scoped-define FELDER F_Artnr,F_Inhalt,F_Jahr,~ F_GGebinde,F_VGebinde,F_KGebinde,~ Btn_Speichern,Br_Artbw DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR VLoeschen AS LOG NO-UNDO. DEF VAR FGefunden AS LOG NO-UNDO. DEF VAR Vorhanden AS LOG NO-UNDO. DEF VAR QOpen AS LOG NO-UNDO. DEF VAR XRecid AS RECID NO-UNDO. DEF VAR VSort AS INT NO-UNDO. DEF VAR VArtnr AS INT NO-UNDO. DEF VAR VKnr AS INT NO-UNDO. DEF VAR VInhalt AS INT NO-UNDO. DEF VAR VJahr AS INT NO-UNDO. DEF VAR AArtnr AS INT NO-UNDO. DEF VAR AInhalt AS INT NO-UNDO. DEF VAR AJahr AS INT NO-UNDO. DEF VAR ZRecid AS RECID NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR LHandle AS HANDLE NO-UNDO. DEF VAR XHandle AS HANDLE NO-UNDO. DEF VAR ARecid AS RECID NO-UNDO. DEF VAR LRecid AS RECID NO-UNDO. DEF VAR BRecid AS RECID NO-UNDO. DEF VAR VText AS CHAR NO-UNDO. DEF VAR FAlfa AS LOG NO-UNDO. DEF VAR YRecid AS RECID NO-UNDO. DEF VAR RRecid AS RECID NO-UNDO. DEF VAR VKorrArt AS INT NO-UNDO. DEF VAR Faktor AS INT NO-UNDO. DEF VAR XArtnr AS CHAR NO-UNDO. DEF VAR FwFRW AS CHAR NO-UNDO. DEF VAR cSuchbe AS CHAR NO-UNDO. DEF VAR VMWST AS INT. DEF BUFFER BArtst FOR Artst. DEF BUFFER BArtbw FOR Artbw. DEF BUFFER BAdresse FOR Adresse. /* ---------- Globale Variablen ---------------------------------- */ { v8/globvar.i" " " " "SHARED" } { v8/debivar.i " " " " "SHARED" } { v8/artivar.i " " " " "SHARED" } { v8/contvar.i " " " " "SHARED" } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartFrame &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER FRAME /* Name of first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME Br_Artbw /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Artbw /* Definitions for BROWSE Br_Artbw */ &Scoped-define FIELDS-IN-QUERY-Br_Artbw Artbw.Artnr Artbw.Inhalt Artbw.Jahr ~ Artbw.Bez1 Artbw.Tr_Art VText @ VText Artbw.Datum Artbw.KGeb_Me ~ Artbw.VGeb_Me Artbw.GGeb_Me Artbw.Lager &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Artbw &Scoped-define QUERY-STRING-Br_Artbw FOR EACH Artbw NO-LOCK &Scoped-define OPEN-QUERY-Br_Artbw OPEN QUERY Br_Artbw FOR EACH Artbw NO-LOCK. &Scoped-define TABLES-IN-QUERY-Br_Artbw Artbw &Scoped-define FIRST-TABLE-IN-QUERY-Br_Artbw Artbw /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_Lager F_Datum F_Doknr Btn_Artikel_A ~ Btn_Speichern Br_Artbw RECT-1 RECT-2 RECT-35 &Scoped-Define DISPLAYED-FIELDS Artst.Bestand ArtLager.Eingang ~ Artst.Bestellt ArtLager.Ausgang Artst.Ausverk ArtLager.Bestand &Scoped-define DISPLAYED-TABLES Artst ArtLager &Scoped-define FIRST-DISPLAYED-TABLE Artst &Scoped-define SECOND-DISPLAYED-TABLE ArtLager &Scoped-Define DISPLAYED-OBJECTS F_Lager F_Datum F_Doknr A_Artnr A_Inhalt ~ A_Jahr A_Bez F_Artnr F_Inhalt F_Jahr F_Bez F_Kommentar F_GGebinde ~ F_VGebinde F_KGebinde /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Lager F_Datum F_Doknr &Scoped-define List-2 F_Doknr A_Artnr A_Inhalt A_Jahr A_Bez &Scoped-define List-3 F_Artnr F_Inhalt F_Jahr F_Bez F_Kommentar F_GGebinde ~ F_VGebinde F_KGebinde &Scoped-define List-4 F_Bez Artst.Bestand Artst.Bestellt Artst.Ausverk &Scoped-define List-5 Artst.Bestand Artst.Bestellt Artst.Ausverk &Scoped-define List-6 ArtLager.Eingang ArtLager.Ausgang ArtLager.Bestand /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Artikel LABEL "Artikel" SIZE 14 BY 1. DEFINE BUTTON Btn_Artikel_A LABEL "Artikel" SIZE 14 BY 1. DEFINE BUTTON Btn_Speichern LABEL "&Buchen" SIZE 16.8 BY 1.24. DEFINE VARIABLE A_Artnr AS CHARACTER FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 12.6 BY 1 BGCOLOR 15 . DEFINE VARIABLE A_Bez AS CHARACTER FORMAT "x(30)" VIEW-AS FILL-IN NATIVE SIZE 49 BY 1 BGCOLOR 15 . DEFINE VARIABLE A_Inhalt AS INTEGER FORMAT "9999" INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 8.4 BY 1 BGCOLOR 15 . DEFINE VARIABLE A_Jahr AS INTEGER FORMAT "9999" INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 8.4 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 12.6 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Bez AS CHARACTER FORMAT "x(30)" VIEW-AS FILL-IN NATIVE SIZE 49 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999" LABEL "Buchungsdatum" VIEW-AS FILL-IN NATIVE SIZE 18.4 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Doknr AS CHARACTER FORMAT "x(10)":U LABEL "Dokumentnummer" VIEW-AS FILL-IN NATIVE SIZE 19.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_GGebinde AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999" INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 8.4 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999" INITIAL 0 VIEW-AS FILL-IN NATIVE SIZE 8.4 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_KGebinde AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kommentar AS CHARACTER FORMAT "x(35)":U LABEL "Kommentar" VIEW-AS FILL-IN NATIVE SIZE 49 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Lager AS INTEGER FORMAT "99" INITIAL 0 LABEL "Lager" VIEW-AS FILL-IN NATIVE SIZE 5.6 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_VGebinde AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 120 BY 3.14. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 120 BY 10.19. DEFINE RECTANGLE RECT-35 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 120 BY 7. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Artbw FOR Artbw SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Artbw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Artbw F-Frame-Win _STRUCTURED QUERY Br_Artbw DISPLAY Artbw.Artnr FORMAT "999999":U Artbw.Inhalt FORMAT "9999":U Artbw.Jahr FORMAT "9999":U Artbw.Bez1 COLUMN-LABEL "Artikel" FORMAT "x(27)":U Artbw.Tr_Art COLUMN-LABEL "BA" FORMAT "99":U VText @ VText COLUMN-LABEL "Transaktionsart" FORMAT "x(18)":U Artbw.Datum FORMAT "99.99.9999":U Artbw.KGeb_Me COLUMN-LABEL "KGeb" FORMAT "zz,zz9-":U Artbw.VGeb_Me COLUMN-LABEL "VGeb" FORMAT "zzz9-":U Artbw.GGeb_Me COLUMN-LABEL "GGeb" FORMAT "zz9-":U Artbw.Lager COLUMN-LABEL "LG" FORMAT "99":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 109 BY 6.38 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main F_Lager AT ROW 1.67 COL 16.2 COLON-ALIGNED F_Datum AT ROW 1.67 COL 45.6 COLON-ALIGNED F_Doknr AT ROW 1.67 COL 95.4 COLON-ALIGNED Btn_Artikel_A AT ROW 3.05 COL 4.2 A_Artnr AT ROW 3.05 COL 16.2 COLON-ALIGNED NO-LABEL A_Inhalt AT ROW 3.05 COL 28.8 COLON-ALIGNED NO-LABEL A_Jahr AT ROW 3.05 COL 37.2 COLON-ALIGNED NO-LABEL A_Bez AT ROW 3.05 COL 45.6 COLON-ALIGNED NO-LABEL Btn_Artikel AT ROW 5.48 COL 4.2 F_Artnr AT ROW 5.48 COL 16.2 COLON-ALIGNED NO-LABEL F_Inhalt AT ROW 5.48 COL 28.8 COLON-ALIGNED NO-LABEL F_Jahr AT ROW 5.48 COL 37.2 COLON-ALIGNED NO-LABEL F_Bez AT ROW 5.48 COL 45.6 COLON-ALIGNED NO-LABEL F_Kommentar AT ROW 6.52 COL 45.6 COLON-ALIGNED F_GGebinde AT ROW 7.91 COL 16.2 COLON-ALIGNED F_VGebinde AT ROW 8.95 COL 16.2 COLON-ALIGNED F_KGebinde AT ROW 9.95 COL 16.2 COLON-ALIGNED Artst.Bestand AT ROW 7.91 COL 58.4 COLON-ALIGNED LABEL "Bestand" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Eingang AT ROW 7.91 COL 95.4 COLON-ALIGNED LABEL "Eingang" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Artst.Bestellt AT ROW 8.95 COL 58.4 COLON-ALIGNED LABEL "Bestellt" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Ausgang AT ROW 8.95 COL 95.4 COLON-ALIGNED LABEL "Ausgang" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Artst.Ausverk AT ROW 9.95 COL 58.4 COLON-ALIGNED LABEL "Ausverk" FORMAT "9" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 ArtLager.Bestand AT ROW 9.95 COL 95.4 COLON-ALIGNED LABEL "Bestand" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Btn_Speichern AT ROW 13.1 COL 24.8 Br_Artbw AT ROW 15.86 COL 4.2 RECT-1 AT ROW 1.29 COL 2.2 RECT-2 AT ROW 4.71 COL 2.2 RECT-35 AT ROW 15.52 COL 2.2 WITH 1 DOWN NO-BOX 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: SmartFrame Allow: Basic,Browse,DB-Fields,Query,Smart Design Page: 3 Other Settings: PERSISTENT-ONLY COMPILE */ /* 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 F-Frame-Win ASSIGN HEIGHT = 21.71 WIDTH = 122.2. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB F-Frame-Win /* ************************* Included-Libraries *********************** */ {src/adm/method/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW F-Frame-Win VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE Size-to-Fit Custom */ /* BROWSE-TAB Br_Artbw Btn_Speichern F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE. /* SETTINGS FOR FILL-IN ArtLager.Ausgang IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Artst.Ausverk IN FRAME F-Main NO-ENABLE 4 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN A_Artnr IN FRAME F-Main NO-ENABLE 2 */ /* SETTINGS FOR FILL-IN A_Bez IN FRAME F-Main NO-ENABLE 2 */ /* SETTINGS FOR FILL-IN A_Inhalt IN FRAME F-Main NO-ENABLE 2 */ /* SETTINGS FOR FILL-IN A_Jahr IN FRAME F-Main NO-ENABLE 2 */ /* SETTINGS FOR FILL-IN ArtLager.Bestand IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Artst.Bestand IN FRAME F-Main NO-ENABLE 4 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Artst.Bestellt IN FRAME F-Main NO-ENABLE 4 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR BUTTON Btn_Artikel IN FRAME F-Main NO-ENABLE */ /* SETTINGS FOR FILL-IN ArtLager.Eingang IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN F_Bez IN FRAME F-Main NO-ENABLE 3 4 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_Doknr IN FRAME F-Main 1 2 */ /* SETTINGS FOR FILL-IN F_GGebinde IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN F_Jahr IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN F_KGebinde IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN F_Kommentar IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN F_Lager IN FRAME F-Main 1 */ /* SETTINGS FOR FILL-IN F_VGebinde IN FRAME F-Main NO-ENABLE 3 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Artbw /* Query rebuild information for BROWSE Br_Artbw _TblList = "AnaDat.Artbw" _FldNameList[1] = AnaDat.Artbw.Artnr _FldNameList[2] = AnaDat.Artbw.Inhalt _FldNameList[3] = AnaDat.Artbw.Jahr _FldNameList[4] > AnaDat.Artbw.Bez1 "Artbw.Bez1" "Artikel" "x(27)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > AnaDat.Artbw.Tr_Art "Artbw.Tr_Art" "BA" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > "_" "VText @ VText" "Transaktionsart" "x(18)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] = AnaDat.Artbw.Datum _FldNameList[8] > AnaDat.Artbw.KGeb_Me "Artbw.KGeb_Me" "KGeb" "zz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > AnaDat.Artbw.VGeb_Me "Artbw.VGeb_Me" "VGeb" "zzz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > AnaDat.Artbw.GGeb_Me "Artbw.GGeb_Me" "GGeb" "zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] > AnaDat.Artbw.Lager "Artbw.Lager" "LG" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Artbw */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME A_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL A_Artnr F-Frame-Win ON LEAVE OF A_Artnr IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN RETURN. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. VArtnr = -1. FAlfa = FALSE. DO ix = 1 TO LENGTH(FeldInhalt). IF SUBSTRING(FeldInhalt,ix,01) >= '0' AND SUBSTRING(FeldInhalt,ix,01) <= '9' THEN NEXT. FAlfa = TRUE. LEAVE. END. IF FAlfa THEN LKY = KEYCODE("TAB"). IF KEYFUNCTION(LKY) = 'RETURN' THEN DO: LVSort = 1. LVSuchbe = FeldInhalt. Gefunden = FALSE. RUN "v8/d-artstsuchen.w". IF NOT Gefunden THEN DO: APPLY 'ENTRY' TO XHandle. RETURN NO-APPLY. END. VArtnr = INTEGER(SUBSTRING(LVSuchbe,01,06)). VInhalt = INTEGER(SUBSTRING(LVSuchbe,08,04)). VJahr = INTEGER(SUBSTRING(LVSuchbe,13,04)). F_Artnr = STRING(VArtnr,"999999"). F_Inhalt = VInhalt. F_Jahr = VJahr. DISPLAY {&List-2}. APPLY 'LEAVE' TO F_Jahr. RETURN NO-APPLY. END. RUN ARTIKELNUMMER. IF Gefunden THEN DO: APPLY 'LEAVE' TO F_Jahr. RETURN NO-APPLY. END. IF VArtnr = -2 THEN DO: FIND BArtst WHERE RECID(BArtst) = YRecid NO-LOCK. VArtnr = BArtst.Artnr. VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. F_Artnr = STRING(VArtnr,"999999"). F_Inhalt = VInhalt. F_Jahr = VJahr. DISPLAY {&List-2}. APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. IF FAlfa THEN LVSort = 2. ELSE LVSort = 1. LVSuchbe = FeldInhalt. Gefunden = FALSE. RUN "v8/d-artstsuchen.w". IF Gefunden THEN DO: VArtnr = INTEGER(SUBSTRING(LVSuchbe,01,06)). VInhalt = INTEGER(SUBSTRING(LVSuchbe,08,04)). VJahr = INTEGER(SUBSTRING(LVSuchbe,13,04)). F_Artnr = STRING(VArtnr,"999999"). F_Inhalt = VInhalt. F_Jahr = VJahr. DISPLAY {&List-2}. APPLY 'LEAVE' TO F_Jahr. RETURN NO-APPLY. END. APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME A_Inhalt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL A_Inhalt F-Frame-Win ON LEAVE OF A_Inhalt IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Inhalt = INTEGER(FeldInhalt). FIND FIRST Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN DO: { v8/fehler.i "0213" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. F_Jahr = Artst.Jahr. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF AVAILABLE ArtBez THEN DO: F_Bez = ArtBez.Bez1. END. DISPLAY {&List-5}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME A_Jahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL A_Jahr F-Frame-Win ON LEAVE OF A_Jahr IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Jahr = INTEGER(FeldInhalt). FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN DO: { v8/fehler.i "0213" } APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. IF Artst.Aktiv = FALSE THEN DO: { v8/fehler.i "0201" } APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. ARecid = RECID(Artst). FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF AVAILABLE ArtBez THEN DO: F_Bez = ArtBez.Bez1. END. FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr AND ArtLager.Lager = F_Lager NO-LOCK NO-ERROR. IF AVAILABLE ArtLager THEN DO: DISPLAY {&List-6}. END. F_Artnr = STRING(VArtnr,"999999"). DISPLAY {&List-5}. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR. F_KGebinde:LABEL = KGebinde.KBez. F_VGebinde:LABEL = VGebinde.KBez. F_GGebinde:LABEL = GGebinde.KBez. F_KGebinde = 0. F_VGebinde = 0. F_GGebinde = 0. DISPLAY {&List-3}. DISABLE {&List-2}. ENABLE {&List-3}. APPLY 'ENTRY' TO F_VGebinde. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Artbw &Scoped-define SELF-NAME Br_Artbw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artbw F-Frame-Win ON ROW-DISPLAY OF Br_Artbw IN FRAME F-Main DO: RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Artikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Artikel F-Frame-Win ON CHOOSE OF Btn_Artikel IN FRAME F-Main /* Artikel */ DO: DO WITH FRAME {&FRAME-NAME}: XArtnr = ''. cSuchbe = ''. ARecid = ?. RUN "g-suchen-artikel.w" ( INPUT cSuchbe, OUTPUT ARecid ). IF ARecid = ? OR ARecid = 0 THEN RETURN NO-APPLY. FIND Artst NO-LOCK WHERE RECID(Artst) = ARecid. ASSIGN F_Artnr = STRING(Artst.Artnr,'999999') F_Inhalt = Artst.Inhalt F_Jahr = Artst.Jahr F_Bez = Artst.Bez VArtnr = INTEGER(F_Artnr) VInhalt = A_Inhalt VJahr = A_Jahr. DISPLAY {&List-3} F_Bez F_Kommentar. APPLY 'ENTRY' TO F_Kommentar. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Artikel_A &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Artikel_A F-Frame-Win ON CHOOSE OF Btn_Artikel_A IN FRAME F-Main /* Artikel */ DO: DO WITH FRAME {&FRAME-NAME}: XArtnr = ''. cSuchbe = ''. ARecid = ?. ASSIGN {&List-2}. RUN "g-suchen-artikel.w" ( INPUT cSuchbe, OUTPUT ZRecid ). IF ZRecid = ? OR ZRecid = 0 THEN RETURN NO-APPLY. FIND BArtst NO-LOCK WHERE RECID(BArtst) = ZRecid. ASSIGN A_Artnr = STRING(BArtst.Artnr,'999999') A_Inhalt = BArtst.Inhalt A_Jahr = BArtst.Jahr A_Bez = BArtst.Bez AArtnr = INTEGER(A_Artnr) XArtnr = A_Artnr AInhalt = A_Inhalt AJahr = A_Jahr. DISPLAY {&List-2}. APPLY 'ENTRY' TO Btn_Speichern IN FRAME {&FRAME-NAME}. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Speichern &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Speichern F-Frame-Win ON CHOOSE OF Btn_Speichern IN FRAME F-Main /* Buchen */ DO: DO WITH FRAME {&FRAME-NAME}: IF Btn_Speichern:LABEL = '&Buchen' THEN DO: RUN BUCHEN. RETURN NO-APPLY. END. IF Btn_Speichern:LABEL = '&Speichern' THEN DO: RUN SPEICHERN. RETURN NO-APPLY. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr F-Frame-Win ON LEAVE OF F_Artnr IN FRAME F-Main DO: DEF VAR ARecid AS RECID NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR yy AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) AND LHandle:NAME = 'Btn_Artikel' THEN RETURN. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LKY) = 'BACK-TAB' THEN RETURN. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. DO WHILE TRUE: iArtnr = 0. ARecid = ?. IF NUM-ENTRIES(FeldInhalt, ' ') = 1 THEN iArtnr = INTEGER(FeldInhalt) NO-ERROR. IF NOT ERROR-STATUS:ERROR AND iArtnr > 0 THEN DO: yy = 0. FOR EACH Artst NO-LOCK WHERE Artst.Firma = GVFirma AND Artst.Artnr = iArtnr: ASSIGN yy = yy + 1 ARecid = RECID(Artst). END. END. IF yy = 1 THEN LEAVE. ARecid = ?. cSuchbe = 'INVENTAR,' + STRING(F_Lager,'999999') + ';' + cSuchbe. RUN g-suchen-artikel.w ( cSuchbe, OUTPUT ARecid ). LEAVE. END. IF ARecid = ? OR ARecid = 0 THEN DO: APPLY 'ENTRY' TO XHandle. RETURN NO-APPLY. END. FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid . ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr F_Bez = BArtst.Bez F_Artnr = STRING(VArtnr,"999999") F_Inhalt = VInhalt F_Jahr = VJahr. DISPLAY {&List-3} WITH FRAME {&FRAME-NAME}. APPLY 'LEAVE' TO F_Jahr. APPLY 'ENTRY' TO F_KGebinde. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Bez &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Bez F-Frame-Win ON ENTRY OF F_Bez IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum F-Frame-Win ON LEAVE OF F_Datum IN FRAME F-Main /* Buchungsdatum */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. RUN OPEN_Artbw. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_GGebinde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_GGebinde F-Frame-Win ON CURSOR-DOWN OF F_GGebinde IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_GGebinde F-Frame-Win ON LEAVE OF F_GGebinde IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-3}. IF F_GGebinde <> 0 THEN DO: IF AVAILABLE GGebinde THEN F_VGebinde = F_GGebinde * GGebinde.Inhalt. IF AVAILABLE VGebinde THEN F_KGebinde = F_VGebinde * VGebinde.Inhalt. END. DISPLAY {&List-3}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Inhalt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt F-Frame-Win ON LEAVE OF F_Inhalt IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) AND LHandle:NAME = 'Btn_Artikel' THEN RETURN. IF VALID-HANDLE(LHandle) AND LHandle:NAME = 'F_Artnr' THEN RETURN. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Inhalt = INTEGER(FeldInhalt). FIND FIRST Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN DO: { v8/fehler.i "0213" } APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. F_Jahr = Artst.Jahr. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF AVAILABLE ArtBez THEN DO: F_Bez = ArtBez.Bez1. END. DISPLAY {&List-3}. APPLY 'ENTRY' TO F_Jahr. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt F-Frame-Win ON PAGE-DOWN OF F_Inhalt IN FRAME F-Main DO: XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Inhalt = INTEGER(FeldInhalt). FIND FIRST BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = GVFirma AND BArtst.Artnr = VArtnr AND BArtst.Inhalt > F_Inhalt NO-LOCK NO-ERROR. IF NOT AVAILABLE BArtst THEN DO: APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. DO WITH FRAME {&FRAME-NAME}: VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. F_Inhalt = VInhalt. F_Jahr = VJahr. F_Bez = BArtst.Bez. DISPLAY {&List-3}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt F-Frame-Win ON PAGE-UP OF F_Inhalt IN FRAME F-Main DO: XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Inhalt = INTEGER(FeldInhalt). FIND LAST BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = GVFirma AND BArtst.Artnr = VArtnr AND BArtst.Inhalt < F_Inhalt NO-LOCK NO-ERROR. IF NOT AVAILABLE BArtst THEN DO: APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. DO WITH FRAME {&FRAME-NAME}: VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. F_Inhalt = VInhalt. F_Jahr = VJahr. F_Bez = BArtst.Bez. DISPLAY {&List-3}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Jahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr F-Frame-Win ON LEAVE OF F_Jahr IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) AND LHandle:NAME = 'Btn_Artikel' THEN RETURN. IF VALID-HANDLE(LHandle) AND LHandle:NAME = 'F_Artnr' THEN RETURN. IF VALID-HANDLE(LHandle) AND LHandle:NAME = 'F_Inhalt' THEN RETURN. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Jahr = INTEGER(FeldInhalt). FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN DO: { v8/fehler.i "0213" } APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. IF Artst.Aktiv = FALSE THEN DO: { v8/fehler.i "0201" } APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. ARecid = RECID(Artst). FIND ArtBez USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = F_Inhalt AND ArtBez.Jahr = F_Jahr AND ArtBez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. IF AVAILABLE ArtBez THEN DO: F_Bez = ArtBez.Bez1. END. FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr AND ArtLager.Lager = F_Lager NO-LOCK NO-ERROR. IF AVAILABLE ArtLager THEN DO: DISPLAY {&List-6}. END. F_Artnr = STRING(VArtnr,"999999"). DISPLAY {&List-3}. DISPLAY {&List-4}. FIND GGebinde WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-LOCK NO-ERROR. FIND KGebinde WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR. F_KGebinde:LABEL = KGebinde.KBez. F_VGebinde:LABEL = VGebinde.KBez. F_GGebinde:LABEL = GGebinde.KBez. F_KGebinde = 0. F_VGebinde = 0. F_GGebinde = 0. APPLY 'ENTRY' TO F_Kommentar. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_KGebinde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGebinde F-Frame-Win ON CURSOR-UP OF F_KGebinde IN FRAME F-Main DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGebinde F-Frame-Win ON LEAVE OF F_KGebinde IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-3}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Kommentar &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Kommentar F-Frame-Win ON LEAVE OF F_Kommentar IN FRAME F-Main /* Kommentar */ DO: APPLY 'ENTRY' TO F_KGebinde IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VGebinde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGebinde F-Frame-Win ON CURSOR-DOWN OF F_VGebinde IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGebinde F-Frame-Win ON CURSOR-UP OF F_VGebinde IN FRAME F-Main DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGebinde F-Frame-Win ON LEAVE OF F_VGebinde IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-3}. IF F_VGebinde <> 0 THEN DO: IF AVAILABLE VGebinde THEN F_KGebinde = F_VGebinde * VGebinde.Inhalt. END. DISPLAY {&List-3}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win /* *************************** Main Block *************************** */ SESSION:DATA-ENTRY-RETURN = TRUE. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. IF Steuer.Fwi06 = 0 THEN VMWST = 1. ELSE VMWST = Steuer.Fwi06. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW. IF FwFRW = ? THEN FwFRW = 'CHF'. QOpen = FALSE. VSort = 1. VLoeschen = FALSE. VUpdate = FALSE. ON END-ERROR OF {&FELDER} IN FRAME {&FRAME-NAME} DO: DO WITH FRAME {&FRAME-NAME}: LKY = LASTKEY. XHandle = SELF:HANDLE. IF VUpdate THEN DO: VUpdate = FALSE. RUN CLEARBILDSCHIRM. ENABLE {&List-1}. DISABLE {&List-3}. ENABLE Btn_Artikel_A. DISABLE Btn_Artikel. Btn_Speichern:LABEL = '&Buchen'. APPLY 'ENTRY' TO Btn_Speichern. RETURN NO-APPLY. END. IF VALID-HANDLE(XHandle) THEN DO: IF XHandle:NAME = 'F_Lager' THEN DO: RUN new-state ( 'ENDE, MAIN':U). RETURN NO-APPLY. END. APPLY 'ENTRY' TO F_Lager. RETURN NO-APPLY. END. END. END. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects F-Frame-Win _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available F-Frame-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 ANZEIGE F-Frame-Win PROCEDURE ANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VText = ''. IF NOT AVAILABLE Artbw THEN RETURN. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'LAGKORR' AND Tabel.CodeC = '' AND Tabel.CodeI = Artbw.Tr_Art AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN VText = Tabel.Bez1. ELSE VText = FILL('?', 10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKELNUMMER F-Frame-Win PROCEDURE ARTIKELNUMMER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Anzahl AS INT NO-UNDO. Gefunden = FALSE. Anzahl = 0. YRecid = 0. VArtnr = INTEGER(FeldInhalt). FeldInhalt = TRIM(STRING(VArtnr,"zzzzz9")). FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. DO WHILE LENGTH(FeldInhalt) < Steuer.Fwi10: FeldInhalt = FeldInhalt + "0". END. VArtnr = INTEGER(FeldInhalt). FIND FIRST BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = GVFirma AND BArtst.Artnr >= VArtnr AND BArtst.Aktiv = TRUE NO-LOCK NO-ERROR. IF AVAILABLE BArtst THEN VArtnr = BArtst.Artnr. FOR EACH BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = GVFirma AND BArtst.Artnr = VArtnr AND BArtst.Aktiv = TRUE NO-LOCK: Anzahl = Anzahl + 1. IF Anzahl > 2 THEN LEAVE. IF Anzahl = 1 THEN YRecid = RECID(BArtst). END. VArtnr = -1. IF Anzahl = 1 THEN Gefunden = TRUE. IF Anzahl > 1 THEN VArtnr = -2. IF Gefunden THEN DO: FIND BArtst WHERE RECID(BArtst) = YRecid. VArtnr = BArtst.Artnr. VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. F_Artnr = STRING(VArtnr,"999999"). F_Inhalt = VInhalt. F_Jahr = VJahr. F_Bez = BArtst.Bez. DISPLAY {&List-3} F_Bez. END. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUCHEN F-Frame-Win PROCEDURE BUCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-1} NO-ERROR. ASSIGN {&List-2} NO-ERROR. RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = INTEGER(A_Artnr) AND Artst.Inhalt = A_Inhalt AND Artst.Jahr = A_Jahr NO-LOCK nO-ERROR. IF NOT AVAILABLE Artst THEN DO: APPLY 'ENTRY' TO Btn_Artikel_A. RETURN NO-APPLY. END. DISABLE {&List-1}. ENABLE {&List-3}. DISABLE Btn_Artikel_A. ENABLE Btn_Artikel. RUN CLEARBILDSCHIRM. F_Artnr = ''. F_Inhalt = 0. F_Jahr = 0. Btn_Speichern:LABEL = '&Speichern'. VUpdate = TRUE. APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CLEARBILDSCHIRM F-Frame-Win PROCEDURE CLEARBILDSCHIRM : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: F_Artnr:SCREEN-VALUE = ''. F_Inhalt:SCREEN-VALUE = ''. F_Jahr:SCREEN-VALUE = ''. F_Bez:SCREEN-VALUE = ''. Artst.Bestand:SCREEN-VALUE = ''. Artst.Bestellt:SCREEN-VALUE = ''. Artst.Ausverk:SCREEN-VALUE = ''. ArtLager.Eingang:SCREEN-VALUE = ''. ArtLager.Ausgang:SCREEN-VALUE = ''. ArtLager.Bestand:SCREEN-VALUE = ''. F_GGebinde:SCREEN-VALUE = ''. F_VGebinde:SCREEN-VALUE = ''. F_KGebinde:SCREEN-VALUE = ''. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATUMTEST F-Frame-Win PROCEDURE DATUMTEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Datum. IF F_Datum = ? THEN DO: F_Datum = TODAY. DISPLAY F_Datum. RETURN ''. END. IF F_Datum < TODAY - 365 OR F_Datum > TODAY + 365 THEN DO: { v8/fehler.i "0096" } APPLY 'ENTRY' TO F_Datum. RETURN 'ERROR'. END. RETURN ''. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI F-Frame-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 enable_UI F-Frame-Win _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Lager F_Datum F_Doknr A_Artnr A_Inhalt A_Jahr A_Bez F_Artnr F_Inhalt F_Jahr F_Bez F_Kommentar F_GGebinde F_VGebinde F_KGebinde WITH FRAME F-Main. IF AVAILABLE ArtLager THEN DISPLAY ArtLager.Eingang ArtLager.Ausgang ArtLager.Bestand WITH FRAME F-Main. IF AVAILABLE Artst THEN DISPLAY Artst.Bestand Artst.Bestellt Artst.Ausverk WITH FRAME F-Main. ENABLE F_Lager F_Datum F_Doknr Btn_Artikel_A Btn_Speichern Br_Artbw RECT-1 RECT-2 RECT-35 WITH FRAME F-Main. {&OPEN-BROWSERS-IN-QUERY-F-Main} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize F-Frame-Win PROCEDURE local-initialize : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: F_Datum = TODAY. DISPLAY F_Datum. END. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view F-Frame-Win PROCEDURE local-view : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) . RUN OPEN_Artbw. DO WITH FRAME {&FRAME-NAME}: DISABLE {&List-1}. ENABLE F_Lager F_Datum F_Doknr Btn_Artikel_A. APPLY 'ENTRY' TO F_Lager. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_Artbw F-Frame-Win PROCEDURE OPEN_Artbw : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF QOpen THEN CLOSE QUERY Br_Artbw. QOpen = FALSE. Vorhanden = FALSE. DO WITH FRAME {&FRAME-NAME}: {&BROWSE-NAME}:SET-REPOSITIONED-ROW(4, 'CONDITIONAL':U). END. OPEN QUERY Br_Artbw FOR EACH Artbw USE-INDEX Artbw-k8 WHERE Artbw.Firma = GVFirma AND Artbw.Tr_Art = 9 AND Artbw.Knr = 0 NO-LOCK. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF NUM-RESULTS('Br_Artbw':U) = ? THEN LEAVE. IF NUM-RESULTS('Br_Artbw':U) = 0 THEN LEAVE. Vorhanden = TRUE. QOpen = TRUE. IF RRecid = 0 THEN LEAVE. REPOSITION {&BROWSE-NAME} TO RECID RRecid NO-ERROR. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records F-Frame-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 "Artbw"} /* 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 SPEICHERN F-Frame-Win PROCEDURE SPEICHERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR LRecid AS RECID NO-UNDO. DEF VAR CRecid AS RECID NO-UNDO. DEF VAR Faktor AS INT NO-UNDO. DEF VAR Ablauf AS INT NO-UNDO. DEF VAR VLiter AS DEC DECIMALS 4 NO-UNDO. DEF VAR Bez2 AS CHAR NO-UNDO. IF NOT VUpdate THEN RETURN NO-APPLY. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. ASSIGN {&List-2} {&List-3} F_Bez. IF F_KGebinde = 0 AND F_VGebinde = 0 AND F_GGebinde = 0 THEN DO: BELL. APPLY 'ENTRY' TO F_KGebinde. RETURN NO-APPLY. END. Faktor = -1. Ablauf = 2. CRecid = ARecid. Bez2 = 'A;' + STRING(AArtnr ,"999999;") + STRING(AInhalt,"9999;") + STRING(AJahr ,"9999;") + F_Doknr + ";" + F_Kommentar. DO WHILE Ablauf > 0: RRecid = 0. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND Artst WHERE RECID(Artst) = ARecid. FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr AND ArtLager.Lager = F_Lager NO-ERROR. IF NOT AVAILABLE ArtLager THEN DO: CREATE ArtLager. ASSIGN ArtLager.Firma = Artst.Firma ArtLager.Artnr = Artst.Artnr ArtLager.Inhalt = Artst.Inhalt ArtLager.Jahr = Artst.Jahr ArtLager.Lager = F_Lager. END. LRecid = RECID(ArtLager). ArtLager.Ausgang = ArtLager.Ausgang + (F_KGebinde * Faktor). ArtLager.Bestand = ArtLager.Bestand - (F_KGebinde * Faktor). FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: FIND LAST Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1. ELSE i1 = 1. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = 1 AND Wust.CodeA = Artst.MWST NO-LOCK NO-ERROR. CREATE Artbw. ASSIGN Artbw.Firma = GVFirma Artbw.Trnr = i1 Artbw.Tr_Art = 9 Artbw.Artnr = Artst.Artnr Artbw.Inhalt = Artst.Inhalt Artbw.Jahr = Artst.Jahr Artbw.Bez1 = F_Bez Artbw.Bez2 = Bez2 Artbw.Knr = 0 Artbw.Menge = F_KGebinde * Faktor Artbw.Alk_Gehalt = Artst.Alk_Gehalt Artbw.Aktion = FALSE Artbw.Sk_Ber = FALSE Artbw.Netto = FALSE Artbw.Lager = F_Lager Artbw.KGeb_Cd = Artst.KGeb_Cd Artbw.VGeb_Cd = Artst.VGeb_Cd Artbw.GGeb_Cd = Artst.GGeb_Cd Artbw.KGeb_Me = F_KGebinde * Faktor Artbw.VGeb_Me = F_VGebinde * Faktor Artbw.GGeb_Me = F_GGebinde * Faktor Artbw.Preis = 0 Artbw.Bru_Betr = 0 Artbw.Net_Betr = 0 Artbw.Liter = Artbw.Menge * KGebinde.Inhalt / 100 Artbw.Gewicht = (Artbw.Menge * Artst.Gewicht) + KGebinde.Gewicht Artbw.Datum = F_Datum Artbw.Abhol = FALSE Artbw.FRW = FwFRW Artbw.Faktor = 1 Artbw.Kurs = 1.0 Artbw.WC = Artst.MWST Artbw.WuCd = Wust.WuCd Artbw.Aufnr = 0. RRecid = RECID(Artbw). VLiter = Artbw.Menge * KGebinde.Inhalt / 100. LEAVE. END. Faktor = Faktor * -1. VLiter = VLiter * -1. ARecid = ZRecid. Ablauf = Ablauf - 1. Bez2 = 'B;' + STRING(F_Artnr ,"999999;") + STRING(F_Inhalt,"9999;") + STRING(F_Jahr ,"9999;") + F_Doknr. FIND BArtst WHERE RECID(BArtst) = ZRecid NO-LOCK NO-ERROR. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR. F_GGebinde = 0. F_VGebinde = 0. F_KGebinde = VLiter * 100 / KGebinde.Inhalt. END. ARecid = CRecid. FIND Artst WHERE RECID(Artst) = ARecid NO-LOCK NO-ERROR. FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr AND ArtLager.Lager = F_Lager NO-LOCK NO-ERROR. RUN CLEARBILDSCHIRM. F_Artnr = STRING(VArtnr,"999999"). F_Inhalt = VInhalt. F_Jahr = VJahr. F_Bez = Artst.Bez. F_GGebinde = 0. F_VGebinde = 0. F_KGebinde = 0. DISPLAY {&List-3} {&List-5} {&List-6}. DISABLE {&List-3}. ENABLE {&List-1}. ENABLE Btn_Artikel_A. DISABLE Btn_Artikel. VUpdate = FALSE. RUN OPEN_Artbw. Btn_Speichern:LABEL = '&Buchen'. RELEASE Artst. RELEASE ArtLager. LEAVE. END. FIND Artst WHERE RECID(Artst) = ARecid NO-LOCK NO-ERROR. FIND ArtLager WHERE RECID(ArtLager) = LRecid NO-LOCK NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed F-Frame-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: WHEN 'FIRST-RECORD' THEN DO: RUN ANZEIGE. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME