&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 ************************** */ &Scoped-define INPUT-FELDER Besko.Best_Datum,Besko.Lief_Datum,~ Besko.Buch_Datum,Besko.Bestell_Nr,Besko.U_Ref,~ Besko.Rabatt,Besko.Spesen,CB_FRW,Besko.Kurs,~ Besko.Faktor,Besko.Lieferzeit /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR VBest_Sta AS INT NO-UNDO. DEF VAR VSort AS INT NO-UNDO. DEF VAR VAdresse AS CHAR NO-UNDO. DEF VAR QOpen AS LOG NO-UNDO. DEF VAR Vorhanden AS LOG NO-UNDO. DEF VAR NRecid AS RECID NO-UNDO. DEF VAR XRecid AS RECID NO-UNDO. DEF VAR KRecid AS RECID NO-UNDO. DEF VAR VUpdate AS LOG NO-UNDO. DEF VAR VNeu AS LOG NO-UNDO. DEF VAR VInhalt AS CHAR NO-UNDO. DEF VAR VKnr AS INT NO-UNDO. DEF VAR XKnr AS INT NO-UNDO. DEF VAR XBesnr AS INT NO-UNDO. DEF VAR ABesnr AS INT NO-UNDO. DEF VAR LHandle AS HANDLE NO-UNDO. DEF VAR XHandle AS HANDLE NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR FeldInhalt AS CHAR NO-UNDO. DEF VAR FAlfa AS LOG NO-UNDO. DEF VAR FNeuMut AS LOG NO-UNDO. DEF VAR XFrw AS CHAR NO-UNDO. DEF VAR ok AS LOG NO-UNDO. DEF VAR VFwFRW AS INT NO-UNDO. DEF VAR VFRW AS CHAR NO-UNDO. DEF VAR FwFrw AS CHAR NO-UNDO. DEF VAR VBrutto AS DEC DECIMALS 4 NO-UNDO. DEF VAR VNetto AS DEC DECIMALS 4 NO-UNDO. DEF VAR iLager AS INT NO-UNDO. DEF VAR cInstallation AS CHAR NO-UNDO. DEF VAR cFirma AS CHAR NO-UNDO. DEF VAR lVerbucht AS LOG INIT TRUE NO-UNDO. DEF VAR XArtnr AS CHAR NO-UNDO. DEF BUFFER BBesko FOR Besko. DEF BUFFER BBesze FOR Besze. DEF BUFFER BAdresse FOR Adresse. DEF WORKFILE WMWST FIELD Ansatz AS DEC FIELD Code AS INT. DEF TEMP-TABLE TKopf FIELD Zeile AS INT FIELD Feld AS CHAR EXTENT 10. DEF TEMP-TABLE tAdresse LIKE 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 designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME Br_Besko /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Besko /* Definitions for BROWSE Br_Besko */ &Scoped-define FIELDS-IN-QUERY-Br_Besko Besko.Besnr Besko.Knr ~ VAdresse @ VAdresse Besko.Best_Datum Besko.Lief_Datum &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Besko Besko.Besnr &Scoped-define ENABLED-TABLES-IN-QUERY-Br_Besko Besko &Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-Br_Besko Besko &Scoped-define QUERY-STRING-Br_Besko FOR EACH Besko NO-LOCK &Scoped-define OPEN-QUERY-Br_Besko OPEN QUERY Br_Besko FOR EACH Besko NO-LOCK. &Scoped-define TABLES-IN-QUERY-Br_Besko Besko &Scoped-define FIRST-TABLE-IN-QUERY-Br_Besko Besko /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-FIELDS Besko.Lieferzeit &Scoped-define ENABLED-TABLES Besko &Scoped-define FIRST-ENABLED-TABLE Besko &Scoped-Define ENABLED-OBJECTS RECT-32 RECT-41 CB_Lager Br_Besko ~ CB_Beststat E_Adresse F_WoTag Btn_Excel Btn_Aendern Btn_Erfassen ~ Btn_Loeschen Btn_Verschieben &Scoped-Define DISPLAYED-FIELDS Besko.Best_Datum Besko.Lief_Datum ~ Besko.Lieferzeit Besko.Buch_Datum Besko.Bestell_Nr Besko.U_Ref Besko.Rabatt ~ Besko.Spesen Besko.Abholtext Besko.Kurs Besko.Faktor Besko.Abgeholt &Scoped-define DISPLAYED-TABLES Besko &Scoped-define FIRST-DISPLAYED-TABLE Besko &Scoped-Define DISPLAYED-OBJECTS CB_Lager E_Adresse F_Knr F_Anzeig_Br ~ F_Besnr F_Betrag F_Betrag_Netto F_BestBis F_Liefer F_WoTag /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-1 F_Knr F_Anzeig_Br F_Besnr F_Betrag F_Betrag_Netto ~ F_BestBis F_Liefer &Scoped-define List-2 F_Knr F_BestBis F_Liefer &Scoped-define List-3 Besko.Best_Datum Besko.Lief_Datum Besko.Lieferzeit ~ Besko.Buch_Datum Besko.Bestell_Nr Besko.U_Ref Besko.Rabatt Besko.Spesen ~ Besko.Abholtext Besko.Kurs Besko.Faktor Besko.Abgeholt /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD isAlleVerbucht F-Frame-Win FUNCTION isAlleVerbucht RETURNS LOGICAL ( ipcFirma AS CHAR, ipiBesnr AS INT ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-Br_Besko MENU-ITEM m_BestellEingangskontrolle LABEL "BestellEingangskontrolle". /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Aendern LABEL "&Aendern" SIZE 14 BY 1. DEFINE BUTTON Btn_Erfassen LABEL "&Neu" SIZE 14 BY 1. DEFINE BUTTON Btn_Excel LABEL "&Excel" SIZE 14 BY 1. DEFINE BUTTON Btn_Loeschen LABEL "&Löschen" SIZE 14 BY 1. DEFINE BUTTON Btn_Verschieben LABEL "&Weiter" SIZE 14 BY 1. DEFINE VARIABLE CB_Beststat AS CHARACTER FORMAT "X(256)":U VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","item 1" DROP-DOWN-LIST SIZE 47 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_FRW AS CHARACTER FORMAT "X(256)":U VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 38 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","item 1" DROP-DOWN-LIST SIZE 47 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE E_Adresse AS CHARACTER VIEW-AS EDITOR NO-WORD-WRAP MAX-CHARS 500 SIZE 47.6 BY 4.95 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Anzeig_Br AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 50 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Besnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Besnr" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BestBis AS CHARACTER FORMAT "x(20)":U LABEL "Bestell. bis / Lieferungen" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Betrag AS DECIMAL FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "Total" VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_Betrag_Netto AS DECIMAL FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "ohne Spesen" VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 14 NO-UNDO. DEFINE VARIABLE F_Knr AS CHARACTER FORMAT "x(20)":U LABEL "Kunde" VIEW-AS FILL-IN NATIVE SIZE 15 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Liefer AS CHARACTER FORMAT "x(30)":U LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 30 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_WoTag AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-32 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 131 BY 8.57. DEFINE RECTANGLE RECT-41 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 131 BY 10.05. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Besko FOR Besko SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Besko &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Besko F-Frame-Win _STRUCTURED QUERY Br_Besko DISPLAY Besko.Besnr FORMAT "999999":U WIDTH 8 Besko.Knr COLUMN-LABEL "Lnr" FORMAT "999999":U WIDTH 8 VAdresse @ VAdresse COLUMN-LABEL "Lieferant" FORMAT "x(50)":U WIDTH 30 Besko.Best_Datum COLUMN-LABEL "Best. Datum" FORMAT "99.99.9999":U WIDTH 12 Besko.Lief_Datum COLUMN-LABEL "Lieferdatum" FORMAT "99.99.9999":U WIDTH 12 ENABLE Besko.Besnr /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 78.6 BY 6.81 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main CB_Lager AT ROW 1.52 COL 81 COLON-ALIGNED WIDGET-ID 2 Br_Besko AT ROW 2.62 COL 2.4 CB_Beststat AT ROW 2.62 COL 81 COLON-ALIGNED NO-LABEL E_Adresse AT ROW 4.38 COL 83 NO-LABEL F_Knr AT ROW 10.67 COL 10.2 COLON-ALIGNED F_Anzeig_Br AT ROW 10.67 COL 26 COLON-ALIGNED NO-LABEL F_Besnr AT ROW 10.67 COL 84.4 COLON-ALIGNED F_Betrag AT ROW 10.67 COL 130.4 RIGHT-ALIGNED F_Betrag_Netto AT ROW 11.91 COL 130.4 RIGHT-ALIGNED F_BestBis AT ROW 12 COL 26 COLON-ALIGNED F_Liefer AT ROW 12 COL 49 COLON-ALIGNED Besko.Best_Datum AT ROW 15 COL 4 NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 Besko.Lief_Datum AT ROW 15 COL 18 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 Besko.Lieferzeit AT ROW 15 COL 34 COLON-ALIGNED HELP "" NO-LABEL FORMAT "x(15)" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 Besko.Buch_Datum AT ROW 15 COL 51 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 Besko.Bestell_Nr AT ROW 15 COL 67 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 Besko.U_Ref AT ROW 15 COL 85 COLON-ALIGNED NO-LABEL FORMAT "x(20)" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 Besko.Rabatt AT ROW 15 COL 110 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 10 BY 1 TOOLTIP "Zeilenrabatt in Prozent" BGCOLOR 15 F_WoTag AT ROW 16 COL 34 COLON-ALIGNED NO-LABEL NO-TAB-STOP Besko.Spesen AT ROW 17 COL 106 COLON-ALIGNED NO-LABEL FORMAT "z,zz9.99-" VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 Besko.Abholtext AT ROW 17.48 COL 85 NO-LABEL WIDGET-ID 6 VIEW-AS EDITOR SIZE 13.6 BY 1.33 NO-TAB-STOP CB_FRW AT ROW 18.52 COL 1.8 COLON-ALIGNED NO-LABEL Besko.Kurs AT ROW 18.52 COL 41.8 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 21.6 BY 1 BGCOLOR 15 Besko.Faktor AT ROW 18.52 COL 67.6 COLON-ALIGNED NO-LABEL VIEW-AS FILL-IN NATIVE SIZE 8.6 BY 1 BGCOLOR 15 Besko.Abgeholt AT ROW 18.52 COL 108 WIDGET-ID 4 VIEW-AS TOGGLE-BOX SIZE 13.4 BY 1 Btn_Excel AT ROW 21 COL 39.4 Btn_Aendern AT ROW 21 COL 56.2 Btn_Erfassen AT ROW 21 COL 71.6 Btn_Loeschen AT ROW 21 COL 87 Btn_Verschieben AT ROW 21 COL 117.8 "Buchungsdatum" VIEW-AS TEXT SIZE 16 BY 1 AT ROW 14 COL 53 " Unsere Referenz" VIEW-AS TEXT SIZE 25 BY 1 TOOLTIP "Beschaffungsspesen in CHF" AT ROW 14 COL 87 "Faktor" VIEW-AS TEXT SIZE 10 BY 1 AT ROW 17.52 COL 69.6 "Be.-Spesen" VIEW-AS TEXT SIZE 14 BY 1 AT ROW 16 COL 108 "Lieferzeit" VIEW-AS TEXT SIZE 17 BY 1 AT ROW 14 COL 36 "Seine Bestnr" VIEW-AS TEXT SIZE 18 BY 1 AT ROW 14 COL 69 "Lieferdatum" VIEW-AS TEXT SIZE 16 BY 1 AT ROW 14 COL 20 "Rabatt" VIEW-AS TEXT SIZE 10 BY 1 AT ROW 14 COL 112 "Bestelldatum" VIEW-AS TEXT SIZE 16 BY 1 AT ROW 14 COL 4 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 133 BY 21.29. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */ DEFINE FRAME F-Main "Fremdwährung Kurs" VIEW-AS TEXT SIZE 61.8 BY 1 AT ROW 17.52 COL 3.8 RECT-32 AT ROW 1.29 COL 1.2 RECT-41 AT ROW 10.05 COL 1.2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 133 BY 21.29. /* *********************** 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.29 WIDTH = 133. /* 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 */ /* BROWSE-TAB Br_Besko CB_Lager F-Main */ /* SETTINGS FOR TOGGLE-BOX Besko.Abgeholt IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR EDITOR Besko.Abholtext IN FRAME F-Main NO-ENABLE 3 */ ASSIGN Besko.Abholtext:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN Besko.Bestell_Nr IN FRAME F-Main NO-ENABLE 3 EXP-LABEL */ /* SETTINGS FOR FILL-IN Besko.Best_Datum IN FRAME F-Main NO-ENABLE ALIGN-L 3 EXP-LABEL */ ASSIGN Br_Besko:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-Br_Besko:HANDLE. ASSIGN Btn_Erfassen:PRIVATE-DATA IN FRAME F-Main = "Abbrechen". /* SETTINGS FOR FILL-IN Besko.Buch_Datum IN FRAME F-Main NO-ENABLE 3 EXP-LABEL */ /* SETTINGS FOR COMBO-BOX CB_Beststat IN FRAME F-Main NO-DISPLAY */ /* SETTINGS FOR COMBO-BOX CB_FRW IN FRAME F-Main NO-DISPLAY NO-ENABLE */ ASSIGN E_Adresse:RETURN-INSERTED IN FRAME F-Main = TRUE E_Adresse:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN Besko.Faktor IN FRAME F-Main NO-ENABLE 3 EXP-LABEL */ /* SETTINGS FOR FILL-IN F_Anzeig_Br IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_Besnr IN FRAME F-Main NO-ENABLE 1 */ /* SETTINGS FOR FILL-IN F_BestBis IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_Betrag IN FRAME F-Main NO-ENABLE ALIGN-R 1 */ /* SETTINGS FOR FILL-IN F_Betrag_Netto IN FRAME F-Main NO-ENABLE ALIGN-R 1 */ /* SETTINGS FOR FILL-IN F_Knr IN FRAME F-Main NO-ENABLE 1 2 */ /* SETTINGS FOR FILL-IN F_Liefer IN FRAME F-Main NO-ENABLE 1 2 */ ASSIGN F_WoTag:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN Besko.Kurs IN FRAME F-Main NO-ENABLE 3 EXP-LABEL */ /* SETTINGS FOR FILL-IN Besko.Lieferzeit IN FRAME F-Main 3 EXP-LABEL EXP-FORMAT EXP-HELP */ /* SETTINGS FOR FILL-IN Besko.Lief_Datum IN FRAME F-Main NO-ENABLE 3 EXP-LABEL */ /* SETTINGS FOR FILL-IN Besko.Rabatt IN FRAME F-Main NO-ENABLE 3 */ /* SETTINGS FOR FILL-IN Besko.Spesen IN FRAME F-Main NO-ENABLE 3 EXP-LABEL EXP-FORMAT */ /* SETTINGS FOR FILL-IN Besko.U_Ref IN FRAME F-Main NO-ENABLE 3 EXP-LABEL EXP-FORMAT */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Besko /* Query rebuild information for BROWSE Br_Besko _TblList = "AnaDat.Besko" _FldNameList[1] > AnaDat.Besko.Besnr "Besko.Besnr" ? ? "integer" ? ? ? ? ? ? yes ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > AnaDat.Besko.Knr "Besko.Knr" "Lnr" ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > "_" "VAdresse @ VAdresse" "Lieferant" "x(50)" ? ? ? ? ? ? ? no ? no no "30" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > AnaDat.Besko.Best_Datum "Besko.Best_Datum" "Best. Datum" ? "date" ? ? ? ? ? ? no ? no no "12" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > AnaDat.Besko.Lief_Datum "Besko.Lief_Datum" "Lieferdatum" ? "date" ? ? ? ? ? ? no ? no no "12" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Besko */ &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 Besko.Abgeholt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besko.Abgeholt F-Frame-Win ON VALUE-CHANGED OF Besko.Abgeholt IN FRAME F-Main /* Abgeholt */ DO: IF Besko.AbholText:SCREEN-VALUE <> '' THEN SELF:SCREEN-VALUE = 'TRUE'. ELSE SELF:SCREEN-VALUE = 'FALSE'. RUN g-texteingabe.w ( 'Abholtext', Besko.Abholtext:HANDLE ). IF Besko.AbholText:SCREEN-VALUE <> '' THEN SELF:SCREEN-VALUE = 'TRUE'. ELSE SELF:SCREEN-VALUE = 'FALSE'. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Besko &Scoped-define SELF-NAME Br_Besko &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besko F-Frame-Win ON CTRL-ALT-F4 OF Br_Besko IN FRAME F-Main DO: IF Besko.Besnr:BGCOLOR IN BROWSE {&BROWSE-NAME} = 15 THEN RETURN NO-APPLY. Ja = TRUE. DO WHILE Besko.Best_Sta > 2 WITH FRAME {&FRAME-NAME}: Ja = FALSE. MESSAGE "Achtung, diese Bestellung scheint nicht " SKIP "eingebucht zu sein. Wollen sie das nachholen ? " VIEW-AS ALERT-BOX INFORMATION BUTTONS OK-CANCEL UPDATE Ja. IF NOT Ja THEN LEAVE. KRecid = RECID(Besko). IF Besko.Buch_Datum = ? THEN LVDat = TODAY. ELSE LVDat = Besko.Buch_Datum. Linktext = STRING(LVDat,"99.99.9999") + ";" + "Eingabe Buchungsdatum;" + "Buchungsdatum;" + "99.99.9999;" + "3". RUN "v8/d-einlesen-wert.w". IF Linktext = "?" OR Linktext = ? THEN DO: { v8/fehler.i "0096" } Ja = FALSE. LEAVE. END. ERROR-STATUS:ERROR = FALSE. LVDat = DATE(Linktext) NO-ERROR. IF NOT ERROR-STATUS:ERROR AND LVDat <> ? THEN RUN LAGEREINGANG. REPEAT TRANSACTION: FIND BBesko WHERE RECID(BBesko) = KRecid. BBesko.Buch_Datum = LVDat. RELEASE BBesko. LEAVE. END. IF NUM-RESULTS("Br_Besko":U) > 0 THEN DO: {&BROWSE-NAME}:REFRESH(). APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. END. LEAVE. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besko F-Frame-Win ON ROW-DISPLAY OF Br_Besko IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN Besko.Besnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 15 Besko.Knr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 15 VAdresse :BGCOLOR IN BROWSE {&BROWSE-NAME} = 15 Besko.Best_Datum:BGCOLOR IN BROWSE {&BROWSE-NAME} = 15 Besko.Lief_Datum:BGCOLOR IN BROWSE {&BROWSE-NAME} = 15. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Besko.Knr NO-LOCK NO-ERROR. VAdresse = Adresse.Anzeig_Br. IF Besko.Best_Sta > 2 THEN DO: lVerbucht = DYNAMIC-FUNCTION('isAlleVerbucht':U, Besko.Firma, Besko.Besnr) NO-ERROR. IF NOT lVerbucht THEN DO: ASSIGN Besko.Besnr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14 Besko.Knr :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14 VAdresse :BGCOLOR IN BROWSE {&BROWSE-NAME} = 14 Besko.Best_Datum:BGCOLOR IN BROWSE {&BROWSE-NAME} = 14 Besko.Lief_Datum:BGCOLOR IN BROWSE {&BROWSE-NAME} = 14. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besko F-Frame-Win ON START-SEARCH OF Br_Besko IN FRAME F-Main DO: DEFINE VARIABLE ColumnHandle AS HANDLE NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN ColumnHandle = Br_Besko:CURRENT-COLUMN. APPLY 'END-SEARCH' TO Br_Besko. CASE ColumnHandle:NAME: WHEN 'Besnr' THEN DO: VSort = 1. RUN OPEN_BESKO. END. WHEN 'Knr' THEN DO: VSort = 2. RUN OPEN_BESKO. END. WHEN 'Best_Datum' THEN DO: VSort = 3. RUN OPEN_BESKO. END. WHEN 'Lief_Datum' THEN DO: VSort = 4. RUN OPEN_BESKO. END. END CASE. IF Vorhanden THEN DO: Br_Besko:SELECT-ROW(1). Br_Besko:FETCH-SELECTED-ROW(1). END. APPLY 'ENTRY' TO Br_Besko. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Besko F-Frame-Win ON VALUE-CHANGED OF Br_Besko IN FRAME F-Main DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Besko.Knr NO-LOCK NO-ERROR. RUN ANZEIGE. F_Anzeig_Br = VAdresse. F_Knr = STRING(Besko.Knr,"999999"). LVLnr = Besko.Knr. LVBesnr = Besko.Besnr. VNetto = 0. VBrutto = 0. lVerbucht = TRUE. FOR EACH Besze OF Besko NO-LOCK: IF Besko.Best_Sta = 1 THEN DO: VBrutto = VBrutto + (Besze.MBest * Besze.Preis). VNetto = VNetto + (Besze.MBest * Besze.S_Preis). END. ELSE DO: VBrutto = VBrutto + (Besze.MGeli * Besze.Preis). VNetto = VNetto + (Besze.MGeli * Besze.S_Preis). END. END. DO WITH FRAME {&FRAME-NAME}: F_Betrag = VBrutto. F_Betrag_Netto = VNetto . DISPLAY {&List-1}. END. RUN ANZEIGE_BESKO. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Aendern &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Aendern F-Frame-Win ON CHOOSE OF Btn_Aendern IN FRAME F-Main /* Aendern */ DO: IF Btn_Aendern:LABEL = '&Aendern' THEN DO: NRecid = 0. RUN AENDERN. END. ELSE DO: RUN SPEICHERN. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Erfassen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Erfassen F-Frame-Win ON CHOOSE OF Btn_Erfassen IN FRAME F-Main /* Neu */ DO: IF Btn_Erfassen:LABEL = '&Neu' THEN DO: RUN ERFASSEN. END. ELSE DO: RUN ABBRECHEN. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel F-Frame-Win ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */ DO: RUN DRUCKEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Loeschen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen F-Frame-Win ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */ DO: IF NUM-RESULTS("Br_Besko":U) = ? THEN RETURN NO-APPLY. IF NUM-RESULTS("Br_Besko":U) = 0 THEN RETURN NO-APPLY. NRecid = 0. RUN LOESCHEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Verschieben &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Verschieben F-Frame-Win ON CHOOSE OF Btn_Verschieben IN FRAME F-Main /* Weiter */ DO: IF NOT AVAILABLE Besko THEN RETURN NO-APPLY. KRecid = RECID(Besko). DISABLE TRIGGERS FOR LOAD OF Besze. FIND Tabel NO-LOCK USE-INDEX Tabel-k2 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'BESTAT' AND Tabel.CodeC = '' AND Tabel.CodeI = Besko.Best_Sta + 1 AND Tabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE Tabel THEN RETURN NO-APPLY. REPEAT TRANSACTION WHILE Besko.Best_Sta = 1: FOR EACH Besze OF Besko: IF Besze.Artnr = 0 THEN NEXT. IF Besze.MBest = 0 AND Besze.MGeli = 0 THEN DO: DELETE Besze. NEXT. END. Besze.MGeli = Besze.MBest. FIND ArtLager 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 NO-ERROR. ArtLager.Bestellt = ArtLager.Bestellt - Besze.MGeli. RELEASE ArtLager. END. LEAVE. END. Ja = TRUE. DO WHILE Besko.Best_Sta = 2: Ja = FALSE. MESSAGE "Achtung, die eingegebenen Mengen werden als Lagereingang verbucht" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK-CANCEL UPDATE Ja. IF NOT Ja THEN LEAVE. IF Besko.Buch_Datum = ? THEN LVDat = TODAY. ELSE LVDat = Besko.Buch_Datum. Linktext = STRING(LVDat,"99.99.9999") + ";" + "Eingabe Buchungsdatum;" + "Buchungsdatum;" + "99.99.9999;" + "3". RUN "v8/d-einlesen-wert.w". IF Linktext = "?" OR Linktext = ? THEN DO: { v8/fehler.i "0096" } Ja = FALSE. LEAVE. END. ERROR-STATUS:ERROR = FALSE. LVDat = DATE(Linktext) NO-ERROR. IF NOT ERROR-STATUS:ERROR AND LVDat <> ? THEN RUN LAGEREINGANG. LEAVE. END. DO WHILE Besko.Best_Sta = 3: Ja = FALSE. LVBesnr = Besko.Besnr. FOR EACH Besze OF Besko NO-LOCK: IF Besze.Artnr = 0 THEN NEXT. IF Besze.Preis > 0 THEN NEXT. MESSAGE 'es gibt noch Artikel ohne Preis' VIEW-AS ALERT-BOX. LEAVE. END. RUN "v8/d-bestverbuchen.w". LEAVE. END. REPEAT TRANSACTION WHILE Ja: FIND BBesko WHERE RECID(BBesko) = KRecid. IF BBesko.Best_Sta = 2 THEN BBesko.Buch_Datum = LVDat. BBesko.Best_Sta = BBesko.Best_Sta + 1. RELEASE BBesko. {&BROWSE-NAME}:DELETE-SELECTED-ROW(1). IF NUM-RESULTS("Br_Besko":U) > 0 THEN DO: {&BROWSE-NAME}:REFRESH(). APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. END. ELSE DO: APPLY 'ENTRY' TO CB_Beststat IN FRAME {&FRAME-NAME}. END. RETURN NO-APPLY. END. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Beststat &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Beststat F-Frame-Win ON VALUE-CHANGED OF CB_Beststat IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: VBest_Sta = INTEGER(CB_Beststat:SCREEN-VALUE) NO-ERROR. RUN OPEN_BESKO. ENABLE Btn_LOESCHEN. IF VBest_Sta = 3 THEN DISABLE Btn_LOESCHEN. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_FRW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_FRW F-Frame-Win ON VALUE-CHANGED OF CB_FRW IN FRAME F-Main DO: DO WITH FRAME {&FRAME-NAME}: ix = LOOKUP(SELF:SCREEN-VALUE, SELF:LIST-ITEMS, '|'). FIND Waehrung NO-LOCK WHERE Waehrung.Firma = GVFirma AND Waehrung.FRW = ENTRY(ix, XFRW, '|') NO-ERROR. Besko.Kurs:SCREEN-VALUE = STRING(Waehrung.Kurs). Besko.Faktor:SCREEN-VALUE = STRING(Waehrung.Faktor). VFRW = Waehrung.FRW. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager F-Frame-Win ON VALUE-CHANGED OF CB_Lager IN FRAME F-Main /* Lager */ DO: RUN OPEN_BESKO. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_BestBis &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BestBis F-Frame-Win ON END-ERROR OF F_BestBis IN FRAME F-Main /* Bestell. bis / Lieferungen */ DO: DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BestBis F-Frame-Win ON LEAVE OF F_BestBis IN FRAME F-Main /* Bestell. bis / Lieferungen */ DO: IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. VKnr = -1. FAlfa = FALSE. DO ix = 1 TO LENGTH(FeldInhalt). IF SUBSTRING(FeldInhalt,ix,01) >= '0' AND SUBSTRING(FeldInhalt,ix,01) <= '9' THEN NEXT. FAlfa = TRUE. LEAVE. END. IF NOT FAlfa THEN VKnr = INTEGER(FeldInhalt). RUN KUNDENNUMMER. IF VKnr = -1 THEN DO: LVSuchbe = FeldInhalt. IF FAlfa THEN LVSort = 2. ELSE LVSort = 1. RUN "v8/d-liefstsuch.w". IF Gefunden = FALSE THEN DO: F_Knr = LVSuchbe. DISPLAY F_Knr. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. VKnr = INTEGER(LVSuchbe). END. F_Knr = STRING(VKnr,"999999"). DISPLAY F_Knr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: { v8/fehler.i "0101" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. IF Adresse.Aktiv = FALSE THEN DO: { v8/fehler.i "0132" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. FIND Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = GVFirma AND Liefst.Knr = VKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Liefst THEN DO: { v8/fehler.i "0223" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. IF Liefst.Aktiv = FALSE THEN DO: { v8/fehler.i "0224" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. RUN ANZEIGE. F_Knr = STRING(VKnr,"999999"). F_Anzeig_Br = Adresse.Anzeig_Br. DISPLAY {&List-1}. Ja = TRUE. MESSAGE 'Bestellung eröffnen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE Ja. IF NOT Ja THEN DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. REPEAT TRANSACTION: ix = 0. DO WHILE ix = 0: FIND SteuNr WHERE SteuNr.Firma = GVFirma EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF AVAILABLE SteuNr THEN DO: SteuNr.Nr3 = SteuNr.Nr3 + 1. ix = SteuNr.Nr3. RELEASE SteuNr. FIND Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Besnr = ix NO-LOCK NO-ERROR. IF NOT AVAILABLE Besko THEN LEAVE. ix = 0. NEXT. END. MESSAGE 'Datei SteuNr ist im Zugriff' VIEW-AS ALERT-BOX INFORMATION. END. CREATE Besko. ASSIGN Besko.Firma = GVFirma Besko.Besnr = ix Besko.Knr = Liefst.Knr Besko.Best_Datum = TODAY Besko.Lief_Datum = TODAY + 7 Besko.Buch_Datum = ? Besko.I_Best = Liefst.Kontakt Besko.U_Ref = GVSaBe Besko.Kond = Liefst.Kond Besko.Gedruckt = FALSE Besko.Verbucht = FALSE Besko.Best_Sta = 1 Besko.Rabatt = Liefst.Rabatt Besko.Bemerkung = Liefst.Bemerkung Besko.Kopf = Liefst.Kopf Besko.Schluss = Liefst.Schluss. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = Liefst.Firma AND Waehrung.FRW = Liefst.FRW NO-ERROR. IF AVAILABLE Waehrung THEN DO: ASSIGN Besko.FRW = Waehrung.FRW Besko.Faktor = Waehrung.Faktor Besko.Kurs = Waehrung.Kurs. END. ELSE DO: ASSIGN Besko.FRW = 'CHF' Besko.Faktor = 1 Besko.Kurs = 1.0. END. NRecid = RECID(Besko). XRecid = RECID(Besko). LEAVE. END. /* TRANSCTION */ FIND Besko WHERE RECID(Besko) = NRecid NO-LOCK. LVBesnr = Besko.Besnr. LVLnr = Besko.Knr. F_Besnr = Besko.Besnr. RUN ANZEIGE_BESKO. DISABLE {&List-2}. ENABLE {&List-3}. APPLY 'ENTRY' TO Besko.Best_Datum. RETURN NO-APPLY. END. /* FRAME */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_BestBis F-Frame-Win ON RETURN OF F_BestBis IN FRAME F-Main /* Bestell. bis / Lieferungen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr F-Frame-Win ON END-ERROR OF F_Knr IN FRAME F-Main /* Kunde */ DO: DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr F-Frame-Win ON LEAVE OF F_Knr IN FRAME F-Main /* Kunde */ DO: DEF VAR iKnr AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. IF LHandle:NAME = 'Btn_Erfassen' THEN RETURN. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. DO WHILE TRUE: iKnr = ?. iRecid = ?. IF NUM-ENTRIES(FeldInhalt, ' ') = 1 THEN iKnr = INTEGER(FeldInhalt) NO-ERROR. IF NOT ERROR-STATUS:ERROR AND iKnr > 0 THEN DO: FIND FIRST Liefst NO-LOCK WHERE Liefst.Firma = Firma AND Liefst.Knr = iKnr NO-ERROR. IF AVAILABLE Liefst THEN DO: FIND FIRST Adresse NO-LOCK WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Liefst.Knr NO-ERROR. iRecid = RECID(Adresse). LEAVE. END. END. ASSIGN Linktext = 'LIE;' + FeldInhalt. RUN g-suchen-adresse.w ( INPUT Linktext, OUTPUT iRecid ). LEAVE. END. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: { v8/fehler.i "0101" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. VKnr = Adresse.Knr. F_Knr = STRING(VKnr,"999999"). DISPLAY F_Knr. IF Adresse.Aktiv = FALSE THEN DO: { v8/fehler.i "0132" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. FIND Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = GVFirma AND Liefst.Knr = VKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Liefst THEN DO: { v8/fehler.i "0223" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. IF Liefst.Aktiv = FALSE THEN DO: { v8/fehler.i "0224" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. RUN ANZEIGE. F_Knr = STRING(VKnr,"999999"). F_Anzeig_Br = Adresse.Anzeig_Br. DISPLAY {&List-1}. Ja = TRUE. MESSAGE 'Bestellung eröffnen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE Ja. IF NOT Ja THEN DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. REPEAT TRANSACTION: ix = 0. DO WHILE ix = 0: FIND SteuNr WHERE SteuNr.Firma = GVFirma EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF AVAILABLE SteuNr THEN DO: SteuNr.Nr3 = SteuNr.Nr3 + 1. ix = SteuNr.Nr3. RELEASE SteuNr. FIND Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Besnr = ix NO-LOCK NO-ERROR. IF NOT AVAILABLE Besko THEN LEAVE. ix = 0. NEXT. END. MESSAGE 'Datei SteuNr ist im Zugriff' VIEW-AS ALERT-BOX INFORMATION. END. CREATE Besko. ASSIGN Besko.Firma = GVFirma Besko.Besnr = ix Besko.Knr = Liefst.Knr Besko.Best_Datum = TODAY Besko.Lief_Datum = TODAY + 7 Besko.Buch_Datum = ? Besko.I_Best = Liefst.Kontakt Besko.U_Ref = GVSaBe Besko.Kond = Liefst.Kond Besko.Gedruckt = FALSE Besko.Verbucht = FALSE Besko.Best_Sta = 1 Besko.Rabatt = Liefst.Rabatt Besko.Bemerkung = Liefst.Bemerkung Besko.Kopf = Liefst.Kopf Besko.Schluss = Liefst.Schluss Besko.Lager = iLager. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = Liefst.Firma AND Waehrung.FRW = Liefst.FRW NO-ERROR. IF AVAILABLE Waehrung THEN DO: ASSIGN Besko.FRW = Waehrung.FRW Besko.Faktor = Waehrung.Faktor Besko.Kurs = Waehrung.Kurs. END. ELSE DO: ASSIGN Besko.FRW = 'CHF' Besko.Faktor = 1 Besko.Kurs = 1.0. END. NRecid = RECID(Besko). XRecid = RECID(Besko). LEAVE. END. /* TRANSCTION */ FIND Besko WHERE RECID(Besko) = NRecid NO-LOCK. LVBesnr = Besko.Besnr. LVLnr = Besko.Knr. F_Besnr = Besko.Besnr. RUN ANZEIGE_BESKO. DISABLE {&List-2}. ENABLE {&List-3}. APPLY 'ENTRY' TO Besko.Best_Datum. RETURN NO-APPLY. END. /* FRAME */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr F-Frame-Win ON RETURN OF F_Knr IN FRAME F-Main /* Kunde */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Liefer &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Liefer F-Frame-Win ON END-ERROR OF F_Liefer IN FRAME F-Main /* / */ DO: DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Liefer F-Frame-Win ON LEAVE OF F_Liefer IN FRAME F-Main /* / */ DO: IF NOT VUpdate THEN RETURN NO-APPLY. IF NOT VNeu THEN RETURN NO-APPLY. DO WITH FRAME {&FRAME-NAME}: IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. LKY = LASTKEY. LHandle = LAST-EVENT:WIDGET-ENTER. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. FeldInhalt = XHandle:SCREEN-VALUE. VKnr = -1. FAlfa = FALSE. DO ix = 1 TO LENGTH(FeldInhalt). IF SUBSTRING(FeldInhalt,ix,01) >= '0' AND SUBSTRING(FeldInhalt,ix,01) <= '9' THEN NEXT. FAlfa = TRUE. LEAVE. END. IF NOT FAlfa THEN VKnr = INTEGER(FeldInhalt). RUN KUNDENNUMMER. IF VKnr = -1 THEN DO: LVSuchbe = FeldInhalt. IF FAlfa THEN LVSort = 2. ELSE LVSort = 1. RUN "v8/d-liefstsuch.w". IF Gefunden = FALSE THEN DO: F_Knr = LVSuchbe. DISPLAY F_Knr. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. VKnr = INTEGER(LVSuchbe). END. F_Knr = STRING(VKnr,"999999"). DISPLAY F_Knr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = VKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: { v8/fehler.i "0101" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. IF Adresse.Aktiv = FALSE THEN DO: { v8/fehler.i "0132" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. FIND Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = GVFirma AND Liefst.Knr = VKnr NO-LOCK NO-ERROR. IF NOT AVAILABLE Liefst THEN DO: { v8/fehler.i "0223" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. IF Liefst.Aktiv = FALSE THEN DO: { v8/fehler.i "0224" } APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. RUN ANZEIGE. F_Knr = STRING(VKnr,"999999"). F_Anzeig_Br = Adresse.Anzeig_Br. DISPLAY {&List-1}. Ja = TRUE. MESSAGE 'Bestellung eröffnen ?' VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE Ja. IF NOT Ja THEN DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. REPEAT TRANSACTION: ix = 0. DO WHILE ix = 0: FIND SteuNr WHERE SteuNr.Firma = GVFirma EXCLUSIVE-LOCK NO-WAIT NO-ERROR. IF AVAILABLE SteuNr THEN DO: SteuNr.Nr3 = SteuNr.Nr3 + 1. ix = SteuNr.Nr3. RELEASE SteuNr. FIND Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Besnr = ix NO-LOCK NO-ERROR. IF NOT AVAILABLE Besko THEN LEAVE. ix = 0. NEXT. END. MESSAGE 'Datei SteuNr ist im Zugriff' VIEW-AS ALERT-BOX INFORMATION. END. CREATE Besko. ASSIGN Besko.Firma = GVFirma Besko.Besnr = ix Besko.Knr = Liefst.Knr Besko.Best_Datum = TODAY Besko.Lief_Datum = TODAY + 7 Besko.Buch_Datum = ? Besko.I_Best = Liefst.Kontakt Besko.U_Ref = GVSaBe Besko.Kond = Liefst.Kond Besko.Gedruckt = FALSE Besko.Verbucht = FALSE Besko.Best_Sta = 1 Besko.Rabatt = Liefst.Rabatt Besko.Bemerkung = Liefst.Bemerkung Besko.Kopf = Liefst.Kopf Besko.Schluss = Liefst.Schluss. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = Liefst.Firma AND Waehrung.FRW = Liefst.FRW NO-ERROR. IF AVAILABLE Waehrung THEN DO: ASSIGN Besko.FRW = Waehrung.FRW Besko.Faktor = Waehrung.Faktor Besko.Kurs = Waehrung.Kurs. END. ELSE DO: ASSIGN Besko.FRW = 'CHF' Besko.Faktor = 1 Besko.Kurs = 1.0. END. NRecid = RECID(Besko). XRecid = RECID(Besko). LEAVE. END. /* TRANSCTION */ FIND Besko WHERE RECID(Besko) = NRecid NO-LOCK. LVBesnr = Besko.Besnr. LVLnr = Besko.Knr. F_Besnr = Besko.Besnr. RUN ANZEIGE_BESKO. DISABLE {&List-2}. ENABLE {&List-3}. APPLY 'ENTRY' TO Besko.Best_Datum. RETURN NO-APPLY. END. /* FRAME */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Liefer F-Frame-Win ON RETURN OF F_Liefer IN FRAME F-Main /* / */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Besko.Lief_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Besko.Lief_Datum F-Frame-Win ON LEAVE OF Besko.Lief_Datum IN FRAME F-Main /* Lief_Datum */ DO: DO WITH FRAME {&FRAME-NAME}: F_WoTag = DYNAMIC-FUNCTION('GETWOCHENTAG', INPUT DATE(SELF:SCREEN-VALUE) ) NO-ERROR. DISPLAY F_WoTag. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_BestellEingangskontrolle &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_BestellEingangskontrolle F-Frame-Win ON CHOOSE OF MENU-ITEM m_BestellEingangskontrolle /* BestellEingangskontrolle */ DO: RUN EINGANGS_KONTROLLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK F-Frame-Win /* *************************** Main Block *************************** */ CB_FRW:DELIMITER = '|'. CB_Beststat:DELIMITER = '|'. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE FwFRW. IF FwFRW = ? THEN FwFRW = 'CHF'. cFirma = DYNAMIC-FUNCTION('getMandant') NO-ERROR. &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 RETURN OF Br_Besko IN FRAME {&FRAME-NAME} DO: IF VUpdate THEN RETURN NO-APPLY. APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* ON INSERT-MODE, 'ALT-INS' OF Br_Besko IN FRAME {&FRAME-NAME} */ ON INSERT-MODE, 'ALT-INS' OF {&WINDOW-NAME} ANYWHERE DO: IF VUpdate THEN RETURN NO-APPLY. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Erfassen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON DELETE-CHARACTER OF BROWSE {&BROWSE-NAME} DO: IF VUpdate THEN RETURN NO-APPLY. IF VBest_Sta = 3 THEN RETURN NO-APPLY. APPLY 'ENTRY' TO Btn_Loeschen IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Loeschen IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. ON PAGE-DOWN OF {&INPUT-FELDER} IN FRAME {&FRAME-NAME} DO: IF NOT VUpdate THEN RETURN NO-APPLY. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. IF NOT VALID-HANDLE(XHandle) THEN RETURN NO-APPLY. IF XHandle:TYPE <> 'FILL-IN' THEN RETURN NO-APPLY. CASE Feldname: WHEN 'F_Knr' THEN RETURN NO-APPLY. END CASE. APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. RUN new-state ( 'seite_2, MAIN':U ). RETURN NO-APPLY. END. ON END OF {&INPUT-FELDER} IN FRAME {&FRAME-NAME} DO: IF NOT VUpdate THEN RETURN NO-APPLY. XHandle = SELF:HANDLE. Feldname = XHandle:NAME. IF NOT VALID-HANDLE(XHandle) THEN RETURN NO-APPLY. IF XHandle:TYPE <> 'FILL-IN' THEN RETURN NO-APPLY. CASE Feldname: WHEN 'F_Knr' THEN RETURN NO-APPLY. END CASE. APPLY 'ENTRY' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'CHOOSE' TO Btn_Aendern IN FRAME {&FRAME-NAME}. APPLY 'ENTRY' TO Br_Besko IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* ON END-ERROR OF {&INPUT-FELDER} IN FRAME {&FRAME-NAME} */ ON END-ERROR OF {&WINDOW-NAME} ANYWHERE DO: IF VUpdate THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO Btn_Erfassen. APPLY 'CHOOSE' TO Btn_Erfassen. RETURN NO-APPLY. END. PUBLISH 'CLOSEBESTELLWESEN'. RETURN NO-APPLY. END. ON RETURN OF {&INPUT-FELDER} IN FRAME {&FRAME-NAME} DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. 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}: Btn_Erfassen:LABEL = '&Neu'. Btn_Aendern:LABEL = '&Aendern'. ENABLE Btn_Loeschen Btn_Verschieben Btn_Excel CB_Lager. IF VBest_Sta = 3 THEN DISABLE Btn_LOESCHEN. DISABLE CB_FRW. DISABLE {&List-2}. DISABLE {&List-3}. VUpdate = FALSE. VNeu = FALSE. RUN CLEAR_BILDSCHIRM. IF NRecid > 0 THEN DO: REPEAT TRANSACTION: FIND BBesko WHERE RECID(BBesko) = NRecid NO-ERROR. IF AVAILABLE BBesko THEN DELETE BBesko. LEAVE. END. END. APPLY 'VALUE-CHANGED' TO Br_Besko. APPLY 'ENTRY' TO Br_Besko. RETURN NO-APPLY. END. 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} /* 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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF NOT AVAILABLE Besko THEN RETURN NO-APPLY. VUpdate = TRUE. VNeu = FALSE. NRecid = 0. XRecid = RECID(Besko). LVBesnr = Besko.Besnr. LVLnr = Besko.Knr. Btn_Erfassen:LABEL = '&Abbrechen'. Btn_Aendern:LABEL = '&Speichern'. DISABLE Btn_Loeschen Btn_Verschieben Btn_Excel. ENABLE {&List-3}. DISABLE Besko.Faktor. IF F_Betrag = 0 THEN ENABLE CB_FRW. APPLY 'ENTRY' TO Besko.Best_Datum. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE F-Frame-Win PROCEDURE ANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ VAdresse = ''. E_Adresse = ''. F_Besnr = 0. EMPTY TEMP-TABLE tAdresse. CREATE tAdresse. IF AVAILABLE Adresse THEN DO: VAdresse = Adresse.Anzeig_Br. BUFFER-COPY Adresse TO tAdresse. FIND FIRST Ansprech NO-LOCK WHERE Ansprech.Firma = Adresse.Firma AND Ansprech.Knr = Adresse.Knr AND Ansprech.Bestellung = TRUE NO-ERROR. IF AVAILABLE Ansprech THEN BUFFER-COPY Ansprech TO tAdresse. E_Adresse = tAdresse.Anschrift[05] + CHR(10) + tAdresse.Anschrift[06] + CHR(10) + tAdresse.Anschrift[07] + CHR(10) + tAdresse.Anschrift[08] + CHR(10) + tAdresse.Anschrift[09] + CHR(10) + tAdresse.Anschrift[10] + CHR(10) + tAdresse.Anschrift[11] + CHR(10) + tAdresse.Anschrift[12]. END. ELSE VAdresse = '????????'. IF AVAILABLE Besko THEN F_Besnr = Besko.Besnr. DISPLAY E_Adresse WITH FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE_BESKO F-Frame-Win PROCEDURE ANZEIGE_BESKO : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF NOT AVAILABLE Besko THEN RETURN. FIND Liefst NO-LOCK USE-INDEX Liefst-k1 WHERE Liefst.Firma = GVFirma AND Liefst.Knr = Besko.Knr NO-ERROR. F_BestBis = Liefst.BestBis. F_Liefer = Liefst.Lieferungen. F_WoTag = DYNAMIC-FUNCTION('GETWOCHENTAG', INPUT Besko.Lief_Datum ) NO-ERROR. DISPLAY F_Besnr F_BestBis F_Liefer F_WoTag {&List-3} Besko.Faktor. CB_FRW:SCREEN-VALUE = Besko.Frw. VFRW = Besko.FRW. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CLEAR_BILDSCHIRM F-Frame-Win PROCEDURE CLEAR_BILDSCHIRM : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Fenster AS HANDLE. Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. ASSIGN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE (Fenster) : DO WHILE TRUE: IF Fenster:HIDDEN = TRUE THEN LEAVE. IF Fenster:TYPE = 'COMBO-BOX' THEN DO: IF Fenster:NAME = 'CB_Lager' THEN LEAVE. IF Fenster:NAME = 'CB_Beststat' THEN LEAVE. IF Fenster:NAME = 'CB_FRW' THEN DO: Fenster:SCREEN-VALUE = FwFRW. LEAVE. END. Fenster:SCREEN-VALUE = ' '. LEAVE. END. IF Fenster:TYPE = 'EDITOR' THEN DO: Fenster:SCREEN-VALUE = ''. LEAVE. END. IF Fenster:TYPE = 'FILL-IN' THEN DO: IF Fenster:DATA-TYPE = 'INTEGER' THEN Fenster:SCREEN-VALUE = ''. IF Fenster:DATA-TYPE = 'DECIMAL' THEN Fenster:SCREEN-VALUE = ''. IF Fenster:DATA-TYPE = 'CHARACTER' THEN Fenster:SCREEN-VALUE = ''. IF Fenster:DATA-TYPE = 'LOGICAL' THEN Fenster:SCREEN-VALUE = 'no'. IF Fenster:DATA-TYPE = 'DATE' THEN Fenster:SCREEN-VALUE = ?. LEAVE. END. LEAVE. END. ASSIGN Fenster = Fenster:NEXT-SIBLING. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE CREATE_GebKontr F-Frame-Win PROCEDURE CREATE_GebKontr : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: FIND LAST GebKontr NO-LOCK USE-INDEX GebKontr-k1 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr NO-ERROR. IF NOT AVAILABLE GebKontr THEN ix = 1. ELSE ix = GebKontr.Trnr + 1. CREATE GebKontr. ASSIGN GebKontr.Firma = Besko.Firma GebKontr.Knr = Besko.Knr GebKontr.Trnr = ix GebKontr.Geb_Cd = GebKonto.Geb_Cd GebKontr.Doknr = Besko.Besnr GebKontr.Datum = LVDat GebKontr.Preis = GebKonto.Depot. LVRecid = RECID(GebKontr). IF GebKonto.MWST_Art = 0 THEN DO: ASSIGN GebKontr.MWST_Cd = 11 GebKontr.MWST_% = 0 GebKontr.MWST_Inkl = TRUE. RELEASE GebKontr. RETURN. END. IF GebKonto.MWST_Art = 1 THEN DO: Rundbetr = 0. FIND Wust NO-LOCK USE-INDEX Wust-k1 WHERE Wust.CodeK = 99 AND Wust.CodeA = Artst.MWST NO-ERROR. Rundbetr = Wust.Proz. FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2 WHERE Wust.WuCd < 12 AND Wust.Proz = Rundbetr AND Wust.Incl = FALSE NO-ERROR. END. IF GebKonto.MWST_Art = 2 THEN DO: FIND FIRST Wust NO-LOCK USE-INDEX Wust-k2 WHERE Wust.WuCd = GebKonto.MWST_Cd NO-ERROR. END. IF NOT AVAILABLE Wust THEN DO: ASSIGN GebKontr.MWST_Cd = 11 GebKontr.MWST_% = 0 GebKontr.MWST_Inkl = TRUE. RELEASE GebKontr. RETURN. END. ASSIGN GebKontr.MWST_Cd = Wust.WuCd GebKontr.MWST_% = Wust.Proz GebKontr.MWST_Inkl = Wust.Incl. RELEASE GebKontr. END. 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 DRUCKEN F-Frame-Win PROCEDURE DRUCKEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF NOT AVAILABLE Besko THEN RETURN NO-APPLY. IF cInstallation BEGINS 'Huber' THEN RUN DRUCKEN_HUBER. ELSE RUN DRUCKEN_STANDARD. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_HUBER F-Frame-Win PROCEDURE DRUCKEN_HUBER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR excelAppl AS COM-HANDLE. DEF VAR VVorlage AS CHAR INIT "BestellformHuber.xlsm". DEF VAR VDateiName AS CHAR INIT "BestellformHuber.xlsm". DEF VAR VDatenDatei AS CHAR INIT "BestellformHuber.csv". DEF VAR MyName AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR cZeile AS CHAR NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR cArtnr AS CHAR NO-UNDO. DEF VAR cJahr AS CHAR NO-UNDO. DEF VAR cAlk AS CHAR NO-UNDO. DEF VAR cGGeb AS CHAR NO-UNDO. DEF VAR cVGeb AS CHAR NO-UNDO. CString = VDateiName + CHR(01) + VVorlage. RUN CREATEDATEI ( INPUT cString ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. VDateiName = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. EMPTY TEMP-TABLE TKopf. DO ix = 1 TO 19: CREATE TKopf. ASSIGN TKopf.Zeile = ix. END. EMPTY TEMP-TABLE tAdresse. CREATE tAdresse. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Besko.Knr NO-ERROR. IF AVAILABLE Adresse THEN DO: BUFFER-COPY Adresse TO tAdresse. FIND FIRST Ansprech NO-LOCK WHERE Ansprech.Firma = Adresse.Firma AND Ansprech.Knr = Adresse.Knr AND Ansprech.Bestellung = TRUE NO-ERROR. IF AVAILABLE Ansprech THEN BUFFER-COPY Ansprech TO tAdresse. END. FIND Krest NO-LOCK WHERE Krest.Firma = GVFirma AND Krest.Knr = Besko.Knr NO-ERROR. i1 = 0. DO ix = 4 TO 12: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = tAdresse.Anschrift[ix]. END. IF tAdresse.Tel-1 <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = 'Tel.: ' + tAdresse.Tel-1. END. IF tAdresse.Tel-3 <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = 'Fax.: ' + tAdresse.Tel-3. END. IF tAdresse.Mail <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = 'Mail: ' + tAdresse.Mail . END. ix = 1. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = GVFirma NO-LOCK. IF Steuer.Firma1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Firma1. END. IF Steuer.Firma2 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Firma2. END. IF Steuer.Strasse <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Strasse. END. IF Steuer.Ort <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Ort. END. IF Steuer.Tel-1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = 'Tel.:'. TKopf.Feld[03] = Steuer.Tel-1. END. IF Steuer.Fax-1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = 'Fax :'. TKopf.Feld[03] = Steuer.Fax-1. END. IF AVAILABLE Krest THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. ASSIGN TKopf.Feld[02] = 'Knr:' TKopf.Feld[03] = STRING(Krest.Kred_Knr,'999999') . END. FIND FIRST TKopf WHERE TKopf.Zeile = 3. TKopf.Feld[05] = (IF Besko.Abgeholt THEN 'ABHOLUNG' ELSE ''). FIND FIRST TKopf WHERE TKopf.Zeile = 14. TKopf.Feld[01] = 'Bestellung ' + STRING(Besko.Besnr,'999999'). TKopf.Feld[05] = Steuer.Ort + ', ' + STRING(TODAY,'99.99.9999'). FIND FIRST TKopf WHERE TKopf.Zeile = 17. ASSIGN TKopf.Feld[02] = 'Artikel' TKopf.Feld[03] = 'Artikel' TKopf.Feld[04] = 'Vol%' TKopf.Feld[05] = 'JG' TKopf.Feld[06] = 'Gebinde' TKopf.Feld[07] = 'Paletten' TKopf.Feld[08] = 'Kisten' TKopf.Feld[09] = 'Flaschen'. FIND FIRST TKopf WHERE TKopf.Zeile = 18. ASSIGN TKopf.Feld[02] = 'Nummer' TKopf.Feld[03] = '' TKopf.Feld[04] = '' TKopf.Feld[05] = '' TKopf.Feld[06] = '' TKopf.Feld[07] = '' TKopf.Feld[08] = 'Karton' TKopf.Feld[09] = 'Dosen'. VDatenDatei = SESSION:TEMP-DIR + VDatenDatei. OUTPUT TO VALUE(VDatenDatei). FOR EACH TKopf BY Zeile: PUT CONTROL TKopf.Feld[01] '£' TKopf.Feld[02] '£' TKopf.Feld[03] '£' TKopf.Feld[04] '£' TKopf.Feld[05] '£' TKopf.Feld[06] '£' TKopf.Feld[07] '£' TKopf.Feld[08] '£' TKopf.Feld[09] CHR(10). END. i3 = 0. DO ix = 1 TO NUM-ENTRIES (Besko.Kopf, CHR(10)): cString = ENTRY(ix, Besko.Kopf, CHR(10)). IF LENGTH(cString) > 80 THEN DO: cZeile = cString. cString = ''. DO i1 = 1 TO NUM-ENTRIES(cZeile, ' '): IF LENGTH(cString) + LENGTH(ENTRY(i1, cZeile, ' ')) > 80 THEN DO: PUT CONTROL TRIM(cString) CHR(10). cString = ''. END. cString = cString + ' ' + ENTRY(i1, cZeile, ' '). END. END. PUT CONTROL TRIM(cString) CHR(10). i3 = i3 + 1. END. IF i3 > 0 THEN PUT CONTROL '£' CHR(10). IF Besko.Abholtext <> '' THEN DO: cString = REPLACE(Besko.Abholtext, CHR(10), CHR(11)). cString = REPLACE(cString, CHR(13), ''). PUT CONTROL '££' cString '£' CHR(10) '£' CHR(10). END. FOR EACH BBesze USE-INDEX Besze-k1 WHERE BBesze.Firma = GVFirma AND BBesze.Besnr = Besko.Besnr : IF BBesze.MBest = 0 AND BBesze.MGeli = 0 THEN DO: DELETE BBesze. RELEASE BBesze. NEXT. END. FIND Artst OF BBesze NO-LOCK NO-ERROR. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = BBesze.KGeb_Cd NO-ERROR. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = BBesze.VGeb_Cd NO-ERROR. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = BBesze.GGeb_Cd NO-ERROR. cArtnr = ''. cJahr = ''. cAlk = ''. cGGeb = ''. cVGeb = ''. IF BBesze.S_Artnr <> '' THEN cArtnr = BBesze.S_Artnr. ELSE cArtnr = STRING(BBesze.Artnr,"999999") + "." + STRING(BBesze.Inhalt,"9999") + "." + STRING(BBesze.Jahr ,"9999"). IF BBesze.Jahr > 99 THEN DO: cJahr = STRING(BBesze.Jahr,"9999"). END. IF Artst.Alk_Gehalt <> 0 THEN DO: cAlk = STRING(Artst.Alk_Gehalt,">9.99") + '%'. END. IF BBesze.GGeb_Me <> 0 THEN cGGeb = TRIM(STRING(BBesze.GGeb_Me,'->>>>>9')). IF BBesze.VGeb_Me <> 0 THEN cVGeb = TRIM(STRING(BBesze.VGeb_Me,'->>>>>9')). PUT CONTROL '£' cArtnr '£' BBesze.Bez1 '£' cAlk '£' cJahr '£' KGebinde.KBez '£' cGGeb '£' cVGeb '£' TRIM(STRING(BBesze.KGeb_Me,'->>>>>9')) CHR(10). IF BBesze.Bez2 <> '' THEN DO: PUT CONTROL '££' BBesze.Bez2 '£££' CHR(10). END. PUT CONTROL '£' CHR(10). RELEASE BBesze. END. IF Besko.Lief_Datum <> ? THEN DO: PUT CONTROL '£' CHR(10) '£' CHR(10) 'Liefererung am:' '££' DYNAMIC-FUNCTION('GETWOCHENTAG', INPUT Besko.Lief_Datum) ', ' STRING(Besko.Lief_Datum,'99.99.9999') ', ' Besko.Lieferzeit CHR(10). END. PUT CONTROL '£' CHR(10). i3 = 0. DO ix = 1 TO NUM-ENTRIES (Besko.Schluss, CHR(10)): cString = ENTRY(ix, Besko.Schluss, CHR(10)). IF LENGTH(cString) > 80 THEN DO: cZeile = cString. cString = ''. DO i1 = 1 TO NUM-ENTRIES(cZeile, ' '): IF LENGTH(cString) + LENGTH(ENTRY(i1, cZeile, ' ')) > 80 THEN DO: PUT CONTROL TRIM(cString) CHR(10). cString = ''. END. cString = cString + ' ' + ENTRY(i1, cZeile, ' '). END. END. PUT CONTROL TRIM(cString) CHR(10). i3 = i3 + 1. END. IF i3 > 0 THEN PUT CONTROL '£' CHR(10). OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT VDateiName, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + VDatenDatei. excelAppl:Application:RUN ( 'DateiEinfügen' ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RELEASE Artst. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DRUCKEN_STANDARD F-Frame-Win PROCEDURE DRUCKEN_STANDARD : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR excelAppl AS COM-HANDLE. DEF VAR VVorlage AS CHAR INIT "Bestellform.xls". DEF VAR VDateiName AS CHAR INIT "Bestellform.xls". DEF VAR VDatenDatei AS CHAR INIT "Bestellform.csv". DEF VAR MyName AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR cZeile AS CHAR NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR cArtnr AS CHAR NO-UNDO. DEF VAR cJahr AS CHAR NO-UNDO. CString = VDateiName + CHR(01) + VVorlage. RUN CREATEDATEI ( INPUT cString ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. VDateiName = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. FOR EACH TKopf: DELETE TKopf. END. DO ix = 1 TO 19: CREATE TKopf. ASSIGN TKopf.Zeile = ix. END. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Besko.Knr NO-ERROR. FIND Krest NO-LOCK WHERE Krest.Firma = GVFirma AND Krest.Knr = Besko.Knr NO-ERROR. i1 = 0. DO ix = 4 TO 12: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = Adresse.Anschrift[ix]. END. IF Adresse.Tel-1 <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = 'Tel.: ' + Adresse.Tel-1. END. IF Adresse.Tel-3 <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = 'Fax.: ' + Adresse.Tel-3. END. IF Adresse.Mail <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[05] = 'Mail: ' + Adresse.Mail . END. ix = 1. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = GVFirma NO-LOCK. IF Steuer.Firma1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Firma1. END. IF Steuer.Firma2 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Firma2. END. IF Steuer.Strasse <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Strasse. END. IF Steuer.Ort <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Ort. END. IF Steuer.Tel-1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = 'Tel.:'. TKopf.Feld[03] = Steuer.Tel-1. END. IF Steuer.Fax-1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = 'Fax :'. TKopf.Feld[03] = Steuer.Fax-1. END. IF AVAILABLE Krest THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[02] = 'Knr:' TKopf.Feld[03] = Krest.Kred_Knr . END. FIND FIRST TKopf WHERE TKopf.Zeile = 14. TKopf.Feld[01] = 'Bestellung ' + STRING(Besko.Besnr,'999999'). TKopf.Feld[05] = Steuer.Ort + ', ' + STRING(TODAY,'99.99.9999'). FIND FIRST TKopf WHERE TKopf.Zeile = 17. ASSIGN TKopf.Feld[02] = 'Pos' TKopf.Feld[03] = 'Artikelnummer' TKopf.Feld[04] = 'Artikel' TKopf.Feld[05] = 'Gebinde' TKopf.Feld[06] = 'Gebinde' TKopf.Feld[07] = 'Gebinde'. FIND FIRST TKopf WHERE TKopf.Zeile = 18. ASSIGN TKopf.Feld[03] = 'Jahrg./Alk-%' TKopf.Feld[05] = 'Menge' TKopf.Feld[06] = 'Menge' TKopf.Feld[07] = 'Menge'. VDatenDatei = SESSION:TEMP-DIR + VDatenDatei. OUTPUT TO VALUE(VDatenDatei). FOR EACH TKopf BY Zeile: PUT CONTROL TKopf.Feld[01] '£' TKopf.Feld[02] '£' TKopf.Feld[03] '£' TKopf.Feld[04] '£' TKopf.Feld[05] '£' TKopf.Feld[06] '£' TKopf.Feld[07] CHR(10). END. i3 = 0. DO ix = 1 TO NUM-ENTRIES (Besko.Kopf, CHR(10)): cString = ENTRY(ix, Besko.Kopf, CHR(10)). IF LENGTH(cString) > 80 THEN DO: cZeile = cString. cString = ''. DO i1 = 1 TO NUM-ENTRIES(cZeile, ' '): IF LENGTH(cString) + LENGTH(ENTRY(i1, cZeile, ' ')) > 80 THEN DO: PUT CONTROL TRIM(cString) CHR(10). cString = ''. END. cString = cString + ' ' + ENTRY(i1, cZeile, ' '). END. END. PUT CONTROL TRIM(cString) CHR(10). i3 = i3 + 1. END. IF i3 > 0 THEN PUT CONTROL '£' CHR(10). FOR EACH BBesze USE-INDEX Besze-k1 WHERE BBesze.Firma = GVFirma AND BBesze.Besnr = Besko.Besnr : IF BBesze.MBest = 0 AND BBesze.MGeli = 0 THEN DO: DELETE BBesze. RELEASE BBesze. NEXT. END. FIND Artst OF BBesze NO-LOCK NO-ERROR. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = BBesze.KGeb_Cd NO-ERROR. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = BBesze.VGeb_Cd NO-ERROR. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = BBesze.GGeb_Cd NO-ERROR. cArtnr = ''. cJahr = ''. IF BBesze.S_Artnr <> '' THEN cArtnr = BBesze.S_Artnr. ELSE cArtnr = STRING(BBesze.Artnr,"999999") + "." + STRING(BBesze.Inhalt,"9999") + "." + STRING(BBesze.Jahr ,"9999"). IF BBesze.Jahr > 99 THEN DO: cJahr = STRING(BBesze.Jahr,"9999"). END. IF Artst.Alk_Gehalt <> 0 THEN DO: IF cJahr <> '' THEN cJahr = cJahr + ' / '. cJahr = cJahr + STRING(Artst.Alk_Gehalt,">9.99") + '%'. END. PUT CONTROL '£' STRING(BBesze.Pos,">>>9") '£' cArtnr '£' BBesze.Bez1 '£' GGebinde.KBez '£' VGebinde.KBez '£' KGebinde.KBez CHR(10). PUT CONTROL '££' cJahr '£' BBesze.Bez2 '£' STRING(BBesze.GGeb_Me,"->>>,>>9") '£' STRING(BBesze.VGeb_Me,"->>>,>>9") '£' STRING(BBesze.KGeb_Me,"->>>,>>9") CHR(10) '£' CHR(10). RELEASE BBesze. END. IF Besko.Lief_Datum <> ? THEN DO: PUT CONTROL '£' CHR(10) '£' CHR(10) 'Liefererung am:' '£££' DYNAMIC-FUNCTION('GETWOCHENTAG', INPUT Besko.Lief_Datum) ', ' STRING(Besko.Lief_Datum,'99.99.9999') ', ' Besko.Lieferzeit CHR(10). END. PUT CONTROL '£' CHR(10). i3 = 0. DO ix = 1 TO NUM-ENTRIES (Besko.Schluss, CHR(10)): cString = ENTRY(ix, Besko.Schluss, CHR(10)). IF LENGTH(cString) > 80 THEN DO: cZeile = cString. cString = ''. DO i1 = 1 TO NUM-ENTRIES(cZeile, ' '): IF LENGTH(cString) + LENGTH(ENTRY(i1, cZeile, ' ')) > 80 THEN DO: PUT CONTROL TRIM(cString) CHR(10). cString = ''. END. cString = cString + ' ' + ENTRY(i1, cZeile, ' '). END. END. PUT CONTROL TRIM(cString) CHR(10). i3 = i3 + 1. END. IF i3 > 0 THEN PUT CONTROL '£' CHR(10). OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT VDateiName, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + VDatenDatei. excelAppl:Application:RUN ( 'DateiEinfügen' ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EINGANGS_KONTROLLE F-Frame-Win PROCEDURE EINGANGS_KONTROLLE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF NOT AVAILABLE Besko THEN RETURN NO-APPLY. DEF VAR excelAppl AS COM-HANDLE. DEF VAR VVorlage AS CHAR INIT "BestellEingangskontrolle.xls". DEF VAR VDateiName AS CHAR INIT "BestellEingangskontrolle.xls". DEF VAR VDatenDatei AS CHAR INIT "BestellEingangskontrolle.txt". DEF VAR MyName AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR cZeile AS CHAR NO-UNDO. DEF VAR cLagOrt AS CHAR NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR cArtnr AS CHAR NO-UNDO. DEF VAR cJahr AS CHAR NO-UNDO. CString = VDateiName + CHR(01) + VVorlage. RUN CREATEDATEI ( INPUT cString ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. VDateiName = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. FOR EACH TKopf: DELETE TKopf. END. DO ix = 1 TO 19: CREATE TKopf. ASSIGN TKopf.Zeile = ix. END. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Besko.Knr NO-ERROR. i1 = 0. DO ix = 4 TO 12: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[06] = Adresse.Anschrift[ix]. END. IF Adresse.Tel-1 <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[06] = 'Tel.: ' + Adresse.Tel-1. END. IF Adresse.Tel-3 <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[06] = 'Fax.: ' + Adresse.Tel-3. END. IF Adresse.Mail <> '' THEN DO: i1 = i1 + 1. FIND FIRST TKopf WHERE TKopf.Zeile = i1. ASSIGN TKopf.Feld[06] = 'Mail: ' + Adresse.Mail . END. ix = 1. FIND Steuer NO-LOCK USE-INDEX Steuer-k1 WHERE Steuer.Firma = GVFirma. IF Steuer.Firma1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Firma1. END. IF Steuer.Firma2 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Firma2. END. IF Steuer.Strasse <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Strasse. END. IF Steuer.Ort <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = Steuer.Ort. END. IF Steuer.Tel-1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = 'Tel.:'. TKopf.Feld[03] = Steuer.Tel-1. END. IF Steuer.Fax-1 <> '' THEN DO: ix = ix + 1. FIND FIRST TKopf WHERE TKopf.Zeile = ix. TKopf.Feld[02] = 'Fax :'. TKopf.Feld[03] = Steuer.Fax-1. END. FIND FIRST TKopf WHERE TKopf.Zeile = 14. TKopf.Feld[01] = 'Bestellung ' + STRING(Besko.Besnr,'999999'). TKopf.Feld[06] = Steuer.Ort + ', ' + STRING(TODAY,'99.99.9999'). FIND FIRST TKopf WHERE TKopf.Zeile = 17. ASSIGN TKopf.Feld[02] = 'Lager' TKopf.Feld[03] = 'Artnr' TKopf.Feld[04] = 'Artikelnummer' TKopf.Feld[05] = 'Artikel' TKopf.Feld[06] = 'Gebinde' TKopf.Feld[07] = 'Gebinde' TKopf.Feld[08] = 'Gebinde' TKopf.Feld[09] = 'MHD'. FIND FIRST TKopf WHERE TKopf.Zeile = 18. ASSIGN TKopf.Feld[02] = 'Ort' TKopf.Feld[03] = 'Lief' TKopf.Feld[04] = 'Jahrg./Alk.Gehalt' TKopf.Feld[06] = 'Menge' TKopf.Feld[07] = 'Menge' TKopf.Feld[08] = 'Menge'. VDatenDatei = SESSION:TEMP-DIR + VDatenDatei. OUTPUT TO VALUE(VDatenDatei). FOR EACH TKopf BY Zeile: PUT CONTROL TKopf.Feld[01] '£' TKopf.Feld[02] '£' TKopf.Feld[03] '£' TKopf.Feld[04] '£' TKopf.Feld[05] '£' TKopf.Feld[06] '£' TKopf.Feld[07] '£' TKopf.Feld[08] '£' TKopf.Feld[09] CHR(10). END. i3 = 0. DO ix = 1 TO NUM-ENTRIES (Besko.Kopf, CHR(10)): cString = ENTRY(ix, Besko.Kopf, CHR(10)). IF LENGTH(cString) > 80 THEN DO: cZeile = cString. cString = ''. DO i1 = 1 TO NUM-ENTRIES(cZeile, ' '): IF LENGTH(cString) + LENGTH(ENTRY(i1, cZeile, ' ')) > 80 THEN DO: PUT CONTROL TRIM(cString) CHR(10). cString = ''. END. cString = cString + ' ' + ENTRY(i1, cZeile, ' '). END. END. PUT CONTROL TRIM(cString) CHR(10). i3 = i3 + 1. END. IF i3 > 0 THEN PUT CONTROL '£' CHR(10). FOR EACH BBesze USE-INDEX Besze-k1 WHERE BBesze.Firma = GVFirma AND BBesze.Besnr = Besko.Besnr : IF BBesze.MBest = 0 AND BBesze.MGeli = 0 THEN DO: DELETE BBesze. RELEASE BBesze. NEXT. END. FIND Artst OF BBesze NO-LOCK NO-ERROR. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = BBesze.KGeb_Cd NO-ERROR. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = GVFirma AND VGebinde.Geb_Cd = BBesze.VGeb_Cd NO-ERROR. FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = GVFirma AND GGebinde.Geb_Cd = BBesze.GGeb_Cd NO-ERROR. cArtnr = ''. cJahr = ''. cArtnr = STRING(BBesze.Artnr,"999999") + "." + STRING(BBesze.Inhalt,"9999") + "." + STRING(BBesze.Jahr ,"9999"). cLagOrt = DYNAMIC-FUNCTION('GETLAGERORT':U, INPUT iLager , INPUT Artst.Artnr , INPUT Artst.Inhalt, INPUT Artst.Jahr ) NO-ERROR. IF BBesze.Jahr > 99 THEN DO: cJahr = STRING(BBesze.Jahr,"9999"). END. IF Artst.Alk_Gehalt <> 0 THEN DO: IF cJahr <> '' THEN cJahr = cJahr + ' / '. cJahr = cJahr + STRING(Artst.Alk_Gehalt,">9.99") + '%'. END. PUT CONTROL '£' cLagOrt '£' BBesze.S_Artnr '£' cArtnr '£' BBesze.Bez1 '£' GGebinde.KBez '£' VGebinde.KBez '£' KGebinde.KBez CHR(10). PUT CONTROL '£££' cJahr '£' BBesze.Bez2 '£' STRING(BBesze.GGeb_Me,"->>>>>9") '£' STRING(BBesze.VGeb_Me,"->>>>>9") '£' STRING(BBesze.KGeb_Me,"->>>>>9") CHR(10) '£' CHR(10). RELEASE BBesze. END. IF Besko.Lief_Datum <> ? THEN DO: PUT CONTROL '£' CHR(10) '£' CHR(10) 'Liefererung am:' '££££' DYNAMIC-FUNCTION('GETWOCHENTAG', INPUT Besko.Lief_Datum) ', ' STRING(Besko.Lief_Datum,'99.99.9999') ', ' Besko.Lieferzeit CHR(10). END. PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10) 'Die Lieferung wurde kontrolliert durch :' '£££££££________________________________________' '£' CHR(10) '£' CHR(10) 'Die Lieferung wurde verräumt durch :' '£££££££________________________________________' CHR(10). OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT VDateiName, INPUT '', OUTPUT io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + VDatenDatei. excelAppl:Application:RUN ( 'DateiEinfügen' ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI F-Frame-Win _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY CB_Lager E_Adresse F_Knr F_Anzeig_Br F_Besnr F_Betrag F_Betrag_Netto F_BestBis F_Liefer F_WoTag WITH FRAME F-Main. IF AVAILABLE Besko THEN DISPLAY Besko.Best_Datum Besko.Lief_Datum Besko.Lieferzeit Besko.Buch_Datum Besko.Bestell_Nr Besko.U_Ref Besko.Rabatt Besko.Spesen Besko.Abholtext Besko.Kurs Besko.Faktor Besko.Abgeholt WITH FRAME F-Main. ENABLE RECT-32 RECT-41 CB_Lager Br_Besko CB_Beststat E_Adresse Besko.Lieferzeit F_WoTag Btn_Excel Btn_Aendern Btn_Erfassen Btn_Loeschen Btn_Verschieben 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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF AVAILABLE Besko THEN XRecid = RECID(Besko). ELSE XRecid = 0. Btn_Erfassen:LABEL = '&Abbrechen'. Btn_Aendern:LABEL = '&Speichern'. DISABLE Btn_Loeschen CB_Lager. CB_Beststat:SCREEN-VALUE = '001' NO-ERROR. APPLY 'VALUE-CHANGED' TO CB_Beststat. RUN CLEAR_BILDSCHIRM. ENABLE {&List-2}. APPLY 'ENTRY' TO F_Knr. VUpdate = TRUE. VNeu = TRUE. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE INITIAL F-Frame-Win PROCEDURE INITIAL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR xString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: VSort = 1. VBest_Sta = 1. FAlfa = FALSE. QOpen = FALSE. Vorhanden = FALSE. FNeuMut = FALSE. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR. XFRW = ''. FOR EACH Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE WAehrung.Firma = GVFirma: XFRW = XFRW + (IF XFrw = '' THEN '' ELSE ';') + Waehrung.Bezeichnung + ' (' + Waehrung.Frw + ');' + Waehrung.FRW. END. CB_FRW:DELIMITER = ';'. CB_FRW:LIST-ITEM-PAIRS = XFRW. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR. IF iLager = ? THEN iLager = 0. RUN COMBO_LAGER ( CB_Lager:HANDLE ) NO-ERROR. CB_Lager:SCREEN-VALUE = STRING(iLager,'999999') NO-ERROR. xString = ''. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k2 WHERE Tabel.Firma = GVFirma AND Tabel.RecArt = 'BESTAT' : xString = xString + (IF xString = '' THEN '' ELSE ';') + Tabel.Bez1 + ' (' + TRIM(STRING(Tabel.CodeI,'zz9')) + ');' + STRING(Tabel.CodeI,'999'). END. CB_Beststat:DELIMITER = ';'. CB_Beststat:LIST-ITEM-PAIRS = xString. CB_Beststat:SCREEN-VALUE = ENTRY(2, xString, ';'). VBest_Sta = INTEGER(CB_Beststat:SCREEN-VALUE) NO-ERROR. CB_FRW:SCREEN-VALUE = FwFRW NO-ERROR. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KUNDENNUMMER F-Frame-Win PROCEDURE KUNDENNUMMER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR iRecid AS RECID NO-UNDO. VKnr = -1. iRecid = ?. IF VKnr = -1 THEN DO: Linknr = VKnr. Linktext = 'LIE;' + FeldInhalt. RUN g-suchen-adresse.w ( INPUT Linktext, OUTPUT iRecid ). IF iRecid <> ? AND iRecid <> 0 THEN DO: FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid. Linknr = Adresse.Knr. VKnr = Adresse.Knr. END. ELSE DO: VKnr = -1. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LAGEREINGANG F-Frame-Win PROCEDURE LAGEREINGANG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR LRecid AS RECID NO-UNDO. DEF VAR WuCd AS INT NO-UNDO. IF VUpdate THEN RETURN NO-APPLY. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: FIND Besko WHERE RECID(Besko) = KRecid NO-LOCK NO-ERROR. FOR EACH Besze OF Besko: IF Besze.Artnr = 0 THEN NEXT. IF Besze.MGeli = 0 THEN NEXT. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Besze.Firma AND Artst.Artnr = Besze.Artnr AND Artst.Inhalt = Besze.Inhalt AND Artst.Jahr = Besze.Jahr. FIND Liefst NO-LOCK USE-INDEX Liefst-k1 WHERE Liefst.Firma = Besko.Firma AND Liefst.Knr = Besko.Knr . FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK. 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 = Besze.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 = Besze.Lager. END. ArtLager.Eingang = ArtLager.Eingang + Besze.MGeli. ArtLager.Bestand = ArtLager.Bestand + Besze.MGeli. ArtLager.Bestellt = ArtLager.Bestellt - (Besze.MBest - Besze.MGeli). Artst.Bestellt = Artst.Bestellt - (Besze.MBest - Besze.MGeli). Artst.Letzt_Eing = Besko.Lief_Datum. RELEASE ArtLager. DO WHILE Besze.GGeb_Me <> 0: FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = Besze.Firma AND GGebinde.Geb_Cd = Besze.GGeb_Cd NO-ERROR. IF NOT AVAILABLE GGebinde THEN LEAVE. IF GGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Besze.Firma AND GebKonto.Geb_Cd = GGebinde.Geb_Kto NO-ERROR. IF NOT AVAILABLE GebKonto THEN LEAVE. IF GebKonto.Depot = 0 THEN GebKonto.Depot = GGebinde.Depot. IF GebKonto.Depot = 0 THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GebKonto.Geb_Cd AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = LVDat NO-ERROR. IF NOT AVAILABLE GebKontr THEN DO: RUN CREATE_GebKontr. FIND GebKontr WHERE RECID(GebKontr) = LVRecid. END. GebKontr.Eingang = GebKontr.Eingang + Besze.GGeb_Me. LEAVE. END. DO WHILE Besze.VGeb_Me <> 0: FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Besze.Firma AND VGebinde.Geb_Cd = Besze.VGeb_Cd NO-ERROR. IF NOT AVAILABLE VGebinde THEN LEAVE. IF VGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Besze.Firma AND GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-ERROR. IF NOT AVAILABLE GebKonto THEN LEAVE. IF GebKonto.Depot = 0 THEN GebKonto.Depot = VGebinde.Depot. IF GebKonto.Depot = 0 THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GebKonto.Geb_Cd AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = LVDat NO-ERROR. IF NOT AVAILABLE GebKontr THEN DO: RUN CREATE_GebKontr. FIND GebKontr WHERE RECID(GebKontr) = LVRecid. END. GebKontr.Eingang = GebKontr.Eingang + Besze.VGeb_Me. LEAVE. END. DO WHILE Besze.KGeb_Me <> 0: FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Besze.Firma AND KGebinde.Geb_Cd = Besze.KGeb_Cd NO-ERROR. IF NOT AVAILABLE KGebinde THEN LEAVE. IF KGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Besze.Firma AND GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-ERROR. IF NOT AVAILABLE GebKonto THEN LEAVE. IF GebKonto.Depot = 0 THEN GebKonto.Depot = KGebinde.Depot. IF GebKonto.Depot = 0 THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GebKonto.Geb_Cd AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = LVDat NO-ERROR. IF NOT AVAILABLE GebKontr THEN DO: RUN CREATE_GebKontr. FIND GebKontr WHERE RECID(GebKontr) = LVRecid. END. GebKontr.Eingang = GebKontr.Eingang + Besze.KGeb_Me. LEAVE. END. RELEASE KGebinde. RELEASE VGebinde. RELEASE GGebinde. RELEASE GebKonto. RELEASE GebKontr. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = GVFirma AND KGebinde.Geb_Cd = Besze.KGeb_Cd NO-ERROR. DO WHILE TRUE: FIND LAST Artbw NO-LOCK USE-INDEX Artbw-k1 WHERE Artbw.Firma = GVFirma NO-ERROR. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1. ELSE i1 = 1. FIND Wust NO-LOCK USE-INDEX Wust-k1 WHERE Wust.CodeK = Steuer.MWST-Exkl AND Wust.CodeA = Artst.MWST NO-ERROR. IF AVAILABLE Wust THEN WuCd = Wust.WuCd. CREATE Artbw. ASSIGN Artbw.Firma = GVFirma Artbw.Trnr = i1 Artbw.Tr_Art = 11 Artbw.Artnr = Artst.Artnr Artbw.Inhalt = Artst.Inhalt Artbw.Jahr = Artst.Jahr Artbw.Bez1 = Besze.Bez1 Artbw.Bez2 = Besze.Bez2 Artbw.Knr = Besko.Knr Artbw.Menge = Besze.MGel Artbw.Alk_Gehalt = Artst.Alk_Gehalt Artbw.Aktion = Besze.Aktion Artbw.Sk_Ber = FALSE Artbw.Netto = FALSE Artbw.Lager = Besze.Lager Artbw.KGeb_Cd = Besze.KGeb_Cd Artbw.VGeb_Cd = Besze.VGeb_Cd Artbw.GGeb_Cd = Besze.GGeb_Cd Artbw.KGeb_Me = Besze.KGeb_Me Artbw.VGeb_Me = Besze.VGeb_Me Artbw.GGeb_Me = Besze.GGeb_Me Artbw.Preis = Besze.Preis Artbw.Bru_Betr = Besze.Preis * Besze.MGeli Artbw.Net_Betr = Besze.Preis * Besze.MGeli Artbw.Liter = Besze.MGeli * KGebinde.Inhalt / 100 Artbw.Gewicht = (Besze.MGeli * Artst.Gewicht) + KGebinde.Gewicht Artbw.Datum = LVDat Artbw.Abhol = FALSE Artbw.FRW = 'CHF' Artbw.Faktor = 1 Artbw.Kurs = 1.0 Artbw.WC = Artst.MWST Artbw.WuCd = WuCd Artbw.Aufnr = Besze.Besnr. ASSIGN Besze.Trnr = Artbw.Trnr. LEAVE. END. RELEASE Artst. RELEASE ArtLager. RELEASE Liefst. RELEASE Besze. END. FOR EACH BesGebKo NO-LOCK USE-INDEX BesGebKo-k1 WHERE BesGebKo.Firma = Besko.Firma AND BesGebKo.Besnr = Besko.Besnr AND BesGebKo.Menge <> 0 : DO WHILE BesGebKo.Anz_1 <> 0: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = BesGebKo.Firma AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd1 NO-ERROR. IF NOT AVAILABLE GebKonto THEN LEAVE. IF GebKonto.Depot = 0 THEN GebKonto.Depot = BesGebKo.Wert_1. IF GebKonto.Depot = 0 THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GebKonto.Geb_Cd AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = LVDat NO-ERROR. IF NOT AVAILABLE GebKontr THEN DO: RUN CREATE_GebKontr. FIND GebKontr WHERE RECID(GebKontr) = LVRecid. END. GebKontr.Ausgang = GebKontr.Ausgang + BesGebKo.Anz_1. LEAVE. END. DO WHILE BesGebKo.Anz_2 <> 0: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Besko.Firma AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd2 NO-ERROR. IF NOT AVAILABLE GebKonto THEN LEAVE. IF GebKonto.Depot = 0 THEN GebKonto.Depot = BesGebKo.Wert_1. IF GebKonto.Depot = 0 THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GebKonto.Geb_Cd AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = LVDat NO-ERROR. IF NOT AVAILABLE GebKontr THEN DO: RUN CREATE_GebKontr. FIND GebKontr WHERE RECID(GebKontr) = LVRecid. END. GebKontr.Ausgang = GebKontr.Ausgang + BesGebKo.Anz_2. LEAVE. END. DO WHILE BesGebKo.Anz_3 <> 0: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Besko.Firma AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd3 NO-ERROR. IF NOT AVAILABLE GebKonto THEN LEAVE. IF GebKonto.Depot = 0 THEN GebKonto.Depot = BesGebKo.Wert_1. IF GebKonto.Depot = 0 THEN LEAVE. FIND FIRST GebKontr USE-INDEX GebKontr-k2 WHERE GebKontr.Firma = Besko.Firma AND GebKontr.Knr = Besko.Knr AND GebKontr.Geb_Cd = GebKonto.Geb_Cd AND GebKontr.Doknr = Besko.Besnr AND GebKontr.Datum = LVDat NO-ERROR. IF NOT AVAILABLE GebKontr THEN DO: RUN CREATE_GebKontr. FIND GebKontr WHERE RECID(GebKontr) = LVRecid. END. GebKontr.Ausgang = GebKontr.Ausgang + BesGebKo.Anz_3. LEAVE. END. RELEASE GebKontr. RELEASE GebKonto. END. LEAVE. END. RELEASE ArtLager. RELEASE Artst. PUBLISH 'REFRESH_ARTIKEL'. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide F-Frame-Win PROCEDURE local-hide : /*------------------------------------------------------------------------------ Purpose: Override standard ADM method Notes: ------------------------------------------------------------------------------*/ IF VUpdate THEN DO: RUN SPEICHERN. END. /* Code placed here will execute PRIOR to standard behavior. */ /* Dispatch standard ADM method. */ RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: E_Adresse = ''. Besko.Besnr:READ-ONLY IN BROWSE Br_Besko = TRUE. END. RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) . cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. RUN INITIAL. RUN OPEN_BESKO. 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 ) . ENABLE Btn_LOESCHEN WITH FRAME {&FRAME-NAME}. IF VBest_Sta = 3 THEN DISABLE Btn_LOESCHEN WITH FRAME {&FRAME-NAME}. IF Vorhanden THEN APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN F-Frame-Win PROCEDURE LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VLoeschdat AS DATE NO-UNDO. DEF VAR fVerbucht AS LOG NO-UNDO. DISABLE TRIGGERS FOR LOAD OF Besze. DO WITH FRAME {&FRAME-NAME}: Ja = FALSE. { v8/loeschen.i } IF NOT Ja THEN DO: APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. DO WHILE VBest_Sta < 4 TRANSACTION: FOR EACH Besze OF Besko: IF Besze.Artnr = 0 THEN DO: DELETE Besze. NEXT. END. FIND Artbw OF Besze NO-ERROR. IF AVAILABLE Artbw THEN fVerbucht = TRUE. ELSE fVerbucht = FALSE. DO WHILE TRUE: FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = GVFirma AND Artst.Artnr = Besze.Artnr AND Artst.Inhalt = Besze.Inhalt AND Artst.Jahr = Besze.Jahr. 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. IF Besko.Best_Sta < 3 THEN DO: ArtLager.Bestellt = ArtLager.Bestellt - (Besze.MBest - Besze.MGeli). Artst.Bestellt = Artst.Bestellt - (Besze.MBest - Besze.MGeli). END. IF Besko.Best_Sta = 3 THEN DO: IF fVerbucht THEN DO: ArtLager.Bestand = ArtLager.Bestand - Besze.MGeli. ArtLager.Eingang = ArtLager.Eingang - Besze.MGeli. END. END. RELEASE ArtLager. RELEASE Artst. LEAVE. END. DO WHILE Besze.GGeb_Me <> 0 AND Besko.Best_Sta = 3 AND fVerbucht : FIND GGebinde NO-LOCK USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = Besze.Firma AND GGebinde.Geb_Cd = Besze.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 - Besze.GGeb_Me. RELEASE GebKontr. LEAVE. END. DO WHILE Besze.VGeb_Me <> 0 AND Besko.Best_Sta = 3 AND fVerbucht : FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Besze.Firma AND VGebinde.Geb_Cd = Besze.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 - Besze.VGeb_Me. RELEASE GebKontr. LEAVE. END. DO WHILE Besze.KGeb_Me <> 0 AND Besko.Best_Sta = 3 AND fVerbucht : FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Besze.Firma AND KGebinde.Geb_Cd = Besze.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 - Besze.KGeb_Me. RELEASE GebKontr. LEAVE. END. IF AVAILABLE Artbw THEN DELETE Artbw. DELETE Besze. RELEASE KGebinde. RELEASE VGebinde. RELEASE GGebinde. RELEASE GebKonto. END. FOR EACH BesGebKo USE-INDEX BesGebKo-k1 WHERE BesGebKo.Firma = Besko.Firma AND BesGebKo.Besnr = Besko.Besnr: DELETE BesGebKo. END. FIND BBesko WHERE RECID(BBesko) = RECID(Besko). DELETE BBesko. {&BROWSE-NAME}:DELETE-SELECTED-ROW(1). LEAVE. END. DO WHILE VBest_Sta = 4: Linktext = STRING(Besko.Buch_Dat,"99.99.9999") + ";" + "bis zu welchem Datum" + ";" + "bis Buchungsdatum" + ";" + "99.99.9999" + ";" + "3". RUN "v8/d-einlesen-wert.w". IF Linktext = '' THEN DO: APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. VLoeschdat = DATE(INTEGER(SUBSTRING(Linktext,04,02)), INTEGER(SUBSTRING(Linktext,01,02)), INTEGER(SUBSTRING(Linktext,07,04))). FOR EACH Besko NO-LOCK USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Best_Sta = VBest_Sta AND Besko.Buch_Dat <= VLoeschdat TRANSACTION: FOR EACH Besze USE-INDEX Besze-k1 WHERE Besze.Firma = Besko.Firma AND Besze.Besnr = Besko.Besnr: DELETE Besze. END. FOR EACH BesGebKo USE-INDEX BesGebKo-k1 WHERE BesGebKo.Firma = Besko.Firma AND BesGebKo.Besnr = Besko.Besnr: DELETE BesGebKo. END. FIND BBesko WHERE RECID(BBesko) = RECID(Besko). DELETE BBesko. END. RELEASE Besko. RELEASE Besze. RELEASE GebKontr. RUN OPEN_BESKO. LEAVE. END. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_BESKO F-Frame-Win PROCEDURE OPEN_BESKO : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF QOpen = TRUE THEN CLOSE QUERY Br_Besko. iLager = INTEGER(CB_Lager:SCREEN-VALUE) NO-ERROR. RUN CLEAR_BILDSCHIRM. CASE VSort: WHEN 1 THEN DO: OPEN QUERY Br_Besko FOR EACH Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Lager = iLager AND Besko.Best_Sta = VBest_Sta NO-LOCK BY Besko.Besnr DESCENDING. END. WHEN 2 THEN DO: OPEN QUERY Br_Besko FOR EACH Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Lager = iLager AND Besko.Best_Sta = VBest_Sta NO-LOCK BY Besko.Knr BY Besko.Lief_Datum DESCENDING. END. WHEN 3 THEN DO: OPEN QUERY Br_Besko FOR EACH Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Lager = iLager AND Besko.Best_Sta = VBest_Sta NO-LOCK BY Besko.Best_Datum DESCENDING. END. WHEN 4 THEN DO: OPEN QUERY Br_Besko FOR EACH Besko USE-INDEX Besko-k1 WHERE Besko.Firma = GVFirma AND Besko.Lager = iLager AND Besko.Best_Sta = VBest_Sta NO-LOCK BY Besko.Lief_Datum DESCENDING. END. END CASE. QOpen = TRUE. Vorhanden = FALSE. DO WHILE TRUE: Br_Besko:SET-REPOSITIONED-ROW(4, "ALWAYS"). IF NUM-RESULTS("Br_Besko":U) = ? THEN LEAVE. IF NUM-RESULTS("Br_Besko":U) = 0 THEN LEAVE. Vorhanden = TRUE. LEAVE. END. IF NOT FNeuMut THEN DO: IF Vorhanden THEN APPLY 'VALUE-CHANGED' TO Br_Besko. APPLY 'ENTRY' TO Br_Besko. END. FNeuMut = FALSE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records F-Frame-Win _ADM-SEND-RECORDS PROCEDURE send-records : /*------------------------------------------------------------------------------ Purpose: Send record ROWID's for all tables used by this file. Parameters: see template/snd-head.i ------------------------------------------------------------------------------*/ /* Define variables needed by this internal procedure. */ {src/adm/template/snd-head.i} /* For each requested table, put it's ROWID in the output list. */ {src/adm/template/snd-list.i "Besko"} /* 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 FKurs AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF Besko.Kurs:SCREEN-VALUE = ? OR DECIMAL(Besko.Kurs:SCREEN-VALUE) = 0 THEN DO: APPLY 'ENTRY' TO Kurs. RETURN NO-APPLY. END. REPEAT TRANSACTION: FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = GVFirma AND Waehrung.FRW = VFRW NO-ERROR. IF AVAILABLE Waehrung THEN Besko.Faktor:SCREEN-VALUE = STRING(Waehrung.Faktor). ELSE DO: IF INTEGER(Besko.Faktor:SCREEN-VALUE) = 0 THEN DO: IF VFRW = 'LIT' THEN Besko.Faktor:SCREEN-VALUE = STRING(1000). ELSE Besko.Faktor:SCREEN-VALUE = STRING(1). END. END. FKurs = FALSE. FIND Besko WHERE RECID(Besko) = XRecid. ASSIGN {&List-3}. Besko.FRW = VFRW. IF Besko.Kurs:MODIFIED = TRUE THEN FKurs = TRUE. IF FKurs THEN DO: FOR EACH Besze OF Besko WHERE Besze.Artnr <> 0: ASSIGN Besze.FRW = Besko.Frw Besze.Kurs = Besko.Kurs Besze.Faktor = Besko.Faktor. Rundbetr = Besze.S_Preis_FRW * Besze.Kurs / Besze.Faktor. Besze.S_Preis = Rundbetr. Rundbetr = (Rundbetr * (100 - Besze.Rabatt) / 100) + Besze.Spesen. Besze.Preis = Rundbetr. END. END. RELEASE Besko. LEAVE. END. FIND Besko WHERE RECID(Besko) = XRecid NO-LOCK. LVBesnr = Besko.Besnr. LVLnr = Besko.Knr. Btn_Erfassen:LABEL = '&Neu'. Btn_Aendern:LABEL = '&Aendern'. ENABLE Btn_Loeschen Btn_Verschieben Btn_Excel CB_Lager. DISABLE {&List-3}. DISABLE CB_FRW. VUpdate = FALSE. VNeu = FALSE. IF NRecid = 0 THEN DO: APPLY 'VALUE-CHANGED' TO Br_Besko. APPLY 'ENTRY' TO Br_Besko. RETURN NO-APPLY. END. FOR EACH GebRueck WHERE GebRueck.Firma = GVFirma NO-LOCK TRANSACTION: CREATE BesGebKo. ASSIGN BesGebKo.Firma = GVFirma BesGebKo.Besnr = LVBesnr BesGebKo.Sort_Cd = GebRueck.Sort_Cd BesGebKo.Geb_Cd = GebRueck.Geb_Cd BesGebKo.Anz_1 = GebRueck.Anz_1 BesGebKo.Kto_Cd1 = GebRueck.Kto_Cd1 BesGebKo.Anz_2 = GebRueck.Anz_2 BesGebKo.Kto_Cd2 = GebRueck.Kto_Cd2 BesGebKo.Anz_3 = GebRueck.Anz_3 BesGebKo.Kto_Cd3 = GebRueck.Kto_Cd3. IF BesGebKo.Kto_Cd1 <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd1 NO-LOCK. BesGebKo.Wert_1 = GebKonto.Depot. END. IF BesGebKo.Kto_Cd2 <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd2 NO-LOCK. BesGebKo.Wert_2 = GebKonto.Depot. END. IF BesGebKo.Kto_Cd3 <> '' THEN DO: FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = GVFirma AND GebKonto.Geb_Cd = BesGebKo.Kto_Cd3 NO-LOCK. BesGebKo.Wert_3 = GebKonto.Depot. END. END. NRecid = 0. FNeuMut = TRUE. RUN OPEN_BESKO. REPOSITION Br_Besko TO RECID XRecid. APPLY 'VALUE-CHANGED' TO Br_Besko. APPLY 'ENTRY' TO Br_Besko. RETURN NO-APPLY. END. 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_Besko IN FRAME {&FRAME-NAME}. RETURN. END. WHEN 'first-record' THEN DO: APPLY 'ROW-DISPLAY' TO Br_Besko IN FRAME {&FRAME-NAME}. RETURN. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION isAlleVerbucht F-Frame-Win FUNCTION isAlleVerbucht RETURNS LOGICAL ( ipcFirma AS CHAR, ipiBesnr AS INT ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ lVerbucht = TRUE. FOR EACH Besze NO-LOCK WHERE Besze.Firma = ipcFirma AND Besze.Besnr = ipiBesnr: FIND FIRST Artbw NO-LOCK WHERE Artbw.Firma = Besze.Firma AND Artbw.Artnr = Besze.Artnr AND Artbw.Inhalt = Besze.Inhalt AND Artbw.Jahr = Besze.Jahr AND Artbw.Tr_Art = 11 AND Artbw.Aufnr = Besze.Besnr NO-ERROR. IF NOT AVAILABLE Artbw THEN DO: lVerbucht = FALSE. LEAVE. END. END. RETURN lVerbucht. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME