&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 XArtbw NO-UNDO LIKE Artbw. &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 CB_Lager,CB_Datum,F_Artnr,F_Inhalt,F_Jahr,~ F_GGebinde,F_VGebinde,F_KGebinde,~ Btn_Speichern,Btn_Vorbereitung DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR FGefunden AS LOG NO-UNDO. DEF VAR Vorhanden AS LOG NO-UNDO. DEF VAR XRecid AS RECID NO-UNDO. DEF VAR VArtnr AS INT NO-UNDO. DEF VAR VInhalt AS INT NO-UNDO. DEF VAR VJahr AS INT 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 FwFRW AS CHAR NO-UNDO. DEF VAR AArtnr AS INT NO-UNDO. DEF VAR AInhalt AS INT NO-UNDO. DEF VAR AJahr AS INT NO-UNDO. DEF BUFFER BArtst FOR Artst. DEF BUFFER BArtbw FOR Artbw. DEF TEMP-TABLE tDatum NO-UNDO FIELD Datum AS DATE INDEX tDatum-k1 IS PRIMARY Datum DESCENDING. /* ---------- 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 designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME Br_XArtbw /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES XArtbw Artbw ArtLager Artst /* Definitions for BROWSE Br_XArtbw */ &Scoped-define FIELDS-IN-QUERY-Br_XArtbw XArtbw.Artnr ~ DYNAMIC-FUNCTION('getKGebindeKBez':U,XArtbw.KGeb_Cd) XArtbw.Bez1 ~ XArtbw.Inhalt XArtbw.Jahr XArtbw.Lager XArtbw.Datum XArtbw.Menge ~ XArtbw.KGeb_Me XArtbw.VGeb_Me XArtbw.GGeb_Me &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_XArtbw &Scoped-define QUERY-STRING-Br_XArtbw FOR EACH XArtbw OF Artbw NO-LOCK &Scoped-define OPEN-QUERY-Br_XArtbw OPEN QUERY Br_XArtbw FOR EACH XArtbw OF Artbw NO-LOCK. &Scoped-define TABLES-IN-QUERY-Br_XArtbw XArtbw &Scoped-define FIRST-TABLE-IN-QUERY-Br_XArtbw XArtbw /* Definitions for FRAME F-Main */ &Scoped-define FIELDS-IN-QUERY-F-Main Artst.Bestand Artst.Bestellt ~ Artst.Ausverk ArtLager.Eingang ArtLager.Ausgang ArtLager.Bestand ~ ArtLager.Inv_Best ArtLager.Inv_Alt ArtLager.Ort &Scoped-define OPEN-BROWSERS-IN-QUERY-F-Main ~ ~{&OPEN-QUERY-Br_XArtbw} &Scoped-define QUERY-STRING-F-Main FOR EACH Artbw NO-LOCK, ~ EACH ArtLager OF Artbw NO-LOCK, ~ EACH Artst OF Artbw NO-LOCK &Scoped-define OPEN-QUERY-F-Main OPEN QUERY F-Main FOR EACH Artbw NO-LOCK, ~ EACH ArtLager OF Artbw NO-LOCK, ~ EACH Artst OF Artbw NO-LOCK. &Scoped-define TABLES-IN-QUERY-F-Main Artbw ArtLager Artst &Scoped-define FIRST-TABLE-IN-QUERY-F-Main Artbw &Scoped-define SECOND-TABLE-IN-QUERY-F-Main ArtLager &Scoped-define THIRD-TABLE-IN-QUERY-F-Main Artst /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS CB_Lager CB_Datum Btn_Speichern Br_XArtbw ~ Btn_Vorbereitung Btn_Uebernahme RECT-1 &Scoped-Define DISPLAYED-FIELDS Artst.Bestand Artst.Bestellt Artst.Ausverk ~ ArtLager.Eingang ArtLager.Ausgang ArtLager.Bestand ArtLager.Inv_Best ~ ArtLager.Inv_Alt ArtLager.Ort &Scoped-define DISPLAYED-TABLES Artst ArtLager &Scoped-define FIRST-DISPLAYED-TABLE Artst &Scoped-define SECOND-DISPLAYED-TABLE ArtLager &Scoped-Define DISPLAYED-OBJECTS CB_Lager CB_Datum F_Artnr F_Inhalt F_Jahr ~ F_Bez 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_Datum F_Artnr F_Inhalt F_Jahr F_GGebinde F_VGebinde ~ F_KGebinde &Scoped-define List-2 F_Artnr F_Inhalt F_Jahr &Scoped-define List-3 F_GGebinde F_VGebinde F_KGebinde &Scoped-define List-4 F_Datum &Scoped-define List-5 F_Bez Artst.Bestand Artst.Bestellt Artst.Ausverk &Scoped-define List-6 ArtLager.Eingang ArtLager.Ausgang ArtLager.Bestand ~ ArtLager.Inv_Best ArtLager.Inv_Alt ArtLager.Ort /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Speichern LABEL "Buchen" SIZE 16.8 BY 1.24. DEFINE BUTTON Btn_Uebernahme LABEL "&Ubernahme" SIZE 18.2 BY 1. DEFINE BUTTON Btn_Vorbereitung LABEL "&Vorbereitung" SIZE 18.2 BY 1. DEFINE VARIABLE CB_Datum AS CHARACTER FORMAT "X(256)":U LABEL "Inventardatum" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "item 1" DROP-DOWN-LIST SIZE 18 BY 1 NO-UNDO. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U INITIAL "00" LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Lager (00)","00", "Lager (01)","01" DROP-DOWN-LIST SIZE 25 BY 1 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(20)" LABEL "Artnr/Inhalt/Jahr" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Bez AS CHARACTER FORMAT "x(30)" LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 52 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999" LABEL "Inventardatum" VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_GGebinde AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999" INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 8.6 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999" INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 8.6 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_KGebinde AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Lager AS INTEGER FORMAT "999999" INITIAL 0 LABEL "Lager" VIEW-AS FILL-IN NATIVE SIZE 5.6 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_VGebinde AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 126 BY 19.76. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_XArtbw FOR XArtbw SCROLLING. DEFINE QUERY F-Main FOR Artbw, ArtLager, Artst SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_XArtbw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_XArtbw F-Frame-Win _STRUCTURED QUERY Br_XArtbw DISPLAY XArtbw.Artnr FORMAT "999999":U DYNAMIC-FUNCTION('getKGebindeKBez':U,XArtbw.KGeb_Cd) COLUMN-LABEL "Gebinde" FORMAT "x(12)":U XArtbw.Bez1 COLUMN-LABEL "Artikel" FORMAT "x(30)":U XArtbw.Inhalt FORMAT "9999":U XArtbw.Jahr FORMAT "9999":U XArtbw.Lager FORMAT "99":U XArtbw.Datum FORMAT "99.99.9999":U XArtbw.Menge FORMAT "zzzz9-":U XArtbw.KGeb_Me COLUMN-LABEL "KGeb" FORMAT "zzz,zz9-":U XArtbw.VGeb_Me COLUMN-LABEL "VGeb" FORMAT "zz,zz9-":U XArtbw.GGeb_Me COLUMN-LABEL "GGeb" FORMAT "zz9-":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 117.8 BY 5.62 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main F_Lager AT ROW 2 COL 23 COLON-ALIGNED NO-TAB-STOP CB_Lager AT ROW 2 COL 23 COLON-ALIGNED WIDGET-ID 2 CB_Datum AT ROW 2 COL 71 COLON-ALIGNED WIDGET-ID 4 F_Datum AT ROW 2 COL 71 COLON-ALIGNED NO-TAB-STOP F_Artnr AT ROW 4.14 COL 22.8 COLON-ALIGNED F_Inhalt AT ROW 4.14 COL 38.2 COLON-ALIGNED F_Jahr AT ROW 4.14 COL 51 COLON-ALIGNED F_Bez AT ROW 4.14 COL 71 COLON-ALIGNED F_GGebinde AT ROW 7.33 COL 16 COLON-ALIGNED F_VGebinde AT ROW 8.24 COL 16 COLON-ALIGNED F_KGebinde AT ROW 9.24 COL 16 COLON-ALIGNED Artst.Bestand AT ROW 8.71 COL 51 COLON-ALIGNED LABEL "Bestand" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Artst.Bestellt AT ROW 9.71 COL 51 COLON-ALIGNED LABEL "Bestellt" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Artst.Ausverk AT ROW 10.71 COL 51 COLON-ALIGNED LABEL "Ausverk" FORMAT "9" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 ArtLager.Eingang AT ROW 6.71 COL 98 COLON-ALIGNED LABEL "Eingang" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Ausgang AT ROW 7.71 COL 98 COLON-ALIGNED LABEL "Ausgang" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Bestand AT ROW 8.71 COL 98 COLON-ALIGNED LABEL "Bestand" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Inv_Best AT ROW 9.71 COL 98 COLON-ALIGNED LABEL "Inventar" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Inv_Alt AT ROW 10.71 COL 98 COLON-ALIGNED LABEL "Inventar Alt" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Ort AT ROW 11.71 COL 98 COLON-ALIGNED LABEL "Lagerort/Platz" FORMAT "x(15)" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Btn_Speichern AT ROW 11.05 COL 18 Br_XArtbw AT ROW 14.33 COL 6 Btn_Vorbereitung AT ROW 1.62 COL 105 Btn_Uebernahme AT ROW 2.86 COL 105 RECT-1 AT ROW 1.24 COL 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: 2 Other Settings: PERSISTENT-ONLY COMPILE Temp-Tables and Buffers: TABLE: XArtbw T "?" NO-UNDO AnaDat Artbw 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 F-Frame-Win ASSIGN HEIGHT = 20.91 WIDTH = 129.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 FRAME-NAME Size-to-Fit Custom */ /* BROWSE-TAB Br_XArtbw 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 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Artst.Bestand IN FRAME F-Main NO-ENABLE 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN ArtLager.Bestand IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Artst.Bestellt IN FRAME F-Main NO-ENABLE 5 EXP-LABEL EXP-FORMAT */ /* 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 1 2 */ /* SETTINGS FOR FILL-IN F_Bez IN FRAME F-Main NO-ENABLE 5 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME F-Main NO-DISPLAY NO-ENABLE 1 4 */ ASSIGN F_Datum:HIDDEN IN FRAME F-Main = TRUE F_Datum:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_GGebinde IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_Jahr IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_KGebinde IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Lager IN FRAME F-Main NO-DISPLAY NO-ENABLE */ ASSIGN F_Lager:HIDDEN IN FRAME F-Main = TRUE F_Lager:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_VGebinde IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN ArtLager.Inv_Alt IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN ArtLager.Inv_Best IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN ArtLager.Ort IN FRAME F-Main NO-ENABLE 6 EXP-LABEL EXP-FORMAT */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_XArtbw /* Query rebuild information for BROWSE Br_XArtbw _TblList = "Temp-Tables.XArtbw OF AnaDat.Artbw" _FldNameList[1] = Temp-Tables.XArtbw.Artnr _FldNameList[2] > "_" "DYNAMIC-FUNCTION('getKGebindeKBez':U,XArtbw.KGeb_Cd)" "Gebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > Temp-Tables.XArtbw.Bez1 "XArtbw.Bez1" "Artikel" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] = Temp-Tables.XArtbw.Inhalt _FldNameList[5] = Temp-Tables.XArtbw.Jahr _FldNameList[6] = Temp-Tables.XArtbw.Lager _FldNameList[7] = Temp-Tables.XArtbw.Datum _FldNameList[8] > Temp-Tables.XArtbw.Menge "XArtbw.Menge" ? "zzzz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > Temp-Tables.XArtbw.KGeb_Me "XArtbw.KGeb_Me" "KGeb" "zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > Temp-Tables.XArtbw.VGeb_Me "XArtbw.VGeb_Me" "VGeb" "zz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] > Temp-Tables.XArtbw.GGeb_Me "XArtbw.GGeb_Me" "GGeb" "zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is OPENED */ /* BROWSE Br_XArtbw */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _TblList = "AnaDat.Artbw,AnaDat.ArtLager OF AnaDat.Artbw,AnaDat.Artst OF AnaDat.Artbw" _Options = "" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &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 Btn_Uebernahme &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Uebernahme F-Frame-Win ON CHOOSE OF Btn_Uebernahme IN FRAME F-Main /* Ubernahme */ DO: RUN g-invent-ueber.w. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Vorbereitung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Vorbereitung F-Frame-Win ON CHOOSE OF Btn_Vorbereitung IN FRAME F-Main /* Vorbereitung */ DO: RUN g-invent-vorber.w. RUN LAGER_EINSTELLUNGEN. APPLY 'ENTRY' TO F_Artnr. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Datum F-Frame-Win ON VALUE-CHANGED OF CB_Datum IN FRAME F-Main /* Inventardatum */ DO: F_Datum = DATE(CB_Datum:SCREEN-VALUE). F_Datum:SCREEN-VALUE = CB_Datum:SCREEN-VALUE. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager F-Frame-Win ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */ DO: F_Lager = INTEGER(SELF:SCREEN-VALUE). F_Lager:SCREEN-VALUE = STRING(F_Lager). RUN LAGER_EINSTELLUNGEN. APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. 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 /* Artnr/Inhalt/Jahr */ 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}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF NOT VUpdate THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. 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. LVSuchbe = FeldINhalt. ARecid = ?. LVSuchbe = 'INVENTAR,' + STRING(F_Lager,'999999') + ';' + LVSuchbe. RUN g-suchen-artikel.w ( LVSuchbe, OUTPUT ARecid ). LEAVE. END. IF ARecid = ? OR ARecid = 0 THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND Artst NO-LOCK WHERE RECID(Artst) = ARecid. ASSIGN VArtnr = Artst.Artnr VInhalt = Artst.Inhalt VJahr = Artst.Jahr F_Artnr = STRING(Artst.Artnr,"999999") F_Inhalt = Artst.Inhalt 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-2} {&List-5} F_Bez. APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. 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 /* Inventardatum */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. 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. F_Lager = INTEGER(CB_Lager:SCREEN-VALUE). F_Lager:SCREEN-VALUE = STRING(F_Lager). 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 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 DO: APPLY 'ENTRY' TO F_Inhalt. RETURN NO-APPLY. END. F_Lager = INTEGER(CB_Lager:SCREEN-VALUE). F_Lager:SCREEN-VALUE = STRING(F_Lager). 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_Inhalt. RETURN NO-APPLY. END. IF Artst.Aktiv = FALSE THEN DO: { v8/fehler.i "0201" } APPLY 'ENTRY' TO F_Inhalt. 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 = F_Jahr AND ArtLager.Lager = F_Lager NO-LOCK NO-ERROR. IF AVAILABLE ArtLager THEN DO: DISPLAY {&List-6}. END. DISPLAY {&List-5}. DISABLE {&List-2}. ENABLE {&List-3}. 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}. IF ArtLager.Datum_Inv <> ? THEN DO: IF ArtLager.Datum_Inv >= (TODAY - 120) THEN DO: F_Datum = ArtLager.Datum_Inv. F_Datum :SCREEN-VALUE = STRING(ArtLager.datum_Inv,'99.99.9999'). CB_Datum:SCREEN-VALUE = STRING(F_Datum,'99.99.9999'). END. END. APPLY 'ENTRY' TO F_VGebinde. 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 &Scoped-define SELF-NAME F_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Lager F-Frame-Win ON LEAVE OF F_Lager IN FRAME F-Main /* Lager */ DO: F_Lager = INTEGER(F_Lager:SCREEN-VALUE). 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 &Scoped-define BROWSE-NAME Br_XArtbw &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win /* *************************** Main Block *************************** */ &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN /* Now enable the interface if in test mode - otherwise this happens when the object is explicitly initialized from its container. */ RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW. IF FwFRW = ? THEN FwFRW = 'CHF'. SESSION:DATA-ENTRY-RETURN = TRUE. 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. DISABLE {&List-2}. DISABLE {&List-3}. ENABLE {&List-4}. Btn_Speichern:LABEL = 'Buchen'. APPLY 'ENTRY' TO Btn_Speichern. RETURN NO-APPLY. END. IF VALID-HANDLE(XHandle) THEN DO: IF XHandle:NAME = 'CB_Lager' THEN DO: RUN new-state ( 'ENDE, MAIN':U). RETURN NO-APPLY. END. APPLY 'ENTRY' TO CB_Lager. RETURN NO-APPLY. END. END. END. /* _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 ARTIKELNUMMER F-Frame-Win PROCEDURE ARTIKELNUMMER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VArtnr = -1. FIND FIRST BArtst USE-INDEX Artst-k2 WHERE BArtst.Firma = GVFirma AND BArtst.Suchbe BEGINS FeldInhalt NO-LOCK NO-ERROR. IF AVAILABLE BArtst THEN DO: VArtnr = BArtst.Artnr. FIND NEXT BArtst USE-INDEX Artst-k2 WHERE BArtst.Firma = GVFirma AND BArtst.Suchbe BEGINS FeldInhalt NO-LOCK NO-ERROR. IF AVAILABLE BArtst THEN VArtnr = -1. END. IF VArtnr = -1 THEN DO: Linkcd = 0. Linknr = VArtnr. Linktext = FeldInhalt. i5 = 1. RUN new-state ( INPUT 'artikelsuche, MAIN' ). RETURN NO-APPLY. END. 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-4} NO-ERROR. RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. DISABLE {&List-1}. ENABLE {&List-2}. F_Artnr:SCREEN-VALUE = STRING(AArtnr). F_Inhalt:SCREEN-VALUE = STRING(AInhalt). F_Jahr:SCREEN-VALUE = STRING(AJahr). F_Bez:SCREEN-VALUE = ''. 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 DATUMTEST F-Frame-Win PROCEDURE DATUMTEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: F_Datum = DATE(CB_Datum:SCREEN-VALUE) NO-ERROR. F_Datum:SCREEN-VALUE = CB_Datum:SCREEN-VALUE. IF F_Datum = ? OR F_Datum < TODAY - 120 OR F_Datum > TODAY + 120 THEN DO: { v8/fehler.i "0096" } APPLY 'ENTRY' TO CB_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 CB_Lager CB_Datum F_Artnr F_Inhalt F_Jahr F_Bez F_GGebinde F_VGebinde F_KGebinde WITH FRAME F-Main. IF AVAILABLE ArtLager THEN DISPLAY ArtLager.Eingang ArtLager.Ausgang ArtLager.Bestand ArtLager.Inv_Best ArtLager.Inv_Alt ArtLager.Ort WITH FRAME F-Main. IF AVAILABLE Artst THEN DISPLAY Artst.Bestand Artst.Bestellt Artst.Ausverk WITH FRAME F-Main. ENABLE CB_Lager CB_Datum Btn_Speichern Br_XArtbw Btn_Vorbereitung Btn_Uebernahme RECT-1 WITH FRAME F-Main. {&OPEN-BROWSERS-IN-QUERY-F-Main} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEFUNDEN_ARTIKEL F-Frame-Win PROCEDURE GEFUNDEN_ARTIKEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VArtnr = Linknr. FeldInhalt = Linktext. Linktext = ''. Linknr = 0. FGefunden = TRUE. DO WITH FRAME {&FRAME-NAME}: F_Artnr = STRING(AVArtnr). F_Inhalt = AVInhalt. F_Jahr = AVJahr. F_Artnr:SCREEN-VALUE = STRING(AVArtnr). FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = AVArtnr AND Artst.Inhalt = AVInhalt AND Artst.Jahr = AVJahr NO-LOCK NO-ERROR. IF AVAILABLE Artst THEN DO: FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = GVFirma AND Artbez.Artnr = AVArtnr AND Artbez.Inhalt = AVInhalt AND Artbez.Jahr = AVJahr AND Artbez.Sprcd = Steuer.Fwi01 NO-LOCK NO-ERROR. END. IF AVAILABLE Artbez THEN DO: F_Bez = Artbez.Bez1. END. APPLY 'LEAVE' TO F_Artnr. DISPLAY {&List-2}. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LAGER_EINSTELLUNGEN F-Frame-Win PROCEDURE LAGER_EINSTELLUNGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Datum AS DATE FORMAT '99.99.9999' NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: CB_Lager:SCREEN-VALUE = STRING(F_Lager,'999999'). END. EMPTY TEMP-TABLE tDatum. FOR EACH ArtLager NO-LOCK WHERE ArtLager.Firma = Firma AND ArtLager.Lager = F_Lager AND ArtLager.Datum_Inv <> ?: Datum = ArtLager.Datum_Inv. FIND FIRST tDatum WHERE tDatum.Datum = Datum NO-ERROR. IF NOT AVAILABLE tDatum THEN DO: CREATE tDatum. ASSIGN tDatum.Datum = Datum. END. END. FOR EACH tDatum: cString = cString + (IF cString = '' THEN '' ELSE ';') + STRING(tDatum.Datum,'99.99.9999'). END. FIND FIRST tDatum NO-ERROR. IF NOT AVAILABLE tDatum THEN Datum = TODAY. ELSE Datum = tDatum.Datum. DO WITH FRAME {&FRAME-NAME}: CB_Datum:DELIMITER = ';'. CB_Datum:LIST-ITEMS = cString. CB_Datum:SCREEN-VALUE = STRING(Datum,'99.99.9999') NO-ERROR. APPLY 'ENTRY' TO F_Artnr. END. 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: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ /* Dispatch standard ADM method. */ RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . DO WITH FRAME {&FRAME-NAME}: F_Lager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR. RUN COMBO_LAGER ( CB_Lager:HANDLE ). RUN LAGER_EINSTELLUNGEN. F_Lager:SCREEN-VALUE = STRING(F_Lager). APPLY 'ENTRY' TO F_Artnr. END. /* Code placed here will execute AFTER standard behavior. */ 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 ) . APPLY 'ENTRY' TO CB_Lager IN FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NICHT_GEFUNDEN_ARTIKEL F-Frame-Win PROCEDURE NICHT_GEFUNDEN_ARTIKEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_XARTBW F-Frame-Win PROCEDURE OPEN_XARTBW : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ OPEN QUERY Br_XArtbw FOR EACH XArtbw WHERE XArtbw.Firma = GVFirma NO-LOCK BY XArtbw.Trnr DESCENDING. 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"} {src/adm/template/snd-list.i "ArtLager"} {src/adm/template/snd-list.i "Artst"} {src/adm/template/snd-list.i "XArtbw"} /* 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. IF NOT VUpdate THEN RETURN NO-APPLY. DISABLE TRIGGERS FOR LOAD OF ArtLager. DISABLE TRIGGERS FOR LOAD OF Artst. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. ASSIGN {&List-2} {&List-3}. DO WHILE TRUE: IF F_KGebinde > 0 OR F_VGebinde > 0 OR F_GGebinde > 0 THEN LEAVE. MESSAGE "Wollen Sie wirklich ein Inventar mit 0 erfassen ? " VIEW-AS ALERT-BOX QUESTION BUTTONS OK-CANCEL Update Ja. IF Ja THEN LEAVE. BELL. APPLY 'ENTRY' TO F_KGebinde. RETURN NO-APPLY. END. 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 = F_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 = F_Jahr ArtLager.Lager = F_Lager. END. LRecid = RECID(ArtLAger). ArtLager.Inv_Best = ArtLager.Inv_Best + F_KGebinde. 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. CREATE Artbw. ASSIGN Artbw.Firma = GVFirma Artbw.Trnr = i1 Artbw.Tr_Art = 21 Artbw.Artnr = Artst.Artnr Artbw.Inhalt = Artst.Inhalt Artbw.Jahr = Artst.Jahr Artbw.Bez1 = F_Bez Artbw.Menge = F_KGebinde 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 Artbw.VGeb_Me = F_VGebinde Artbw.GGeb_Me = F_GGebinde Artbw.Liter = F_KGebinde * KGebinde.Inhalt / 100 Artbw.Datum = F_Datum Artbw.Abhol = FALSE Artbw.FRW = FwFRW Artbw.Faktor = 1 Artbw.Kurs = 1.0. AArtnr = Artst.Artnr. AInhalt = Artst.Inhalt. AJahr = Artst.Jahr. CREATE XArtbw. BUFFER-COPY Artbw to XArtbw. FIND BArtst WHERE RECID(BArtst) = ARecid NO-LOCK. FIND NEXT BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = GVFirma NO-LOCK NO-ERROR. IF AVAILABLE BArtst THEN DO: F_Artnr = STRING(BArtst.Artnr,"999999"). F_Inhalt = BArtst.Inhalt. F_Jahr = BArtst.Jahr. AArtnr = BArtst.Artnr. AInhalt = BArtst.Inhalt. AJahr = BArtst.Jahr. END. DISPLAY {&list-2} {&List-5} {&List-6}. DISABLE {&List-2} {&List-3}. ENABLE {&List-4}. VUpdate = FALSE. RUN OPEN_XARTBW. Btn_Speichern:LABEL = 'Buchen'. APPLY 'ENTRY' TO Btn_Speichern. 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. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME