&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-kunbest.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 Pos &Scoped-define LETZTES_FELD Jahr &Scoped-define KEY_FELDER Pos,Artnr,Inhalt,jahr &Scoped-define NUR_LESEN Artikel,iInhalt,AlkGehalt,KGeb,VGeb,GGeb DEF VAR iKnr AS INT NO-UNDO. { incl/viwdefinition.i } DEF TEMP-TABLE tKunBest LIKE KunBest FIELD cSort AS CHAR INDEX tKunBest-tk Artnr Inhalt Jahr INDEX tKunBest-k1 Firma Knr Pos INDEX tKunBest-k2 Firma cSort. DEF TEMP-TABLE tAufze LIKE Aufze FIELD Knr AS INT. DEF VAR htAufze AS HANDLE NO-UNDO. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. DEF TEMP-TABLE tKunden FIELD Knr AS INT. {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-kunbest.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.Pos RowObject.Artnr ~ RowObject.Inhalt RowObject.Jahr RowObject.Artikel RowObject.iInhalt ~ RowObject.AlkGehalt RowObject.GGeb_Cd RowObject.KGeb RowObject.VGeb ~ RowObject.GGeb &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS RECT-37 RECT-41 Btn_YourBarMate Btn_Neu ~ Btn_Nummer Btn_Excel &Scoped-Define DISPLAYED-FIELDS RowObject.Pos RowObject.Artnr ~ RowObject.Inhalt RowObject.Jahr RowObject.Artikel RowObject.iInhalt ~ RowObject.AlkGehalt RowObject.GGeb_Me RowObject.KGeb_Me RowObject.GGeb_Cd ~ RowObject.VGeb_Cd RowObject.VGeb_Me RowObject.KGeb_Cd RowObject.Kunde ~ RowObject.Firma RowObject.Lag_Buch RowObject.Soll RowObject.Knr ~ RowObject.Best RowObject.KGeb RowObject.VGeb RowObject.GGeb &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Excel LABEL "Excel" SIZE 18 BY 1. DEFINE BUTTON Btn_Neu LABEL "neue Liste" SIZE 18 BY 1. DEFINE BUTTON Btn_Nummer LABEL "neue Nummern" SIZE 18 BY 1. DEFINE BUTTON Btn_YourBarMate LABEL "YourBarMate" SIZE 18 BY 1. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 180 BY 4.29. DEFINE RECTANGLE RECT-41 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 180 BY .1. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main RowObject.Pos AT ROW 1.52 COL 13 COLON-ALIGNED WIDGET-ID 32 VIEW-AS FILL-IN NATIVE SIZE 7.6 BY 1 BGCOLOR 15 RowObject.Artnr AT ROW 1.52 COL 31 COLON-ALIGNED WIDGET-ID 6 LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 RowObject.Inhalt AT ROW 1.52 COL 45 COLON-ALIGNED WIDGET-ID 18 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Jahr AT ROW 1.52 COL 56 COLON-ALIGNED WIDGET-ID 20 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.Artikel AT ROW 1.52 COL 66 COLON-ALIGNED NO-LABEL WIDGET-ID 4 VIEW-AS FILL-IN NATIVE SIZE 52 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.iInhalt AT ROW 1.57 COL 127.8 COLON-ALIGNED WIDGET-ID 16 VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 RowObject.AlkGehalt AT ROW 1.67 COL 143.4 COLON-ALIGNED WIDGET-ID 2 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 RowObject.GGeb_Me AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 14 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Me AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 24 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.GGeb_Cd AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 12 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Cd AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 36 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb_Me AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 38 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb_Cd AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 22 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Kunde AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 28 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Firma AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 10 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Lag_Buch AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 30 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Soll AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 34 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Knr AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 26 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Best AT ROW 2 COL 78 COLON-ALIGNED WIDGET-ID 8 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.KGeb AT ROW 2.52 COL 31 COLON-ALIGNED WIDGET-ID 42 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.VGeb AT ROW 2.52 COL 66 COLON-ALIGNED WIDGET-ID 44 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 NO-TAB-STOP WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE AT COL 1 ROW 1 SCROLLABLE WIDGET-ID 100. /* DEFINE FRAME statement is approaching 4K Bytes. Breaking it up */ DEFINE FRAME F-Main RowObject.GGeb AT ROW 2.52 COL 100 COLON-ALIGNED WIDGET-ID 46 VIEW-AS FILL-IN NATIVE SIZE 18 BY 1 BGCOLOR 15 NO-TAB-STOP Btn_YourBarMate AT ROW 4.19 COL 68 WIDGET-ID 58 Btn_Neu AT ROW 4.19 COL 119 WIDGET-ID 52 Btn_Nummer AT ROW 4.19 COL 139 WIDGET-ID 50 Btn_Excel AT ROW 4.19 COL 159 WIDGET-ID 54 RECT-37 AT ROW 1.24 COL 2 WIDGET-ID 40 RECT-41 AT ROW 3.86 COL 2 WIDGET-ID 56 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-kunbest.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-kunbest.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.76 WIDTH = 182. /* 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 */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. ASSIGN RowObject.Artikel:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Artnr IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Best IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Best:HIDDEN IN FRAME F-Main = TRUE RowObject.Best: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. ASSIGN RowObject.GGeb:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN RowObject.GGeb_Cd:HIDDEN IN FRAME F-Main = TRUE RowObject.GGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.GGeb_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.Inhalt IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Jahr IN FRAME F-Main EXP-LABEL */ ASSIGN RowObject.KGeb:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_Cd IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.KGeb_Cd:HIDDEN IN FRAME F-Main = TRUE RowObject.KGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.KGeb_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.Knr IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Knr:HIDDEN IN FRAME F-Main = TRUE RowObject.Knr:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Kunde IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Kunde:HIDDEN IN FRAME F-Main = TRUE RowObject.Kunde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Lag_Buch IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Lag_Buch:HIDDEN IN FRAME F-Main = TRUE RowObject.Lag_Buch:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Soll IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Soll:HIDDEN IN FRAME F-Main = TRUE RowObject.Soll:READ-ONLY IN FRAME F-Main = TRUE. ASSIGN RowObject.VGeb:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_Cd IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.VGeb_Cd:HIDDEN IN FRAME F-Main = TRUE RowObject.VGeb_Cd:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.VGeb_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. /* _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.Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Artnr vTableWin ON ALT-F OF RowObject.Artnr IN FRAME F-Main /* Artikel */ DO: IF NOT FNeu THEN RETURN NO-APPLY. DEF VAR iRecid AS RECID NO-UNDO. DEF BUFFER bArtst FOR Artst. RUN 'g-suchen-artikel.w':U ( INPUT '', OUTPUT iRecid ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND bArtst NO-LOCK WHERE RECID(bArtst) = iRecid. rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr). rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt). rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr). APPLY 'LEAVE' TO rowObject.Jahr. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel vTableWin ON CHOOSE OF Btn_Excel IN FRAME F-Main /* Excel */ DO: IF FMut THEN RETURN NO-APPLY. RUN AUSGABE_EXCEL. APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Neu &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Neu vTableWin ON CHOOSE OF Btn_Neu IN FRAME F-Main /* neue Liste */ DO: IF FMut THEN RETURN NO-APPLY. RUN NEUE_LISTE. APPLY 'U1':U. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Nummer &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Nummer vTableWin ON CHOOSE OF Btn_Nummer IN FRAME F-Main /* neue Nummern */ DO: IF FMut THEN RETURN NO-APPLY. RUN NEUE_POSITIONSNUMMERN. APPLY 'U1':U. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_YourBarMate &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_YourBarMate vTableWin ON CHOOSE OF Btn_YourBarMate IN FRAME F-Main /* YourBarMate */ DO: IF FMut THEN RETURN NO-APPLY. RUN EXPORT_YOURBARMATE. APPLY 'U1'. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin /* *************************** Main Block *************************** */ { incl/viwmainblock.i } SUBSCRIBE TO 'ADD_ARTIKEL_TO_FAXLISTE' ANYWHERE. &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: ------------------------------------------------------------------------------*/ FNeu = TRUE. FMut = TRUE. FDisp = TRUE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ADD_ARTIKEL_TO_FAXLISTE vTableWin PROCEDURE ADD_ARTIKEL_TO_FAXLISTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR iPos AS INT NO-UNDO. DEF BUFFER bArtst FOR Artst. DEF BUFFER bKunBest FOR KunBest. DEF BUFFER bAdresse FOR Adresse. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN DO: PUBLISH 'GETFAXLISTENKNR' ( OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN. FIND bAdresse NO-LOCK WHERE RECID(bAdresse) = iRecid. iKnr = bAdresse.Knr. iPos = 10. END. ELSE DO: FIND bKunBest NO-LOCK WHERE RECID(bKunBest) = iRecid. iPos = bKunBest.Pos + 1. iKnr = bKunBest.Knr. END. DO WHILE TRUE: FIND FIRST bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = iKnr AND bKunBest.Pos = iPos NO-ERROR. IF NOT AVAILABLE bKunBest THEN LEAVE. iPos = iPos + 1. END. FIND bArtst NO-LOCK WHERE RECID(bArtst) = ipRecid. RUN TOOLBAR IN hKontainer ('ADD') NO-ERROR. DO WITH FRAME {&FRAME-NAME}: ASSIGN rowObject.Pos :SCREEN-VALUE = STRING(iPos) rowObject.Artnr :SCREEN-VALUE = STRING(bArtst.Artnr) rowObject.Inhalt:SCREEN-VALUE = STRING(bArtst.Inhalt) rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr). APPLY 'LEAVE' TO rowObject.Jahr. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_EXCEL vTableWin PROCEDURE AUSGABE_EXCEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Vorlage AS CHAR NO-UNDO. DEF VAR Datei AS CHAR NO-UNDO. DEF VAR cParam AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR xSort AS CHAR NO-UNDO. DEF VAR Kol AS INT NO-UNDO. DEF VAR Bez AS CHAR NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR lInkl AS LOG NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR iPreisArt AS INT NO-UNDO. DEF BUFFER bKunBest FOR KunBest. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND bKunBest NO-LOCK WHERE RECID(bKunBest) = iRecid. iKnr = bKunBest.Knr. FIND Steuer USE-INDEX Steuer-k1 NO-LOCK WHERE Steuer.Firma = Firma NO-ERROR. EMPTY TEMP-TABLE tAufze. CREATE tAufze. Vorlage = 'Bestell.xls'. Datei = 'Bestell.xls'. cParam = Datei + CHR(01) + Vorlage. RUN CREATEDATEI ( INPUT cParam ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. Datei = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. RUN OPENEXCEL ( INPUT excelAppl, INPUT Datei, INPUT '', OUTPUT io). IF NOT io THEN DO: DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. FIND Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = iKnr NO-ERROR. FIND Debst NO-LOCK USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = iKnr NO-ERROR. FIND Wust NO-LOCK USE-INDEX Wust-k1 WHERE Wust.CodeK = Debst.MWST AND Wust.CodeA = 99 NO-ERROR. lInkl = Wust.Incl. GET-KEY-VALUE SECTION 'FaxListe' KEY 'Sortierung' VALUE xSort. IF xSort = ? THEN xSort = '1'. xSort = '1'. EMPTY TEMP-TABLE tKunBest. FOR EACH bKunBest NO-LOCK USE-INDEX KunBest-k1 WHERE bKunBest.Firma = Firma AND bKunBest.Knr = Adresse.Knr AND bKunBest.Artnr > 0, FIRST Artst OF bKunBest NO-LOCK : CREATE tKunBest. BUFFER-COPY bKunBest TO tKunBest. CASE xSort: WHEN '1' THEN tKunBest.cSort = STRING(bKunBest.Pos ,'999999'). WHEN '2' THEN tKunBest.cSort = STRING(bKunBest.Artnr ,'999999') + STRING(bKunBest.Inhalt,'9999') + STRING(bKunBest.Jahr ,'9999'). OTHERWISE DO: tKunBest.cSort = Artst.Bez. END. END CASE. END. ii = 0. DO ix = 4 TO 11: IF Adresse.Anschrift[ix] = '' THEN NEXT. ii = ii + 1. Zelle = 'B' + TRIM(STRING(ii + 4,"zzz9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Adresse.Anschrift[ix]. END. IF Adresse.Tel-1 <> '' THEN DO: ii = ii + 1. Zelle = 'B' + TRIM(STRING(ii + 4,"zzz9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = 'Tel'. Zelle = 'C' + TRIM(STRING(ii + 4,"zzz9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Adresse.Tel-1. END. IF Adresse.Tel-3 <> '' THEN DO: ii = ii + 1. Zelle = 'B' + TRIM(STRING(ii + 4,"zzz9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = 'Fax'. Zelle = 'C' + TRIM(STRING(ii + 4,"zzz9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Adresse.Tel-3. END. Zelle = 'F5'. excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Firma1. Zelle = 'F6'. excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Strasse. Zelle = 'F7'. excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Ort. Zelle = 'G8'. excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Tel-1. Zelle = 'G9'. excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Steuer.Fax-1. Zelle = 'A12'. excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = 'Kunden-Nr.: ' + TRIM(STRING(Adresse.Knr,'>>>>>>')). FIND FIRST tAufze. ASSIGN tAufze.Firma = Firma. ii = 17. FOR EACH tKunBest USE-INDEX tKunBest-k2 NO-LOCK: FIND Artst OF tKunBest NO-LOCK NO-ERROR. Bez = Artst.Bez. FIND Wust NO-LOCK WHERE Wust.CodeK = Debst.Mwst AND Wust.CodeA = Artst.Mwst. FIND FIRST tAufze. ASSIGN tAufze.Artnr = tKunBest.Artnr tAufze.Inhalt = tKunBest.Inhalt tAufze.Jahr = tKunBest.Jahr tAufze.MBest = 1 tAufze.MGeli = 1 tAufze.Netto = Artst.Netto tAufze.Rab_Art = Debst.Zei_Rab_Art tAufze.Rab_Wert = Debst.Zei_Rab_Wert tAufze.Rab_Betr = 0 tAufze.Zus_Art = Debst.Zuschl_Art tAufze.Zus_Wert = Debst.Zuschl_Wert tAufze.Zus_Betr = 0 tAufze.Bru_Betr = 0 tAufze.Net_Betr = 0 tAufze.WuCd = Wust.WuCd tAufze.WC = Artst.Mwst tAufze.Knr = Debst.Knr. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. FIND FIRST tAufze. tAufze.PreisArt = iPreisArt. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR. Kol = 65. ii = ii + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Pos,"zzz9"). Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Artnr,"999999"). IF Steuer.Fwc10 = 'RAUCH' THEN DO: IF Artst.Ausverk = 2 THEN Bez = Bez + ' **'. IF Artst.Ausverk = 8 THEN Bez = Bez + ' *'. END. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = Bez. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = KGebinde.KBez. Kol = Kol + 1. IF Artst.Jahr <> 0 THEN DO: Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Jahr,"zzz9"). END. Kol = Kol + 1. IF Artst.Alk_Gehalt <> 0 THEN DO: Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Alk_Gehalt,"z9.99"). END. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = TRIM(STRING(tAufze.Net_Betr,'->>>>>>9.999')). Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = VGebinde.KBez. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Soll,"zzzz"). Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(tKunBest.Best,"zzzz"). END. ii = ii + 2. Zelle = 'A' + STRING(ii). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = '*'. Zelle = 'B' + STRING(ii). excelAppl:Range(Zelle):Select. excelAppl:Selection:HorizontalAlignment = -4131. excelAppl:ActiveCell:FormulaR1C1 = 'Beschaffungsartikel, 5 - 10 Arbeitstage bis zur Auslieferung'. ii = ii + 1. Zelle = 'A' + STRING(ii). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = '**'. Zelle = 'B' + STRING(ii). excelAppl:Range(Zelle):Select. excelAppl:Selection:HorizontalAlignment = -4131. excelAppl:ActiveCell:FormulaR1C1 = 'Restposten'. Zelle = 'A1'. excelAppl:Range(Zelle):Select. DEF VAR SaveName AS CHAR NO-UNDO. IF Adresse.Firma1 <> '' THEN SaveName = TRIM(SUBSTR(Adresse.Firma1,01,12)). ELSE SaveName = TRIM(SUBSTR(Adresse.NAME ,01,12)). IF SaveName = '' THEN SaveName = 'FaxListe'. SaveName = SESSION:TEMP-DIR + SaveName + '.xls'. excelAppl:ActiveWorkbook:SaveAs(SaveName,,,,,,TRUE) NO-ERROR. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. 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. 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: ------------------------------------------------------------------------------*/ 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 Ja AS LOG NO-UNDO. Ja = DYNAMIC-FUNCTION( 'ANTWORT_NEIN':U, INPUT 1000 ). IF NOT Ja THEN DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL':U ) NO-ERROR. RETURN NO-APPLY. END. /* REPEAT TRANSACTION: */ /* RUN INAKTIVIEREN IN hDaten. */ /* LEAVE. */ /* END. */ /* */ RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ 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}: 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 ii AS INT NO-UNDO. IF NOT FDisp THEN DO: FDisp = TRUE. RETURN. END. IF FCancel THEN pcColValues = OldColValues. IF NOT FNeu THEN OldColValues = pcColValues. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U). ii = LOOKUP('Knr', oldColList, ',') + 1. iKnr = INTEGER(ENTRY(ii, OldColValues, CHR(1))) NO-ERROR. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ). RUN SUPER( INPUT pcColValues). DO WITH FRAME {&FRAME-NAME}: IF FMut THEN DO: ASSIGN Btn_Neu :SENSITIVE = FALSE Btn_Nummer:SENSITIVE = FALSE Btn_Excel :SENSITIVE = FALSE. END. ELSE DO: ASSIGN Btn_Neu :SENSITIVE = TRUE Btn_Nummer:SENSITIVE = TRUE Btn_Excel :SENSITIVE = TRUE. END. 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: ------------------------------------------------------------------------------*/ /* 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 FNeu THEN RETURN. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO: RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: 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 } DO WITH FRAME {&FRAME-NAME}: CASE FeldName: END CASE. END. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXPORT_YOURBARMATE vTableWin PROCEDURE EXPORT_YOURBARMATE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Vorlage AS CHAR NO-UNDO. DEF VAR Datei AS CHAR NO-UNDO. DEF VAR cParam AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR Kol AS INT NO-UNDO. DEF VAR Bez AS CHAR NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR lInkl AS LOG NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR iPreisArt AS INT NO-UNDO. DEF VAR cWgr AS CHAR NO-UNDO. DEF BUFFER bKunBest FOR KunBest. iRecid = DYNAMIC-FUNCTION('getCurrentRecid':U IN hDaten ) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND bKunBest NO-LOCK WHERE RECID(bKunBest) = iRecid. iKnr = bKunBest.Knr. FIND Adresse NO-LOCK WHERE Adresse.Firma = AdFirma AND Adresse.Knr = iKnr NO-ERROR. IF NOT AVAILABLE Adresse THEN RETURN NO-APPLY. FIND Steuer USE-INDEX Steuer-k1 NO-LOCK WHERE Steuer.Firma = Firma NO-ERROR. EMPTY TEMP-TABLE tAufze. CREATE tAufze. Vorlage = 'ExportYourBarMate.xlsx'. Datei = SUBSTITUTE('ExportYourBarMate_&1.xlsx', Adresse.Anzeig_Br). cParam = Datei + CHR(01) + Vorlage. RUN CREATEDATEI ( INPUT cParam ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. Datei = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: MESSAGE 'Die Applikation Excel konnte nicht gestartet werden ! ' VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. RUN OPENEXCEL ( INPUT excelAppl, INPUT Datei, INPUT '', OUTPUT io). IF NOT io THEN DO: DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. FIND Debst NO-LOCK USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = iKnr NO-ERROR. FIND Wust NO-LOCK USE-INDEX Wust-k1 WHERE Wust.CodeK = Debst.MWST AND Wust.CodeA = 99 NO-ERROR. lInkl = Wust.Incl. EMPTY TEMP-TABLE tKunBest. FOR EACH bKunBest NO-LOCK USE-INDEX KunBest-k1 WHERE bKunBest.Firma = Firma AND bKunBest.Knr = Adresse.Knr AND bKunBest.Artnr > 0, FIRST Artst OF bKunBest NO-LOCK : CREATE tKunBest. BUFFER-COPY bKunBest TO tKunBest. END. FIND FIRST tAufze. ASSIGN tAufze.Firma = Firma. ii = 2. FOR EACH tKunBest USE-INDEX tKunBest-k2 NO-LOCK: FIND Artst OF tKunBest NO-LOCK NO-ERROR. FIND FIRST ArtBez OF Artst NO-LOCK NO-ERROR. FIND Wust NO-LOCK WHERE Wust.CodeK = Debst.Mwst AND Wust.CodeA = Artst.Mwst. FIND FIRST tAufze. ASSIGN tAufze.Artnr = tKunBest.Artnr tAufze.Inhalt = tKunBest.Inhalt tAufze.Jahr = tKunBest.Jahr tAufze.MBest = 1 tAufze.MGeli = 1 tAufze.Netto = Artst.Netto tAufze.Rab_Art = Debst.Zei_Rab_Art tAufze.Rab_Wert = Debst.Zei_Rab_Wert tAufze.Rab_Betr = 0 tAufze.Zus_Art = Debst.Zuschl_Art tAufze.Zus_Wert = Debst.Zuschl_Wert tAufze.Zus_Betr = 0 tAufze.Bru_Betr = 0 tAufze.Net_Betr = 0 tAufze.WuCd = Wust.WuCd tAufze.WC = Artst.Mwst tAufze.Knr = Debst.Knr. iPreisArt = DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. FIND FIRST tAufze. tAufze.PreisArt = iPreisArt. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR. RUN FIND_WARENGRP ( Artst.Wg_Grp, OUTPUT cWgr ). cWgr = ENTRY(2, cWgr, CHR(01)). Kol = 65. ii = ii + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = cWgr. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2). Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = TRIM(STRING(tAufze.Net_Betr,'zzz9.999')). Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = KGebinde.Bez. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = TRIM(STRING(KGebinde.Inhalt,'zzzz9 cl')). Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = TRIM(STRING(VGebinde.Inhalt,'zzzz9')) + VGebinde.Bez. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = 'Huber Getränkehandlung AG'. Kol = Kol + 1. Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Artnr,'999999') + '.' + STRING(Artst.Inhalt,'9999') + '.' + STRING(Artst.Jahr,'9999'). Kol = Kol + 1. IF Artst.Jahr <> 0 THEN DO: Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Jahr,"zzz9"). END. Kol = Kol + 1. IF Artst.Alk_Gehalt <> 0 THEN DO: Zelle = CHR(Kol) + TRIM(STRING(ii,">>>9")). excelAppl:Range(Zelle):Select. excelAppl:ActiveCell:FormulaR1C1 = STRING(Artst.Alk_Gehalt,"z9.99"). END. END. Zelle = 'A1'. excelAppl:Range(Zelle):Select. DEF VAR SaveName AS CHAR NO-UNDO. IF Adresse.Firma1 <> '' THEN SaveName = TRIM(SUBSTR(Adresse.Firma1,01,12)). ELSE SaveName = TRIM(SUBSTR(Adresse.NAME ,01,12)). IF SaveName = '' THEN SaveName = Datei. SaveName = SESSION:TEMP-DIR + SaveName + '.xlsx'. excelAppl:ActiveWorkbook:SaveAs(SaveName,,,,,,TRUE) NO-ERROR. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. 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. DEF VAR iPos AS INT NO-UNDO. DEF BUFFER bKunBest FOR KunBest. IF FCancel THEN RETURN. IF NOT FCopy THEN DO WITH FRAME {&FRAME-NAME}: FIND LAST bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = iKnr NO-ERROR. IF AVAILABLE bKunBest THEN iPos = bKunBest.Pos + 10. ELSE iPos = 10. DO WHILE iPos MOD 10 <> 0: iPos = iPos + 1. END. i1 = LOOKUP('Pos', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(iPos) NO-ERROR. END. IF FCopy THEN DO: 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 BUFFER bArtst FOR Artst. DEF BUFFER bArtbez FOR Artbez. DEF BUFFER bKunBest FOR KunBest. DO WHILE FNeu WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Pos' THEN DO: IF INTEGER(SELF:SCREEN-VALUE) <> 0 THEN DO: FIND FIRST bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = iKnr AND bKunBest.Pos = INTEGER(SELF:SCREEN-VALUE) NO-ERROR. IF AVAILABLE bKunBest THEN DO: RELEASE bKunBest. DYNAMIC-FUNCTION('fehlerMeldung':U, 1099, '' ) NO-ERROR. RETURN 'ERROR'. END. END. END. WHEN 'Artnr' THEN DO: IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, 213, '' ) NO-ERROR. RETURN 'ERROR'. END. FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = INTEGER(SELF:SCREEN-VALUE) NO-ERROR. IF NOT AVAILABLE bArtst THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, 213, '' ) NO-ERROR. RETURN 'ERROR'. END. FIND FIRST bArtbez NO-LOCK WHERE bArtbez.Firma = bArtst.Firma AND bArtbez.Artnr = bArtst.Artnr AND bArtbez.Inhalt = bArtst.Inhalt AND bArtbez.Jahr = bArtst.Jahr NO-ERROR. rowObject.Inhalt :SCREEN-VALUE = STRING(bArtst.Inhalt). rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr). rowObject.Artikel:SCREEN-VALUE = TRIM(bArtbez.Bez1 + ' ' + bArtbez.Bez2). rowObject.KGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getKGebindeKBez':U, bArtst.KGeb_Cd) NO-ERROR. rowObject.VGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getVGebindeKBez':U, bArtst.VGeb_Cd) NO-ERROR. rowObject.GGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getGGebindeKBez':U, bArtst.GGeb_Cd) NO-ERROR. END. WHEN 'Inhalt' THEN DO: FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = INTEGER(rowObject.Artnr:SCREEN-VALUE) AND bArtst.Artnr = INTEGER(SELF:SCREEN-VALUE) NO-ERROR. IF NOT AVAILABLE bArtst THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, 213, '' ) NO-ERROR. RETURN 'ERROR'. END. FIND FIRST bArtbez NO-LOCK WHERE bArtbez.Firma = bArtst.Firma AND bArtbez.Artnr = bArtst.Artnr AND bArtbez.Inhalt = bArtst.Inhalt AND bArtbez.Jahr = bArtst.Jahr NO-ERROR. rowObject.Jahr :SCREEN-VALUE = STRING(bArtst.Jahr). rowObject.Artikel:SCREEN-VALUE = TRIM(bArtbez.Bez1 + ' ' + bArtbez.Bez2). rowObject.KGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getKGebindeKBez':U, bArtst.KGeb_Cd) NO-ERROR. rowObject.VGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getVGebindeKBez':U, bArtst.VGeb_Cd) NO-ERROR. rowObject.GGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getGGebindeKBez':U, bArtst.GGeb_Cd) NO-ERROR. END. WHEN 'Jahr' THEN DO: FIND FIRST bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = INTEGER(rowObject.Artnr :SCREEN-VALUE) AND bArtst.Inhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) AND bArtst.Jahr = INTEGER(SELF:SCREEN-VALUE) NO-ERROR. IF NOT AVAILABLE bArtst THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, 213, '' ) NO-ERROR. RETURN 'ERROR'. END. FIND FIRST bArtbez NO-LOCK WHERE bArtbez.Firma = bArtst.Firma AND bArtbez.Artnr = bArtst.Artnr AND bArtbez.Inhalt = bArtst.Inhalt AND bArtbez.Jahr = bArtst.Jahr NO-ERROR. rowObject.Artikel:SCREEN-VALUE = TRIM(bArtbez.Bez1 + ' ' + bArtbez.Bez2). rowObject.KGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getKGebindeKBez':U, bArtst.KGeb_Cd) NO-ERROR. rowObject.VGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getVGebindeKBez':U, bArtst.VGeb_Cd) NO-ERROR. rowObject.GGeb :SCREEN-VALUE = DYNAMIC-FUNCTION('getGGebindeKBez':U, bArtst.GGeb_Cd) NO-ERROR. END. END CASE. LEAVE. END. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: 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 NEUE_LISTE vTableWin PROCEDURE NEUE_LISTE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cSort AS CHAR NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR cRetValue AS CHAR NO-UNDO. DEF VAR dvonDatum AS DATE NO-UNDO. DEF VAR dbisDatum AS DATE NO-UNDO. DEF VAR lOK AS LOG NO-UNDO. DEF VAR iPos AS INT NO-UNDO. PUBLISH 'GETFAXLISTENKNR' ( OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid. iKnr = Adresse.Knr. GET-KEY-VALUE SECTION 'Faxliste' KEY 'vonDatum' VALUE cRetValue. IF ERROR-STATUS:ERROR OR cRetValue = ? THEN cRetValue = ''. IF cRetValue = '' THEN cRetValue = STRING((TODAY - 180),'99.99.9999'). dvonDatum = DATE(cRetValue) NO-ERROR. IF ERROR-STATUS:ERROR OR dvonDatum = ? THEN DO: dvonDatum = (TODAY - 180) . END. dbisDatum = DATE(MONTH(dvonDatum),01,YEAR(dvonDatum)). GET-KEY-VALUE SECTION 'Faxliste' KEY 'NeuSort' VALUE cRetValue. IF ERROR-STATUS:ERROR OR cRetValue = ? THEN cRetValue = ''. IF cRetValue = '' THEN cRetValue = '1'. cSort = cRetValue. EMPTY TEMP-TABLE tKunden. DO WITH FRAME {&FRAME-NAME}: dbisDatum = TODAY. lOK = FALSE. RUN "g-faxlist-datum.w" ( INPUT-OUTPUT iKnr, INPUT-OUTPUT dvonDatum, INPUT-OUTPUT dbisDatum, INPUT-OUTPUT cSort , INPUT-OUTPUT lOK ). DO TRANSACTION WHILE lOK: SESSION:SET-WAIT-STATE('GENERAL'). IF iKnr = 0 THEN DO: FOR EACH KunBest NO-LOCK WHERE KunBest.Firma = Firma BREAK BY KunBest.Knr: IF NOT FIRST-OF ( KunBest.Knr ) THEN NEXT. CREATE tKunden. ASSIGN tKunden.Knr = Kunbest.Knr. END. END. ELSE DO: CREATE tKunden. ASSIGN tKunden.Knr = iKnr. END. EMPTY TEMP-TABLE tKunBest. FOR EACH tKunden, EACH Artbw NO-LOCK USE-INDEX Artbw-k3 WHERE Artbw.Firma = Firma AND Artbw.Knr = tKunden.Knr AND Artbw.Datum >= dvonDatum AND Artbw.Datum <= dbisDatum AND Artbw.Menge > 0 AND Artbw.Tr_Art = 01, FIRST Artst NO-LOCK WHERE Artst.Firma = Artbw.Firma AND Artst.Artnr = Artbw.Artnr AND Artst.Inhalt = Artbw.Inhalt AND Artst.Jahr = Artbw.Jahr AND Artst.Aktiv BREAK BY Artbw.Artnr BY Artbw.Inhalt BY Artbw.Jahr BY Artbw.Datum : IF FIRST-OF ( Artbw.Jahr ) THEN DO: CREATE tKunBest. ASSIGN tKunBest.Firma = Artbw.Firma tKunBest.Knr = Artbw.Knr tKunBest.Pos = 0 tKunBest.Artnr = Artbw.Artnr tKunBest.Inhalt = Artbw.Inhalt tKunBest.Jahr = Artbw.Jahr tKunBest.Soll = 0 tKunBest.KGeb_Cd = Artst.KGeb_Cd tKunBest.VGeb_Cd = Artst.VGeb_Cd tKunBest.GGeb_Cd = Artst.GGeb_Cd tKunBest.Best = 0 tKunBest.KGeb_Me = 0 tKunBest.VGeb_Me = 0 tKunBest.GGeb_Me = 0. CASE cSort: WHEN '1' THEN tKunBest.cSort = STRING(Artbw.Artnr ,'999999') + STRING(Artbw.Inhalt,'9999') + STRING(Artbw.Jahr ,'9999'). WHEN '2' THEN tKunBest.cSort = STRING(Artst.Suchbe,'x(12)') + STRING(Artbw.Artnr ,'999999') + STRING(Artbw.Inhalt,'9999') + STRING(Artbw.Jahr ,'9999'). WHEN '3' THEN tKunBest.cSort = STRING(Artst.Wg_Grp,'9999') + STRING(Artbw.Artnr ,'999999') + STRING(Artbw.Inhalt,'9999') + STRING(Artbw.Jahr ,'9999'). WHEN '4' THEN tKunBest.cSort = STRING(Artst.Wg_Grp,'9999') + STRING(Artst.Suchbe,'x(12)') + STRING(Artbw.Artnr ,'999999') + STRING(Artbw.Inhalt,'9999') + STRING(Artbw.Jahr ,'9999'). END CASE. iRecid = RECID(tKunBest). RELEASE tKunBest. END. IF LAST-OF ( Artbw.Jahr ) THEN DO: FIND tKunBest WHERE RECID(tKunBest) = iRecid. tKunBest.Soll = Artbw.Menge. END. END. FOR EACH tKunden, EACH KunBest WHERE KunBest.Firma = Firma AND KunBest.Knr = tKunden.Knr: DELETE KunBest. END. iPos = 0. FOR EACH tKunBest BREAK BY tKunbest.Knr BY tKunBest.cSort: IF FIRST-OF ( tKunBest.Knr ) THEN iPos = 0. iPos = iPos + 10. CREATE KunBest. BUFFER-COPY tKunBest EXCEPT Pos TO KunBest ASSIGN KunBest.Pos = iPos. DELETE tKunBest. END. LEAVE. END. SESSION:SET-WAIT-STATE(''). DYNAMIC-FUNCTION('openQuery':U IN hDaten) NO-ERROR. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEUE_POSITIONSNUMMERN vTableWin PROCEDURE NEUE_POSITIONSNUMMERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR iPos AS INT NO-UNDO. REPEAT TRANSACTION: EMPTY TEMP-TABLE tKunBest. iPos = 0. FOR EACH KunBest WHERE KunBest.Firma = Firma AND KunBest.Knr = iKnr. iPos = iPos + 10. CREATE tKunBest. BUFFER-COPY KunBest EXCEPT Pos TO tKunBest ASSIGN tKunBest.Pos = iPos. DELETE KunBest. END. iPos = 0. FOR EACH tKunBest: CREATE KunBest. BUFFER-COPY tKunBest TO KunBest. END. LEAVE. END. DYNAMIC-FUNCTION('openQuery':U IN hDaten) NO-ERROR. APPLY 'U1'. RETURN NO-APPLY. 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 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 iArtnr AS INT NO-UNDO. DEF VAR iInhalt AS INT NO-UNDO. DEF VAR iJahr AS INT NO-UNDO. DEF VAR iPos AS INT NO-UNDO. DEF BUFFER bKunbest FOR KunBest. DEF BUFFER bArtst FOR Artst . opJa = FALSE. eHandle = ?. IF NOT FMut THEN RETURN. DO WITH FRAME {&FRAME-NAME}: ASSIGN iArtnr = INTEGER(rowObject.Artnr :SCREEN-VALUE) iInhalt = INTEGER(rowObject.Inhalt:SCREEN-VALUE) iJahr = INTEGER(rowObject.Jahr :SCREEN-VALUE). END. AAA000: DO WHILE FNeu WITH FRAME {&FRAME-NAME}: iPos = INTEGER(rowObject.Pos:SCREEN-VALUE). IF iPos = 0 THEN DO: FIND LAST bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = iKnr NO-ERROR. IF AVAILABLE bKunBest THEN iPos = bKunBest.Pos + 10. ELSE iPos = 10. DO WHILE iPos MOD 10 <> 0: iPos = iPos + 1. END. rowObject.Pos:SCREEN-VALUE = STRING(iPos). END. FIND LAST bKunBest NO-LOCK WHERE bKunBest.Firma = Firma AND bKunBest.Knr = iKnr AND bKunBest.Pos = iPos NO-ERROR. IF AVAILABLE bKunBest THEN DO: DYNAMIC-FUNCTION('fehlerMeldung':U, 1099, '' ) NO-ERROR. eHandle = rowObject.Pos:HANDLE. LEAVE. END. LEAVE. END. RELEASE bKunBest. IF VALID-HANDLE(eHandle) THEN DO: APPLY 'ENTRY' TO eHandle. RETURN NO-APPLY. END. FIND bArtst NO-LOCK WHERE bArtst.Firma = Firma AND bArtst.Artnr = iArtnr AND bArtst.Inhalt = iInhalt AND bArtst.Jahr = iJahr. DO WITH FRAME {&FRAME-NAME}: ASSIGN rowObject.KGeb_Cd :SCREEN-VALUE = bArtst.KGeb_Cd rowObject.VGeb_Cd :SCREEN-VALUE = bArtst.VGeb_Cd rowObject.GGeb_Cd :SCREEN-VALUE = bArtst.GGeb_Cd rowObject.Lag_Buch:SCREEN-VALUE = STRING(bArtst.Lager). END. opJa = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin PROCEDURE updateMode : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO. CASE pcMode: WHEN 'updateBegin' THEN DO: END. WHEN 'updateEnd' THEN DO: END. END. RUN SUPER( INPUT pcMode). CASE pcMode: WHEN 'updateBegin' THEN DO WITH FRAME {&FRAME-NAME}: FMut = TRUE. ASSIGN Btn_Neu :SENSITIVE = FALSE Btn_Nummer:SENSITIVE = FALSE Btn_Excel :SENSITIVE = FALSE. END. WHEN 'updateEnd' THEN DO: FNeu = FALSE. FMut = FALSE. FCopy = FALSE. ASSIGN Btn_Neu :SENSITIVE = TRUE Btn_Nummer:SENSITIVE = TRUE Btn_Excel :SENSITIVE = TRUE. 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: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: IF FNeu THEN DO: DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE). END. END. FNeu = FALSE. FCopy = FALSE. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME