&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-aufze.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 Bez1 &Scoped-define LETZTES_FELD Zus_Wert &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr &Scoped-define NUR_LESEN MBest,MGeli,MRuek,VGebinde,KGebinde,Alk_Gehalt { incl/viwdefinition.i } DEFINE VARIABLE lLeave AS LOG NO-UNDO. DEFINE VARIABLE lNew AS LOG NO-UNDO. DEFINE VARIABLE lVorEntry AS LOG NO-UNDO. DEFINE VARIABLE iLKY AS INTEGER NO-UNDO. DEFINE VARIABLE htAufze AS HANDLE NO-UNDO. DEFINE VARIABLE hLastField AS HANDLE NO-UNDO. DEFINE VARIABLE cAktRowId AS CHARACTER NO-UNDO. DEFINE VARIABLE iPreisArt AS INTEGER NO-UNDO. DEFINE VARIABLE iOldRabArt AS INTEGER NO-UNDO. DEFINE VARIABLE rAufze AS RECID NO-UNDO. DEFINE TEMP-TABLE tAufze NO-UNDO LIKE Aufze FIELD Knr AS INTEGER FIELD Datum AS DATE FIELD lAktion AS LOGICAL INIT TRUE FIELD KGebinde AS CHARACTER FIELD VGebinde AS CHARACTER FIELD GGebinde AS CHARACTER . DEFINE TEMP-TABLE sAufze NO-UNDO LIKE Aufze. DEFINE TEMP-TABLE eAufze NO-UNDO LIKE Aufze. DEFINE TEMP-TABLE tKunBest LIKE KunBest. DEFINE VARIABLE htKunBest AS HANDLE NO-UNDO. htKunBest = TEMP-TABLE tKunbest:DEFAULT-BUFFER-HANDLE. {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-aufze.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.Bez1 RowObject.Bez2 RowObject.Preis RowObject.Rab_Art ~ RowObject.Rab_Wert RowObject.Zus_Art RowObject.Zus_Wert RowObject.MBest ~ RowObject.MGeli RowObject.MRuek RowObject.KGebinde RowObject.VGebinde ~ RowObject.Alk_Gehalt &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS F_Artnr RECT-35 RECT-40 &Scoped-Define DISPLAYED-FIELDS RowObject.Inhalt RowObject.Jahr ~ RowObject.Bez1 RowObject.Bez2 RowObject.Preis RowObject.Rab_Art ~ RowObject.Rab_Wert RowObject.Zus_Art RowObject.Zus_Wert RowObject.Artnr ~ RowObject.Aufnr RowObject.Firma RowObject.Pos RowObject.WC RowObject.MBest ~ RowObject.MGeli RowObject.MRuek RowObject.KGebinde RowObject.VGebinde ~ RowObject.Alk_Gehalt RowObject.PreisArt RowObject.GGeb_Be RowObject.GGeb_Me ~ RowObject.GGeb_Ru RowObject.KGeb_Be RowObject.KGeb_Me RowObject.KGeb_Ru ~ RowObject.VGeb_Be RowObject.VGeb_Me RowObject.VGeb_Ru &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS F_Artnr CB_Mwst /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-4 RowObject.Bez1 RowObject.Bez2 &Scoped-define List-5 F_Artnr RowObject.Inhalt RowObject.Jahr &Scoped-define List-6 RowObject.Preis RowObject.Rab_Art RowObject.Rab_Wert ~ RowObject.Zus_Art RowObject.Zus_Wert /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-F_Artnr MENU-ITEM X_EXCEL_LISTE LABEL "Excel-Liste einlesen". /* Definitions of the field level widgets */ DEFINE VARIABLE CB_Mwst AS CHARACTER FORMAT "X(256)":U VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 21 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE E_Bemerk AS CHARACTER VIEW-AS EDITOR NO-WORD-WRAP SCROLLBAR-HORIZONTAL SCROLLBAR-VERTICAL SIZE 96.8 BY 5.91 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(20)":U VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-35 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 182 BY 6.19. DEFINE RECTANGLE RECT-40 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 182 BY 6.67. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main E_Bemerk AT ROW 7.86 COL 26.2 NO-LABELS WIDGET-ID 82 NO-TAB-STOP F_Artnr AT ROW 2.52 COL 5 COLON-ALIGNED NO-LABELS WIDGET-ID 42 RowObject.Inhalt AT ROW 2.52 COL 21 COLON-ALIGNED NO-LABELS WIDGET-ID 14 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Jahr AT ROW 2.52 COL 31 COLON-ALIGNED NO-LABELS WIDGET-ID 16 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Bez1 AT ROW 2.52 COL 41 COLON-ALIGNED NO-LABELS WIDGET-ID 8 VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 BGCOLOR 15 RowObject.Bez2 AT ROW 3.52 COL 41 COLON-ALIGNED NO-LABELS WIDGET-ID 10 VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 BGCOLOR 15 RowObject.Preis AT ROW 2.57 COL 84 COLON-ALIGNED NO-LABELS WIDGET-ID 28 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 RowObject.Rab_Art AT ROW 2.52 COL 105 COLON-ALIGNED NO-LABELS WIDGET-ID 30 VIEW-AS COMBO-BOX LIST-ITEM-PAIRS "Kein Rabatt",0, "Prozent",1, "Betrag",2, "EP Plus",3 DROP-DOWN-LIST SIZE 20 BY 1 BGCOLOR 15 RowObject.Rab_Wert AT ROW 2.52 COL 127 COLON-ALIGNED NO-LABELS WIDGET-ID 32 VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 RowObject.Zus_Art AT ROW 2.52 COL 144 COLON-ALIGNED NO-LABELS WIDGET-ID 38 VIEW-AS COMBO-BOX LIST-ITEM-PAIRS "Kein Zuschlag",0, "Prozent",1, "Betrag",2 DROP-DOWN-LIST SIZE 20 BY 1 BGCOLOR 15 RowObject.Zus_Wert AT ROW 2.52 COL 165 COLON-ALIGNED NO-LABELS WIDGET-ID 40 VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 RowObject.Artnr AT ROW 2 COL 98 COLON-ALIGNED WIDGET-ID 4 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Aufnr AT ROW 2 COL 98 COLON-ALIGNED WIDGET-ID 6 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Firma AT ROW 2 COL 98 COLON-ALIGNED WIDGET-ID 12 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Pos AT ROW 2 COL 98 COLON-ALIGNED WIDGET-ID 26 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.WC AT ROW 2 COL 98 COLON-ALIGNED WIDGET-ID 36 FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MBest AT ROW 6 COL 5 COLON-ALIGNED NO-LABELS WIDGET-ID 20 VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MGeli AT ROW 6 COL 23 COLON-ALIGNED NO-LABELS WIDGET-ID 22 VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.MRuek AT ROW 6 COL 41 COLON-ALIGNED NO-LABELS WIDGET-ID 24 VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGebinde AT ROW 6 COL 63 COLON-ALIGNED NO-LABELS WIDGET-ID 18 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 14 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.VGebinde AT ROW 6 COL 83 COLON-ALIGNED NO-LABELS WIDGET-ID 34 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 14 NO-TAB-STOP RowObject.Alk_Gehalt AT ROW 6 COL 105 COLON-ALIGNED NO-LABELS WIDGET-ID 2 VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-TAB-STOP CB_Mwst AT ROW 6 COL 120 COLON-ALIGNED NO-LABELS WIDGET-ID 48 NO-TAB-STOP RowObject.PreisArt AT ROW 2 COL 98 COLON-ALIGNED WIDGET-ID 84 LABEL "PreisArt" FORMAT "->9" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.GGeb_Be AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 86 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.GGeb_Me AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 88 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.GGeb_Ru AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 90 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Be AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 92 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Me AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 94 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Ru AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 96 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Be AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 98 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Me AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 100 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Ru AT ROW 10 COL 143 COLON-ALIGNED WIDGET-ID 102 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP "Bezeichnung" VIEW-AS TEXT SIZE 40 BY 1 AT ROW 1.52 COL 43 WIDGET-ID 56 FONT 6 "Rabatt" VIEW-AS TEXT SIZE 36 BY 1 AT ROW 1.52 COL 107 WIDGET-ID 60 FONT 6 "Rückstand" VIEW-AS TEXT SIZE 14 BY 1 AT ROW 5 COL 43 WIDGET-ID 68 FONT 6 "Jahr" VIEW-AS TEXT SIZE 8 BY 1 AT ROW 1.52 COL 33 WIDGET-ID 54 FONT 6 "Inhalt" VIEW-AS TEXT SIZE 8 BY 1 AT ROW 1.52 COL 23 WIDGET-ID 52 FONT 6 "Preis" VIEW-AS TEXT SIZE 18 BY 1 AT ROW 1.52 COL 86 WIDGET-ID 58 FONT 6 "MWSt-Ansatz" VIEW-AS TEXT SIZE 21 BY 1 AT ROW 5 COL 122 WIDGET-ID 76 FONT 6 "Vol. %" VIEW-AS TEXT SIZE 12 BY 1 AT ROW 5 COL 118 RIGHT-ALIGNED WIDGET-ID 74 FONT 6 "GGebinde" VIEW-AS TEXT SIZE 18 BY 1 AT ROW 5 COL 85 WIDGET-ID 72 FONT 6 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 "KGebinde" VIEW-AS TEXT SIZE 18 BY 1 AT ROW 5 COL 65 WIDGET-ID 70 FONT 6 "Geliefert" VIEW-AS TEXT SIZE 14 BY 1 AT ROW 5 COL 25 WIDGET-ID 66 FONT 6 "Zuschlag" VIEW-AS TEXT SIZE 35 BY 1 AT ROW 1.52 COL 146 WIDGET-ID 62 FONT 6 "Artikel" VIEW-AS TEXT SIZE 14 BY 1 AT ROW 1.52 COL 7 WIDGET-ID 50 FONT 6 "Bestellt" VIEW-AS TEXT SIZE 14 BY 1 AT ROW 5 COL 7 WIDGET-ID 64 FONT 6 RECT-35 AT ROW 1.24 COL 2 WIDGET-ID 44 RECT-40 AT ROW 7.43 COL 2 WIDGET-ID 80 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-aufze.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-aufze.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.52 WIDTH = 184. /* 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. ASSIGN RowObject.Alk_Gehalt: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.Aufnr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Aufnr:HIDDEN IN FRAME F-Main = TRUE RowObject.Aufnr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Bez1 IN FRAME F-Main 4 */ /* SETTINGS FOR FILL-IN RowObject.Bez2 IN FRAME F-Main 4 */ /* SETTINGS FOR COMBO-BOX CB_Mwst IN FRAME F-Main NO-ENABLE */ /* SETTINGS FOR EDITOR E_Bemerk IN FRAME F-Main NO-DISPLAY NO-ENABLE */ ASSIGN E_Bemerk:RETURN-INSERTED IN FRAME F-Main = TRUE E_Bemerk: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 F_Artnr IN FRAME F-Main 5 */ ASSIGN F_Artnr:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-F_Artnr:HANDLE. /* SETTINGS FOR FILL-IN RowObject.GGeb_Be IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.GGeb_Be:HIDDEN IN FRAME F-Main = TRUE RowObject.GGeb_Be:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGeb_Me IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.GGeb_Me:HIDDEN IN FRAME F-Main = TRUE RowObject.GGeb_Me:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGeb_Ru IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.GGeb_Ru:HIDDEN IN FRAME F-Main = TRUE RowObject.GGeb_Ru:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main 5 EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main 5 EXP-LABEL */ ASSIGN RowObject.KGebinde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_Be IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.KGeb_Be:HIDDEN IN FRAME F-Main = TRUE RowObject.KGeb_Be:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_Me IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.KGeb_Me:HIDDEN IN FRAME F-Main = TRUE RowObject.KGeb_Me:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_Ru IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.KGeb_Ru:HIDDEN IN FRAME F-Main = TRUE RowObject.KGeb_Ru:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.MBest IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.MBest:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.MGeli IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.MGeli:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.MRuek IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.MRuek: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 */ /* SETTINGS FOR FILL-IN RowObject.PreisArt IN FRAME F-Main NO-ENABLE EXP-LABEL EXP-FORMAT */ ASSIGN RowObject.PreisArt:HIDDEN IN FRAME F-Main = TRUE RowObject.PreisArt:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR COMBO-BOX RowObject.Rab_Art IN FRAME F-Main 6 */ /* SETTINGS FOR FILL-IN RowObject.Rab_Wert IN FRAME F-Main 6 */ ASSIGN RowObject.VGebinde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_Be IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.VGeb_Be:HIDDEN IN FRAME F-Main = TRUE RowObject.VGeb_Be:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_Me IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.VGeb_Me:HIDDEN IN FRAME F-Main = TRUE RowObject.VGeb_Me:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_Ru IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.VGeb_Ru:HIDDEN IN FRAME F-Main = TRUE RowObject.VGeb_Ru:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.WC IN FRAME F-Main NO-ENABLE EXP-FORMAT */ ASSIGN RowObject.WC:HIDDEN IN FRAME F-Main = TRUE RowObject.WC:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR COMBO-BOX RowObject.Zus_Art IN FRAME F-Main 6 */ /* SETTINGS FOR FILL-IN RowObject.Zus_Wert IN FRAME F-Main 6 */ /* SETTINGS FOR TEXT-LITERAL "Vol. %" SIZE 12 BY 1 AT ROW 5 COL 118 RIGHT-ALIGNED */ /* _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.Bez1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Bez1 vTableWin ON BACK-TAB OF RowObject.Bez1 IN FRAME F-Main /* Bez1 */ DO: RUN TOOLBAR IN hKontainer ( 'CANCEL' ). APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME E_Bemerk &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Bemerk vTableWin ON END-ERROR OF E_Bemerk IN FRAME F-Main DO: IF VALID-HANDLE ( hLastField ) THEN APPLY 'ENTRY' TO hLastField. RETURN NO-APPLY. 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 DO: 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 BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. IF NOT lNew THEN RETURN. RUN 'g-suchen-artikel.w':U ( F_Artnr:SCREEN-VALUE, OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN. 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 tAufze NO-ERROR. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE) tAufze.Artnr = bArtst.Artnr tAufze.Inhalt = bArtst.Inhalt tAufze.Jahr = bArtst.Jahr. RELEASE bArtst. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND FIRST tAufze. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). APPLY 'ENTRY' TO rowObject.Bez1. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Rab_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Rab_Art vTableWin ON ENTRY OF RowObject.Rab_Art IN FRAME F-Main /* Rab_Art */ DO: iOldRabArt = INTEGER(SELF:SCREEN-VALUE). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Rab_Art vTableWin ON VALUE-CHANGED OF RowObject.Rab_Art IN FRAME F-Main /* Rab_Art */ DO: DEFINE BUFFER bArtst FOR Artst. FIND FIRST tAufze. ASSIGN tAufze.Rab_Wert = 0.0 tAufze.Rab_Art = INTEGER(SELF:SCREEN-VALUE). DO WHILE TRUE: IF tAufze.Rab_Art = 0 THEN DO: rowObject.Rab_Wert:READ-ONLY = TRUE. END. ELSE DO: rowObject.Rab_Wert:READ-ONLY = FALSE. IF tAufze.Rab_Art = 3 THEN DO: FIND bArtst NO-LOCK WHERE bArtst.Firma = tAufze.Firma AND bArtst.Artnr = tAufze.Artnr AND bArtst.Inhalt = tAufze.Inhalt AND bArtst.Jahr = tAufze.Jahr. tAufze.Rab_Wert = 0.0. IF bArtst.DEP <> 0 THEN tAufze.Preis = bArtst.DEP. IF bArtst.LEP <> 0 THEN tAufze.Preis = bArtst.LEP. IF bArtst.Listen_EP <> 0 THEN tAufze.Preis = bArtst.Listen_EP. END. ELSE DO: IF iOldRabArt = 3 THEN DO: FIND FIRST tAufze. ASSIGN tAufze.Preis_Mut = FALSE tAufze.Rab_Art = tAufze.Rab_Art tAufze.Rab_Wert = 0. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR. IF iPreisArt < 0 THEN DO: MESSAGE 'Artikel ohne Preis' VIEW-AS ALERT-BOX INFORMATION. iPreisArt = 0. END. END. END. END. iOldRabArt = tAufze.Rab_Art. LEAVE. END. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME X_EXCEL_LISTE &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL X_EXCEL_LISTE vTableWin ON CHOOSE OF MENU-ITEM X_EXCEL_LISTE /* Excel-Liste einlesen */ DO: IF FMut THEN RETURN NO-APPLY. RUN EXCEL_LISTE. PUBLISH 'refreshAufko'. DYNAMIC-FUNCTION('openQuery':U IN hDaten) NO-ERROR. APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Zus_Art &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Zus_Art vTableWin ON VALUE-CHANGED OF RowObject.Zus_Art IN FRAME F-Main /* Zus_Art */ DO: FIND FIRST tAufze. ASSIGN tAufze.Zus_Art = INTEGER(SELF:SCREEN-VALUE). tAufze.Zus_Wert = 0.0. IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN DO: rowObject.Zus_Wert:READ-ONLY = TRUE. END. ELSE DO: rowObject.Zus_Wert:READ-ONLY = FALSE. END. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin /* *************************** Main Block *************************** */ { incl/viwmainblock.i } CREATE tAufze. CREATE sAufze. CREATE eAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. ON 'END':U OF FRAME {&FRAME-NAME} ANYWHERE DO: FMut = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR. IF NOT FMut THEN RETURN 'APPLY'. RUN TOOLBAR IN hKontainer ( INPUT 'SAVE':U ). RETURN NO-APPLY. 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: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cRowId AS CHARACTER NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iAufnr 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 bAufko FOR Aufko. PUBLISH 'GET_CURRENT_AUFKO' ( OUTPUT iRecid, OUTPUT iAufnr ). DO WITH FRAME {&FRAME-NAME}: IF iAufnr = 0 THEN DO: RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ). RUN TOOLBAR IN hKontainer ( 'CANCEL' ). RETURN NO-APPLY. END. END. lNew = TRUE. FNeu = TRUE. FMut = TRUE. FDisp = TRUE. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: EMPTY TEMP-TABLE tAufze. CREATE tAufze. ASSIGN tAufze.Firma = rowObject.Firma:SCREEN-VALUE tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE) tAufze.Artnr = 0 tAufze.Inhalt = 0 tAufze.Jahr = 0. FIND bAufko NO-LOCK WHERE bAufko.Firma = tAufze.Firma AND bAufko.Aufnr = tAufze.Aufnr. ASSIGN tAufze.Rab_Art = bAufko.Zei_Rab_Art tAufze.Rab_Wert = bAufko.Zei_Rab_Wert tAufze.Zus_Art = bAufko.Zuschl_Art tAufze.Zus_Wert = bAufko.Zuschl_Wert. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE applyEntry vTableWin PROCEDURE applyEntry : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcField AS CHARACTER NO-UNDO. lVorEntry = TRUE. RUN SUPER( INPUT pcField). APPLY 'ENTRY' TO F_Artnr IN FRAME {&FRAME-NAME}. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin PROCEDURE cancelRecord : /*------------------------------------------------------------------------------ Purpose: Super Override 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: Super Override 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: Super Override */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE lJa AS LOG NO-UNDO. DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO. DEFINE VARIABLE lAdmin AS LOG NO-UNDO. DEFINE VARIABLE lSpez AS LOG NO-UNDO. DEFINE VARIABLE cMeldung AS CHARACTER NO-UNDO. DEFINE VARIABLE nTotal AS DECIMAL DECIMALS 4 NO-UNDO EXTENT 15. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO. DEFINE VARIABLE nAuftot AS DECIMAL NO-UNDO. DEFINE BUFFER bAufko FOR Aufko. DEFINE BUFFER bAufze FOR Aufze. DEFINE BUFFER bRuestAuf FOR RuestAuf. lAdmin = DYNAMIC-FUNCTION('getAdmin':U) NO-ERROR. lSpez = DYNAMIC-FUNCTION('getSpez':U ) NO-ERROR. lJa = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ). IF NOT lJa THEN DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR. RETURN NO-APPLY. END. RUN 'refreshRow' IN hDaten. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. FIND bAufze NO-LOCK WHERE RECID(bAufze) = iRecid. FIND bAufko NO-LOCK WHERE bAufko.Firma = bAufze.Firma AND bAufko.Aufnr = bAufze.Aufnr. iAufnr = bAufze.Aufnr. IF bAufko.Auf_Sta >= 03 AND bAufko.Auf_Sta <= 05 AND bAufko.Gedruckt AND NOT lAdmin THEN DO: MESSAGE 'Auftragszeile darf nicht mehr gelöscht werden' SKIP 'Bitte Administrator fragen! ' VIEW-AS ALERT-BOX INFORMATION. RELEASE bAufko. RELEASE bAufze. RETURN NO-APPLY. END. lJa = TRUE. FIND FIRST bRuestAuf NO-LOCK WHERE bRuestAuf.Firma = bAufko.Firma AND bRuestAuf.Aufnr = bAufko.Aufnr NO-ERROR. /* DO WHILE AVAILABLE bRuestAuf: */ /* FIND FIRST bRuestAuf NO-LOCK */ /* WHERE bRuestAuf.Firma = bAufko.Firma */ /* AND bRuestAuf.Aufnr = bAufko.Aufnr */ /* AND bRuestAuf.Artnr = bAufze.Artnr */ /* AND bRuestAuf.Inhalt = bAufze.Inhalt */ /* AND bRuestAuf.Jahr = bAufze.Jahr NO-ERROR. */ /* IF NOT AVAILABLE bRuestAuf THEN LEAVE. */ /* lJa = FALSE. */ /* IF bRuestAuf.lGeruestet THEN */ /* DO: */ /* cMeldung = 'Achtung!!! Artikel ist bereits gerüstet!!!' */ /* + CHR(10) */ /* + 'Unbedingt im Lager melden, dass der Artikel wieder zurück muss!'*/ /* + CHR(10) */ /* + 'Trotzdem löschen?'. */ /* MESSAGE cMeldung VIEW-AS ALERT-BOX QUESTION */ /* BUTTONS YES-NO */ /* UPDATE lJa. */ /* LEAVE. */ /* END. */ /* IF bRuestAuf.lRSGedruckt THEN */ /* DO: */ /* cMeldung = 'Achtung!!! Rüstschein neu Drucken!' */ /* + CHR(10) */ /* + 'Meldung an Lager, dass der Alte vernichtet werden soll'. */ /* MESSAGE cMeldung VIEW-AS ALERT-BOX. */ /* END. */ /* lJa = TRUE. */ /* LEAVE. */ /* END. */ IF NOT lJa THEN DO: RUN TOOLBAR IN hKontainer ( 'ABBRUCH' ) NO-ERROR. RUN TOOLBAR IN hKontainer ( 'CANCEL' ) NO-ERROR. RELEASE bAufko. RETURN NO-APPLY. END. lJa = DYNAMIC-FUNCTION('deleteAufzeile':U, iRecid ) NO-ERROR. IF NOT lJa THEN DO: cMeldung = DYNAMIC-FUNCTION ('getErrorMessage':U) NO-ERROR. IF cMeldung = ? THEN cMeldung = ''. IF cMeldung <> '' THEN DO: cMeldung = ENTRY(2, cMeldung, ':') NO-ERROR. MESSAGE cMeldung VIEW-AS ALERT-BOX. END. RUN TOOLBAR IN hKontainer ( 'CANCEL' ). RETURN NO-APPLY. END. FIND bAufko NO-LOCK WHERE bAufko.Firma = Firma AND bAufko.Aufnr = iAufnr NO-ERROR. nAufTot = bAufko.Auf_Tot. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, Firma, iAufnr, OUTPUT nTotal ) NO-ERROR. IF nAufTot <> nTotal[10] THEN DYNAMIC-FUNCTION('setAufkoDruckFlag':U, bAufko.Firma, bAufko.Aufnr, FALSE ) NO-ERROR. PUBLISH 'refreshAufko'. DYNAMIC-FUNCTION ('openQuery':U IN hDaten). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin PROCEDURE disableFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF lNew THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ). END. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ). lNew = FALSE. 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 ). END. DO WITH FRAME {&FRAME-NAME}: F_Artnr:READ-ONLY = TRUE. 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: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. IF NOT FDisp THEN DO: FDisp = TRUE. RETURN. END. cAktRowId = ENTRY(1, pcColValues, CHR(01)). IF FCancel THEN pcColValues = OldColValues. IF NOT FNeu THEN OldColValues = pcColValues. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U). IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ). DO WITH FRAME {&FRAME-NAME}: END. RUN SUPER( INPUT pcColValues). iArtnr = INTEGER(rowObject.Artnr:SCREEN-VALUE) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: F_Artnr:SCREEN-VALUE = (IF iArtnr = 0 THEN '' ELSE rowObject.Artnr:SCREEN-VALUE) NO-ERROR. CB_Mwst:SCREEN-VALUE = rowObject.WC :SCREEN-VALUE NO-ERROR. IF NOT FCancel AND lNew THEN F_Artnr:SCREEN-VALUE = ''. IF INTEGER(rowObject.PreisArt:SCREEN-VALUE) >= 3 AND INTEGER(rowObject.PreisArt:SCREEN-VALUE) <= 4 THEN rowObject.Preis:BGCOLOR = 11. ELSE rowObject.Preis:BGCOLOR = 15. END. FCancel = FALSE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin PROCEDURE enableFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. /* Code placed here will execute PRIOR to standard behavior. */ /* 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. DO WITH FRAME {&FRAME-NAME}: END. IF lNew THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT TRUE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT TRUE ). F_Artnr:READ-ONLY = FALSE. RETURN. END. ELSE DO: iArtnr = INTEGER(rowObject.Artnr:SCREEN-VALUE) NO-ERROR. IF iArtnr = 0 THEN RUN READONLY_FELDER ( INPUT Fenster, '{&List-5}', INPUT TRUE ). END. 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: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: RUN COMBO_MWSTARTIK ( INPUT CB_Mwst:HANDLE ) NO-ERROR. END. RUN SUPER. { incl/viwenableobject.i } IF cInstallation = 'realwines' THEN DO: rowObject.Bez1:FORMAT = 'x(40)'. rowObject.Bez2:FORMAT = 'x(40)'. END. 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 } IF lVorEntry THEN DO: lVorEntry = FALSE. RETURN. END. FIND FIRST tAufze. DO WHILE NOT FNeu WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'F_Artnr' OR WHEN 'Inhalt' OR WHEN 'Jahr' THEN DO: APPLY 'TAB' TO SELF. RETURN 'APPLY'. END. WHEN 'Preis' THEN DO: SELF:MODIFIED = FALSE. IF tAufze.Preis_Mut THEN DO: RUN MELDUNG ( 1065 ). END. END. WHEN 'Rab_Art' OR WHEN 'Rab_Wert' OR WHEN 'Zus_Art' OR WHEN 'Zus_Wert' THEN DO: SELF:MODIFIED = FALSE. END. END CASE. LEAVE. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXCEL_LISTE vTableWin PROCEDURE EXCEL_LISTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO. PUBLISH 'GET_CURRENT_AUFKO' ( OUTPUT iRecid, OUTPUT iAufnr ). IF iAufnr = 0 OR iAufnr = ? THEN RETURN. htKunBest = TEMP-TABLE tKunBest:DEFAULT-BUFFER-HANDLE. RUN 'g-excelbestellung.w' ( iAufnr ). IF RETURN-VALUE <> '' THEN DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. RETURN NO-APPLY. END. 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 lRetVal AS LOG NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. DO WITH FRAME {&FRAME-NAME}: /* ---------------------------------------------------------- */ /* Artikelnummer = Leer -> Nur Text-Eingabe */ /* ---------------------------------------------------------- */ IF ipHandle:SCREEN-VALUE = '' THEN DO WITH FRAME {&FRAME-NAME}: F_Artnr :SCREEN-VALUE = ''. rowObject.Inhalt:SCREEN-VALUE = ''. rowObject.Jahr :SCREEN-VALUE = ''. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). EMPTY TEMP-TABLE tAufze. CREATE tAufze. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE) tAufze.Artnr = 0 tAufze.Inhalt = 0 tAufze.Jahr = 0 tAufze.Rab_Art = 0 tAUfze.Rab_Wert = 0.0 tAufze.Zus_Art = 0 tAUfze.Zus_Wert = 0.0 tAufze.Preis_Mut = FALSE. lVorEntry = TRUE. APPLY 'ENTRY' TO rowObject.Bez1. RETURN 'APPLY'. END. A000: REPEAT WHILE TRUE: iArtnr = 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.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. IF iLKY = 9 AND iAnzArt > 0 THEN LEAVE. RUN 'g-suchen-artikel.w':U ( F_Artnr:SCREEN-VALUE, OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. LEAVE. END. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid. IF NOT bArtst.Aktiv THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, 1052, '' ) NO-ERROR. APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. IF bArtst.Ausverk = 9 THEN DO: lRetVal = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, 1053, '' ) NO-ERROR. IF NOT lRetVal THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. END. 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 tAufze NO-ERROR. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE) tAufze.Artnr = bArtst.Artnr tAufze.Inhalt = bArtst.Inhalt tAufze.Jahr = bArtst.Jahr. RELEASE bArtst. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. IF iLKY = 09 AND iAnzArt > 1 THEN DO: RUN TEMP_TABLE_TO_SCREEN ( htAufze ). APPLY 'ENTRY' TO rowObject.Inhalt. RETURN 'APPLY'. END. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. FIND FIRST tAufze. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). F_Artnr:SCREEN-VALUE = STRING(tAufze.Artnr). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', (IF tAufze.Artnr > 0 THEN FALSE ELSE TRUE) ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). APPLY 'ENTRY' TO rowObject.Bez1. RETURN 'APPLY'. 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 } DEFINE VARIABLE lJa AS LOG NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE iRabArt AS INTEGER NO-UNDO. DEFINE VARIABLE nPreis AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE hWiType AS CHARACTER NO-UNDO. DEFINE BUFFER bArtst FOR Artst. FeldName = ipHandle:NAME. hLastField = hLEAVE. FIND FIRST tAufze. 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: RUN LEAVE_INHALT (SELF:HANDLE). RETURN RETURN-VALUE. END. WHEN 'Jahr' THEN DO: RUN LEAVE_JAHR (SELF:HANDLE). RETURN RETURN-VALUE. END. END CASE. LEAVE. END. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Jahr' THEN DO: IF tAufze.Artnr = 0 THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). APPLY 'ENTRY' TO rowObject.Bez1. RETURN 'APPLY'. END. ELSE DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). RUN MENGE. IF RETURN-VALUE <> '' THEN DO: RUN TOOLBAR IN hKontainer ( 'CANCEL' ). APPLY 'U1'. RETURN 'APPLY'. END. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). FIND FIRST tAufze. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). APPLY 'ENTRY' TO rowObject.Bez1. RETURN 'APPLY'. END. END. WHEN 'Preis' THEN DO: IF tAufze.Artnr > 0 AND DECIMAL(SELF:SCREEN-VALUE) = 0.00 THEN DO: lJa = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, 0329 ) NO-ERROR. IF NOT lJa THEN RETURN 'ERROR'. tAufze.Preis_Mut = TRUE. END. IF SELF:MODIFIED THEN tAufze.Preis_Mut = TRUE. IF DECIMAL(SELF:SCREEN-VALUE) = 0.00 THEN DO: ASSIGN tAufze.Rab_Art = 0 tAufze.Rab_Wert = 0.0 tAufze.Zus_Art = 0 tAufze.Zus_Wert = 0.0 tAufze.Aktion = FALSE tAufze.Aktion_Text = '' tAufze.Preis = 0. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). END. END. WHEN 'Rab_Art' THEN DO: iRabArt = INTEGER(SELF:SCREEN-VALUE). CASE iRabArt: WHEN 3 THEN DO: IF SELF:MODIFIED THEN DO: FIND bArtst NO-LOCK OF tAufze. IF bArtst.DEP <> 0 THEN nPreis = bArtst.DEP. IF bArtst.LEP <> 0 THEN nPreis = bArtst.LEP. IF bArtst.Listen_EP <> 0 THEN nPreis = bArtst.Listen_EP. rowObject.Preis :SCREEN-VALUE = STRING(nPreis). rowObject.Rab_Wert:SCREEN-VALUE = STRING(0.0). RELEASE bArtst. END. END. END. END. WHEN 'Rab_Art' OR WHEN 'Rab_Wert' OR WHEN 'Zus_Art' OR WHEN 'Zus_Wert' THEN DO: IF SELF:MODIFIED THEN DO: ASSIGN tAufze.Preis_Mut = TRUE tAufze.Aktion = FALSE tAufze.Aktion_Text = ''. END. END. END. LEAVE. END. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF NOT SELF:MODIFIED THEN LEAVE. IF FeldName = 'F_Artnr' THEN RETURN. hWiType = SELF:TYPE. CASE hWiType: WHEN 'FILL-IN' THEN DO: IF NOT SELF:READ-ONLY THEN DO: FIND FIRST tAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. htAufze:BUFFER-FIELD(FeldName):BUFFER-VALUE = SELF:SCREEN-VALUE. END. END. WHEN 'COMBO-BOX' THEN DO: IF SELF:SENSITIVE THEN DO: FIND FIRST tAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. htAufze:BUFFER-FIELD(FeldName):BUFFER-VALUE = SELF:SCREEN-VALUE. END. END. END CASE. CASE FeldName: END CASE. LEAVE. 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. 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 lFehler AS LOG INIT FALSE NO-UNDO. DEFINE VARIABLE iRetVal AS INTEGER INIT 0 NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bArtbez FOR Artbez. DO WITH FRAME {&FRAME-NAME}: iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. IF KEYFUNCTION(iLKY) = 'BACK-TAB' THEN RETURN. IF KEYLABEL (iLKY) BEGINS 'MOUSE' THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. A000: REPEAT WHILE TRUE: iArtnr = INTEGER(F_Artnr:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iInhalt = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR. 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 THEN LEAVE. IF iLKY = 9 AND iAnzArt > 0 THEN LEAVE. RUN 'g-suchen-artikel.w':U ( F_Artnr:SCREEN-VALUE, OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: APPLY 'ENTRY' TO F_Artnr. RETURN 'APPLY'. END. LEAVE. 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 tAufze NO-ERROR. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE) tAufze.Artnr = bArtst.Artnr tAufze.Inhalt = bArtst.Inhalt tAufze.Jahr = bArtst.Jahr. RELEASE bArtst. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. IF iLKY = 09 AND iAnzArt > 1 THEN DO: RUN TEMP_TABLE_TO_SCREEN ( htAufze ). RETURN. END. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. FIND FIRST tAufze. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', (IF tAufze.Artnr > 0 THEN FALSE ELSE TRUE) ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). APPLY 'ENTRY' TO rowObject.Bez1. RETURN 'APPLY'. 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. DO WITH FRAME {&FRAME-NAME}: iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. IF KEYFUNCTION(iLKY) = 'BACK-TAB' THEN RETURN. IF KEYLABEL (iLKY) BEGINS 'MOUSE' THEN DO: APPLY 'ENTRY' TO rowObject.Inhalt. RETURN 'APPLY'. END. A000: REPEAT WHILE TRUE: iArtnr = INTEGER(F_Artnr:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) NO-ERROR. iJahr = INTEGER(ipHandle:SCREEN-VALUE) NO-ERROR. 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 tAufze NO-ERROR. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = INTEGER(rowObject.Aufnr:SCREEN-VALUE) tAufze.Artnr = bArtst.Artnr tAufze.Inhalt = bArtst.Inhalt tAufze.Jahr = bArtst.Jahr . RELEASE bArtst. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. iRetVal = DYNAMIC-FUNCTION ( 'fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. IF iRetVal > 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, iRetVal, '' ) NO-ERROR. APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. RUN MENGE. IF RETURN-VALUE <> '' THEN DO: APPLY 'ENTRY' TO ipHandle. RETURN 'APPLY'. END. FIND FIRST tAufze. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-4}', (IF tAufze.Artnr > 0 THEN FALSE ELSE TRUE) ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-6}', INPUT FALSE ). RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&List-5}', INPUT TRUE ). APPLY 'ENTRY' TO rowObject.Bez1. RETURN 'APPLY'. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE MENGE vTableWin PROCEDURE MENGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE lRetVal AS LOG NO-UNDO. DEFINE BUFFER bArtst FOR Artst. DEFINE BUFFER bKGebinde FOR KGebinde. DEFINE BUFFER bVGebinde FOR VGebinde. DEFINE BUFFER bGGebinde FOR GGebinde. FIND FIRST tAufze NO-ERROR. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. RUN "g-gebindemenge-neu.w" ( INPUT-OUTPUT htAufze, OUTPUT lRetVal ). IF NOT lRetVal THEN RETURN 'Fehler'. FIND FIRST tAufze. FIND bArtst NO-LOCK WHERE bArtst.Firma = tAufze.Firma AND bArtst.Artnr = tAufze.Artnr AND bArtst.Inhalt = tAufze.Inhalt AND bArtst.Jahr = tAufze.Jahr. ASSIGN tAufze.KGeb_Ru = tAufze.KGeb_Be - tAufze.KGeb_Me tAufze.VGeb_Ru = tAufze.VGeb_Be - tAufze.VGeb_Me tAufze.GGeb_Ru = tAufze.GGeb_Be - tAufze.GGeb_Me tAufze.MBest = tAufze.KGeb_Be tAufze.MGeli = tAufze.KGeb_Me tAufze.MRuek = tAufze.KGeb_Ru. FIND bGGebinde NO-LOCK WHERE bGGebinde.Firma = Firma AND bGGebinde.Geb_Cd = tAufze.GGeb_Cd NO-ERROR. FIND bVGebinde NO-LOCK WHERE bVGebinde.Firma = Firma AND bVGebinde.Geb_Cd = tAufze.VGeb_Cd NO-ERROR. FIND bKGebinde NO-LOCK WHERE bKGebinde.Firma = Firma AND bKGebinde.Geb_Cd = tAufze.KGeb_Cd NO-ERROR. /* -------------------------------------------------------------- */ /* Liter und Gewicht */ /* -------------------------------------------------------------- */ tAufze.Liter = bKGebinde.Inhalt * tAufze.KGeb_Me / 100. tAufze.Gewicht = (bArtst.Gewicht * tAufze.KGeb_Me) + (bKGebinde.Gewicht * tAufze.KGeb_Me) + (bVGebinde.Gewicht * tAufze.VGeb_Me) + (bGGebinde.Gewicht * tAufze.GGeb_Me). tAufze.KGebinde = bKGebinde.KBez. tAufze.VGebinde = bVGebinde.KBez. tAufze.GGebinde = bGGebinde.KBez. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze) NO-ERROR. IF iPreisArt < 0 THEN DO: MESSAGE 'Artikel ohne Preis' VIEW-AS ALERT-BOX INFORMATION. iPreisArt = 0. END. DO WITH FRAME {&FRAME-NAME}: tAufze.PreisArt = iPreisArt. rowObject.PreisArt:SCREEN-VALUE = STRING(iPreisArt). rowObject.Preis:BGCOLOR = 15. CASE iPreisArt: WHEN 3 THEN rowObject.Preis:BGCOLOR = 11. WHEN 4 THEN rowObject.Preis:BGCOLOR = 11. END. END. RELEASE bArtst. RELEASE bKGebinde. RELEASE bVGebinde. RELEASE bGGebinde. 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_BUFFER vTableWin PROCEDURE TEMP_TABLE_TO_BUFFER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE i2 AS INTEGER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cColList AS CHARACTER NO-UNDO. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO. DEFINE VARIABLE hbAufze AS HANDLE NO-UNDO. DEFINE BUFFER bAufze FOR Aufze. cColList = DYNAMIC-FUNCTION('getDisplayedFields':U). ii = NUM-ENTRIES(cColList, ',') + 1. FIND FIRST tAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. REPEAT TRANSACTION: DISABLE TRIGGERS FOR LOAD OF Aufze. FIND bAufze OF tAufze. rAufze = RECID(bAufze). hbAufze = BUFFER bAufze:HANDLE. DO ii = 1 TO hbAufze:NUM-FIELDS: cFeld = hbAufze:BUFFER-FIELD(ii):NAME. hFeld = htAufze:BUFFER-FIELD(cFeld) NO-ERROR. IF NOT VALID-HANDLE(hFeld) THEN NEXT. IF hFeld:EXTENT > 1 THEN DO: DO i2 = 1 TO hFeld:EXTENT: IF hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) = hFeld:BUFFER-VALUE(i2) THEN NEXT. hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) = hFeld:BUFFER-VALUE(i2). END. NEXT. END. IF hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE = hFeld:BUFFER-VALUE THEN NEXT. hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE = hFeld:BUFFER-VALUE. END. RELEASE bAufze. LEAVE. END. DO WITH FRAME {&FRAME-NAME}: RUN refreshRow IN hDaten NO-ERROR. END. 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. 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. ENTRY(i1, cColValues, CHR(1)) = ipHandle:BUFFER-FIELD(ii):BUFFER-VALUE 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 iRecid AS RECID NO-UNDO. DEFINE VARIABLE lJa AS LOG NO-UNDO. DEFINE BUFFER bAufze FOR Aufze. FIND FIRST tAufze. opJa = FALSE. eHandle = ?. IF NOT FMut THEN RETURN. AAA000: DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF tAufze.Artnr = 0 THEN LEAVE. IF DECIMAL(rowObject.Preis:SCREEN-VALUE) = 0 AND tAufze.Preis_Mut = FALSE THEN DO: lJa = DYNAMIC-FUNCTION('ANTWORT_NEIN', 0329 ) NO-ERROR. IF NOT lJa THEN DO: eHandle = rowObject.Preis:HANDLE. LEAVE. END. END. IF INTEGER(rowObject.Rab_Art :SCREEN-VALUE) = 0 THEN rowObject.Rab_Wert:SCREEN-VALUE = STRING(0). IF INTEGER(rowObject.Zus_Art :SCREEN-VALUE) = 0 THEN rowObject.Zus_Wert:SCREEN-VALUE = STRING(0). IF DECIMAL(rowObject.Zus_Wert:SCREEN-VALUE) = 0 THEN rowObject.Zus_Art :SCREEN-VALUE = STRING(0). ASSIGN tAufze.Rab_Art = INTEGER(rowObject.Rab_Art :SCREEN-VALUE) tAufze.Rab_Wert = DECIMAL(rowObject.Rab_Wert:SCREEN-VALUE) tAufze.Zus_Art = INTEGER(rowObject.Zus_Art :SCREEN-VALUE) tAufze.Zus_Wert = DECIMAL(rowObject.Zus_Wert:SCREEN-VALUE) NO-ERROR. LEAVE. END. IF VALID-HANDLE(eHandle) THEN DO: APPLY 'ENTRY' TO eHandle. RETURN NO-APPLY. END. IF NOT lNew THEN DO: /* -------------------------------------------------------------------------- */ /* ist der Datensatz inwischen von einem anderen Benutzer geändert worden ? */ /* -------------------------------------------------------------------------- */ FIND FIRST eAufze. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. FIND bAufze EXCLUSIVE-LOCK WHERE RECID(bAufze) = iRecid. BUFFER-COPY bAufze TO eAufze. RELEASE bAufze. FIND FIRST sAufze. BUFFER-COMPARE sAufze TO eAufze SAVE RESULT IN cString. IF cString <> '' THEN DO: MESSAGE 'Dieser Datensatz wurde inzwischen von einem anderen Benutzer verändert' SKIP 'Ihre Änderungen werden rückgängig gemacht, bitte nochmals eingeben' VIEW-AS ALERT-BOX. RELEASE bAufze. RUN TOOLBAR IN hKontainer ('ABBRUCH') NO-ERROR. RUN TOOLBAR IN hKontainer ('CANCEL') NO-ERROR. RUN refreshRow IN hDaten. RETURN NO-APPLY. END. RELEASE bAufze. END. ELSE DO: FIND FIRST tAufze. FIND LAST bAufze NO-LOCK WHERE bAufze.Firma = tAufze.Firma AND bAufze.Aufnr = tAufze.Aufnr NO-ERROR. IF NOT AVAILABLE bAufze THEN tAufze.Pos = 05. ELSE tAufze.Pos = bAufze.Pos - (bAufze.Pos MOD 5) + 05. rowObject.Pos:SCREEN-VALUE = STRING(tAufze.Pos). END. RUN TEMP_TABLE_TO_SCREEN ( htAufze ). 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 bAufze FOR Aufze. CASE pcMode: WHEN 'updateBegin' THEN DO: RUN 'refreshRow' IN hDaten. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten). FIND bAufze NO-LOCK WHERE RECID(bAufze) = iRecid. FIND FIRST tAufze NO-ERROR. IF NOT AVAILABLE tAufze THEN CREATE tAufze. BUFFER-COPY bAufze TO tAufze. FIND FIRST sAufze. BUFFER-COPY bAufze TO sAufze. RELEASE bAufze. END. WHEN 'updateEnd' THEN DO: END. END. RUN SUPER( INPUT pcMode). CASE pcMode: WHEN 'updateBegin' THEN DO WITH FRAME {&FRAME-NAME}: FMut = TRUE. END. WHEN 'updateEnd' THEN DO: FNeu = FALSE. FMut = FALSE. FCopy = FALSE. lNew = FALSE. PUBLISH 'REFRESHAUFZE'. APPLY 'U1'. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin PROCEDURE updateRecord : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE lrNew AS LOG NO-UNDO. DEFINE VARIABLE nTotal AS DECIMAL DECIMALS 4 NO-UNDO EXTENT 15. DEFINE VARIABLE cRetValue AS CHARACTER NO-UNDO. DEFINE VARIABLE nAufTot AS DECIMAL NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE BUFFER bAufko FOR Aufko. DO WITH FRAME {&FRAME-NAME}: DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE). END. lrNew = lNew. FNeu = FALSE. FCopy = FALSE. FIND FIRST tAufze. IF tAufze.Artnr > 0 THEN DYNAMIC-FUNCTION('calculateZeilenTotal':U, INPUT-OUTPUT htAufze ). REPEAT TRANSACTION: RUN SUPER. RUN TEMP_TABLE_TO_BUFFER. LEAVE. END. ii = (IF lrNew THEN 0 ELSE 1). DYNAMIC-FUNCTION ('updateRuestAuftrag':U, ii, rAufze ). IF tAufze.Artnr > 0 THEN DO: FIND bAufko NO-LOCK WHERE bAufko.Firma = tAufze.Firma AND bAufko.Aufnr = tAufze.Aufnr NO-ERROR. nAufTot = bAufko.Auf_Tot. cRetValue = DYNAMIC-FUNCTION('calculateAuftragsTotal':U, tAufze.Firma, tAufze.Aufnr, OUTPUT nTotal ) NO-ERROR. IF nAufTot <> nTotal[10] THEN DYNAMIC-FUNCTION('setAufkoDruckFlag':U, tAufze.Firma, tAufze.Aufnr, FALSE ) NO-ERROR. PUBLISH 'refreshAufko'. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject vTableWin PROCEDURE viewObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iRecid AS RECID NO-UNDO. DEFINE VARIABLE iAufnr AS INTEGER NO-UNDO. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO. DEFINE VARIABLE lJa AS LOG NO-UNDO. DEFINE VARIABLE cBemerk AS CHARACTER NO-UNDO. DEFINE VARIABLE lFirst AS LOG NO-UNDO. DEFINE BUFFER bAufko FOR Aufko. DEFINE BUFFER bAufze FOR Aufze. DEFINE BUFFER bKunBest FOR KunBest. DEFINE BUFFER bDebst FOR Debst. DEFINE BUFFER bSteuer FOR Steuer. DEFINE BUFFER bAdresse FOR Adresse. RUN SUPER. DYNAMIC-FUNCTION('openQuery':U IN hDaten) NO-ERROR. PUBLISH 'GET_CURRENT_AUFKO' ( OUTPUT iRecid, OUTPUT iAufnr ). IF iAufnr = 0 OR iAufnr = ? THEN RETURN. FIND FIRST bAufze NO-LOCK WHERE bAufze.Firma = Firma AND bAufze.Aufnr = iAufnr NO-ERROR. IF AVAILABLE bAufze THEN lFirst = FALSE. ELSE lFirst = TRUE. FIND bAufko NO-LOCK WHERE RECID(bAufko) = iRecid. iKnr = bAufko.Knr. FIND bSteuer NO-LOCK WHERE bSteuer.Firma = bAufko.Firma NO-ERROR. FIND bDebst NO-LOCK WHERE bDebst.Firma = bAufko.Firma AND bDebst.Knr = bAufko.Knr NO-ERROR. FIND bAdresse NO-LOCK WHERE bAdresse.Firma = AdFirma AND bAdresse.Knr = bAufko.Knr NO-ERROR. cBemerk = ''. CASE bSteuer.St05: WHEN 0 THEN cBemerk = bDebst.Bemerk . WHEN 1 THEN cBemerk = bAdresse.Bem . WHEN 2 THEN cBemerk = bDebst.Auf_Text . END CASE. IF cBemerk <> '' THEN DO: E_Bemerk:SCREEN-VALUE IN FRAME {&FRAME-NAME} = cBemerk. E_Bemerk:BGCOLOR = 14. END. ELSE DO: E_Bemerk:SCREEN-VALUE IN FRAME {&FRAME-NAME} = ''. E_Bemerk:BGCOLOR = 15. END. RELEASE bAufko. RELEASE bAufze. RELEASE bDebst. RELEASE bSteuer. RELEASE bAdresse. IF NOT lFirst THEN RETURN. FIND FIRST bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = iKnr NO-ERROR. IF NOT AVAILABLE bKunBest THEN RETURN. lJa = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, 0315) NO-ERROR. IF NOT lJa THEN RETURN. RUN 'g-faxbestellung.w' ( iAufnr, bKunBest.Knr, OUTPUT htKunBest ) NO-ERROR. PUBLISH 'refreshAufko'. DYNAMIC-FUNCTION('openQuery':U IN hDaten) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME