&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_Lager,F_Datum,F_Artnr,F_Inhalt,F_Jahr,F_Kommentar,~ F_GGebinde,F_VGebinde,F_KGebinde,F_Preis,F_Betrag,~ Btn_Speichern,F_Listen_EP,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 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 FwFRW 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 MinNr AS INT 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 ~ DYNAMIC-FUNCTION('getKGebindeKBez':U,Artbw.KGeb_Cd) Artbw.Jahr Artbw.Bez1 ~ Artbw.Tr_Art VText @ VText Artbw.Datum Artbw.KGeb_Me Artbw.VGeb_Me ~ Artbw.GGeb_Me Artbw.Lager Artbw.Inhalt &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 RECT-1 RECT-2 RECT-35 F_Lager F_Datum ~ CB_Korrart Btn_Artikel Btn_Speichern Br_Artbw &Scoped-Define DISPLAYED-FIELDS Artst.Bestand ArtLager.Eingang ~ Artst.Bestellt ArtLager.Ausgang Artst.Ausverk 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 F_Lager F_Datum F_Artnr F_Inhalt F_Jahr ~ F_Bez F_Kommentar F_GGebinde F_VGebinde F_KGebinde F_Preis F_Listen_EP ~ F_Betrag /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Lager F_Datum CB_Korrart F_Artnr F_Inhalt F_Jahr ~ F_Kommentar F_GGebinde F_VGebinde F_KGebinde F_Preis F_Listen_EP F_Betrag &Scoped-define List-2 F_Artnr F_Inhalt F_Jahr &Scoped-define List-3 F_Kommentar F_GGebinde F_VGebinde F_KGebinde &Scoped-define List-4 F_Lager F_Datum CB_Korrart &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_Artikel LABEL "Artikel" SIZE 18.8 BY 1. DEFINE BUTTON Btn_Speichern LABEL "&Buchen" SIZE 16.8 BY 1.24. DEFINE VARIABLE CB_Korrart AS CHARACTER FORMAT "X(256)":U LABEL "Korrekturart" VIEW-AS COMBO-BOX INNER-LINES 5 DROP-DOWN-LIST SIZE 45 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Betrag AS DECIMAL FORMAT "zz,zz9.999-":U INITIAL 0 LABEL "Betrag" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bez AS CHARACTER FORMAT "x(30)" LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 51.8 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_GGebinde AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 11 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 "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kommentar AS CHARACTER FORMAT "x(35)":U LABEL "Kommentar" VIEW-AS FILL-IN NATIVE SIZE 51.8 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_Listen_EP AS DECIMAL FORMAT "zz,zz9.999":U INITIAL 0 LABEL "Listen EP" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Preis AS DECIMAL FORMAT "zz,zz9.999":U INITIAL 0 LABEL "Preis" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VGebinde AS INTEGER FORMAT "zz,zz9-":U INITIAL 0 LABEL "" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 2.05. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 11.19. DEFINE RECTANGLE RECT-35 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 6.91. /* 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 DYNAMIC-FUNCTION('getKGebindeKBez':U,Artbw.KGeb_Cd) COLUMN-LABEL "Gebinde" FORMAT "x(12)":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 Artbw.Inhalt FORMAT "9999":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 129 BY 6.38 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main F_Lager AT ROW 1.91 COL 23 COLON-ALIGNED F_Datum AT ROW 1.91 COL 48.2 COLON-ALIGNED CB_Korrart AT ROW 1.91 COL 83.2 COLON-ALIGNED Btn_Artikel AT ROW 4.57 COL 4.6 F_Artnr AT ROW 4.57 COL 23.4 COLON-ALIGNED NO-LABEL F_Inhalt AT ROW 4.57 COL 38.8 COLON-ALIGNED F_Jahr AT ROW 4.57 COL 51.4 COLON-ALIGNED F_Bez AT ROW 4.57 COL 72.4 COLON-ALIGNED F_Kommentar AT ROW 5.57 COL 72.4 COLON-ALIGNED Artst.Bestand AT ROW 6.57 COL 72.4 COLON-ALIGNED LABEL "Bestand" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Eingang AT ROW 6.57 COL 107.6 COLON-ALIGNED LABEL "Eingang" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Artst.Bestellt AT ROW 7.57 COL 72.4 COLON-ALIGNED LABEL "Bestellt" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 ArtLager.Ausgang AT ROW 7.57 COL 107.6 COLON-ALIGNED LABEL "Ausgang" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 F_GGebinde AT ROW 8 COL 13.6 COLON-ALIGNED Artst.Ausverk AT ROW 8.57 COL 72.4 COLON-ALIGNED LABEL "Ausverk" FORMAT "9" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 ArtLager.Bestand AT ROW 8.57 COL 107.6 COLON-ALIGNED LABEL "Bestand" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 F_VGebinde AT ROW 9 COL 13.6 COLON-ALIGNED ArtLager.Inv_Best AT ROW 9.57 COL 107.6 COLON-ALIGNED LABEL "Inventar" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 F_KGebinde AT ROW 10 COL 13.6 COLON-ALIGNED ArtLager.Inv_Alt AT ROW 10.57 COL 107.6 COLON-ALIGNED LABEL "Inventar Alt" FORMAT "zz,zzz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 F_Preis AT ROW 11 COL 13.6 COLON-ALIGNED F_Listen_EP AT ROW 11 COL 43.6 COLON-ALIGNED F_Betrag AT ROW 11 COL 69.6 COLON-ALIGNED ArtLager.Ort AT ROW 11.57 COL 107.6 COLON-ALIGNED LABEL "Lagerort/Platz" FORMAT "x(15)" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Btn_Speichern AT ROW 13.24 COL 25.4 Br_Artbw AT ROW 15.86 COL 3.8 RECT-1 AT ROW 1.38 COL 2 RECT-2 AT ROW 3.95 COL 2 RECT-35 AT ROW 15.57 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 134.8 BY 21.81. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartFrame Allow: Basic,Browse,DB-Fields,Query,Smart Design Page: 1 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.81 WIDTH = 134.8. /* 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 */ /* BROWSE-TAB Br_Artbw Btn_Speichern F-Main */ ASSIGN FRAME F-Main:PRIVATE-DATA = "LAGER". /* 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 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 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Artst.Bestellt IN FRAME F-Main NO-ENABLE 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR COMBO-BOX CB_Korrart IN FRAME F-Main NO-DISPLAY 1 4 */ /* 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_Betrag IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Bez IN FRAME F-Main NO-ENABLE 5 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME F-Main 1 4 */ /* 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_Kommentar IN FRAME F-Main NO-ENABLE 1 3 */ /* SETTINGS FOR FILL-IN F_Lager IN FRAME F-Main 1 4 */ /* SETTINGS FOR FILL-IN F_Listen_EP IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Preis IN FRAME F-Main NO-ENABLE 1 */ /* 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_Artbw /* Query rebuild information for BROWSE Br_Artbw _TblList = "AnaDat.Artbw" _FldNameList[1] = AnaDat.Artbw.Artnr _FldNameList[2] > "_" "DYNAMIC-FUNCTION('getKGebindeKBez':U,Artbw.KGeb_Cd)" "Gebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _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 _FldNameList[12] = AnaDat.Artbw.Inhalt _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 BROWSE-NAME Br_Artbw &Scoped-define SELF-NAME Br_Artbw &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artbw F-Frame-Win ON ENTRY OF Br_Artbw IN FRAME F-Main DO: RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &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: RUN "v8/d-lagerkorr-anz.w". 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 CB_Korrart &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Korrart F-Frame-Win ON LEAVE OF CB_Korrart IN FRAME F-Main /* Korrekturart */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN RETURN. RUN OPEN_Artbw. APPLY 'ENTRY' TO Btn_Speichern IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Korrart F-Frame-Win ON RETURN OF CB_Korrart IN FRAME F-Main /* Korrekturart */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Korrart F-Frame-Win ON VALUE-CHANGED OF CB_Korrart IN FRAME F-Main /* Korrekturart */ DO: RUN OPEN_Artbw. 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 DO: DEF VAR cArtikel AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR yy AS INT NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. 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. DO WHILE TRUE: iArtnr = 0. iRecid = ?. yy = 0. IF NUM-ENTRIES(FeldInhalt, ' ') = 1 THEN iArtnr = INTEGER(FeldInhalt) NO-ERROR. IF NOT ERROR-STATUS:ERROR AND iArtnr > 0 AND iArtnr < 1000000 THEN DO: DO WHILE iArtnr < MinNr: iArtnr = iArtnr * 10. yy = yy + 1. END. FOR EACH Artst NO-LOCK WHERE Artst.Firma = GVFirma AND Artst.Artnr = iArtnr: ASSIGN yy = yy + 1 iRecid = RECID(Artst). END. END. IF yy = 1 THEN LEAVE. LVSuchbe = FeldInhalt. iRecid = ?. RUN g-suchen-artikel.w ( LVSuchbe, OUTPUT iRecid ). LEAVE. END. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND BArtst NO-LOCK WHERE RECID(BArtst) = iRecid NO-ERROR. IF AVAILABLE BArtst THEN DO: FIND FIRST Artbez NO-LOCK OF BArtst. ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr cArtikel = (Artbez.Bez1 + ' ' + Artbez.Bez2) F_Artnr = STRING(VArtnr ,"999999") F_Artnr:SCREEN-VALUE = STRING(VArtnr ,"999999") F_Inhalt:SCREEN-VALUE = STRING(VInhalt,"9999") F_Jahr:SCREEN-VALUE = STRING(VJahr ,"9999") F_Bez:SCREEN-VALUE = cArtikel FeldInhalt = STRING(VArtnr). END. /* APPLY 'LEAVE' TO F_Jahr. */ 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 /* 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. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Inhalt = INTEGER(FeldInhalt). FIND FIRST Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt 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 NO-LOCK 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-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 RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. F_Jahr = INTEGER(FeldInhalt). FIND Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr 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: ja = FALSE. { v8/antwort.i "1081" } IF NOT ja THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. END. ARecid = RECID(Artst). FIND ArtBez NO-LOCK USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = GVFirma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = Artst.Inhalt AND ArtBez.Jahr = Artst.Jahr AND ArtBez.Sprcd = Steuer.Fwi01 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"). IF AVAILABLE ArtLief THEN DO: F_Preis = ArtLief.S_Preis. F_Listen_EP = Artst.Listen_Ep. END. ELSE DO: F_Preis = 0. F_Listen_EP = Artst.Listen_Ep. END. 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_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}. RUN PREIS. DISPLAY F_Preis F_Betrag. 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_VGebinde IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Listen_EP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Listen_EP F-Frame-Win ON LEAVE OF F_Listen_EP IN FRAME F-Main /* Listen EP */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Preis. F_Betrag = F_KGebinde * F_preis. DISPLAY F_Betrag. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Preis &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Preis F-Frame-Win ON LEAVE OF F_Preis IN FRAME F-Main /* Preis */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Preis. F_Betrag = F_KGebinde * F_preis. DISPLAY F_Betrag. END. 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. &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 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. DISABLE {&List-2}. DISABLE {&List-3}. ENABLE {&List-4}. ENABLE 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. ON DELETE-CHARACTER OF BROWSE Br_Artbw DO: DO WITH FRAME {&FRAME-NAME}: Br_Artbw:FETCH-SELECTED-ROW(1). VArtnr = Artbw.Artnr. VKnr = Artbw.Knr. F_Artnr = STRING(Artbw.Artnr,"999999"). F_Inhalt = Artbw.Inhalt. F_Jahr = Artbw.Jahr. F_Lager = Artbw.Lager. F_Bez = ''. BRecid = RECID(Artbw). 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. 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. F_Artnr = STRING(VArtnr,"999999"). F_Preis = Artst.DEP. F_Listen_EP = Artst.Listen_Ep. 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. RUN FAKTOR. F_KGebinde:LABEL = KGebinde.KBez. F_VGebinde:LABEL = VGebinde.KBez. F_GGebinde:LABEL = GGebinde.KBez. F_GGebinde = Artbw.GGeb_Me * -1 * Faktor. F_VGebinde = Artbw.VGeb_Me * -1 * Faktor. F_KGebinde = Artbw.KGeb_Me * -1 * Faktor. DISPLAY {&List-1} F_Bez. ja = FALSE. { v8/loeschen.i } DO WHILE TRUE: IF NOT Ja THEN LEAVE. VLoeschen = TRUE. VUpdate = TRUE. RUN SPEICHERN. VUpdate = FALSE. VLoeschen = FALSE. LEAVE. 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 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. DO WITH FRAME {&FRAME-NAME}: DO WHILE FAlfa: FOR EACH BArtst USE-INDEX Artst-k2 WHERE BArtst.Firma = GVFirma AND BArtst.Suchbe BEGINS FeldInhalt NO-LOCK: Anzahl = Anzahl + 1. IF Anzahl > 1 THEN LEAVE. YRecid = RECID(BArtst). END. VArtnr = -1. IF Anzahl = 1 THEN Gefunden = TRUE. LEAVE. END. DO WHILE NOT FAlfa: 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). FOR EACH BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = GVFirma AND BArtst.Artnr = VArtnr 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. LEAVE. END. IF Gefunden THEN DO: FIND BArtst WHERE RECID(BArtst) = YRecid NO-LOCK NO-ERROR. 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-2} F_Bez. END. 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-4} NO-ERROR. RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. DISABLE {&List-1}. ENABLE {&List-2}. DISABLE 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 = ''. F_GGebinde:SCREEN-VALUE = ''. F_VGebinde:SCREEN-VALUE = ''. F_KGebinde:SCREEN-VALUE = ''. F_Preis:SCREEN-VALUE = ''. F_Betrag: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_Artnr F_Inhalt F_Jahr F_Bez F_Kommentar F_GGebinde F_VGebinde F_KGebinde F_Preis F_Listen_EP F_Betrag 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 RECT-1 RECT-2 RECT-35 F_Lager F_Datum CB_Korrart Btn_Artikel Btn_Speichern Br_Artbw WITH FRAME F-Main. {&OPEN-BROWSERS-IN-QUERY-F-Main} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FAKTOR F-Frame-Win PROCEDURE FAKTOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: VKorrArt = INTEGER(SUBSTRING(CB_Korrart:SCREEN-VALUE,01,03)). Faktor = 1. FIND Tabel USE-INDEX Tabel-k1 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'LAGKORR' AND Tabel.CodeI = VKorrArt AND Tabel.CodeC = '' AND Tabel.Sprcd = 1 NO-LOCK NO-ERROR. IF AVAILABLE Tabel THEN Faktor = Tabel.Int_1. 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: ------------------------------------------------------------------------------*/ DEF VAR ok AS LOG NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: MinNr = DYNAMIC-FUNCTION('getMinArtnr':U) NO-ERROR. IF MinNr > 1 THEN MinNr = INTEGER('1' + FILL('0', MinNr - 1)). CB_Korrart:DELIMITER = ";". ok = TRUE. cString = ''. FOR EACH Tabel USE-INDEX Tabel-k2 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'LAGKORR' AND Tabel.CodeI > 10 AND Tabel.CodeI < 20 NO-LOCK: cString = cString + (IF cString = '' THEN '' ELSE ';') + STRING(Tabel.CodeI,"zz9 ") + Tabel.Bez1. END. CB_Korrart:LIST-ITEMS = cString. CB_Korrart:SCREEN-VALUE = ENTRY(1, cString, ';'). 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. APPLY 'ENTRY' TO F_Lager IN FRAME {&FRAME-NAME}. 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: ------------------------------------------------------------------------------*/ DEF VAR VTr_Art AS INT NO-UNDO. IF QOpen THEN CLOSE QUERY Br_Artbw. QOpen = FALSE. Vorhanden = FALSE. DO WITH FRAME {&FRAME-NAME}: VTr_Art = INTEGER(SUBSTRING(CB_Korrart:SCREEN-VALUE,01,03)). {&BROWSE-NAME}:SET-REPOSITIONED-ROW(4, 'CONDITIONAL':U). END. IF VSort = 1 THEN DO: OPEN QUERY Br_Artbw FOR EACH Artbw USE-INDEX Artbw-k8 WHERE Artbw.Firma = GVFirma AND Artbw.Tr_Art = VTr_Art AND Artbw.Knr = 0 NO-LOCK. END. 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 PREIS F-Frame-Win PROCEDURE PREIS : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ F_Preis = Artst.DEP. IF F_Preis = 0 THEN F_Preis = Artst.LEP. IF F_preis = 0 THEN F_Preis = Artst.Listen_Ep. F_Betrag = F_Preis * F_KGebinde. F_Listen_EP = Artst.Listen_EP. DISPLAY F_Preis F_Betrag F_Listen_EP WITH FRAME {&FRAME-NAME}. 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. 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. RUN FAKTOR. F_GGebinde = F_GGebinde * Faktor. F_VGebinde = F_VGebinde * Faktor. F_KGebinde = F_KGebinde * Faktor. RRecid = 0. IF F_KGebinde = 0 AND F_VGebinde = 0 AND F_GGebinde = 0 THEN DO: 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 = 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.Eingang = ArtLager.Eingang + F_KGebinde. ArtLager.Bestand = ArtLager.Bestand + F_KGebinde. IF VKorrArt = 11 THEN Artst.Letzt_Eing = F_Datum. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF VLoeschen THEN DO: FIND Artbw WHERE RECID(Artbw) = BRecid. DELETE Artbw. LEAVE. END. 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 = VKorrArt Artbw.Artnr = Artst.Artnr Artbw.Inhalt = Artst.Inhalt Artbw.Jahr = Artst.Jahr Artbw.Bez1 = F_Bez Artbw.Bez2 = F_Kommentar Artbw.Knr = 0 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.Preis = F_Preis Artbw.Bru_Betr = F_Betrag Artbw.Net_Betr = F_Betrag Artbw.Liter = F_KGebinde * KGebinde.Inhalt / 100 Artbw.Gewicht = (F_KGebinde * 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. VSort = 1. RRecid = RECID(Artbw). LEAVE. END. DISPLAY {&List-5} {&List-6}. DISABLE {&List-2} {&List-3}. ENABLE {&List-4}. ENABLE Btn_Artikel. VUpdate = FALSE. RUN OPEN_Artbw. Btn_Speichern:LABEL = '&Buchen'. RELEASE Artst. RELEASE ArtLager. IF NOT VLoeschen THEN APPLY 'ENTRY' TO Btn_Speichern. LEAVE. END. FIND Artst WHERE RECID(Artst) = ARecid NO-LOCK NO-ERROR. FIND ArtLager WHERE RECID(ArtLager) = LRecid NO-LOCK NO-ERROR. PUBLISH 'REFRESH_ARTIKEL'. IF VLoeschen THEN RETURN NO-APPLY. 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