&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW {adecomm/appserv.i} /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE RowObject NO-UNDO {"d-besze.i"}. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin /*------------------------------------------------------------------------ File: Description: from viewer.w - Template for SmartDataViewer objects Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* 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 ************************** */ /* Komma-Trennzeichen */ /* Keyfelder werden beim Mutieren nicht "Enabled" */ &Scoped-define ERSTES_FELD F_Artnr &Scoped-define LETZTES_FELD Aktion &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr &Scoped-define NUR_LESEN Bez1,Bez2,Firma,Besnr,Preis,S_Preis,Alter_Listen_EP,L_EP_FRW,L_EP,lLotnr,lVerfall,S_Artnr &Scoped-define DISABLE_1 S_Preis_Frw,Rabatt,ZusRab,Spesen,Aktion &Scoped-define DISABLE_2 GGeb_Me,VGeb_Me,KGeb_Me,GGeb_EG,VGeb_EG,KGeb_EG &Scoped-define KOMMENTAR S_Bez1,S_Bez2 { incl/viwdefinition.i } DEFINE VARIABLE iStatus AS INTEGER NO-UNDO. DEFINE VARIABLE nTotale AS DECIMAL NO-UNDO EXTENT 10. DEFINE VARIABLE lNew AS LOGICAL NO-UNDO. DEFINE VARIABLE lLeave AS LOG NO-UNDO. DEFINE VARIABLE lVorEntry AS LOG NO-UNDO. DEFINE VARIABLE iLKY AS INTEGER NO-UNDO. DEFINE VARIABLE hLastField AS HANDLE NO-UNDO. DEFINE VARIABLE cAktRowId AS CHARACTER NO-UNDO. DEFINE VARIABLE lALT-F AS LOGICAL NO-UNDO INIT FALSE. DEFINE VARIABLE hFocus AS WIDGET-HANDLE NO-UNDO. DEFINE VARIABLE cFrwLief AS CHARACTER NO-UNDO. DEFINE VARIABLE nKursLief AS DECIMAL NO-UNDO DECIMALS 4. DEFINE TEMP-TABLE tBesko LIKE Besko. DEFINE TEMP-TABLE tBesze LIKE Besze FIELD GGebinde AS CHARACTER FIELD VGebinde AS CHARACTER FIELD kGebinde AS CHARACTER FIELD iStatus AS INTEGER INIT 0. DEFINE VARIABLE htBesze AS HANDLE NO-UNDO. htBesze = TEMP-TABLE tBesze:DEFAULT-BUFFER-HANDLE. DEFINE BUFFER bArtst FOR Artst. {src/adm2/widgetprto.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDataViewer &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER FRAME &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target /* Include file with RowObject temp-table definition */ &Scoped-define DATA-FIELD-DEFS "d-besze.i" /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME F-Main /* Standard List Definitions */ &Scoped-Define ENABLED-FIELDS RowObject.Inhalt RowObject.Jahr ~ RowObject.S_Artnr RowObject.S_Bez1 RowObject.S_Bez2 RowObject.GGeb_Me ~ RowObject.Bez1 RowObject.VGeb_Me RowObject.KGeb_Me RowObject.S_Preis_FRW ~ RowObject.lVerfall RowObject.Rabatt RowObject.lLotnr RowObject.ZusRab ~ RowObject.Spesen RowObject.Aktion RowObject.Bez2 RowObject.GGeb_EG ~ RowObject.VGeb_EG RowObject.KGeb_EG RowObject.MRuek RowObject.Preis ~ RowObject.S_Preis RowObject.Alter_Listen_EP RowObject.L_EP_FRW ~ RowObject.L_EP RowObject.Netto_Bas RowObject.Spesen_Bas &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS F_Artnr RECT-2 RECT-3 RECT-4 &Scoped-Define DISPLAYED-FIELDS RowObject.Inhalt RowObject.Jahr ~ RowObject.S_Artnr RowObject.S_Bez1 RowObject.S_Bez2 RowObject.GGeb_Me ~ RowObject.Bez1 RowObject.VGeb_Me RowObject.KGeb_Me RowObject.S_Preis_FRW ~ RowObject.lVerfall RowObject.Rabatt RowObject.lLotnr RowObject.ZusRab ~ RowObject.Besnr RowObject.Firma RowObject.Spesen RowObject.Aktion ~ RowObject.FRW RowObject.MGeli RowObject.Kurs RowObject.Pos ~ RowObject.VGeb_Cd RowObject.KGeb_Cd RowObject.Artnr RowObject.GGeb_Cd ~ RowObject.MBest RowObject.Eingang RowObject.Bez2 RowObject.GGebinde ~ RowObject.VGebinde RowObject.KGebinde RowObject.GGeb_EG RowObject.VGeb_EG ~ RowObject.KGeb_EG RowObject.MRuek RowObject.Preis RowObject.S_Preis ~ RowObject.Alter_Listen_EP RowObject.L_EP_FRW RowObject.L_EP ~ RowObject.Bestand RowObject.Netto RowObject.Netto_Bas RowObject.SpesenBetr ~ RowObject.Spesen_Bas &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS F_Artnr CB_Waehrung /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-4 RowObject.GGeb_EG RowObject.VGeb_EG RowObject.KGeb_EG &Scoped-define List-5 RowObject.S_Bez1 RowObject.S_Bez2 RowObject.GGeb_Me ~ RowObject.VGeb_Me RowObject.KGeb_Me &Scoped-define List-6 RowObject.S_Preis_FRW RowObject.Rabatt ~ RowObject.ZusRab RowObject.Spesen RowObject.Aktion RowObject.Preis /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getArtikel vTableWin FUNCTION getArtikel RETURNS RECID ( ipiArt AS INTEGER, ipiRecid AS RECID, ipiArtnr AS INTEGER, ipiInhalt AS INTEGER, ipiJahr AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE VARIABLE CB_Waehrung AS CHARACTER FORMAT "X(256)":U LABEL "Währung" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "X(256)":U LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-2 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 204 BY 13.33. DEFINE RECTANGLE RECT-3 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 204 BY .1. DEFINE RECTANGLE RECT-4 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 204 BY .1. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main F_Artnr AT ROW 1.52 COL 9 COLON-ALIGNED WIDGET-ID 114 RowObject.Inhalt AT ROW 1.52 COL 24 COLON-ALIGNED NO-LABEL WIDGET-ID 16 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Jahr AT ROW 1.52 COL 33 COLON-ALIGNED NO-LABEL WIDGET-ID 18 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.S_Artnr AT ROW 1.52 COL 92 COLON-ALIGNED WIDGET-ID 30 LABEL "Seine Artnr" VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 RowObject.S_Bez1 AT ROW 1.52 COL 114 COLON-ALIGNED WIDGET-ID 32 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 32 BY 1 BGCOLOR 15 RowObject.S_Bez2 AT ROW 2.52 COL 114 COLON-ALIGNED NO-LABEL WIDGET-ID 34 VIEW-AS FILL-IN NATIVE SIZE 32 BY 1 BGCOLOR 15 RowObject.GGeb_Me AT ROW 5 COL 60 COLON-ALIGNED NO-LABEL WIDGET-ID 66 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 RowObject.Bez1 AT ROW 1.52 COL 45 COLON-ALIGNED WIDGET-ID 10 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 32 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Me AT ROW 5 COL 97 COLON-ALIGNED NO-LABEL WIDGET-ID 74 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 RowObject.KGeb_Me AT ROW 5 COL 134 COLON-ALIGNED NO-LABEL WIDGET-ID 70 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 RowObject.S_Preis_FRW AT ROW 8 COL 18 COLON-ALIGNED WIDGET-ID 38 LABEL "Sein Preis FRW" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 RowObject.lVerfall AT ROW 1.52 COL 155 WIDGET-ID 84 LABEL "MHD" VIEW-AS TOGGLE-BOX SIZE 15 BY 1 NO-TAB-STOP RowObject.Rabatt AT ROW 8 COL 66.2 COLON-ALIGNED WIDGET-ID 26 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 RowObject.lLotnr AT ROW 1.52 COL 175 WIDGET-ID 82 LABEL "Lot/Charge" VIEW-AS TOGGLE-BOX SIZE 16 BY 1 NO-TAB-STOP RowObject.ZusRab AT ROW 8 COL 105 COLON-ALIGNED WIDGET-ID 62 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 RowObject.Besnr AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 8 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Firma AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 14 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Spesen AT ROW 8 COL 133 COLON-ALIGNED WIDGET-ID 28 LABEL "Spesen %" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 RowObject.Aktion AT ROW 8 COL 181 WIDGET-ID 2 LABEL "Aktion" VIEW-AS TOGGLE-BOX SIZE 15 BY 1 RowObject.FRW AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 78 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MGeli AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 110 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */ DEFINE FRAME F-Main RowObject.Kurs AT ROW 2 COL 100 COLON-ALIGNED WIDGET-ID 80 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Pos AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 96 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Cd AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 106 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Cd AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 104 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Artnr AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 6 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.GGeb_Cd AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 102 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MBest AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 108 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Eingang AT ROW 2 COL 102 COLON-ALIGNED WIDGET-ID 122 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Bez2 AT ROW 2.52 COL 45 COLON-ALIGNED NO-LABEL WIDGET-ID 12 VIEW-AS FILL-IN NATIVE SIZE 32 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.GGebinde AT ROW 4 COL 78 RIGHT-ALIGNED NO-LABEL WIDGET-ID 64 VIEW-AS FILL-IN SIZE 17 BY 1 FONT 6 NO-TAB-STOP RowObject.VGebinde AT ROW 4 COL 115 RIGHT-ALIGNED NO-LABEL WIDGET-ID 72 VIEW-AS FILL-IN SIZE 17 BY 1 FONT 6 NO-TAB-STOP RowObject.KGebinde AT ROW 4 COL 152 RIGHT-ALIGNED NO-LABEL WIDGET-ID 68 VIEW-AS FILL-IN SIZE 17 BY 1 FONT 6 NO-TAB-STOP RowObject.GGeb_EG AT ROW 6 COL 60 COLON-ALIGNED NO-LABEL WIDGET-ID 116 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_EG AT ROW 6 COL 97 COLON-ALIGNED NO-LABEL WIDGET-ID 120 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_EG AT ROW 6 COL 134 COLON-ALIGNED NO-LABEL WIDGET-ID 118 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MRuek AT ROW 6 COL 170 COLON-ALIGNED WIDGET-ID 112 LABEL "Rückstand" FORMAT "zzz,zz9.99-" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 14 NO-TAB-STOP RowObject.Preis AT ROW 8 COL 153 COLON-ALIGNED WIDGET-ID 24 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.S_Preis AT ROW 10 COL 18 COLON-ALIGNED WIDGET-ID 36 LABEL "Sein Preis" FORMAT "zzz,zzz,zz9.9999" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 NO-TAB-STOP WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */ DEFINE FRAME F-Main RowObject.Alter_Listen_EP AT ROW 10 COL 58.4 COLON-ALIGNED WIDGET-ID 4 LABEL "Listen-EP alt" VIEW-AS FILL-IN NATIVE SIZE 19 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.L_EP_FRW AT ROW 10 COL 91.2 COLON-ALIGNED WIDGET-ID 22 LABEL "L-EP (Frw)" VIEW-AS FILL-IN NATIVE SIZE 25 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.L_EP AT ROW 10 COL 125 COLON-ALIGNED WIDGET-ID 20 LABEL "L-EP" VIEW-AS FILL-IN NATIVE SIZE 19 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Bestand AT ROW 12 COL 67.8 COLON-ALIGNED WIDGET-ID 76 VIEW-AS FILL-IN NATIVE SIZE 23 BY 1 BGCOLOR 14 NO-TAB-STOP CB_Waehrung AT ROW 12 COL 103.8 COLON-ALIGNED WIDGET-ID 90 NO-TAB-STOP RowObject.Netto AT ROW 12 COL 163 COLON-ALIGNED WIDGET-ID 86 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 14 NO-TAB-STOP RowObject.Netto_Bas AT ROW 12 COL 183 COLON-ALIGNED WIDGET-ID 92 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 14 NO-TAB-STOP RowObject.SpesenBetr AT ROW 13 COL 163 COLON-ALIGNED WIDGET-ID 88 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 14 NO-TAB-STOP RowObject.Spesen_Bas AT ROW 13 COL 183 COLON-ALIGNED WIDGET-ID 94 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 14 NO-TAB-STOP RECT-2 AT ROW 1.24 COL 2 WIDGET-ID 40 RECT-3 AT ROW 7.33 COL 2 WIDGET-ID 98 RECT-4 AT ROW 9.43 COL 2 WIDGET-ID 100 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataViewer Data Source: "d-besze.w" Allow: Basic,DB-Fields,Smart Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target Frames: 1 Add Fields to: Neither Other Settings: PERSISTENT-ONLY COMPILE APPSERVER Temp-Tables and Buffers: TABLE: RowObject D "?" NO-UNDO ADDITIONAL-FIELDS: {d-besze.i} END-FIELDS. END-TABLES. */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW vTableWin ASSIGN HEIGHT = 13.81 WIDTH = 206. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin /* ************************* Included-Libraries *********************** */ {src/adm2/viewer.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW vTableWin VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE FRAME-NAME Size-to-Fit Custom */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.Aktion IN FRAME F-Main 6 EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Alter_Listen_EP IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.Alter_Listen_EP:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Artnr:HIDDEN IN FRAME F-Main = TRUE RowObject.Artnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Besnr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Besnr:HIDDEN IN FRAME F-Main = TRUE RowObject.Besnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Bestand IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Bestand:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Bez1 IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.Bez1:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN RowObject.Bez2:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR COMBO-BOX CB_Waehrung IN FRAME F-Main NO-ENABLE */ /* SETTINGS FOR FILL-IN RowObject.Eingang IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Eingang:HIDDEN IN FRAME F-Main = TRUE RowObject.Eingang:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.FRW IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.FRW:HIDDEN IN FRAME F-Main = TRUE RowObject.FRW:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGebinde IN FRAME F-Main NO-ENABLE ALIGN-R EXP-LABEL */ ASSIGN RowObject.GGebinde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGeb_Cd IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.GGeb_Cd:HIDDEN IN FRAME F-Main = TRUE RowObject.GGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGeb_EG IN FRAME F-Main 4 */ ASSIGN RowObject.GGeb_EG:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGeb_Me IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.KGebinde IN FRAME F-Main NO-ENABLE ALIGN-R */ ASSIGN RowObject.KGebinde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_Cd IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.KGeb_Cd:HIDDEN IN FRAME F-Main = TRUE RowObject.KGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_EG IN FRAME F-Main 4 */ ASSIGN RowObject.KGeb_EG:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_Me IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.Kurs IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Kurs:HIDDEN IN FRAME F-Main = TRUE RowObject.Kurs:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR TOGGLE-BOX RowObject.lLotnr IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR TOGGLE-BOX RowObject.lVerfall IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.L_EP IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.L_EP:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.L_EP_FRW IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.L_EP_FRW:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.MBest IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.MBest:HIDDEN IN FRAME F-Main = TRUE RowObject.MBest:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.MGeli IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.MGeli:HIDDEN IN FRAME F-Main = TRUE RowObject.MGeli:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.MRuek IN FRAME F-Main EXP-LABEL EXP-FORMAT */ ASSIGN RowObject.MRuek:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Netto IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Netto:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Netto_Bas IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.Netto_Bas:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Pos IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Pos:HIDDEN IN FRAME F-Main = TRUE RowObject.Pos:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Preis IN FRAME F-Main 6 */ ASSIGN RowObject.Preis:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Rabatt IN FRAME F-Main 6 */ /* SETTINGS FOR FILL-IN RowObject.Spesen IN FRAME F-Main 6 EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.SpesenBetr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.SpesenBetr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Spesen_Bas IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.Spesen_Bas:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.S_Artnr IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.S_Artnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.S_Bez1 IN FRAME F-Main 5 EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.S_Bez2 IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.S_Preis IN FRAME F-Main EXP-LABEL EXP-FORMAT */ ASSIGN RowObject.S_Preis:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.S_Preis_FRW IN FRAME F-Main 6 EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.VGebinde IN FRAME F-Main NO-ENABLE ALIGN-R */ ASSIGN RowObject.VGebinde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_Cd IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.VGeb_Cd:HIDDEN IN FRAME F-Main = TRUE RowObject.VGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_EG IN FRAME F-Main 4 */ ASSIGN RowObject.VGeb_EG:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_Me IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.ZusRab IN FRAME F-Main 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME RowObject.Aktion &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Aktion vTableWin ON VALUE-CHANGED OF RowObject.Aktion IN FRAME F-Main /* Aktion */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN 'J' ELSE 'N'). IF lNew THEN SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN 'J' ELSE 'N'). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr vTableWin ON ALT-F OF F_Artnr IN FRAME F-Main /* Artikel */ DO: DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO. DEFINE VARIABLE cSuch AS CHARACTER NO-UNDO. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO. DEFINE BUFFER bBesko FOR Besko. IF NOT lNew THEN RETURN. iBesnr = INTEGER(rowObject.Besnr:SCREEN-VALUE). FIND bBesko NO-LOCK WHERE bBesko.Firma = Firma AND bBesko.Besnr = iBesnr NO-ERROR. iKnr = bBesko.Knr. cSuch = SUBSTITUTE('BEST,&1;&2', iKnr, F_Artnr:SCREEN-VALUE ). RUN 'g-suchen-artikel.w':U ( cSuch, OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: /* APPLY 'ENTRY' TO F_Artnr.*/ RETURN 'ERROR'. END. RUN ARTIKEL_DEFINIERT( iRecid, OUTPUT iRetVal ). IF iRetVal > 0 THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid. ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr) rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt) rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr) F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr). lALT-F = TRUE. APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.lLotnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lLotnr vTableWin ON VALUE-CHANGED OF RowObject.lLotnr IN FRAME F-Main /* Lot/Charge */ DO: SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE)). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.lVerfall &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.lVerfall vTableWin ON VALUE-CHANGED OF RowObject.lVerfall IN FRAME F-Main /* MHD */ DO: SELF:SCREEN-VALUE = (IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE)). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.S_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.S_Artnr vTableWin ON LEFT-MOUSE-DBLCLICK OF RowObject.S_Artnr IN FRAME F-Main /* Seine Artnr */ DO: SELF:READ-ONLY = FALSE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin /* *************************** Main Block *************************** */ { incl/viwmainblock.i } ON 'ENTRY' OF F_Artnr IN FRAME {&FRAME-NAME} DO: IF lNew THEN DO: SELF:SET-SELECTION (1, 9999). RETURN. END. IF FNeu THEN DO: APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. IF FMut THEN DO: APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. APPLY 'U1'. RETURN NO-APPLY. END. ON 'ENTRY' OF rowObject.Inhalt IN FRAME {&FRAME-NAME} DO: IF lNew THEN DO: SELF:SET-SELECTION (1, 9999). RETURN. END. IF FNeu THEN DO: APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. IF FMut THEN DO: APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. APPLY 'U1'. RETURN NO-APPLY. END. ON 'ENTRY' OF rowObject.Jahr IN FRAME {&FRAME-NAME} DO: IF lNew THEN DO: SELF:SET-SELECTION (1, 9999). RETURN. END. IF FNeu THEN DO: APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. IF FMut THEN DO: APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN NO-APPLY. END. APPLY 'U1'. RETURN NO-APPLY. END. ON 'ENTRY' OF rowObject.GGeb_Me IN FRAME {&FRAME-NAME} DO: IF NOT FMut THEN RETURN. FIND FIRST tBesko. IF tBesko.Best_Sta = 3 THEN DO: APPLY 'ENTRY' TO rowObject.S_Preis_FRW. RETURN NO-APPLY. END. DEFINE VARIABLE cGeb_Cd AS CHAR NO-UNDO. cGeb_Cd = rowObject.GGeb_Cd:SCREEN-VALUE. FIND GGebinde NO-LOCK WHERE GGebinde.FIrma = Firma AND GGebinde.Geb_Cd = cGeb_Cd NO-ERROR. IF NOT AVAILABLE GGebinde OR GGebinde.Inhalt = 0 THEN DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. END. ON 'VALUE-CHANGED':U OF FRAME {&FRAME-NAME} ANYWHERE DO: CASE SELF:NAME: WHEN 'S_Preis_Frw' OR WHEN 'Rabatt' OR WHEN 'ZusRab' OR WHEN 'Spesen' THEN DO: RUN RECHNE_PREIS. END. END CASE. END. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /************************ INTERNAL PROCEDURES ********************/ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin PROCEDURE addRecord : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE cRowId AS CHARACTER NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO. DEFINE VARIABLE lJa AS LOG NO-UNDO. DEFINE BUFFER bBesko FOR Besko. PUBLISH 'GET_CURRENT_BESKO' ( OUTPUT iRecid, OUTPUT iBesnr ). DO WITH FRAME {&FRAME-NAME}: IF iBesnr = 0 THEN DO: RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ). RUN TOOLBAR IN hKontainer ( 'CANCEL' ). RETURN NO-APPLY. END. END. FIND bBesko NO-LOCK WHERE bBesko.Firma = Firma AND bBesko.Besnr = iBesnr. IF bBesko.Best_Sta > 2 THEN DO: RELEASE bBesko. RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ). RUN TOOLBAR IN hKontainer ( 'CANCEL' ). RETURN NO-APPLY. END. EMPTY TEMP-TABLE tBesko. CREATE tBesko. BUFFER-COPY bBesko TO tBesko. lNew = TRUE. FNeu = TRUE. FMut = TRUE. FDisp = TRUE. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: EMPTY TEMP-TABLE tBesze. CREATE tBesze. ASSIGN tBesze.Firma = Firma tBesze.Besnr = iBesnr tBesze.Pos = 0 tBesze.Artnr = 0 tBesze.Inhalt = 0 tBesze.Jahr = 0 tBesze.iStatus = 0 tBesze.Frw = bBesko.Frw tBesze.Kurs = bBesko.Kurs tBesze.Faktor = bBesko.Faktor tBesze.Spesen = bBesko.Spesen tBesze.Rabatt = bBesko.Rabatt tBesze.ZusRab = bBesko.ZusRab tBesze.Best_Sta = bBesko.Best_Sta tBesze.Lager = bBesko.Lager. RUN TEMP_TABLE_TO_SCREEN ( htBesze ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT TRUE ). END. RELEASE bBesko. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL_DEFINIERT vTableWin PROCEDURE ARTIKEL_DEFINIERT : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER ipiRecid AS RECID NO-UNDO. DEFINE OUTPUT PARAMETER opiRetVal AS INTEGER NO-UNDO. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtLief FOR ArtLief. opiRetVal = 0. FIND bArtst NO-LOCK WHERE RECID(bArtst) = ipiRecid. IF NOT bArtst.Aktiv THEN DO WITH FRAME {&FRAME-NAME}: opiRetVal = 1052. DYNAMIC-FUNCTION('fehlerMeldung':U, opiRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO F_Artnr. RETURN. END. IF bArtst.Ausverk = 9 THEN DO WITH FRAME {&FRAME-NAME}: opiRetVal = 1053. DYNAMIC-FUNCTION('fehlerMeldung':U, opiRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO F_Artnr. RETURN. END. FIND FIRST tBesko. FIND FIRST bArtLief NO-LOCK WHERE bArtlief.Firma = tBesko.Firma AND bArtLief.Artnr = bArtst.Artnr AND bArtLief.Inhalt = bArtst.Inhalt AND bArtLief.Jahr = bArtst.Jahr AND bArtLief.Knr = tBesko.Knr NO-ERROR. IF NOT AVAILABLE bArtLief THEN DO WITH FRAME {&FRAME-NAME}: opiRetVal = 218. DYNAMIC-FUNCTION('fehlerMeldung':U, opiRetVal, STRING(tBesko.Knr) ) NO-ERROR. RETURN NO-APPLY. END. FIND FIRST tBesze. ASSIGN tBesze.Artnr = bArtst.Artnr tBesze.Inhalt = bArtst.Inhalt tBesze.Jahr = bArtst.Jahr tBesze.iStatus = 0 tBesze.lLotnr = bArtst.lLotnr tBesze.lVerfall = bArtst.lVerfall. RELEASE bArtst. RELEASE bArtLief. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin PROCEDURE cancelRecord : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ FCancel = TRUE. lNew = FALSE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin PROCEDURE copyRecord : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ RUN TOOLBAR IN hKontainer ('ABBRUCH') NO-ERROR. /* FNeu = TRUE. */ /* FMut = TRUE. */ /* FCopy = TRUE. */ /* FDisp = TRUE. */ /* */ /* RUN SUPER. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin PROCEDURE deleteRecord : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE Ja AS LOG NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO. iRecid = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR. RETURN NO-APPLY. END. Ja = TRUE. FIND Besze NO-LOCK WHERE RECID(Besze) = iRecid. IF Besze.Best_Sta > 2 THEN Ja = FALSE. iBesnr = Besze.Besnr. FIND FIRST BesEing OF Besze NO-LOCK NO-ERROR. IF AVAILABLE BesEing THEN Ja = FALSE. IF NOT Ja THEN DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR. RETURN NO-APPLY. END. RELEASE Besze. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ). IF NOT Ja THEN DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR. RETURN NO-APPLY. END. REPEAT TRANSACTION ON ERROR UNDO, LEAVE: RUN SUPER. LEAVE. END. DYNAMIC-FUNCTION ('calculateBeskoTotal':U, Firma, iBesnr, OUTPUT nTotale ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin PROCEDURE disableFields : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: END. RUN SUPER( INPUT pcFieldType). IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ). IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO: RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ). RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&DISABLE_1}' , INPUT 15 ). END. DO WITH FRAME {&FRAME-NAME}: END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _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 displayFields vTableWin PROCEDURE displayFields : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO. IF NOT FDisp THEN DO: FDisp = TRUE. RETURN. END. IF FCancel THEN pcColValues = OldColValues. IF NOT FNeu THEN OldColValues = pcColValues. cAktRowid = ENTRY(01, pcColValues, CHR(01)). OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U). IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ). DO WHILE FMut WITH FRAME {&FRAME-NAME}: FIND FIRST tBesko NO-ERROR. rowObject.FRW :SCREEN-VALUE = tBesko.FRW. rowObject.Kurs :SCREEN-VALUE = STRING(tBesko.Kurs). LEAVE. END. RUN SUPER( INPUT pcColValues). FCancel = FALSE. DO WITH FRAME {&FRAME-NAME}: F_Artnr:SCREEN-VALUE = STRING(INTEGER(rowObject.Artnr:SCREEN-VALUE),'zzzzzzz'). IF rowObject.S_Bez1:SCREEN-VALUE = '' THEN rowObject.S_Bez1:SCREEN-VALUE = rowObject.Bez1:SCREEN-VALUE. IF rowObject.S_Bez2:SCREEN-VALUE = '' THEN rowObject.S_Bez2:SCREEN-VALUE = rowObject.Bez2:SCREEN-VALUE. CB_Waehrung:SCREEN-VALUE = rowObject.Frw:SCREEN-VALUE. rowObject.S_Artnr:READ-ONLY = TRUE. END. IF NOT FMut THEN RETURN. FIND FIRST tBesko. DO WITH FRAME {&FRAME-NAME}: CASE tBesko.Best_Sta: WHEN 3 THEN APPLY 'ENTRY' TO rowObject.S_Preis_Frw. END CASE. END. RETURN . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin PROCEDURE enableFields : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ iStatus = DYNAMIC-FUNCTION ('getStatus':U IN hKontainer ) NO-ERROR. /* RUN SUPER. */ IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ). IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ). END. CASE iStatus: WHEN 1 THEN RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&DISABLE_1}', INPUT TRUE ). WHEN 2 THEN RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&DISABLE_1}', INPUT TRUE ). END. IF FNeu THEN RETURN. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO: RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin PROCEDURE enableObject : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DO WITH FRAME {&FRAME-NAME}: RUN COMBO_FRW ( CB_Waehrung:HANDLE ) NO-ERROR. END. RUN SUPER. { incl/viwenableobject.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin PROCEDURE ENTRY_FELD_TEST : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ { incl/viwentryfeldtest.i } RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin PROCEDURE FEHLWERTE : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT-OUTPUT PARAMETER pcColValues AS CHARACTER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. IF FCancel THEN RETURN. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}: /* i1 = LOOKUP('Feld', oldColList, ',') + 1. */ /* ENTRY(i1, pcColValues, CHR(1)) = 'Fehlwert' NO-ERROR. */ END. IF FCopy THEN DO: END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_ARTNR vTableWin PROCEDURE LEAVE_ARTNR : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE cSuch AS CHARACTER NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. FIND FIRST tBesko. IF lALT-F THEN DO WITH FRAME {&FRAME-NAME}: FIND FIRST tBesze. IF FNeu THEN tBesze.iStatus = 0. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR. FIND FIRST tBesze. RUN TEMP_TABLE_TO_SCREEN ( htBesze ). lNew = FALSE. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ). APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN 'APPLY'. END. DO WITH FRAME {&FRAME-NAME}: /* ---------------------------------------------------------- */ /* Artikelnummer = Leer -> Nur Text-Eingabe */ /* und Feld mit Tab verlassen */ /* ---------------------------------------------------------- */ IF ipHandle:SCREEN-VALUE = '' AND iLKY = 09 /* TAB */ THEN DO WITH FRAME {&FRAME-NAME}: EMPTY TEMP-TABLE tBesze. CREATE tBesze. ASSIGN tBesze.Firma = Firma tBesze.Besnr = tBesko.Besnr tBesze.Pos = 0 tBesze.Artnr = 0 tBesze.Inhalt = 0 tBesze.Jahr = 0. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&KOMMENTAR}' , INPUT FALSE ). iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR . FIND FIRST tBesze. RUN TEMP_TABLE_TO_SCREEN ( htBesze ) NO-ERROR. lNew = FALSE. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&KOMMENTAR}' , INPUT FALSE ). APPLY 'ENTRY' TO rowObject.S_Bez1. RETURN 'APPLY'. END. FIND FIRST tBesze. ASSIGN tBesze.Firma = Firma tBesze.Besnr = tBesko.Besnr tBesze.Pos = 0 tBesze.Artnr = 0 tBesze.Inhalt = 0 tBesze.Jahr = 0 tBesze.iStatus = 0. A000: REPEAT WHILE TRUE: iArtnr = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. IF iArtnr = 0 THEN LEAVE. FOR EACH bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = iArtnr AND bArtst.Aktiv = TRUE AND bArtst.Ausverk < 9 : iAnzArt = iAnzArt + 1. IF iAnzArt > 1 THEN LEAVE A000. ASSIGN iRecid = RECID(bArtst). RELEASE bArtst. END. LEAVE. END. DO WHILE TRUE: IF iAnzArt = 1 OR (iAnzArt > 0 AND iLKY = 9) THEN /* 09 = TAB - Key */ DO: RUN ARTIKEL_DEFINIERT ( iRecid, OUTPUT iRetVal ). IF iRetVal > 0 THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. LEAVE. END. cSuch = SUBSTITUTE('BEST,&1;&2', tBesko.Knr, F_Artnr:SCREEN-VALUE ). RUN 'g-suchen-artikel.w':U ( cSuch, OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. iAnzArt = 1. END. lALT-F = FALSE. FIND FIRST tBesze. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR. FIND FIRST tBesze. RUN TEMP_TABLE_TO_SCREEN ( htBesze ). ipHandle:SCREEN-VALUE = STRING(tBesze.Artnr). DO WITH FRAME {&FRAME-NAME}: IF iLKY = 09 THEN DO: APPLY 'ENTRY' TO rowObject.Inhalt. RETURN 'APPLY'. END. lNew = FALSE. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ). APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN 'APPLY'. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin PROCEDURE LEAVE_FELD_TEST : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ { incl/viwleavefeldtest.i } FeldName = ipHandle:NAME. hLastField = hLEAVE. FIND FIRST tBesze. DO WHILE FNeu WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'F_Artnr' THEN DO: RUN LEAVE_ARTNR (SELF:HANDLE). RETURN RETURN-VALUE. END. WHEN 'Inhalt' THEN DO: /* IF LKY = 509 THEN RETURN. /* BACK-TAB */*/ RUN LEAVE_INHALT (SELF:HANDLE). RETURN RETURN-VALUE. END. WHEN 'Jahr' THEN DO: /* IF LKY = 509 THEN RETURN. /* BACK-TAB */*/ RUN LEAVE_JAHR (SELF:HANDLE). RETURN RETURN-VALUE. END. END CASE. LEAVE. END. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF NOT ipHandle:MODIFIED THEN LEAVE. CASE FeldName: WHEN 'GGeb_Me' THEN RUN RECHNE_MENGE ( 'GGeb' ). WHEN 'VGeb_Me' THEN RUN RECHNE_MENGE ( 'VGeb' ). WHEN 'S_Preis_FRW' THEN RUN RECHNE_PREIS. WHEN 'Rabatt' THEN RUN RECHNE_PREIS. WHEN 'ZusRab' THEN RUN RECHNE_PREIS. WHEN 'Spesen' THEN RUN RECHNE_PREIS. END CASE. LEAVE. END. CASE iStatus: WHEN 1 THEN DO: IF FeldName = 'KGeb_Me' THEN DO: DO WHILE TRUE: IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE. RETURN 'APPLY'. END. APPLY 'ALT-S'. RETURN 'APPLY'. END. END. END. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO: DO WHILE TRUE: IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE. RETURN ''. END. APPLY 'ALT-S'. RETURN 'APPLY'. END. IF tBesze.Artnr = 0 AND LOOKUP(FeldName, '{&KOMMENTAR}', ',') = NUM-ENTRIES('{&KOMMENTAR}') THEN DO: DO WHILE TRUE: IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE. RETURN ''. END. APPLY 'ALT-S'. RETURN 'APPLY'. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_INHALT vTableWin PROCEDURE LEAVE_INHALT : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER INIT 0 NO-UNDO. DEFINE VARIABLE cSuch AS CHARACTER NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. FIND FIRST tBesko. DO WITH FRAME {&FRAME-NAME}: FIND FIRST tBesze. ASSIGN tBesze.Firma = Firma tBesze.Besnr = tBesko.Besnr tBesze.Pos = 0 tBesze.Artnr = 0 tBesze.Inhalt = 0 tBesze.Jahr = 0 tBesze.iStatus = 0. A000: REPEAT WHILE TRUE: iArtnr = INTEGER(F_Artnr :SCREEN-VALUE) NO-ERROR. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. FOR EACH bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = iArtnr AND bArtst.Inhalt = iInhalt AND bArtst.Aktiv = TRUE AND bArtst.Ausverk < 9 : iAnzArt = iAnzArt + 1. IF iAnzArt > 1 THEN LEAVE A000. ASSIGN iRecid = RECID(bArtst). RELEASE bArtst. END. LEAVE. END. DO WHILE TRUE: IF iAnzArt = 1 OR (iAnzArt > 0 AND iLKY = 9) THEN /* 09 = TAB - Key */ DO: RUN ARTIKEL_DEFINIERT ( iRecid, OUTPUT iRetVal ). IF iRetVal > 0 THEN DO: APPLY 'ENTRY' TO rowObject.Inhalt. RETURN 'APPLY'. END. LEAVE. END. cSuch = SUBSTITUTE('BEST,&1;&2', tBesko.Knr, (F_Artnr:SCREEN-VALUE + ' ' + rowObject.Inhalt:SCREEN-VALUE) ). RUN 'g-suchen-artikel.w':U ( cSuch, OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO rowObject.Inhalt. RETURN 'APPLY'. END. iAnzArt = 1. END. lALT-F = FALSE. FIND FIRST tBesze. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR. FIND FIRST tBesze. RUN TEMP_TABLE_TO_SCREEN ( htBesze ). ipHandle:SCREEN-VALUE = STRING(tBesze.Inhalt). DO WITH FRAME {&FRAME-NAME}: IF iLKY = 09 THEN DO: APPLY 'ENTRY' TO rowObject.Jahr. RETURN 'APPLY'. END. lNew = FALSE. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ). APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN 'APPLY'. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_JAHR vTableWin PROCEDURE LEAVE_JAHR : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO. DEFINE VARIABLE iAnzArt AS INTEGER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. FIND FIRST tBesko. DO WITH FRAME {&FRAME-NAME}: iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. A000: REPEAT WHILE TRUE: iArtnr = INTEGER(F_Artnr :SCREEN-VALUE) NO-ERROR. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) NO-ERROR. iJahr = INTEGER(ipHandle :SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. FOR EACH bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = iArtnr AND bArtst.Inhalt = iInhalt AND bArtst.Jahr = iJahr AND bArtst.Aktiv = TRUE AND bArtst.Ausverk < 9 : iAnzArt = iAnzArt + 1. IF iAnzArt > 1 THEN LEAVE A000. ASSIGN iRecid = RECID(bArtst). RELEASE bArtst. END. LEAVE. END. DO WHILE TRUE: IF iAnzArt = 1 THEN LEAVE. APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid. ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr) rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt) rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr) F_Artnr :SCREEN-VALUE = STRING(bArtst.Artnr). FIND FIRST tBesze NO-ERROR. ASSIGN tBesze.Firma = Firma tBesze.Besnr = tBesko.Besnr tBesze.Artnr = bArtst.Artnr tBesze.Inhalt = bArtst.Inhalt tBesze.Jahr = bArtst.Jahr . RELEASE bArtst. iRetVal = DYNAMIC-FUNCTION ( 'fillBesze':U, INPUT-OUTPUT htBesze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. FIND FIRST tBesze. RUN TEMP_TABLE_TO_SCREEN ( htBesze ). DO WITH FRAME {&FRAME-NAME}: lNew = FALSE. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT FALSE ). APPLY 'ENTRY' TO rowObject.GGeb_Me. RETURN 'APPLY'. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNE_MENGE vTableWin PROCEDURE RECHNE_MENGE : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER ipcCode AS CHARACTER NO-UNDO. DEFINE VARIABLE cGeb_Cd AS CHARACTER NO-UNDO. DEFINE VARIABLE iGGeb_Me AS INTEGER NO-UNDO. DEFINE VARIABLE iVGeb_Me AS INTEGER NO-UNDO. DEFINE VARIABLE iKGeb_Me AS INTEGER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: iGGeb_Me = INTEGER(rowObject.GGeb_Me:SCREEN-VALUE). iVGeb_Me = INTEGER(rowObject.VGeb_Me:SCREEN-VALUE). iKGeb_Me = INTEGER(rowObject.KGeb_Me:SCREEN-VALUE). CASE ipcCode: WHEN 'GGeb' THEN DO: IF iGGeb_Me = 0 THEN RETURN. cGeb_Cd = rowObject.GGeb_Cd:SCREEN-VALUE. FIND GGebinde NO-LOCK WHERE GGebinde.Firma = Firma AND GGebinde.Geb_Cd = cGeb_Cd. iVGeb_Me = iGGeb_Me * GGebinde.Inhalt. cGeb_Cd = rowObject.VGeb_Cd:SCREEN-VALUE. FIND VGebinde NO-LOCK WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = cGeb_Cd. iKGeb_Me = iVGeb_Me * VGebinde.Inhalt. END. WHEN 'VGeb' THEN DO: IF iVGeb_Me = 0 THEN RETURN. cGeb_Cd = rowObject.VGeb_Cd:SCREEN-VALUE. FIND VGebinde NO-LOCK WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = cGeb_Cd. iKGeb_Me = iVGeb_Me * VGebinde.Inhalt. END. END. ASSIGN rowObject.GGeb_Me:SCREEN-VALUE = STRING(iGGeb_Me) rowObject.VGeb_Me:SCREEN-VALUE = STRING(iVGeb_Me) rowObject.KGeb_Me:SCREEN-VALUE = STRING(iKGeb_Me). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RECHNE_PREIS vTableWin PROCEDURE RECHNE_PREIS : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE nS_Preis_Frw AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nRabatt AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nZusRab AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nSpesen AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nPreis AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nKurs AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE nS_Preis AS DECIMAL NO-UNDO DECIMALS 4. FIND FIRST tBesko. nKurs = tBesko.Kurs. DO WITH FRAME {&FRAME-NAME}: nS_Preis_Frw = DECIMAL(rowObject.S_Preis_Frw:SCREEN-VALUE). nRabatt = DECIMAL(rowObject.Rabatt :SCREEN-VALUE). nZusRab = DECIMAL(rowObject.ZusRab :SCREEN-VALUE). nSpesen = DECIMAL(rowObject.Spesen :SCREEN-VALUE). END. nPreis = nS_Preis_Frw * (100 - nRabatt) / 100 * (100 - nZusRab) / 100 * (1 + (nSpesen / 100)). nS_Preis = nS_Preis_Frw * nKurs. IF tBesko.Frw <> cFrwLief THEN nS_Preis = nS_Preis / nKursLief. DO WITH FRAME {&FRAME-NAME}: ASSIGN rowObject.Preis :SCREEN-VALUE = STRING(nPreis) rowObject.S_Preis:SCREEN-VALUE = STRING(nS_Preis). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REFRESH_BESZE vTableWin PROCEDURE REFRESH_BESZE : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RUN refreshRow IN hDaten NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin PROCEDURE RETURN_FELD : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ { incl/viwreturnfeld.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEMP_TABLE_TO_SCREEN vTableWin PROCEDURE TEMP_TABLE_TO_SCREEN : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE cColList AS CHARACTER NO-UNDO. DEFINE VARIABLE cColValues AS CHARACTER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO. cColList = DYNAMIC-FUNCTION('getDisplayedFields':U). ii = NUM-ENTRIES(cColList, ',') + 1. cColValues = FILL(CHR(01), ii). DO ii = 1 TO ipHandle:NUM-FIELDS: cFeld = ipHandle:BUFFER-FIELD(ii):NAME. i1 = LOOKUP(cFeld, cColList, ',') + 1 NO-ERROR. IF i1 < 2 THEN NEXT. cInhalt = ipHandle:BUFFER-FIELD(ii):BUFFER-VALUE. ENTRY(i1, cColValues, CHR(1)) = (IF cInhalt = ? THEN '' ELSE cInhalt) NO-ERROR. END. ENTRY(1, cColValues, CHR(01)) = cAktRowId. RUN displayFields ( cColValues ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_EINGABEN vTableWin PROCEDURE TEST_EINGABEN : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE OUTPUT PARAMETER opJa AS LOG NO-UNDO. DEFINE VARIABLE eHandle AS HANDLE NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE iNummer AS INTEGER NO-UNDO. DEFINE VARIABLE nBestellt AS DECIMAL NO-UNDO. DEFINE VARIABLE nGeliefert AS DECIMAL NO-UNDO. DEFINE VARIABLE nEingang AS DECIMAL NO-UNDO. DEFINE VARIABLE nRueckstand AS DECIMAL NO-UNDO. opJa = FALSE. eHandle = ?. IF NOT FMut THEN RETURN. IF lNew THEN RETURN. AAA000: DO WHILE TRUE WITH FRAME {&FRAME-NAME}: nBestellt = DECIMAL(rowObject.MBest :SCREEN-VALUE). nGeliefert = DECIMAL(rowObject.MGeli :SCREEN-VALUE). nEingang = DECIMAL(rowObject.Eingang:SCREEN-VALUE). nRueckstand = nBestellt - nGeliefert - nEingang. rowObject.MRuek:SCREEN-VALUE = STRING(nRueckstand). LEAVE. END. IF VALID-HANDLE(eHandle) THEN DO: APPLY 'ENTRY' TO eHandle. RETURN NO-APPLY. END. opJa = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin PROCEDURE updateMode : /*------------------------------------------------------------------------------*/ /*Purpose: Super Override */ /*Parameters: */ /*Notes: */ /*------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE BUFFER bBesko FOR Besko. DEFINE BUFFER bBesze FOR Besze. CASE pcMode: WHEN 'updateBegin' THEN DO: iRecid = DYNAMIC-FUNCTION ('getCurrentRecid':U IN hDaten) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN. FIND bBesze NO-LOCK WHERE RECID(bBesze) = iRecid. EMPTY TEMP-TABLE tBesze. CREATE tBesze. BUFFER-COPY bBesze TO tBesze. FIND bBesko NO-LOCK WHERE bBesko.Firma = Firma AND bBesko.Besnr = bBesze.Besnr NO-ERROR. EMPTY TEMP-TABLE tBesko. CREATE tBesko. BUFFER-COPY bBesko TO tBesko. RELEASE bBesko. RELEASE bBesze. END. WHEN 'updateEnd' THEN DO: END. END. RUN SUPER( INPUT pcMode). CASE pcMode: WHEN 'updateBegin' THEN DO: FMut = TRUE. FIND FIRST tBesko. IF tBesko.Best_Sta = 3 THEN DO WITH FRAME {&FRAME-NAME}: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}' , INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}' , INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}' , INPUT FALSE ). FIND Liefst NO-LOCK WHERE Liefst.Firma = Firma AND Liefst.Knr = tBesko.Knr. cFrwLief = Liefst.Frw. FIND Waehrung NO-LOCK WHERE Waehrung.Firma = Firma AND Waehrung.Frw = cFrwLief. nKursLief = Waehrung.Kurs. RELEASE Liefst. RELEASE Waehrung. END. END. WHEN 'updateEnd' THEN DO: FNeu = FALSE. FMut = FALSE. FCopy = FALSE. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin PROCEDURE updateRecord : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO. DEFINE VARIABLE iPos AS INTEGER NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE hbFeld AS HANDLE NO-UNDO. DEFINE VARIABLE hbBesze AS HANDLE NO-UNDO. DEFINE BUFFER bBesze FOR Besze . DEFINE BUFFER bArtLief FOR ArtLief. FIND FIRST tBesko. DO WITH FRAME {&FRAME-NAME}: IF FNeu THEN DO: DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE). END. iBesnr = INTEGER(rowObject.Besnr:SCREEN-VALUE). iPos = INTEGER(rowObject.Pos :SCREEN-VALUE). rowObject.MBest:SCREEN-VALUE = rowObject.KGeb_Me:SCREEN-VALUE. END. FNeu = FALSE. FCopy = FALSE. REPEAT TRANSACTION: RUN SUPER. FIND FIRST tBesze. FIND bBesze WHERE bBesze.Firma = Firma AND bBesze.Besnr = iBesnr AND bBesze.Pos = iPos. ASSIGN bBesze.S_Artnr = RowObject.S_Artnr:SCREEN-VALUE bBesze.S_Bez1 = RowObject.S_Bez1 :SCREEN-VALUE bBesze.S_Bez2 = RowObject.S_Bez2 :SCREEN-VALUE. iRecid = RECID(bBesze). hbBesze = BUFFER bBesze:HANDLE. /* ------------------------------------------------------ */ /* Alle Felder auf Buffer, welche nicht auf Screen sind */ /* in die Tabelle Besze schreiben */ /* ------------------------------------------------------ */ DO ii = 1 TO htBesze:NUM-FIELDS: hFeld = htBesze:BUFFER-FIELD(ii) NO-ERROR. IF hFeld:EXTENT > 0 THEN NEXT. cFeld = 'rowObject.' + hFeld:NAME. IF LOOKUP(cFeld, '{&DISPLAYED-FIELDS}', ' ') > 0 THEN NEXT. cFeld = ENTRY(2, cFeld, '.'). hbFeld = hbBesze:BUFFER-FIELD(cFeld) NO-ERROR. IF NOT VALID-HANDLE (hbFeld) THEN NEXT. hbFeld:BUFFER-VALUE = hFeld:BUFFER-VALUE. END. FIND bArtLief WHERE bArtLief.Firma = tBesko.Firma AND bArtLief.Knr = tBesko.Knr AND bArtLief.Artnr = bBesze.Artnr AND bArtLief.Inhalt = bBesze.Inhalt AND bArtLief.Jahr = bBesze.Jahr. ASSIGN bArtLief.S_Artnr = RowObject.S_Artnr:SCREEN-VALUE bArtLief.S_Bez1 = RowObject.S_Bez1 :SCREEN-VALUE bArtLief.S_Bez2 = RowObject.S_Bez2 :SCREEN-VALUE. RELEASE bBesze. RELEASE bArtLief. LEAVE. END. DYNAMIC-FUNCTION ('calculateBeszeNetto':U, Firma, iBesnr, iPos, iRecid ). DYNAMIC-FUNCTION ('calculateBeskoTotal':U, Firma, iBesnr, OUTPUT nTotale ). RUN refreshRow IN hDaten NO-ERROR. PUBLISH 'REFRESHBESKO'. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject vTableWin PROCEDURE viewObject : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ /* Code placed here will execute PRIOR to standard behavior. */ DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE BUFFER bBesze FOR Besze. RUN SUPER. iStatus = DYNAMIC-FUNCTION ('getStatus':U IN hKontainer ) NO-ERROR. RUN refreshRow IN hDaten NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getArtikel vTableWin FUNCTION getArtikel RETURNS RECID ( ipiArt AS INTEGER, ipiRecid AS RECID, ipiArtnr AS INTEGER, ipiInhalt AS INTEGER, ipiJahr AS INTEGER ) : /* ------------------------------------------------------------------------------ */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE iRecid AS RECID NO-UNDO INIT ?. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. DEFINE BUFFER bArtLief FOR ArtLief. CASE ipiArt: WHEN 1 THEN DO: FIND bArtst NO-LOCK WHERE RECID(bArtst) = ipiRecid NO-ERROR. END. WHEN 2 THEN DO: FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = ipiArtnr NO-ERROR. END. WHEN 3 THEN DO: FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = ipiArtnr AND bArtst.Inhalt = ipiInhalt NO-ERROR. END. WHEN 4 THEN DO: FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = ipiArtnr AND bArtst.Inhalt = ipiInhalt AND bArtst.Jahr = ipiJahr NO-ERROR. END. END CASE. IF NOT AVAILABLE bArtst THEN RETURN iRecid. iRecid = RECID(bArtst). FIND FIRST bArtbez OF bArtst NO-ERROR. FIND FIRST bArtLief WHERE bArtLief.Firma = bArtst.Firma AND bArtLief.Knr = Besko.Knr AND bArtLief.Artnr = bArtst.Artnr AND bArtLief.Inhalt = bArtst.Inhalt AND bArtLief.Jahr = bArtst.Jahr NO-ERROR. DO WITH FRAME {&FRAME-NAME}: ASSIGN rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr) rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt) rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr). IF AVAILABLE bArtbez THEN DO: ASSIGN rowObject.Bez1:SCREEN-VALUE = bArtbez.Bez1 rowObject.Bez2:SCREEN-VALUE = bArtbez.Bez2. END. IF AVAILABLE bArtLief THEN DO: ASSIGN rowObject.S_Artnr :SCREEN-VALUE = bArtLief.S_Artnr rowObject.S_Bez1 :SCREEN-VALUE = bArtLief.S_Bez1 rowObject.S_Bez2 :SCREEN-VALUE = bArtLief.S_Bez2 rowObject.S_Preis_Frw:SCREEN-VALUE = STRING(bArtLief.S_Preis_Frw) rowObject.S_Preis :SCREEN-VALUE = STRING(bArtLief.S_Preis) rowObject.Rabatt :SCREEN-VALUE = STRING(bArtLief.Rabatt) rowObject.Spesen :SCREEN-VALUE = STRING(bArtLief.Spesen) rowObject.L_EP_FRW :SCREEN-VALUE = STRING(bArtLief.L_EP_Frw) rowObject.L_EP :SCREEN-VALUE = STRING(bArtLief.L_EP ) . END. END. RETURN iRecid. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME