&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 --- */ DEF VAR QOpen AS LOG. DEF VAR Vorhanden AS LOG NO-UNDO. DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR VNeu AS LOG NO-UNDO. DEF VAR XArtnr AS INT NO-UNDO. DEF VAR VArtnr AS INT NO-UNDO. DEF VAR VInhalt AS INT NO-UNDO. DEF VAR VBez1 AS CHAR NO-UNDO. DEF VAR VBez2 AS CHAR NO-UNDO. DEF VAR VJahr AS INT NO-UNDO. DEF VAR XArtnt AS INT NO-UNDO. DEF VAR LHandle AS HANDLE NO-UNDO. DEF VAR XHandle AS HANDLE NO-UNDO. DEF VAR hDaten AS HANDLE NO-UNDO. DEF VAR hFenster AS HANDLE NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. DEF VAR VPos AS INT NO-UNDO. DEF VAR FAlfa AS LOG NO-UNDO. DEF VAR FNeuMut AS LOG NO-UNDO. DEF VAR KGebKBez AS CHAR NO-UNDO. DEF VAR BBestand AS DEC NO-UNDO. DEF VAR VSein_Preis_FRW AS DEC DECIMALS 4 NO-UNDO. DEF VAR VSein_Preis AS DEC DECIMALS 4 NO-UNDO. DEF VAR VRabatt AS DEC DECIMALS 4 NO-UNDO. DEF VAR VSpesen AS DEC DECIMALS 4 NO-UNDO. DEF VAR VPreis AS DEC DECIMALS 4 NO-UNDO. DEF VAR VL_EP_FRW AS DEC DECIMALS 4 NO-UNDO. DEF VAR VAlter_Listen_EP AS DEC DECIMALS 4 NO-UNDO. DEF VAR VAlter_EP AS DEC DECIMALS 4 NO-UNDO. DEF VAR VFRW AS CHAR NO-UNDO. DEF VAR VKurs AS DEC DECIMALS 4 NO-UNDO. DEF VAR VFaktor AS INT NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR iBnr AS INT NO-UNDO. DEF VAR BRecid AS RECID NO-UNDO. DEF VAR iStatus AS INT NO-UNDO. DEF VAR MinNr AS INT NO-UNDO. DEF BUFFER BBesze FOR Besze. DEF BUFFER BArtst FOR Artst. DEF TEMP-TABLE TBrowser NO-UNDO FIELD Feld AS CHAR FIELD Pos AS INT FIELD Breit AS DEC FIELD fAktiv AS LOG FIELD fVisible AS LOG FIELD PosAkt AS INT FIELD BreitAkt AS DEC FIELD hCol AS HANDLE FIELD cType AS CHAR FIELD cFormat AS CHAR FIELD cInitial AS CHAR FIELD cLabel AS CHAR. DEF TEMP-TABLE tBesze LIKE Besze. /* ---------- 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_Besze /* External Tables */ &Scoped-define EXTERNAL-TABLES Besko &Scoped-define FIRST-EXTERNAL-TABLE Besko /* Need to scope the external tables to this procedure */ DEFINE QUERY external_tables FOR Besko. /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Besze /* Definitions for BROWSE Br_Besze */ &Scoped-define FIELDS-IN-QUERY-Br_Besze Besze.Artnr ~ DYNAMIC-FUNCTION('getKGebindeKBez':U, KGeb_Cd) @ KGebKBez Besze.Jahr ~ Besze.Bez1 Besze.Lager ~ DYNAMIC-FUNCTION('getLagerBestand':U, Besze.Artnr, Besze.Inhalt, Besze.Jahr, Besze.Lager) @ BBestand ~ Besze.Verbrauch Besze.Rueckstand Besze.MBest Besze.MGeli Besze.S_Artnr ~ Besze.S_Preis_FRW Besze.L_EP Besze.Inhalt &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Besze &Scoped-define QUERY-STRING-Br_Besze FOR EACH Besze OF Besko NO-LOCK &Scoped-define OPEN-QUERY-Br_Besze OPEN QUERY Br_Besze FOR EACH Besze OF Besko NO-LOCK. &Scoped-define TABLES-IN-QUERY-Br_Besze Besze &Scoped-define FIRST-TABLE-IN-QUERY-Br_Besze Besze /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Br_Besze F_Bestand F_Bestand_Neu F_GGeb ~ F_VGeb F_KGeb RECT-39 RECT-40 &Scoped-Define DISPLAYED-FIELDS Besko.Besnr Besko.Knr Besko.Lief_Datum ~ Besze.Inhalt Besze.Jahr Besze.Bez1 Besze.Bez2 Besze.S_Artnr Besze.GGeb_Me ~ Besze.VGeb_Me Besze.KGeb_Me Besze.S_Preis_FRW Besze.S_Preis Besze.Rabatt ~ Besze.Spesen Besze.Preis Besze.L_EP_FRW Besze.Aktion Besze.Alter_Listen_EP ~ Besze.Alter_EP &Scoped-define DISPLAYED-TABLES Besko Besze &Scoped-define FIRST-DISPLAYED-TABLE Besko &Scoped-define SECOND-DISPLAYED-TABLE Besze &Scoped-Define DISPLAYED-OBJECTS F_Adresse F_Artnr F_Betrag F_Bestand ~ F_Bestand_Neu F_Betrag_FRW /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 Besko.Besnr Besko.Knr F_Adresse Besko.Lief_Datum &Scoped-define List-2 F_Artnr Besze.Inhalt Besze.Jahr Besze.Bez1 Besze.Bez2 ~ Besze.S_Artnr Besze.GGeb_Me Besze.VGeb_Me Besze.KGeb_Me Besze.S_Preis_FRW ~ Besze.S_Preis Besze.Rabatt Besze.Spesen Besze.Preis Besze.L_EP_FRW ~ Besze.Aktion Besze.Alter_Listen_EP Besze.Alter_EP F_Betrag F_Betrag_FRW &Scoped-define List-3 Besze.Bez1 Besze.Bez2 Besze.S_Artnr Besze.GGeb_Me ~ Besze.VGeb_Me Besze.KGeb_Me &Scoped-define List-5 Besze.S_Preis_FRW Besze.S_Preis Besze.Rabatt ~ Besze.Spesen Besze.Preis Besze.L_EP_FRW Besze.Aktion Besze.Alter_Listen_EP ~ Besze.Alter_EP F_Betrag F_Betrag_FRW &Scoped-define List-6 Besze.GGeb_Me Besze.VGeb_Me Besze.KGeb_Me /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 57.6 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(10)" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 . DEFINE VARIABLE F_Bestand AS DECIMAL FORMAT "z,zzz,zz9-":U INITIAL 0 LABEL "Bestand" VIEW-AS FILL-IN NATIVE SIZE 16.8 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_Bestand_Neu AS DECIMAL FORMAT "z,zzz,zz9-":U INITIAL 0 LABEL "Best. neu" VIEW-AS FILL-IN NATIVE SIZE 16.8 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_Betrag AS DECIMAL FORMAT "z,zzz,zz9.99-":U INITIAL 0 LABEL "Betrag" VIEW-AS FILL-IN NATIVE SIZE 22.4 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_Betrag_FRW AS DECIMAL FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "Betrag FRW" VIEW-AS FILL-IN NATIVE SIZE 25.2 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_GGeb AS CHARACTER FORMAT "X(256)":U VIEW-AS TEXT SIZE 14 BY 1 FONT 9 NO-UNDO. DEFINE VARIABLE F_KGeb AS CHARACTER FORMAT "X(256)":U VIEW-AS TEXT SIZE 14 BY 1 FONT 9 NO-UNDO. DEFINE VARIABLE F_VGeb AS CHARACTER FORMAT "X(256)":U VIEW-AS TEXT SIZE 14 BY 1 FONT 9 NO-UNDO. DEFINE RECTANGLE RECT-39 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 2.95. DEFINE RECTANGLE RECT-40 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 132 BY 10.52. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Besze FOR Besze SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Besze &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Besze F-Frame-Win _STRUCTURED QUERY Br_Besze DISPLAY Besze.Artnr FORMAT "999999":U WIDTH 8 DYNAMIC-FUNCTION('getKGebindeKBez':U, KGeb_Cd) @ KGebKBez COLUMN-LABEL "K-Gebinde" FORMAT "x(12)":U Besze.Jahr FORMAT "9999":U WIDTH 5 Besze.Bez1 COLUMN-LABEL "Artikelbezeichnung" FORMAT "x(30)":U Besze.Lager COLUMN-LABEL "Lag" FORMAT "99":U WIDTH 4 DYNAMIC-FUNCTION('getLagerBestand':U, Besze.Artnr, Besze.Inhalt, Besze.Jahr, Besze.Lager) @ BBestand COLUMN-LABEL "Bestand" FORMAT "->>>,>>9":U Besze.Verbrauch FORMAT "->>>,>>9":U WIDTH 8 Besze.Rueckstand FORMAT "->>>,>>9":U WIDTH 8 Besze.MBest COLUMN-LABEL "Bestellt" FORMAT "->>>,>>9":U WIDTH 8 Besze.MGeli COLUMN-LABEL "Geliefert" FORMAT "->>>,>>9":U WIDTH 8 Besze.S_Artnr COLUMN-LABEL "S. Nummer" FORMAT "x(10)":U WIDTH 10 Besze.S_Preis_FRW COLUMN-LABEL "Sein Preis" FORMAT "zzz,zz9.999":U Besze.L_EP COLUMN-LABEL "Letzt.EP CHF" FORMAT "z,zz9.99":U WIDTH 13 Besze.Inhalt FORMAT "9999":U WIDTH 6 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 132 BY 6.19 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main Br_Besze AT ROW 15.24 COL 2 Besko.Besnr AT ROW 2.86 COL 7.2 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 Besko.Knr AT ROW 2.86 COL 27.2 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 F_Adresse AT ROW 2.86 COL 44.6 COLON-ALIGNED NO-LABEL Besko.Lief_Datum AT ROW 2.86 COL 107.4 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 20.4 BY 1 BGCOLOR 15 F_Artnr AT ROW 5.76 COL 3 COLON-ALIGNED NO-LABEL Besze.Inhalt AT ROW 5.76 COL 15.8 COLON-ALIGNED NO-LABEL FORMAT "9999" VIEW-AS FILL-IN NATIVE SIZE 9 BY 1 BGCOLOR 15 Besze.Jahr AT ROW 5.76 COL 25.8 COLON-ALIGNED NO-LABEL FORMAT "9999" VIEW-AS FILL-IN NATIVE SIZE 9 BY 1 BGCOLOR 15 Besze.Bez1 AT ROW 5.76 COL 35.6 COLON-ALIGNED NO-LABEL FORMAT "x(30)" VIEW-AS FILL-IN NATIVE SIZE 35 BY 1 BGCOLOR 15 Besze.Bez2 AT ROW 6.76 COL 35.6 COLON-ALIGNED NO-LABEL FORMAT "x(30)" VIEW-AS FILL-IN NATIVE SIZE 35 BY 1 BGCOLOR 15 Besze.S_Artnr AT ROW 5.76 COL 74.8 COLON-ALIGNED NO-LABEL FORMAT "x(12)" VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 15 NO-TAB-STOP Besze.GGeb_Me AT ROW 4.71 COL 116.2 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 Besze.VGeb_Me AT ROW 5.76 COL 116.2 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 Besze.KGeb_Me AT ROW 6.76 COL 116.2 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9-" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 Besze.S_Preis_FRW AT ROW 10.52 COL 2 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 26 BY 1 BGCOLOR 15 Besze.S_Preis AT ROW 10.52 COL 30 COLON-ALIGNED NO-LABEL FORMAT "zzz,zz9.9999" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 Besze.Rabatt AT ROW 10.52 COL 52 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 Besze.Spesen AT ROW 10.52 COL 65 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 Besze.Preis AT ROW 10.52 COL 77 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9.9999" VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 Besze.L_EP_FRW AT ROW 10.52 COL 96 COLON-ALIGNED NO-LABEL FORMAT "zzz,zzz,zz9.9999" VIEW-AS FILL-IN NATIVE SIZE 26 BY 1 BGCOLOR 15 Besze.Aktion AT ROW 10.52 COL 123.4 COLON-ALIGNED NO-LABEL FORMAT "J/N" VIEW-AS FILL-IN NATIVE SIZE 5.4 BY 1 BGCOLOR 15 Besze.Alter_Listen_EP AT ROW 11.71 COL 30 COLON-ALIGNED NO-LABEL FORMAT "zzz,zz9.9999" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 Besze.Alter_EP AT ROW 11.71 COL 77 COLON-ALIGNED NO-LABEL FORMAT "zz,zz9.9999" VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 134.8 BY 20.76. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */ DEFINE FRAME F-Main F_Betrag AT ROW 12.14 COL 106.4 COLON-ALIGNED F_Bestand AT ROW 13.38 COL 31.2 COLON-ALIGNED F_Bestand_Neu AT ROW 13.38 COL 60.6 COLON-ALIGNED F_Betrag_FRW AT ROW 13.38 COL 103.6 COLON-ALIGNED F_GGeb AT ROW 4.62 COL 100.8 COLON-ALIGNED NO-LABEL F_VGeb AT ROW 5.76 COL 100.8 COLON-ALIGNED NO-LABEL F_KGeb AT ROW 6.76 COL 100.8 COLON-ALIGNED NO-LABEL "BestNr" VIEW-AS TEXT SIZE 13.8 BY 1 AT ROW 1.62 COL 8.2 FONT 9 "Sein Preis" VIEW-AS TEXT SIZE 20 BY 1 AT ROW 8.43 COL 32 FONT 9 "Rabatt" VIEW-AS TEXT SIZE 11 BY 1 AT ROW 8.43 COL 54 FONT 9 "Spesen" VIEW-AS TEXT SIZE 11 BY 1 AT ROW 8.43 COL 67 FONT 9 "Preis" VIEW-AS TEXT SIZE 18 BY 1 AT ROW 8.43 COL 79 FONT 9 "Letzter EP FRW" VIEW-AS TEXT SIZE 26 BY 1 AT ROW 8.43 COL 123 RIGHT-ALIGNED FONT 9 "Aktion" VIEW-AS TEXT SIZE 9 BY 1 AT ROW 8.43 COL 125.4 FONT 9 "L-Listen-EP" VIEW-AS TEXT SIZE 20 BY 1 AT ROW 9.43 COL 32 FONT 9 "Letzter EP" VIEW-AS TEXT SIZE 18 BY 1 AT ROW 9.43 COL 79 FONT 9 "LiefNr" VIEW-AS TEXT SIZE 11.2 BY 1 AT ROW 1.62 COL 30.2 FONT 9 "Lieferant" VIEW-AS TEXT SIZE 31.6 BY 1 AT ROW 1.62 COL 46.6 FONT 9 "Lieferdatum" VIEW-AS TEXT SIZE 20.4 BY 1 AT ROW 1.62 COL 109 FONT 9 "ArtNr" VIEW-AS TEXT SIZE 11.2 BY 1 AT ROW 4.71 COL 5.4 FONT 9 "Inhalt" VIEW-AS TEXT SIZE 9 BY 1 AT ROW 4.71 COL 17.8 FONT 9 "Jahr" VIEW-AS TEXT SIZE 9 BY 1 AT ROW 4.71 COL 27.8 FONT 9 "Bezeichnung" VIEW-AS TEXT SIZE 35 BY 1 AT ROW 4.71 COL 37.6 FONT 9 "Seine ArtNr" VIEW-AS TEXT SIZE 23.2 BY 1 AT ROW 4.71 COL 76.8 FONT 9 "Sein Preis FRW" VIEW-AS TEXT SIZE 26 BY 1 AT ROW 8.43 COL 4 FONT 9 RECT-39 AT ROW 1.19 COL 2.4 RECT-40 AT ROW 4.43 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 20.76. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartFrame External Tables: AnaDat.Besko 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 = 20.76 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 FRAME-NAME Custom */ /* BROWSE-TAB Br_Besze 1 F-Main */ /* SETTINGS FOR FILL-IN Besze.Aktion IN FRAME F-Main NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Alter_EP IN FRAME F-Main NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Alter_Listen_EP IN FRAME F-Main NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besko.Besnr IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN Besze.Bez1 IN FRAME F-Main NO-ENABLE 2 3 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Bez2 IN FRAME F-Main NO-ENABLE 2 3 EXP-LABEL EXP-FORMAT */ ASSIGN Br_Besze:COLUMN-RESIZABLE IN FRAME F-Main = TRUE Br_Besze:COLUMN-MOVABLE IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Adresse IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main NO-ENABLE 2 */ /* SETTINGS FOR FILL-IN F_Betrag IN FRAME F-Main NO-ENABLE 2 5 */ /* SETTINGS FOR FILL-IN F_Betrag_FRW IN FRAME F-Main NO-ENABLE 2 5 */ /* SETTINGS FOR FILL-IN F_GGeb IN FRAME F-Main NO-DISPLAY */ /* SETTINGS FOR FILL-IN F_KGeb IN FRAME F-Main NO-DISPLAY */ /* SETTINGS FOR FILL-IN F_VGeb IN FRAME F-Main NO-DISPLAY */ /* SETTINGS FOR FILL-IN Besze.GGeb_Me IN FRAME F-Main NO-ENABLE 2 3 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Inhalt IN FRAME F-Main NO-ENABLE 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Jahr IN FRAME F-Main NO-ENABLE 2 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.KGeb_Me IN FRAME F-Main NO-ENABLE 2 3 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besko.Knr IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN Besko.Lief_Datum IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN Besze.L_EP_FRW IN FRAME F-Main NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Preis IN FRAME F-Main NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.Rabatt IN FRAME F-Main NO-ENABLE 2 5 */ /* SETTINGS FOR FILL-IN Besze.Spesen IN FRAME F-Main NO-ENABLE 2 5 */ /* SETTINGS FOR FILL-IN Besze.S_Artnr IN FRAME F-Main NO-ENABLE 2 3 EXP-LABEL EXP-FORMAT */ ASSIGN Besze.S_Artnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN Besze.S_Preis IN FRAME F-Main NO-ENABLE 2 5 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besze.S_Preis_FRW IN FRAME F-Main NO-ENABLE 2 5 */ /* SETTINGS FOR FILL-IN Besze.VGeb_Me IN FRAME F-Main NO-ENABLE 2 3 6 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR TEXT-LITERAL "Letzter EP FRW" SIZE 26 BY 1 AT ROW 8.43 COL 123 RIGHT-ALIGNED */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Besze /* Query rebuild information for BROWSE Br_Besze _TblList = "AnaDat.Besze OF AnaDat.Besko" _FldNameList[1] > AnaDat.Besze.Artnr "Besze.Artnr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > "_" "DYNAMIC-FUNCTION('getKGebindeKBez':U, KGeb_Cd) @ KGebKBez" "K-Gebinde" "x(12)" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > AnaDat.Besze.Jahr "Besze.Jahr" ? ? "integer" ? ? ? ? ? ? no ? no no "5" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > AnaDat.Besze.Bez1 "Besze.Bez1" "Artikelbezeichnung" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > AnaDat.Besze.Lager "Besze.Lager" "Lag" ? "integer" ? ? ? ? ? ? no ? no no "4" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > "_" "DYNAMIC-FUNCTION('getLagerBestand':U, Besze.Artnr, Besze.Inhalt, Besze.Jahr, Besze.Lager) @ BBestand" "Bestand" "->>>,>>9" ? ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] > AnaDat.Besze.Verbrauch "Besze.Verbrauch" ? "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[8] > AnaDat.Besze.Rueckstand "Besze.Rueckstand" ? "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[9] > AnaDat.Besze.MBest "Besze.MBest" "Bestellt" "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[10] > AnaDat.Besze.MGeli "Besze.MGeli" "Geliefert" "->>>,>>9" "decimal" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[11] > AnaDat.Besze.S_Artnr "Besze.S_Artnr" "S. Nummer" "x(10)" "character" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[12] > AnaDat.Besze.S_Preis_FRW "Besze.S_Preis_FRW" "Sein Preis" "zzz,zz9.999" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[13] > AnaDat.Besze.L_EP "Besze.L_EP" "Letzt.EP CHF" "z,zz9.99" "decimal" ? ? ? ? ? ? no ? no no "13" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[14] > AnaDat.Besze.Inhalt "Besze.Inhalt" ? ? "integer" ? ? ? ? ? ? no ? no no "6" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Besze */ &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 F-Main &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main F-Frame-Win ON END-ERROR OF FRAME F-Main DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main F-Frame-Win ON ENDKEY OF FRAME F-Main DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Aktion &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Aktion F-Frame-Win ON END OF Besze.Aktion IN FRAME F-Main /* Aktion */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Aktion F-Frame-Win ON END-ERROR OF Besze.Aktion IN FRAME F-Main /* Aktion */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Aktion F-Frame-Win ON LEAVE OF Besze.Aktion IN FRAME F-Main /* Aktion */ DO: IF KEYFUNCTIO(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY. IF NOT VUpdate THEN RETURN NO-APPLY. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Alter_EP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Alter_EP F-Frame-Win ON LEAVE OF Besze.Alter_EP IN FRAME F-Main /* Alter_EP */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Alter_Listen_EP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Alter_Listen_EP F-Frame-Win ON END-ERROR OF Besze.Alter_Listen_EP IN FRAME F-Main /* Alter_Listen_EP */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Bez1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez1 F-Frame-Win ON CURSOR-DOWN OF Besze.Bez1 IN FRAME F-Main /* Bez1 */ DO: APPLY 'ENTRY' TO Besze.S_Preis_FRW. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez1 F-Frame-Win ON END OF Besze.Bez1 IN FRAME F-Main /* Bez1 */ DO: IF VNeu THEN RETURN NO-APPLY. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez1 F-Frame-Win ON END-ERROR OF Besze.Bez1 IN FRAME F-Main /* Bez1 */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Bez2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez2 F-Frame-Win ON END OF Besze.Bez2 IN FRAME F-Main /* Bez2 */ DO: IF VNeu THEN RETURN NO-APPLY. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Bez2 F-Frame-Win ON END-ERROR OF Besze.Bez2 IN FRAME F-Main /* Bez2 */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Besze &Scoped-define SELF-NAME Br_Besze &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON DELETE-CHARACTER OF Br_Besze IN FRAME F-Main DO: IF iStatus > 3 THEN RETURN NO-APPLY. IF VUpdate THEN RETURN NO-APPLY. RUN LOESCHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON END-ERROR OF Br_Besze IN FRAME F-Main DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON ENDKEY OF Br_Besze IN FRAME F-Main DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON ENTRY OF Br_Besze IN FRAME F-Main DO: RUN ABBRECHEN. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN NO-APPLY. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN NO-APPLY. BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW(). BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON INSERT-MODE OF Br_Besze IN FRAME F-Main DO: FIND Besko NO-LOCK WHERE Besko.Firma = GVFirma AND Besko.Besnr = LVBesnr NO-ERROR. IF NOT AVAILABLE Besko THEN RETURN NO-APPLY. IF Besko.Best_Sta > 2 THEN RETURN NO-APPLY. iKnr = Besko.Knr. RUN ERFASSEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON RETURN OF Br_Besze IN FRAME F-Main DO: IF VUpdate THEN RETURN NO-APPLY. RUN AENDERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON ROW-DISPLAY OF Br_Besze IN FRAME F-Main DO: IF Besko.Best_Sta > 3 THEN DO: IF Besze.Alter_EP <> Besze.Preis THEN DO: Besze.Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.Inhalt :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.Jahr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.Bez1 :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.S_Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.MBest :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.MGeli :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.S_Preis_FRW:BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.L_EP :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. KGebKBez :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. BBestand :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.Lager :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.Verbrauch :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. END. END. IF Besze.Aktion = TRUE THEN DO: Besze.Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.Inhalt :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.Jahr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.Bez1 :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.S_Artnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.MBest :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.MGeli :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.S_Preis_FRW:BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.L_EP :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. KGebKBez :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. BBestand :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. Besze.Lager :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. Besze.Verbrauch :BGCOLOR IN BROWSE {&BROWSE-NAME} = 08. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besze F-Frame-Win ON VALUE-CHANGED OF Br_Besze IN FRAME F-Main DO: IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN RETURN NO-APPLY. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN RETURN NO-APPLY. BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW(). BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. 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. IF NOT VUpdate THEN RETURN. IF NOT VNeu THEN RETURN. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF NOT VUpdate THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = TRIM(XHandle:SCREEN-VALUE). DO WHILE TRUE: iArtnr = 0. ARecid = ?. 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 ARecid = RECID(Artst). END. END. IF yy = 1 THEN LEAVE. LVSuchbe = FeldInhalt. ARecid = ?. iKnr = INTEGER(Besko.Knr:SCREEN-VALUE). LVSuchbe = 'BEST,' + STRING(iKnr,'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 BArtst NO-LOCK WHERE RECID(BArtst) = ARecid NO-ERROR. IF AVAILABLE BArtst THEN DO: FIND FIRST ArtBez NO-LOCK USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = BArtst.Firma AND ArtBez.Artnr = BArtst.Artnr AND ArtBez.Inhalt = BArtst.Inhalt AND ArtBez.Jahr = BArtst.Jahr NO-ERROR. ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr F_Artnr = STRING(VArtnr ,"999999") F_Artnr:SCREEN-VALUE = STRING(VArtnr ,"999999") Besze.Inhalt:SCREEN-VALUE = STRING(VInhalt,"9999") Besze.Jahr:SCREEN-VALUE = STRING(VJahr ,"9999") Besze.Bez1:SCREEN-VALUE = Artbez.Bez1. FeldInhalt = STRING(VArtnr). IF ArtBez.Bez2_Druck THEN VBez2 = ArtBez.Bez2. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma NO-ERROR. IF NOT CAN-FIND(ArtLief NO-LOCK WHERE ArtLief.Firma = GVFirma AND ArtLief.Artnr = VArtnr AND ArtLief.Inhalt = VInhalt AND ArtLief.Jahr = VJahr AND ArtLief.Knr = INTEGER(Besko.Knr:SCREEN-VALUE)) THEN DO: MESSAGE 'Dieser Artikel ist nicht diesem Lieferanten zugeteilt' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. RUN ARTIKEL. END. IF Gefunden THEN DO: APPLY 'ENTRY' TO Besze.Jahr. APPLY 'LEAVE' TO Besze.Jahr. RETURN. END. APPLY 'ENTRY' TO Besze.Inhalt. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr F-Frame-Win ON RETURN OF F_Artnr IN FRAME F-Main DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.GGeb_Me &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.GGeb_Me F-Frame-Win ON CURSOR-DOWN OF Besze.GGeb_Me IN FRAME F-Main /* GGeb_Me */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.GGeb_Me F-Frame-Win ON LEAVE OF Besze.GGeb_Me IN FRAME F-Main /* GGeb_Me */ DO: DO WITH FRAME {&FRAME-NAME}: i1 = INTEGER(Besze.GGeb_Me:SCREEN-VALUE). IF i1 = 0 THEN RETURN. i2 = GGebinde.Inhalt * i1. Besze.VGeb_Me:SCREEN-VALUE = STRING(i2). i2 = VGebinde.Inhalt * i2. Besze.KGeb_Me:SCREEN-VALUE = STRING(i2). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Inhalt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Inhalt F-Frame-Win ON LEAVE OF Besze.Inhalt IN FRAME F-Main /* Inhalt */ DO: IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO: RETURN. END. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN DO: RUN ABBRECHEN. RETURN NO-APPLY. END. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: RUN ABBRECHEN. RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. VInhalt = INTEGER(FeldInhalt). FIND FIRST Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = VInhalt NO-ERROR. IF NOT AVAILABLE Artst THEN DO: BELL. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. Besze.Inhalt:SCREEN-VALUE = STRING(Artst.Inhalt,"9999"). Besze.Jahr :SCREEN-VALUE = STRING(Artst.Jahr ,"9999"). Besze.Bez1 :SCREEN-VALUE = Artst.Bez. APPLY 'ENTRY' TO Besze.Jahr. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Inhalt F-Frame-Win ON RETURN OF Besze.Inhalt IN FRAME F-Main /* Inhalt */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Jahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Jahr F-Frame-Win ON LEAVE OF Besze.Jahr IN FRAME F-Main /* Jahr */ DO: IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO: RETURN. END. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN DO: RUN ABBRECHEN. RETURN NO-APPLY. END. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: RUN ABBRECHEN. RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. VJahr = INTEGER(FeldInhalt). FIND Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = VInhalt AND Artst.Jahr = VJahr NO-ERROR. IF NOT AVAILABLE Artst THEN DO: BELL. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. RUN ARTIKEL. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.KGeb_Me &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.KGeb_Me F-Frame-Win ON CURSOR-UP OF Besze.KGeb_Me IN FRAME F-Main /* KGeb_Me */ DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.KGeb_Me F-Frame-Win ON LEAVE OF Besze.KGeb_Me IN FRAME F-Main /* KGeb_Me */ DO: IF NOT VUpdate THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'BACK-TAB' THEN DO: RETURN. END. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN DO: RUN ABBRECHEN. RETURN NO-APPLY. END. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF VALID-HANDLE(LHandle) THEN DO: IF LHandle:TYPE = 'BUTTON' AND LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO: RUN ABBRECHEN. RETURN NO-APPLY. END. END. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. RUN SPEICHERN. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.KGeb_Me F-Frame-Win ON RETURN OF Besze.KGeb_Me IN FRAME F-Main /* KGeb_Me */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.L_EP_FRW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.L_EP_FRW F-Frame-Win ON END-ERROR OF Besze.L_EP_FRW IN FRAME F-Main /* L_EP_FRW */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Preis &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Preis F-Frame-Win ON END OF Besze.Preis IN FRAME F-Main /* Preis */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'LEAVE' TO SELF. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Preis F-Frame-Win ON END-ERROR OF Besze.Preis IN FRAME F-Main /* Preis */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Rabatt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Rabatt F-Frame-Win ON END OF Besze.Rabatt IN FRAME F-Main /* Rabatt */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'LEAVE' TO SELF. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Rabatt F-Frame-Win ON END-ERROR OF Besze.Rabatt IN FRAME F-Main /* Rabatt */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Rabatt F-Frame-Win ON LEAVE OF Besze.Rabatt IN FRAME F-Main /* Rabatt */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY. IF NOT VUpdate THEN RETURN NO-APPLY. Rundbetr = DECIMAL(SELF:SCREEN-VALUE). Rundbetr = DECIMAL(Besze.S_Preis:SCREEN-VALUE) * ((100 - Rundbetr) / 100) + DECIMAL(Besze.Spesen:SCREEN-VALUE). IF Rundbetr <> ? THEN Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.Spesen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Spesen F-Frame-Win ON END OF Besze.Spesen IN FRAME F-Main /* Spesen */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'LEAVE' TO SELF. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Spesen F-Frame-Win ON END-ERROR OF Besze.Spesen IN FRAME F-Main /* Spesen */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.Spesen F-Frame-Win ON LEAVE OF Besze.Spesen IN FRAME F-Main /* Spesen */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY. IF NOT VUpdate THEN RETURN NO-APPLY. Rundbetr = DECIMAL(SELF:SCREEN-VALUE). Rundbetr = DECIMAL(Besze.S_Preis:SCREEN-VALUE) * ((100 - DECIMAL(Besze.Rabatt:SCREEN-VALUE)) / 100) + Rundbetr. IF Rundbetr <> ? THEN Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.S_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Artnr F-Frame-Win ON END OF Besze.S_Artnr IN FRAME F-Main /* S_Artnr */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'LEAVE' TO SELF. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Artnr F-Frame-Win ON END-ERROR OF Besze.S_Artnr IN FRAME F-Main /* S_Artnr */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.S_Preis &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis F-Frame-Win ON END OF Besze.S_Preis IN FRAME F-Main /* S_Preis */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'LEAVE' TO SELF. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis F-Frame-Win ON END-ERROR OF Besze.S_Preis IN FRAME F-Main /* S_Preis */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis F-Frame-Win ON LEAVE OF Besze.S_Preis IN FRAME F-Main /* S_Preis */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY. IF NOT VUpdate THEN RETURN NO-APPLY. Rundbetr = DECIMAL(SELF:SCREEN-VALUE). IF Rundbetr <> 0 THEN DO: Rundbetr = Rundbetr * ((100 - DECIMAL(Besze.Rabatt:SCREEN-VALUE)) / 100) + DECIMAL(Besze.Spesen:SCREEN-VALUE). END. Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999"). Rundbetr = DECIMAL(SELF:SCREEN-VALUE). RUN FREMDWAEHRUNG ( INPUT 2 ). Besze.S_Preis_FRW:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.9999"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.S_Preis_FRW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis_FRW F-Frame-Win ON END OF Besze.S_Preis_FRW IN FRAME F-Main /* S_Preis_FRW */ DO: IF VNeu THEN RETURN NO-APPLY. APPLY 'LEAVE' TO SELF. RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis_FRW F-Frame-Win ON END-ERROR OF Besze.S_Preis_FRW IN FRAME F-Main /* S_Preis_FRW */ DO: RUN ABBRECHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.S_Preis_FRW F-Frame-Win ON LEAVE OF Besze.S_Preis_FRW IN FRAME F-Main /* S_Preis_FRW */ DO: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN NO-APPLY. IF NOT VUpdate THEN RETURN NO-APPLY. Rundbetr = DECIMAL(SELF:SCREEN-VALUE). RUN FREMDWAEHRUNG ( INPUT 1 ). Besze.S_Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.9999"). IF Rundbetr <> 0 THEN DO: Rundbetr = Rundbetr * ((100 - DECIMAL(Besze.Rabatt:SCREEN-VALUE)) / 100) + DECIMAL(Besze.Spesen:SCREEN-VALUE). END. Besze.Preis:SCREEN-VALUE = STRING(Rundbetr,"zzz,zz9.999"). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besze.VGeb_Me &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.VGeb_Me F-Frame-Win ON CURSOR-DOWN OF Besze.VGeb_Me IN FRAME F-Main /* VGeb_Me */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.VGeb_Me F-Frame-Win ON CURSOR-UP OF Besze.VGeb_Me IN FRAME F-Main /* VGeb_Me */ DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besze.VGeb_Me F-Frame-Win ON LEAVE OF Besze.VGeb_Me IN FRAME F-Main /* VGeb_Me */ DO: DO WITH FRAME {&FRAME-NAME}: i1 = INTEGER(Besze.VGeb_Me:SCREEN-VALUE). IF i1 = 0 THEN RETURN. i2 = VGebinde.Inhalt * i1. Besze.KGeb_Me:SCREEN-VALUE = STRING(i2). END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win /* *************************** Main Block *************************** */ FNeuMut = FALSE. SESSION:DATA-ENTRY-RETURN = TRUE. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN dispatch IN THIS-PROCEDURE ('initialize':U). &ENDIF ON END-ERROR OF F_Artnr, Besze.Inhalt, Besze.Jahr IN FRAME {&FRAME-NAME} DO: IF VUpdate THEN DO: DISABLE F_Artnr Besze.Inhalt Besze.Jahr. VUpdate = FALSE. RUN ANZEIGE. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. ELSE DO: RUN new-state ( INPUT 'ENDE, MAIN':U ). RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ABBRECHEN F-Frame-Win PROCEDURE ABBRECHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: DISABLE {&List-2} {&List-3}. DO WHILE TRUE: IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE. {&BROWSE-NAME}:SELECT-FOCUSED-ROW(). {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. LEAVE. END. END. VNeu = FALSE. VUpdate = FALSE. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &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} /* Create a list of all the tables that we need to get. */ {src/adm/template/row-list.i "Besko"} /* Get the record ROWID's from the RECORD-SOURCE. */ {src/adm/template/row-get.i} /* FIND each record specified by the RECORD-SOURCE. */ {src/adm/template/row-find.i "Besko"} /* 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 AENDERN F-Frame-Win PROCEDURE AENDERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VUpdate = TRUE. DO WITH FRAME {&FRAME-NAME}: EMPTY TEMP-TABLE tBesze. CREATE tBesze. BUFFER-COPY Besze to tBesze. DISABLE {&List-2}. ENABLE {&List-3}. IF Besko.Best_Sta > 2 THEN DO: DISABLE {&List-6}. ENABLE {&List-5}. DISABLE Besze.Alter_Listen_EP Besze.Alter_EP Besze.L_EP_FRW. END. APPLY 'ENTRY' TO Besze.Bez1. END. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE F-Frame-Win PROCEDURE ANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: F_KGeb = ''. F_VGeb = ''. F_GGeb = ''. F_Artnr = ''. IF AVAILABLE Besze THEN DO: F_Artnr = STRING(Besze.Artnr,"999999"). FIND Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = INTEGER(F_Artnr) AND Artst.Inhalt = Besze.Inhalt AND Artst.Jahr = Besze.Jahr NO-ERROR. FIND ArtLager NO-LOCK USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = GVFirma AND ArtLager.Artnr = INTEGER(F_Artnr) AND ArtLager.Inhalt = Besze.Inhalt AND ArtLager.Jahr = Besze.Jahr AND ArtLager.Lager = Besze.Lager NO-ERROR. F_Bestand = (IF AVAILABLE ArtLager THEN ArtLager.Bestand ELSE Artst.Bestand). IF Besko.Best_Sta = 2 THEN F_Bestand_Neu = F_Bestand + Besze.MGeli. ELSE F_Bestand_Neu = F_Bestand. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Besze.KGeb_Cd NO-ERROR. IF AVAILABLE KGebinde THEN F_KGeb = KGebinde.KBez. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Besze.VGeb_Cd NO-ERROR. IF AVAILABLE VGebinde THEN F_VGeb = VGebinde.KBez. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Besze.GGeb_Cd NO-ERROR. IF AVAILABLE GGebinde THEN F_GGeb = GGebinde.KBez. IF Besko.Best_Sta = 1 THEN DO: F_Betrag = Besze.Preis * Besze.MBest. F_Betrag_FRW = Besze.S_Preis_FRW * Besze.MBest. END. ELSE DO: F_Betrag = Besze.Preis * Besze.MGeli. F_Betrag_FRW = Besze.S_Preis_FRW * Besze.MGeli. END. DISPLAY {&List-2} {&List-3} F_Bestand. IF Besko.Best_Sta = 2 THEN DISPLAY F_Bestand_Neu. END. DISPLAY F_Artnr F_GGeb F_VGeb F_KGeb. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL F-Frame-Win PROCEDURE ARTIKEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: FIND Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = VArtnr AND Artst.Inhalt = VInhalt AND Artst.Jahr = VJahr . FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR. F_KGeb = KGebinde.KBez. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR. F_VGeb = VGebinde.KBez. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-ERROR. F_GGeb = GGebinde.KBez. FIND ArtBez NO-LOCK USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Artst.Firma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = Artst.Inhalt AND ArtBez.Jahr = Artst.Jahr AND ArtBez.Sprcd = GVSprcd NO-ERROR. IF NOT AVAILABLE ArtBez THEN DO: FIND FIRST ArtBez NO-LOCK USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = Artst.Firma AND ArtBez.Artnr = Artst.Artnr AND ArtBez.Inhalt = Artst.Inhalt AND ArtBez.Jahr = Artst.Jahr NO-ERROR. END. FIND ArtLief NO-LOCK USE-INDEX ArtLief-k1 WHERE ArtLief.Firma = Artst.Firma AND ArtLief.Artnr = Artst.Artnr AND ArtLief.Inhalt = Artst.Inhalt AND ArtLief.Jahr = Artst.Jahr AND ArtLief.Knr = Besko.Knr NO-ERROR. FIND Liefst NO-LOCK USE-INDEX Liefst-k1 WHERE Liefst.Firma = GVFirma AND Liefst.Knr = Besko.Knr NO-ERROR. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = Besko.Firma AND Waehrung.FRW = Besko.FRW NO-ERROR. IF AVAILABLE Waehrung THEN DO: VFRW = Waehrung.FRW. VKurs = Waehrung.Kurs. VFaktor = Waehrung.Faktor. END. ELSE DO: VFRW = 'CHF'. VKurs = 1.0. VFaktor = 1. END. VSein_Preis_FRW = 0. VSein_Preis = 0. VRabatt = 0. VSpesen = 0. VPreis = 0. VL_EP_FRW = 0. VAlter_EP = 0. VAlter_Listen_EP = Artst.Listen_EP. IF AVAILABLE ArtLief THEN DO: VSein_Preis_FRW = ArtLief.S_Preis_FRW. VSein_Preis = ArtLief.S_Preis. VRabatt = ArtLief.Rabatt. VSpesen = ArtLief.Spesen. VL_EP_FRW = ArtLief.L_EP_FRW. VAlter_EP = ArtLief.L_EP. Besze.S_Artnr:SCREEN-VALUE = ArtLief.S_Artnr. END. ELSE DO: Besze.S_Artnr:SCREEN-VALUE = ''. END. IF VSein_Preis = 0 THEN VSein_Preis = Artst.Listen_EP. IF VSein_Preis_FRW = 0 THEN VSein_Preis_FRW = VSein_Preis * VFaktor / VKurs. IF VRabatt = 0 THEN VRabatt = Besko.Rabatt. IF VSpesen = 0 THEN VSpesen = Besko.Spesen. IF VAlter_EP = 0 THEN VAlter_EP = Artst.LEP. IF VL_EP_FRW = 0 THEN VL_EP_FRW = VAlter_EP * VFaktor / VKurs. VPreis = VSein_Preis * ((100 - VRabatt) / 100) + VSpesen. Besze.Bez1:SCREEN-VALUE = ArtBez.Bez1. Besze.Bez2:SCREEN-VALUE = ArtBez.Bez2. F_GGeb:SCREEN-VALUE = F_GGeb. F_VGeb:SCREEN-VALUE = F_VGeb. F_KGeb:SCREEN-VALUE = F_KGeb. Besze.S_Preis_FRW:SCREEN-VALUE = STRING(VSein_Preis_FRW). Besze.S_Preis:SCREEN-VALUE = STRING(VSein_Preis). Besze.Rabatt:SCREEN-VALUE = STRING(VRabatt). Besze.Spesen:SCREEN-VALUE = STRING(VSpesen). Besze.Preis:SCREEN-VALUE = STRING(VPreis). Besze.L_EP_FRW:SCREEN-VALUE = STRING(VL_EP_FRW). Besze.Aktion:SCREEN-VALUE = STRING(FALSE,"J/N"). Besze.Alter_Listen_EP:SCREEN-VALUE = STRING(VAlter_Listen_EP). Besze.Alter_EP:SCREEN-VALUE = STRING(VL_EP_FRW). FIND FIRST AktPreis NO-LOCK USE-INDEX AktPreis-k1 WHERE AktPreis.Firma = GVFirma AND AktPreis.Artnr = Artst.Artnr AND AktPreis.Inhalt = Artst.Inhalt AND AktPreis.Jahr = Artst.Jahr AND AktPreis.Ab_Datum >= (TODAY - 2) NO-ERROR. IF AVAILABLE AktPreis AND (AktPreis.Ab_Datum - TODAY) < 14 THEN DO: cString = 'Dieser Artikel ist '. IF AktPreis.Ab_Datum < TODAY THEN cString = cString + 'seit dem '. ELSE cString = cString + 'ab dem '. cString = cString + STRING(AktPreis.Ab_Datum,'99.99.9999') + ' in Aktion '. MESSAGE cString VIEW-AS ALERT-BOX INFORMATION. END. DISABLE {&List-2}. ENABLE {&List-3}. APPLY 'ENTRY' TO Besze.Bez1. RETURN NO-APPLY. END. 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 ARecid AS RECID NO-UNDO. DEF VAR Anzahl AS INT NO-UNDO. DEF VAR xWort AS CHAR NO-UNDO. DEF VAR zWorte AS CHAR NO-UNDO. DEF VAR yy AS INT NO-UNDO. DEF VAR zz AS INT NO-UNDO. DEF VAR Zahl AS INT NO-UNDO. DEF VAR VBez1 AS CHAR NO-UNDO. DEF VAR VBez2 AS CHAR NO-UNDO. Zahl = 0. Gefunden = FALSE. Anzahl = 0. VBez1 = ''. VBez2 = ''. zWorte = ''. DO yy = 1 TO NUM-ENTRIES(FeldInhalt, ' '): xWort = ENTRY(yy, FeldInhalt, ' '). Zahl = INTEGER(xWort) NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ') + xWort. IF yy = 1 THEN zWorte = TRIM(zWorte) + '*'. NEXT. END. xWort = TRIM(STRING(Zahl,'>>>>>>>>>>>>>>>>>>9')) NO-ERROR. IF ERROR-STATUS:ERROR THEN xWort = ENTRY(yy, FeldInhalt, ' '). zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ') + xWort. END. zWorte = REPLACE(zWorte, '**', '*'). FOR EACH Artbez NO-LOCK WHERE Artbez.Firma = GVFirma AND Artbez.Sprcd = 1 AND Artbez.WortIndex CONTAINS zWorte, FIRST BArtst NO-LOCK OF Artbez WHERE BArtst.Aktiv = TRUE AND BArtst.Ausverk < 9 : Anzahl = Anzahl + 1. IF Anzahl > 1 THEN LEAVE. VArtnr = BArtst.Artnr. ARecid = RECID(BArtst). END. IF Anzahl < 1 THEN VArtnr = -1. IF Anzahl > 1 THEN VArtnr = -1. IF VArtnr = -1 THEN RETURN. FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid NO-ERROR. FIND Steuer NO-LOCK WHERE Steuer.Firma = GVFirma NO-ERROR. FIND FIRST ArtBez NO-LOCK USE-INDEX ArtBez-k1 WHERE ArtBez.Firma = BArtst.Firma AND ArtBez.Artnr = BArtst.Artnr AND ArtBez.Inhalt = BArtst.Inhalt AND ArtBez.Jahr = BArtst.Jahr NO-ERROR. VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. VBez1 = ArtBez.Bez1. IF ArtBez.Bez2_Druck THEN VBez2 = ArtBez.Bez2. Gefunden = TRUE. RETURN. 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_Adresse F_Artnr F_Betrag F_Bestand F_Bestand_Neu F_Betrag_FRW WITH FRAME F-Main. IF AVAILABLE Besko THEN DISPLAY Besko.Besnr Besko.Knr Besko.Lief_Datum WITH FRAME F-Main. IF AVAILABLE Besze THEN DISPLAY Besze.Inhalt Besze.Jahr Besze.Bez1 Besze.Bez2 Besze.S_Artnr Besze.GGeb_Me Besze.VGeb_Me Besze.KGeb_Me Besze.S_Preis_FRW Besze.S_Preis Besze.Rabatt Besze.Spesen Besze.Preis Besze.L_EP_FRW Besze.Aktion Besze.Alter_Listen_EP Besze.Alter_EP WITH FRAME F-Main. ENABLE Br_Besze F_Bestand F_Bestand_Neu F_GGeb F_VGeb F_KGeb RECT-39 RECT-40 WITH FRAME F-Main. {&OPEN-BROWSERS-IN-QUERY-F-Main} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ERFASSEN F-Frame-Win PROCEDURE ERFASSEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DISABLE TRIGGERS FOR LOAD OF Besze. DEF VAR yy AS INT NO-UNDO. DEF VAR Fenster AS HANDLE NO-UNDO. DEF VAR VName AS CHAR NO-UNDO. DEF VAR cFelder AS CHAR NO-UNDO INIT 'F_Artnr,Inhalt,Jahr,Bez1,Bez2,S_Artnr,GGeb_Me,VGeb_Me,KGeb_Me,~ S_Preis_Frw,S_Preis,Alter_Listen_EP,Rabatt,Spesen,Preis,Alter_EP,L_EP_FRW,~ F_Betrag,F_Bestand,F_Bestand_Neu,F_Betrag_Frw'. IF VUpdate THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: ASSIGN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. ASSIGN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE (Fenster) : DO WHILE TRUE: VName = Fenster:NAME. IF LOOKUP(VName, cFelder, ',') = 0 THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:HIDDEN = TRUE THEN LEAVE. Fenster:SCREEN-VALUE = '' NO-ERROR. LEAVE. END. ASSIGN Fenster = Fenster:NEXT-SIBLING. END. ENABLE F_Artnr Besze.Inhalt Besze.Jahr. VUpdate = TRUE. VNeu = TRUE. EMPTY TEMP-TABLE tBesze. CREATE tBesze. APPLY 'ENTRY' TO F_Artnr. END. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FREMDWAEHRUNG F-Frame-Win PROCEDURE FREMDWAEHRUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER Art AS INT. IF VNeu THEN DO: VFRW = Besko.FRW. VKurs = Besko.Kurs. VFaktor = Besko.Faktor. END. ELSE DO: VFRW = Besze.FRW. VKurs = Besze.Kurs. VFaktor = Besze.Faktor. END. IF VKurs = 0 OR VKurs = ? OR VFaktor = 0 OR VFaktor = ? THEN DO: FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = GVFirma AND Waehrung.FRW = VFRW NO-ERROR. IF AVAILABLE Waehrung THEN DO: VFaktor = Waehrung.Faktor. VKurs = Waehrung.Kurs. END. END. DO WHILE Art = 1: IF Rundbetr = 0 THEN LEAVE. Rundbetr = Rundbetr * VKurs / VFaktor. LEAVE. END. DO WHILE Art = 2: IF Rundbetr = 0 THEN LEAVE. Rundbetr = Rundbetr * VFaktor / VKurs. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-destroy F-Frame-Win PROCEDURE local-destroy : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ DEF VAR hBrowser AS HANDLE NO-UNDO. DEF VAR Sektion AS CHAR NO-UNDO. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.'). hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser, INPUT Sektion ) NO-ERROR. RUN dispatch IN THIS-PROCEDURE ( INPUT 'destroy':U ) . /* Code placed here will execute AFTER standard behavior. */ 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 Sektion AS CHAR NO-UNDO. DEF VAR hBrowser AS HANDLE NO-UNDO. DEF VAR hTBrowser AS HANDLE NO-UNDO. DEF VAR hMenu AS HANDLE NO-UNDO. DEF VAR hItem_Filter AS HANDLE NO-UNDO. DEF VAR hItem_Excel AS HANDLE NO-UNDO. DEF VAR hItem_zurueck AS HANDLE NO-UNDO. DEF VAR hItem_sort AS HANDLE NO-UNDO. DEF VAR hItem_move AS HANDLE NO-UNDO. DEF VAR hItem_Rule AS HANDLE NO-UNDO. Sektion = ENTRY(1, THIS-PROCEDURE:NAME, '.'). RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . hDaten = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR. hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR. IF VALID-HANDLE(hFenster) THEN Progname = DYNAMIC-FUNCTION('getProgname':U, INPUT hFenster ) NO-ERROR. MinNr = DYNAMIC-FUNCTION('getMinArtnr':U) NO-ERROR. IF MinNr > 1 THEN MinNr = INTEGER('1' + FILL('0', MinNr - 1)). EMPTY TEMP-TABLE TBrowser. hTBrowser = TEMP-TABLE TBrowser:DEFAULT-BUFFER-HANDLE. hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = TRUE. CREATE MENU hMenu ASSIGN POPUP-ONLY = TRUE TITLE = 'Browser Menu'. CREATE MENU-ITEM hItem_Excel ASSIGN LABEL = 'Export in Excel' NAME = 'm_excel' PARENT = hMenu. CREATE MENU-ITEM hItem_Filter ASSIGN LABEL = 'Filter setzen' NAME = 'm_filter' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_zurueck ASSIGN LABEL = 'Spalten und Breite zurücksetzen' NAME = 'm_zurueck' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_sort ASSIGN LABEL = 'Spalten sortierbar' NAME = 'm_zurueck' TOGGLE-BOX = TRUE CHECKED = FALSE PARENT = hMenu. CREATE MENU-ITEM hItem_move ASSIGN LABEL = 'Spalten verschiebbar' NAME = 'm_move' TOGGLE-BOX = TRUE CHECKED = TRUE PARENT = hMenu. hBrowser:POPUP-MENU = hMenu NO-ERROR. ON CHOOSE OF hItem_Filter PERSISTENT RUN FILTER_SETZEN IN TARGET-PROCEDURE. ON CHOOSE OF hItem_Excel PERSISTENT RUN EXPORT_EXCEL IN TARGET-PROCEDURE. ON CHOOSE OF hItem_zurueck PERSISTENT RUN ZURUECKSETZEN IN TARGET-PROCEDURE. ON VALUE-CHANGED OF hItem_sort PERSISTENT RUN SORTIERBAR IN TARGET-PROCEDURE ( hItem_sort, hItem_move ). ON VALUE-CHANGED OF hItem_move PERSISTENT RUN VERSCHIEBBAR IN TARGET-PROCEDURE ( hItem_move, hItem_sort ). DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT hTBrowser, INPUT hBrowser, INPUT Sektion ) NO-ERROR. 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 ) . FIND Besko NO-LOCK USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Besnr = LVBesnr NO-ERROR. IF NOT AVAILABLE Besko THEN RETURN NO-APPLY. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Besko.Knr NO-ERROR. F_Adresse = Adresse.Anzeig_Br. iKnr = Besko.Knr. iBnr = Besko.Besnr. BRecid = RECID(Besko). DISPLAY {&List-1} WITH FRAME {&FRAME-NAME}. iStatus = Besko.Best_Sta. IF iStatus = 2 THEN F_Bestand_Neu:HIDDEN IN FRAME {&FRAME-NAME} = FALSE. ELSE F_Bestand_Neu:HIDDEN IN FRAME {&FRAME-NAME} = TRUE. RUN OPEN_BESZE. APPLY 'ENTRY' TO BROWSE Br_Besze. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN F-Frame-Win PROCEDURE LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DISABLE TRIGGERS FOR LOAD OF Besze. DEF VAR fVerbucht AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). IF NOT AVAILABLE Besze THEN RETURN NO-APPLY. END. Ja = FALSE. { v8/loeschen.i } IF NOT Ja THEN RETURN NO-APPLY. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: FIND BBesze WHERE RECID(BBesze) = RECID(Besze). FIND Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = BBesze.Firma AND Artbw.Trnr = BBesze.Trnr NO-ERROR. IF AVAILABLE Artbw THEN fVerbucht = TRUE. ELSE fVerbucht = FALSE. DO WHILE TRUE: IF BBesze.Artnr = 0 THEN LEAVE. IF Besko.Best_Sta > 3 THEN LEAVE. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = BBesze.Artnr AND Artst.Inhalt = BBesze.Inhalt AND Artst.Jahr = BBesze.Jahr. FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = BBesze.Firma AND ArtLager.Artnr = BBesze.Artnr AND ArtLager.Inhalt = BBesze.Inhalt AND ArtLager.Jahr = BBesze.Jahr AND ArtLager.Lager = BBesze.Lager. IF Besko.Best_Sta < 3 THEN DO: Artst.Bestellt = Artst.Bestellt - (BBesze.MBest - BBesze.MGeli). ArtLager.Bestellt = ArtLager.Bestellt - (BBesze.MBest - BBesze.MGeli). END. ELSE DO: IF fVerbucht THEN DO: ArtLager.Bestand = ArtLager.Bestand - BBesze.MGeli. ArtLager.Eingang = ArtLager.Eingang - BBesze.MGeli. END. END. DO WHILE BBesze.GGeb_Me <> 0 AND Besko.Best_Sta = 3 AND fVerbucht : FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = BBesze.Firma AND GGebinde.Geb_Cd = BBesze.GGeb_Cd NO-ERROR. IF NOT AVAILABLE GGebinde THEN LEAVE. IF GGebinde.Geb_Kto = '' THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GGebinde.Geb_Kto AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = Artbw.Datum NO-ERROR. IF NOT AVAILABLE GebKontr THEN LEAVE. GebKontr.Eingang = GebKontr.Eingang - BBesze.GGeb_Me. RELEASE GebKontr. LEAVE. END. DO WHILE BBesze.VGeb_Me <> 0 AND Besko.Best_Sta = 3 AND fVerbucht : FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = BBesze.Firma AND VGebinde.Geb_Cd = BBesze.VGeb_Cd NO-ERROR. IF NOT AVAILABLE VGebinde THEN LEAVE. IF VGebinde.Geb_Kto = '' THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = VGebinde.Geb_Kto AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = Artbw.Datum NO-ERROR. IF NOT AVAILABLE GebKontr THEN LEAVE. GebKontr.Eingang = GebKontr.Eingang - BBesze.VGeb_Me. RELEASE GebKontr. LEAVE. END. DO WHILE BBesze.KGeb_Me <> 0 AND Besko.Best_Sta = 3 AND fVerbucht : FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = BBesze.Firma AND KGebinde.Geb_Cd = BBesze.KGeb_Cd NO-ERROR. IF NOT AVAILABLE KGebinde THEN LEAVE. IF KGebinde.Geb_Kto = '' THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = KGebinde.Geb_Kto AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = Artbw.Datum NO-ERROR. IF NOT AVAILABLE GebKontr THEN LEAVE. GebKontr.Eingang = GebKontr.Eingang - BBesze.KGeb_Me. RELEASE GebKontr. LEAVE. END. LEAVE. END. FIND Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = BBesze.Firma AND Artbw.Trnr = BBesze.Trnr NO-ERROR. IF AVAILABLE Artbw THEN DELETE Artbw. DELETE BBesze. {&BROWSE-NAME}:DELETE-SELECTED-ROW(1). RELEASE KGebinde. RELEASE VGebinde. RELEASE GGebinde. RELEASE GebKontr. RELEASE Artbw . RELEASE Artst . LEAVE. END. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_BESZE F-Frame-Win PROCEDURE OPEN_BESZE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF QOpen = TRUE THEN CLOSE QUERY {&BROWSE-NAME}. QOpen = FALSE. DO WITH FRAME {&FRAME-NAME}: OPEN QUERY Br_Besze FOR EACH Besze OF Besko NO-LOCK. Br_Besze:SET-REPOSITIONED-ROW(5, "ALWAYS"). QOpen = TRUE. END. IF NOT FNeuMut THEN DO: APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. END. FNeuMut = FALSE. 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 "Besko"} {src/adm/template/snd-list.i "Besze"} /* 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: ------------------------------------------------------------------------------*/ DISABLE TRIGGERS FOR LOAD OF Besze. DEF VAR VMenge AS DEC DECIMALS 4 NO-UNDO. DEF VAR VRecid AS RECID NO-UNDO. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: DO WHILE TRUE: IF NOT VNeu THEN DO: VRecid = RECID(Besze). LEAVE. END. FIND LAST BBesze NO-LOCK USE-INDEX Besze-k1 WHERE BBesze.Firma = GVFirma AND BBesze.Besnr = Besko.Besnr NO-ERROR. IF AVAILABLE BBesze THEN VPos = BBesze.Pos + 10. ELSE VPos = 10. CREATE Besze. ASSIGN Besze.Firma = Besko.Firma Besze.Besnr = Besko.Besnr Besze.Pos = VPos Besze.Artnr = Artst.Artnr Besze.Inhalt = Artst.Inhalt Besze.Jahr = Artst.Jahr Besze.Lager = Besko.Lager Besze.KGeb_Cd = Artst.KGeb_Cd Besze.VGeb_Cd = Artst.VGeb_Cd Besze.GGeb_Cd = Artst.GGeb_Cd Besze.KGebKto = KGebinde.Geb_Kto Besze.VGebKto = VGebinde.Geb_Kto Besze.GGebKto = GGebinde.Geb_Kto Besze.FRW = Besko.FRW Besze.Kurs = Besko.Kurs Besze.Faktor = Besko.Faktor Besze.Alter_Listen_EP = Artst.Listen_EP. VRecid = RECID(Besze). IF AVAILABLE ArtLief THEN Besze.EP = ArtLief.L_EP. ELSE Besze.EP = Artst.LEP. RELEASE Besze. LEAVE. END. FIND Besze WHERE RECID(Besze) = VRecid. ASSIGN {&List-5}. Besze.L_EP = Besze.Alter_Ep. IF Besze.Alter_Listen_EP = 0 THEN Besze.Alter_Listen_EP = Artst.Listen_EP. FIND Artst OF Besze. IF Besko.Best_Sta < 3 THEN DO: FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = Besze.Firma AND ArtLager.Artnr = Besze.Artnr AND ArtLager.Inhalt = Besze.Inhalt AND ArtLager.Jahr = Besze.Jahr AND ArtLager.Lager = Besze.Lager. ASSIGN {&List-3}. IF Besko.Best_Sta = 1 THEN ASSIGN Besze.MBest = Besze.KGeb_Me. ELSE ASSIGN Besze.MGeli = Besze.KGeb_Me. IF Besze.MBest = 0 THEN Besze.MBest = Besze.MGeli. IF Besze.MBest > 0 THEN DO: IF Besze.MGeli > Besze.MBest THEN Besze.MBest = Besze.MGeli. END. ELSE DO: IF Besze.MGeli < Besze.MBest THEN Besze.MBest = Besze.MGeli. END. FIND FIRST tBesze. Artst.Bestellt = Artst.Bestellt - (tBesze.MBest - tBesze.MGeli) + (Besze.MBest - Besze.MGeli). ArtLager.Bestellt = ArtLager.Bestellt - (tBesze.MBest - tBesze.MGeli) + (Besze.MBest - Besze.MGeli). END. RELEASE Besze. RELEASE Artst. RELEASE ArtLager. DISABLE {&List-3}. DISABLE {&List-5}. LEAVE. END. IF VNeu THEN DO: FNeuMut = TRUE. RUN OPEN_BESZE. REPOSITION Br_Besze TO RECID VRecid. END. ELSE {&BROWSE-NAME}:REFRESH(). DO WHILE TRUE: IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE. {&BROWSE-NAME}:SELECT-FOCUSED-ROW(). {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. LEAVE. END. VUpdate = FALSE. VNeu = FALSE. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. 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 'browser_entry' THEN DO: APPLY 'ENTRY' TO Br_Besze IN FRAME {&FRAME-NAME}. RETURN. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME