&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-abholze.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 Rab_Wert &Scoped-define KEY_FELDER F_Artnr,Inhalt,Jahr &Scoped-define NUR_LESEN KGeb_Me { incl/viwdefinition.i } DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iInhalt AS INT NO-UNDO. DEF VAR iJahr AS INT NO-UNDO. DEF VAR iAufnr AS INT NO-UNDO. DEF VAR iPos AS INT NO-UNDO. DEF VAR htAufze AS HANDLE NO-UNDO. DEF VAR cUpdFields AS CHAR NO-UNDO. DEF VAR lNew AS LOG NO-UNDO. DEF VAR iLKY AS INT NO-UNDO. DEF VAR lVorEntry AS LOG NO-UNDO. DEF VAR hLastField AS HANDLE NO-UNDO. DEF VAR cAktRowId AS CHAR NO-UNDO. DEF VAR iPreisArt AS INT NO-UNDO. DEF VAR iOldRabArt AS INT NO-UNDO. DEF BUFFER BArtst FOR Artst. DEF BUFFER BAufze FOR Aufze. DEF BUFFER BAufko FOR Aufko. DEF TEMP-TABLE tAufze NO-UNDO LIKE Aufze FIELD KGebinde AS CHAR FIELD VGebinde AS CHAR FIELD GGebinde AS CHAR FIELD Knr AS INT FIELD iRecid AS RECID. DEF TEMP-TABLE sAufze NO-UNDO LIKE Aufze. DEF TEMP-TABLE eAufze NO-UNDO LIKE Aufze. {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-abholze.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.Aktion RowObject.Inhalt ~ RowObject.Jahr RowObject.Bez1 RowObject.Bez2 RowObject.Pos RowObject.Preis ~ RowObject.Aufnr RowObject.Firma RowObject.Rab_Art RowObject.Rab_Wert ~ RowObject.Zus_Wert RowObject.Zus_Art RowObject.KGeb_Me RowObject.FremdNr &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS F_Artnr RECT-1 &Scoped-Define DISPLAYED-FIELDS RowObject.Aktion RowObject.Inhalt ~ RowObject.Jahr RowObject.Bez1 RowObject.Bez2 RowObject.Pos RowObject.Preis ~ RowObject.Aufnr RowObject.Firma RowObject.Rab_Art RowObject.Rab_Wert ~ RowObject.Zus_Wert RowObject.Zus_Art RowObject.Artnr RowObject.KGeb_Me ~ RowObject.FremdNr RowObject.PreisArt &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS F_Artnr /* 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.KGeb_Me /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ 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-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 150 BY 3.57. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main RowObject.Aktion AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 60 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP F_Artnr AT ROW 2.52 COL 1 COLON-ALIGNED NO-LABEL WIDGET-ID 50 RowObject.Inhalt AT ROW 2.52 COL 16 COLON-ALIGNED NO-LABEL WIDGET-ID 30 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Jahr AT ROW 2.52 COL 24 COLON-ALIGNED NO-LABEL WIDGET-ID 32 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Bez1 AT ROW 2.52 COL 33 COLON-ALIGNED NO-LABEL WIDGET-ID 26 VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 BGCOLOR 15 RowObject.Bez2 AT ROW 3.52 COL 33 COLON-ALIGNED NO-LABEL WIDGET-ID 28 VIEW-AS FILL-IN NATIVE SIZE 40 BY 1 BGCOLOR 15 RowObject.Pos AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 58 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Preis AT ROW 2.52 COL 109 COLON-ALIGNED NO-LABEL WIDGET-ID 36 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 RowObject.Aufnr AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 54 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Firma AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 56 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Rab_Art AT ROW 2.52 COL 128 COLON-ALIGNED NO-LABEL WIDGET-ID 38 VIEW-AS COMBO-BOX LIST-ITEM-PAIRS "Kein Rabatt",0, "Prozent",1, "Betrag",2, "EP Plus",3 DROP-DOWN-LIST SIZE 20 BY 1 RowObject.Rab_Wert AT ROW 3.52 COL 133 COLON-ALIGNED NO-LABEL WIDGET-ID 40 VIEW-AS FILL-IN NATIVE SIZE 15 BY 1 BGCOLOR 15 RowObject.Zus_Wert AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 64 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Zus_Art AT ROW 2 COL 48 COLON-ALIGNED WIDGET-ID 62 VIEW-AS COMBO-BOX LIST-ITEM-PAIRS "Kein Rabatt",0, "Prozent",1, "Betrag",2 DROP-DOWN-LIST SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Artnr AT ROW 2 COL 50 COLON-ALIGNED NO-LABEL WIDGET-ID 24 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Me AT ROW 2.52 COL 92 COLON-ALIGNED NO-LABEL WIDGET-ID 34 VIEW-AS FILL-IN NATIVE SIZE 17 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.FremdNr AT ROW 3.52 COL 1 COLON-ALIGNED NO-LABEL WIDGET-ID 52 FORMAT "XXXXXX.XXXX.XXXX" VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.PreisArt AT ROW 2 COL 50 COLON-ALIGNED WIDGET-ID 66 FORMAT "99-" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP " Menge Preis Rabatt" VIEW-AS TEXT SIZE 51 BY .81 AT ROW 1.67 COL 98.2 WIDGET-ID 48 FONT 6 "Artikel" VIEW-AS TEXT SIZE 15 BY .81 AT ROW 1.67 COL 3 WIDGET-ID 42 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 "Inhalt / Jahr" VIEW-AS TEXT SIZE 16 BY .81 AT ROW 1.67 COL 18 WIDGET-ID 44 FONT 6 "Bezeichnung/Beschreibung" VIEW-AS TEXT SIZE 32 BY .81 AT ROW 1.67 COL 34 WIDGET-ID 46 FONT 6 RECT-1 AT ROW 1.24 COL 2 WIDGET-ID 22 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-abholze.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-abholze.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 = 4.05 WIDTH = 152. /* 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.Aktion:HIDDEN IN FRAME F-Main = TRUE RowObject.Aktion: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. 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 */ ASSIGN RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.FremdNr IN FRAME F-Main EXP-FORMAT */ ASSIGN RowObject.FremdNr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN F_Artnr IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.Inhalt IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main 5 */ /* SETTINGS FOR FILL-IN RowObject.KGeb_Me IN FRAME F-Main 6 */ ASSIGN RowObject.KGeb_Me:READ-ONLY IN FRAME F-Main = TRUE. 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-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.Zus_Art:HIDDEN IN FRAME F-Main = TRUE. ASSIGN RowObject.Zus_Wert:HIDDEN IN FRAME F-Main = TRUE RowObject.Zus_Wert:READ-ONLY IN FRAME F-Main = TRUE. /* _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 F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr vTableWin ON ALT-F OF F_Artnr IN FRAME F-Main DO: DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iAnzArt AS INT NO-UNDO. DEF VAR iRetVal AS INT INIT 0 NO-UNDO. DEF BUFFER bArtst FOR Artst. DEF 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. FIND FIRST tAufze. 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.Inhalt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Inhalt vTableWin ON END-ERROR OF RowObject.Inhalt IN FRAME F-Main /* Inhalt */ DO: APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Jahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Jahr vTableWin ON END-ERROR OF RowObject.Jahr IN FRAME F-Main /* Jahr */ DO: APPLY 'ENTRY' TO F_Artnr. 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: DEF 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 &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin /* *************************** Main Block *************************** */ { incl/viwmainblock.i } cUpdFields = 'KGeb_Me,Preis,Bez1,Bez2,Preis,Rab_Art,Rab_Wert'. 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: ------------------------------------------------------------------------------*/ DEF VAR cRowId AS CHAR NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iAufnr AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR lJa AS LOG NO-UNDO. DEF BUFFER bAufko FOR Aufko. PUBLISH 'GET_CURRENT_ABHOLKO' ( 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. FIND bAufko NO-LOCK WHERE RECID(bAufko) = iRecid. lNew = TRUE. FNeu = TRUE. FMut = TRUE. FDisp = TRUE. RUN SUPER. DO WITH FRAME {&FRAME-NAME}: EMPTY TEMP-TABLE tAufze. CREATE tAufze. ASSIGN tAufze.Firma = bAufko.Firma tAufze.Aufnr = bAufko.Aufnr tAufze.Artnr = 0 tAufze.Inhalt = 0 tAufze.Jahr = 0 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: ------------------------------------------------------------------------------*/ DEF VAR lJa AS LOG NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iAufnr AS INT NO-UNDO. DEF VAR lAdmin AS LOG NO-UNDO. DEF VAR lSpez AS LOG NO-UNDO. DEF VAR cMeldung AS CHAR NO-UNDO. DEF VAR nTotal AS DEC DECIMALS 4 NO-UNDO EXTENT 15. DEF VAR cRetValue AS CHAR NO-UNDO. DEF VAR nAuftot AS DEC NO-UNDO. DEF BUFFER bAufko FOR Aufko. DEF BUFFER bAufze FOR Aufze. DEF 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. RUN SUPER. 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, Firma, iAufnr, OUTPUT nTotal ) NO-ERROR. IF nAufTot <> nTotal[10] THEN DYNAMIC-FUNCTION('setAufkoDruckFlag':U, tAufze.Firma, tAufze.Aufnr, FALSE ) NO-ERROR. PUBLISH 'refreshAbholKo'. 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}: 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. DEF VAR iArtnr AS INT 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. FCancel = FALSE. DO WITH FRAME {&FRAME-NAME}: F_Artnr:SCREEN-VALUE = (IF iArtnr = 0 THEN '' ELSE rowObject.Artnr: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. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin PROCEDURE enableFields : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* 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: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ 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 } 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' 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 FEHLWERTE vTableWin PROCEDURE FEHLWERTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO. DEF VAR i1 AS INT 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 FRAME_TO_BUFFER vTableWin PROCEDURE FRAME_TO_BUFFER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ii AS INT NO-UNDO. DEF VAR hFelder AS HANDLE NO-UNDO. DEF VAR hFeld AS HANDLE NO-UNDO. FIND FIRST tAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. hFelder = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE (hFelder) : DO WHILE TRUE: IF hFelder:TYPE = 'RECTANGLE' THEN LEAVE. IF hFelder:TYPE = 'LITERAL' THEN LEAVE. IF hFelder:NAME = ? THEN LEAVE. ii = LOOKUP(hFelder:NAME, cUpdFields, ','). IF ii = 0 THEN LEAVE. hFeld = htAufze:BUFFER-FIELD(hFelder:NAME) NO-ERROR. IF NOT VALID-HANDLE ( hFeld ) THEN LEAVE. CASE hFeld:DATA-TYPE: WHEN 'logical' THEN DO: IF hFeld:SCREEN-VALUE BEGINS '0' OR hFeld:SCREEN-VALUE BEGINS 'n' THEN hFeld:BUFFER-VALUE = STRING(FALSE). ELSE hFeld:BUFFER-VALUE = STRING(TRUE). END. OTHERWISE DO: hFeld:BUFFER-VALUE = hFelder:SCREEN-VALUE. END. END CASE. LEAVE. END. hFelder = hFelder:NEXT-SIBLING. END. DO WITH FRAME {&FRAME-NAME}: /* rowObject.Preis :MODIFIED = FALSE. rowObject.Rab_Art :MODIFIED = FALSE. rowObject.Rab_Wert:MODIFIED = FALSE. rowObject.Zus_Art :MODIFIED = FALSE. rowObject.Zus_Wert:MODIFIED = FALSE. */ IF rowObject.Aktion:SCREEN-VALUE BEGINS 'n' THEN rowObject.Preis:BGCOLOR = 15. ELSE rowObject.Preis:BGCOLOR = 14. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GEBINDEKONTI_ERMITTELN vTableWin PROCEDURE GEBINDEKONTI_ERMITTELN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND FIRST tAufze. FIND GGebinde WHERE GGebinde.Firma = Firma AND GGebinde.Geb_Cd = tAufze.GGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF NOT AVAILABLE GGebinde THEN DO: RUN FEHLER ( INPUT 332 ). RETURN 'FEHLER'. END. IF GGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Firma AND GebKonto.Geb_Cd = GGebinde.Geb_Kto NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN DO: RUN FEHLER ( INPUT 333 ). RETURN 'FEHLER'. END. tAufze.GGebKto = GebKonto.Geb_Cd. LEAVE. END. FIND VGebinde WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = tAufze.VGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF NOT AVAILABLE VGebinde THEN DO: RUN FEHLER ( INPUT 336 ). RETURN 'FEHLER'. END. IF VGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Firma AND GebKonto.Geb_Cd = VGebinde.Geb_Kto NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN DO: RUN FEHLER ( INPUT 337 ). RETURN 'FEHLER'. END. tAufze.VGebKto = GebKonto.Geb_Cd. LEAVE. END. FIND KGebinde WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = tAufze.KGeb_Cd NO-LOCK NO-ERROR. DO WHILE TRUE: IF NOT AVAILABLE KGebinde THEN DO: RUN FEHLER ( INPUT 338 ). RETURN 'FEHLER'. END. IF KGebinde.Geb_Kto = '' THEN LEAVE. FIND GebKonto USE-INDEX GebKonto-k1 WHERE GebKonto.Firma = Firma AND GebKonto.Geb_Cd = KGebinde.Geb_Kto NO-LOCK NO-ERROR. IF NOT AVAILABLE GebKonto THEN DO: RUN FEHLER ( INPUT 1078 ). RETURN 'FEHLER'. END. tAufze.KGebKto = GebKonto.Geb_Cd. LEAVE. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_ARTNR vTableWin PROCEDURE LEAVE_ARTNR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iAnzArt AS INT NO-UNDO. DEF VAR iRetVal AS INT INIT 0 NO-UNDO. DEF VAR lRetVal AS LOG NO-UNDO. DEF BUFFER bArtst FOR Artst. DEF 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) ipHandle :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 } DEF VAR lJa AS LOG NO-UNDO. DEF VAR cFeld AS CHAR NO-UNDO. DEF VAR iRabArt AS INT NO-UNDO. DEF VAR nPreis AS DEC DECIMALS 4 NO-UNDO. DEF VAR hWiType AS CHAR NO-UNDO. DEF 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' 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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iInhalt AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iAnzArt AS INT NO-UNDO. DEF VAR lFehler AS LOG INIT FALSE NO-UNDO. DEF VAR iRetVal AS INT INIT 0 NO-UNDO. DEF BUFFER bArtst FOR Artst. DEF BUFFER bArtbez FOR Artbez. DO WITH FRAME {&FRAME-NAME}: iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. IF KEYFUNCTION(iLKY) = 'END-ERROR' THEN RETURN. 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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iInhalt AS INT NO-UNDO. DEF VAR iJahr AS INT NO-UNDO. DEF VAR iAnzArt AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iRetVal AS INT NO-UNDO. DEF BUFFER bArtst FOR Artst. DEF BUFFER bArtbez FOR Artbez. DO WITH FRAME {&FRAME-NAME}: iLKY = LASTKEY. iAnzArt = 0. iRecid = 0. IF KEYFUNCTION(iLKY) = 'END-ERROR' THEN RETURN. 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: ------------------------------------------------------------------------------*/ DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR lRetVal AS LOG NO-UNDO. DEF BUFFER bArtst FOR Artst. DEF BUFFER bKGebinde FOR KGebinde. DEF BUFFER bVGebinde FOR VGebinde. DEF 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: ------------------------------------------------------------------------------*/ DEF VAR ii AS INT NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DEF VAR cFeld AS CHAR NO-UNDO. DEF VAR cColList AS CHAR NO-UNDO. DEF VAR hFeld AS HANDLE NO-UNDO. DEF VAR hbAufze AS HANDLE NO-UNDO. DEF BUFFER bAufze FOR Aufze. cColList = DYNAMIC-FUNCTION('getDisplayedFields':U). ii = NUM-ENTRIES(cColList, ',') + 1. FIND FIRST tAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. FIND bAufze OF tAufze. hbAufze = BUFFER bAufze:HANDLE. DYNAMIC-FUNCTION('fillArtbwFromAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. REPEAT TRANSACTION: DISABLE TRIGGERS FOR LOAD OF Aufze. FIND bAufze OF tAufze. DO ii = 1 TO htAufze:NUM-FIELDS: cFeld = htAufze:BUFFER-FIELD(ii):NAME. i1 = LOOKUP(cFeld, cColList, ',') + 1 NO-ERROR. IF i1 > 1 THEN NEXT. hFeld = hbAufze: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) = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) THEN NEXT. hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2) = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE(i2). END. NEXT. END. IF hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE = htAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE THEN NEXT. hbAufze:BUFFER-FIELD(cFeld):BUFFER-VALUE = htAufze:BUFFER-FIELD(cFeld):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: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR cColList AS CHAR NO-UNDO. DEF VAR cColValues AS CHAR NO-UNDO. DEF VAR cFeld AS CHAR 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: ------------------------------------------------------------------------------*/ DEF OUTPUT PARAMETER opJa AS LOG NO-UNDO. DEF VAR eHandle AS HANDLE NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR iNummer AS INT NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR lJa AS LOG NO-UNDO. DEF 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. DEF VAR iRecid AS RECID NO-UNDO. DEF BUFFER bAufze FOR Aufze. CASE pcMode: WHEN 'updateBegin' THEN DO: RUN 'refreshRow' IN hDaten. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. 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: FMut = TRUE. END. WHEN 'updateEnd' THEN DO: FNeu = FALSE. FMut = FALSE. FCopy = FALSE. lNew = FALSE. RUN 'refreshRow' IN hDaten. 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: ------------------------------------------------------------------------------*/ DEF VAR lrNew AS LOG NO-UNDO. DEF VAR nTotal AS DEC DECIMALS 4 NO-UNDO EXTENT 15. DEF VAR cRetValue AS CHAR NO-UNDO. DEF VAR nAufTot AS DEC NO-UNDO. DEF 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. 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 'refreshAbholKo'. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME