&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-kubes.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 Knr &Scoped-define LETZTES_FELD Beschreibung &Scoped-define KEY_FELDER CB_Vertreter,Knr &Scoped-define NUR_LESEN { incl/viwdefinition.i } DEF VAR SuchVertr AS INT NO-UNDO. DEF VAR cUser AS CHAR NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF VAR cBesArt AS CHAR NO-UNDO. DEF VAR dDatum AS DATE NO-UNDO. DEF VAR iVertr AS INT NO-UNDO. DEF VAR lCancel AS LOG INIT FALSE NO-UNDO. DEF VAR hnewKuBes AS HANDLE NO-UNDO. DEF VAR holdKuBes AS HANDLE NO-UNDO. DEF BUFFER bAdresse FOR Adresse. DEF BUFFER bDebst FOR Debst. DEF BUFFER bKuBes FOR KuBes. DEF TEMP-TABLE toldKuBes LIKE KuBes. DEF TEMP-TABLE tnewKuBes LIKE KuBes. {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-kubes.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.Knr RowObject.Datum_1 ~ RowObject.Datum_2 RowObject.Spesen RowObject.Abgeschl RowObject.Kontakt ~ RowObject.Beschreibung &Scoped-define ENABLED-TABLES RowObject &Scoped-define FIRST-ENABLED-TABLE RowObject &Scoped-Define ENABLED-OBJECTS CB_Vertreter CB_Besuchsart RECT-5 &Scoped-Define DISPLAYED-FIELDS RowObject.Knr RowObject.Datum_1 ~ RowObject.Datum_2 RowObject.Spesen RowObject.Kunde RowObject.Abgeschl ~ RowObject.Vertr RowObject.Kontakt RowObject.Beschreibung RowObject.Datum ~ RowObject.Adr_01 RowObject.Suchbe RowObject.Adr_02 RowObject.Adr_03 ~ RowObject.Ind RowObject.Adr_04 RowObject.Art RowObject.Firma &Scoped-define DISPLAYED-TABLES RowObject &Scoped-define FIRST-DISPLAYED-TABLE RowObject &Scoped-Define DISPLAYED-OBJECTS CB_Vertreter CB_Besuchsart /* Custom List Definitions */ /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-F-Main MENU-ITEM m_Besuchsauswertung LABEL "Besuchsauswertungen" MENU-ITEM m_Reorganisation LABEL "Reorganisation". /* Definitions of the field level widgets */ DEFINE VARIABLE CB_Besuchsart AS CHARACTER FORMAT "X(256)":U LABEL "Besuchsart" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 37 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Vertreter AS CHARACTER FORMAT "X(256)":U LABEL "Vertreter" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 40 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-5 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 150 BY 6.19. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main CB_Vertreter AT ROW 1.52 COL 11 COLON-ALIGNED WIDGET-ID 42 RowObject.Knr AT ROW 2.52 COL 11 COLON-ALIGNED WIDGET-ID 28 VIEW-AS FILL-IN NATIVE SIZE 10 BY 1 BGCOLOR 15 RowObject.Datum_1 AT ROW 4 COL 11 COLON-ALIGNED WIDGET-ID 20 LABEL "Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 RowObject.Datum_2 AT ROW 5 COL 11 COLON-ALIGNED WIDGET-ID 22 LABEL "am" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 CB_Besuchsart AT ROW 4 COL 40 COLON-ALIGNED WIDGET-ID 44 RowObject.Spesen AT ROW 5 COL 40 COLON-ALIGNED WIDGET-ID 34 VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 RowObject.Kunde AT ROW 2.52 COL 22 COLON-ALIGNED NO-LABEL WIDGET-ID 32 VIEW-AS FILL-IN NATIVE SIZE 50 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Abgeschl AT ROW 5 COL 60 WIDGET-ID 2 LABEL "Abgeschlossen" VIEW-AS TOGGLE-BOX SIZE 19 BY 1 RowObject.Vertr AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 38 LABEL "Vertreter" FORMAT "999999" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Kontakt AT ROW 6 COL 40 COLON-ALIGNED WIDGET-ID 30 VIEW-AS FILL-IN NATIVE SIZE 37 BY 1 BGCOLOR 15 RowObject.Beschreibung AT ROW 1.52 COL 81 NO-LABEL WIDGET-ID 16 VIEW-AS EDITOR SIZE 69 BY 5.52 BGCOLOR 15 RowObject.Datum AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 18 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Adr_01 AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 4 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Suchbe AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 36 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Adr_02 AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 6 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Adr_03 AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 8 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Ind AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 26 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Adr_04 AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 10 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 RowObject.Art AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 14 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RowObject.Firma AT ROW 3 COL 69 COLON-ALIGNED WIDGET-ID 24 VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-TAB-STOP RECT-5 AT ROW 1.24 COL 2 WIDGET-ID 40 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-kubes.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-kubes.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 = 6.71 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 FRAME F-Main:POPUP-MENU = MENU POPUP-MENU-F-Main:HANDLE. /* SETTINGS FOR TOGGLE-BOX RowObject.Abgeschl IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Adr_01 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Adr_01:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Adr_02 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Adr_02:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Adr_03 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Adr_03:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Adr_04 IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Adr_04:HIDDEN IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Art IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Art:HIDDEN IN FRAME F-Main = TRUE RowObject.Art:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR EDITOR RowObject.Beschreibung IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Datum IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Datum:HIDDEN IN FRAME F-Main = TRUE RowObject.Datum:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Datum_1 IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Datum_2 IN FRAME F-Main EXP-LABEL */ /* SETTINGS FOR FILL-IN RowObject.Firma IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Firma:HIDDEN IN FRAME F-Main = TRUE RowObject.Firma:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Ind IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Ind:HIDDEN IN FRAME F-Main = TRUE RowObject.Ind:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Kunde IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Kunde:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Suchbe IN FRAME F-Main NO-ENABLE */ ASSIGN RowObject.Suchbe:HIDDEN IN FRAME F-Main = TRUE RowObject.Suchbe:READ-ONLY IN FRAME F-Main = TRUE. /* SETTINGS FOR FILL-IN RowObject.Vertr IN FRAME F-Main NO-ENABLE EXP-LABEL EXP-FORMAT */ ASSIGN RowObject.Vertr:HIDDEN IN FRAME F-Main = TRUE RowObject.Vertr: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.Abgeschl &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Abgeschl vTableWin ON VALUE-CHANGED OF RowObject.Abgeschl IN FRAME F-Main /* Abgeschlossen */ DO: IF NOT FMut THEN SELF:SCREEN-VALUE = IF SELF:SCREEN-VALUE BEGINS 'n' THEN STRING(TRUE) ELSE STRING(FALSE). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Vertreter &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Vertreter vTableWin ON VALUE-CHANGED OF CB_Vertreter IN FRAME F-Main /* Vertreter */ DO: IF FMut AND NOT Fneu THEN SELF:SCREEN-VALUE = STRING(iVertr,'999999') NO-ERROR. /* Oswald Spezial */ IF cBenutzer = 'gt' THEN DO: SELF:SCREEN-VALUE = STRING(iVertr,'999999') NO-ERROR. SELF:SENSITIVE = FALSE. END. iVertr = INTEGER(SELF:SCREEN-VALUE) NO-ERROR. rowObject.Vertr:SCREEN-VALUE = STRING(iVertr) NO-ERROR. PUT-KEY-VALUE SECTION cUser KEY 'VertreterBesuch' VALUE STRING(iVertr) NO-ERROR. IF NOT FMut THEN APPLY 'U1'. ELSE RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME RowObject.Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL RowObject.Knr vTableWin ON ALT-F OF RowObject.Knr IN FRAME F-Main /* Knr */ DO: DEF VAR cAdresse AS CHAR NO-UNDO. DEF VAR cParam AS CHAR NO-UNDO. DEF VAR bRecid AS RECID NO-UNDO. IF NOT FNeu THEN RETURN NO-APPLY. SuchVertr = DYNAMIC-FUNCTION('getSuchVertreter':U IN hKontainer) NO-ERROR. cParam = 'KUBES,' + STRING(SuchVertr,'999999'). RUN g-suchen-adresse.w ( INPUT cParam, OUTPUT bRecid ). IF bRecid = ? THEN RETURN. IF bRecid = 0 THEN RETURN. FIND Adresse NO-LOCK WHERE RECID(Adresse) = bRecid. SELF:SCREEN-VALUE = STRING(Adresse.Knr). /* FIND LAST KuBes NO-LOCK */ /* WHERE KuBes.Firma = Firma */ /* AND KuBes.Knr = Adresse.Knr NO-ERROR. */ /* IF AVAILABLE KuBes THEN DO: */ /* bRecid = RECID(KuBes). */ /* RUN REPOS IN hDaten ( INPUT bRecid ). */ /* END. */ APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Besuchsauswertung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Besuchsauswertung vTableWin ON CHOOSE OF MENU-ITEM m_Besuchsauswertung /* Besuchsauswertungen */ DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL' ). RUN g-p_kubes.w. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Reorganisation &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Reorganisation vTableWin ON CHOOSE OF MENU-ITEM m_Reorganisation /* Reorganisation */ DO: RUN TOOLBAR IN hKontainer ( INPUT 'CANCEL' ). RUN g-reorg-kubes.w. 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 'VERTRETERWECHSEL' 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. EMPTY TEMP-TABLE toldKuBes. CREATE toldKuBes. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ADESSANZEIGE vTableWin PROCEDURE ADESSANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Daten AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF rowObject.Adr_04:SCREEN-VALUE = '' THEN RETURN NO-APPLY. Daten = rowObject.Adr_01:SCREEN-VALUE + CHR(01) + rowObject.Adr_02:SCREEN-VALUE + CHR(01) + rowObject.Adr_03:SCREEN-VALUE + CHR(01) + rowObject.Adr_04:SCREEN-VALUE. RUN g-adresseingabe.w ( INPUT-OUTPUT Daten ). IF Daten = '' THEN RETURN NO-APPLY. rowObject.Adr_01:SCREEN-VALUE = ENTRY(1, Daten, CHR(01)). rowObject.Adr_02:SCREEN-VALUE = ENTRY(2, Daten, CHR(01)). rowObject.Adr_03:SCREEN-VALUE = ENTRY(3, Daten, CHR(01)). rowObject.Adr_04:SCREEN-VALUE = ENTRY(4, Daten, CHR(01)). Daten = rowObject.Adr_04:SCREEN-VALUE. DO ix = 3 TO 1 BY -1: CASE ix: WHEN 1 THEN DO: IF rowObject.Adr_01:SCREEN-VALUE = '' THEN NEXT. Daten = rowObject.Adr_01:SCREEN-VALUE + ', ' + Daten. END. WHEN 2 THEN DO: IF rowObject.Adr_02:SCREEN-VALUE = '' THEN NEXT. Daten = rowObject.Adr_02:SCREEN-VALUE + ', ' + Daten. END. WHEN 3 THEN DO: IF rowObject.Adr_03:SCREEN-VALUE = '' THEN NEXT. Daten = rowObject.Adr_03:SCREEN-VALUE + ', ' + Daten. END. END CASE. END. rowObject.Kunde:SCREEN-VALUE = Daten. END. 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. lCancel = 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. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: iKnr = INTEGER(rowObject.Knr:SCREEN-VALUE) NO-ERROR. cBesArt = CB_Besuchsart :SCREEN-VALUE NO-ERROR. dDatum = DATE(rowObject.Datum_2:SCREEN-VALUE) NO-ERROR. FIND Tabel NO-LOCK USE-INDEX Tabel-k1 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'BESUCH' AND Tabel.CodeC = cBesArt AND Tabel.CodeI = 0 AND Tabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE Tabel THEN LEAVE. IF Tabel.INT_1 = 0 THEN LEAVE. REPEAT TRANSACTION: FIND KuBesSta USE-INDEX KuBesSta-k1 WHERE KuBesSta.Firma = Firma AND KuBesSta.Knr = iKnr NO-ERROR. IF NOT AVAILABLE KuBesSta THEN LEAVE. IF KuBesSta.AnzHaben = 0 THEN LEAVE. KuBesSta.AnzHaben = KuBesSta.AnzHaben - 1. RELEASE KuBesSta. PUBLISH 'REFRESHKUBESSTA'. LEAVE. END. LEAVE. END. RUN SUPER. REPEAT TRANSACTION: FIND FIRST KuBes NO-LOCK USE-INDEX KuBes-k1 WHERE KuBes.Firma = Firma AND KuBes.Knr = iKnr NO-ERROR. IF AVAILABLE KuBes THEN LEAVE. FOR EACH KuBesSta WHERE KuBesSta.Firma = Firma AND KuBesSta.Knr = iKnr: DELETE KuBesSta. END. RELEASE KuBes. RELEASE KuBesSta. LEAVE. END. 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}: CB_Vertreter:SENSITIVE = 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. 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). IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ). DO WITH FRAME {&FRAME-NAME}: END. RUN SUPER( INPUT pcColValues). FCancel = FALSE. DO WITH FRAME {&FRAME-NAME}: CB_Besuchsart:SCREEN-VALUE = rowObject.Art :SCREEN-VALUE NO-ERROR. CB_Vertreter :SCREEN-VALUE = rowObject.Vertr:SCREEN-VALUE NO-ERROR. IF NOT FNeu THEN DO: iKnr = INTEGER(rowObject.Knr:SCREEN-VALUE) NO-ERROR. cBesArt = CB_Besuchsart:SCREEN-VALUE. IF iVertr = -1 THEN iVertr = INTEGER(rowObject.Vertr:SCREEN-VALUE) NO-ERROR. END. 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 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: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. cUser = DYNAMIC-FUNCTION('getDBUser') NO-ERROR. holdKuBes = TEMP-TABLE toldKuBes:DEFAULT-BUFFER-HANDLE. hnewKuBes = TEMP-TABLE tnewKuBes:DEFAULT-BUFFER-HANDLE. cInstallation = DYNAMIC-FUNCTION ('getInstallation':U) NO-ERROR. cBenutzer = DYNAMIC-FUNCTION ('getBenutzer':U) NO-ERROR. RUN SUPER. { incl/viwenableobject.i } GET-KEY-VALUE SECTION cUser KEY 'VertreterBesuch' VALUE cString. IF cString = ? THEN cString = ''. IF cString = '' THEN iVertr = -1. ELSE iVertr = INTEGER(cString) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: RUN COMBO_BESUCHSART ( INPUT CB_Besuchsart:HANDLE ). RUN COMBO_VERTRETER ( INPUT CB_Vertreter :HANDLE ). IF iVertr = 0 OR iVertr = 999999 THEN iVertr = INTEGER(ENTRY(2, CB_Vertreter:LIST-ITEM-PAIRS, ';')). CB_Vertreter:SCREEN-VALUE = STRING(iVertr,'999999') NO-ERROR. END. RUN SUPER. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF SAktiv THEN DO: RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ). END. /* Oswald Spezial */ IF cInstallation = 'oswald' AND cBenutzer = 'gt' THEN DO WITH FRAME {&FRAME-NAME}: CB_Vertreter:SCREEN-VALUE = '000030'. CB_Vertreter:SENSITIVE = FALSE. iVertr = 30. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin PROCEDURE ENTRY_FELD_TEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/viwentryfeldtest.i } 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 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('Firma', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = Firma NO-ERROR. i1 = LOOKUP('Knr', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(iKnr) NO-ERROR. i1 = LOOKUP('Ind', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(0) NO-ERROR. i1 = LOOKUP('Vertr', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = STRING(iVertr) NO-ERROR. i1 = LOOKUP('Art', oldColList, ',') + 1. ENTRY(i1, pcColValues, CHR(1)) = cBesArt 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 } DO WHILE FNeu WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Knr' THEN DO: iKnr = INTEGER(FeldInhalt). FIND bAdresse NO-LOCK USE-INDEX Adresse-k1 WHERE bAdresse.Firma = AdFirma AND bAdresse.Knr = iKnr NO-ERROR. IF NOT AVAILABLE bAdresse THEN DO: RUN FEHLER ( INPUT 1015 ). RETURN 'ERROR'. END. IF NOT bAdresse.Aktiv THEN DO: MESSAGE 'Adresse ist im Status !' VIEW-AS ALERT-BOX ERROR. RETURN 'ERROR'. END. rowObject.Kunde:SCREEN-VALUE = bAdresse.Anzeig_Br. FIND BDebst NO-LOCK USE-INDEX Debst-k1 WHERE BDebst.Firma = Firma AND BDebst.Knr = iKnr NO-ERROR. IF NOT AVAILABLE BDebst THEN RETURN ''. IF NOT BDebst.Passant THEN RETURN ''. Daten = rowObject.Adr_01:SCREEN-VALUE + CHR(01) + rowObject.Adr_02:SCREEN-VALUE + CHR(01) + rowObject.Adr_03:SCREEN-VALUE + CHR(01) + rowObject.Adr_04:SCREEN-VALUE. RUN g-adresseingabe.w ( INPUT-OUTPUT Daten ). IF Daten = '' THEN DO: MESSAGE 'Adresse muss eingegeben werden' VIEW-AS ALERT-BOX ERROR. RETURN 'ERROR'. END. rowObject.Adr_01:SCREEN-VALUE = ENTRY(1, Daten, CHR(01)). rowObject.Adr_02:SCREEN-VALUE = ENTRY(2, Daten, CHR(01)). rowObject.Adr_03:SCREEN-VALUE = ENTRY(3, Daten, CHR(01)). rowObject.Adr_04:SCREEN-VALUE = ENTRY(4, Daten, CHR(01)). Daten = rowObject.Adr_04:SCREEN-VALUE. DO ix = 3 TO 1 BY -1: CASE ix: WHEN 1 THEN DO: IF rowObject.Adr_01:SCREEN-VALUE = '' THEN NEXT. Daten = rowObject.Adr_01:SCREEN-VALUE + ', ' + Daten. END. WHEN 2 THEN DO: IF rowObject.Adr_02:SCREEN-VALUE = '' THEN NEXT. Daten = rowObject.Adr_02:SCREEN-VALUE + ', ' + Daten. END. WHEN 3 THEN DO: IF rowObject.Adr_03:SCREEN-VALUE = '' THEN NEXT. Daten = rowObject.Adr_03:SCREEN-VALUE + ', ' + Daten. END. END CASE. END. rowObject.Kunde:SCREEN-VALUE = Daten. END. END CASE. LEAVE. END. DO WHILE TRUE WITH FRAME {&FRAME-NAME}: CASE FeldName: WHEN 'Datum_1' THEN DO: IF FeldInhalt = '' THEN SELF:SCREEN-VALUE = STRING(TODAY). dDatum = DATE(SELF:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: MESSAGE 'Datum ungültig' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO rowObject.Datum_1. RETURN 'ERROR'. END. SELF:SCREEN-VALUE = STRING(dDatum). END. 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 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 dDatum AS DATE NO-UNDO. DEF VAR lPassant AS LOG NO-UNDO. opJa = FALSE. eHandle = ?. IF NOT FMut THEN RETURN. AAA000: DO WHILE TRUE WITH FRAME {&FRAME-NAME}: rowObject.Vertr:SCREEN-VALUE = CB_Vertreter :SCREEN-VALUE. rowObject.Art :SCREEN-VALUE = CB_Besuchsart:SCREEN-VALUE. iKnr = INTEGER(rowObject.Knr :SCREEN-VALUE). iVertr = INTEGER(rowObject.Vertr:SCREEN-VALUE). IF FNeu THEN DO: cString = DYNAMIC-FUNCTION('getAdressAnzeige':U, iKnr) NO-ERROR. IF cString = '' THEN DO: RUN FEHLER ( INPUT 1015 ). eHandle = rowObject.Knr:HANDLE. LEAVE. END. END. IF NOT rowObject.Abgeschl:SCREEN-VALUE BEGINS 'n' THEN DO: dDatum = DATE(rowObject.Datum_2:SCREEN-VALUE) NO-ERROR. IF dDatum = ? THEN dDatum = DATE(rowObject.Datum_1:SCREEN-VALUE) NO-ERROR. IF dDatum = ? THEN dDatum = TODAY. rowObject.Datum_2:SCREEN-VALUE = STRING(dDatum). END. FIND bAdresse NO-LOCK USE-INDEX Adresse-k1 WHERE bAdresse.Firma = AdFirma AND bAdresse.Knr = iKnr NO-ERROR. FIND bDebst NO-LOCK USE-INDEX Debst-k1 WHERE bDebst.Firma = Firma AND bDebst.Knr = iKnr NO-ERROR. IF AVAILABLE bDebst THEN lPassant = bDebst.Passant. ELSE lPassant = FALSE. IF NOT lPassant THEN DO: rowObject.Suchbe:SCREEN-VALUE = bAdresse.Suchbe . rowObject.Kunde :SCREEN-VALUE = bAdresse.Anzeig_Br . END. LEAVE. END. IF VALID-HANDLE(eHandle) THEN DO: APPLY 'ENTRY' TO eHandle. RETURN NO-APPLY. END. opJa = TRUE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin PROCEDURE updateMode : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO. DEF VAR hrowObject AS HANDLE NO-UNDO. DEF VAR cDiff AS CHAR NO-UNDO. DEF BUFFER bOldTabel FOR Tabel. DEF BUFFER bNewTabel FOR Tabel. 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. hrowObject = DYNAMIC-FUNCTION('getCurrentKuBes':U IN hDaten). EMPTY TEMP-TABLE toldKuBes. CREATE toldKuBes. holdKuBes:BUFFER-COPY(hrowObject). END. WHEN 'updateEnd' THEN DO: DO TRANSACTION WHILE NOT lCancel: hrowObject = DYNAMIC-FUNCTION('getCurrentKuBes':U IN hDaten). EMPTY TEMP-TABLE tnewKuBes. CREATE tnewKuBes. hnewKuBes:BUFFER-COPY(hrowObject). FIND KuBesSta USE-INDEX KuBesSta-k1 WHERE KuBesSta.Firma = Firma AND KuBesSta.Knr = tnewKuBes.Knr NO-ERROR. IF NOT AVAILABLE KuBesSta THEN DO: CREATE KuBesSta. ASSIGN KuBesSta.Firma = tNewKuBes.Firma KuBesSta.Knr = tNewKuBes.Knr. END. BUFFER-COMPARE tnewKuBes USING Abgeschl Art TO toldKuBes SAVE RESULT IN cDiff. IF cDiff = '' THEN LEAVE. IF toldKuBes.Firma = '' THEN DO: /* NEUER BESUCH */ IF tnewKuBes.Abgeschl = FALSE THEN LEAVE. FIND bnewTabel USE-INDEX Tabel-k1 WHERE bnewTabel.Firma = Firma AND bnewTabel.RecArt = 'BESUCH' AND bnewTabel.CodeC = tnewKuBes.Art AND bnewTabel.CodeI = 0 AND bnewTabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE bnewTabel THEN DO: CREATE bnewTabel. ASSIGN bnewTabel.Firma = Firma bnewTabel.RecArt = 'BESUCH' bnewTabel.CodeC = tnewKuBes.Art bnewTabel.CodeI = 0 bnewTabel.Sprcd = 1. END. ASSIGN bnewTabel.Int_1 = bnewTabel.Int_1 + 1 /* Anzahl Besuche einer Besuchsart */ KuBesSta.AnzHaben = KuBesSta.AnzHaben + 1 KuBesSta.LetztBesuch = tnewKuBes.Datum_2. RELEASE bnewTabel. RELEASE KuBesSta. LEAVE. END. /* MUTATION */ FIND bnewTabel USE-INDEX Tabel-k1 WHERE bnewTabel.Firma = Firma AND bnewTabel.RecArt = 'BESUCH' AND bnewTabel.CodeC = tnewKuBes.Art AND bnewTabel.CodeI = 0 AND bnewTabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE bnewTabel THEN DO: CREATE bnewTabel. ASSIGN bnewTabel.Firma = Firma bnewTabel.RecArt = 'BESUCH' bnewTabel.CodeC = tnewKuBes.Art bnewTabel.CodeI = 0 bnewTabel.Sprcd = 1. END. FIND boldTabel USE-INDEX Tabel-k1 WHERE boldTabel.Firma = Firma AND boldTabel.RecArt = 'BESUCH' AND boldTabel.CodeC = toldKuBes.Art AND boldTabel.CodeI = 0 AND boldTabel.Sprcd = 1 NO-ERROR. IF NOT AVAILABLE boldTabel THEN DO: CREATE boldTabel. ASSIGN boldTabel.Firma = Firma boldTabel.RecArt = 'BESUCH' boldTabel.CodeC = toldKuBes.Art boldTabel.CodeI = 0 boldTabel.Sprcd = 1. END. IF toldKuBes.Abgeschl THEN ASSIGN boldTabel.Int_1 = boldTabel.Int_1 - 1 KuBesSta.AnzHaben = KuBesSta.AnzHaben - 1. IF tnewKuBes.Abgeschl THEN ASSIGN bnewTabel.Int_1 = bnewTabel.Int_1 + 1 KuBesSta.AnzHaben = KuBesSta.AnzHaben + 1 KuBesSta.LetztBesuch = tnewKuBes.Datum_2. IF boldTabel.Int_1 < 0 THEN boldTabel.Int_1 = 0. IF KuBesSta.AnzHaben < 0 THEN KuBesSta.AnzHaben = 0. RELEASE KuBesSta. RELEASE boldTabel. RELEASE bnewTabel. LEAVE. END. RELEASE KuBesSta. PUBLISH 'REFRESHKUBESSTA'. FNeu = FALSE. FMut = FALSE. FCopy = FALSE. lCancel = FALSE. 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 ErfDatum AS DATE NO-UNDO. DEF VAR BesDatum AS DATE NO-UNDO. DEF VAR BesAnz AS INT NO-UNDO. DEF VAR XNeu AS LOG NO-UNDO. XNeu = FNeu. DO WITH FRAME {&FRAME-NAME}: IF FNeu THEN DO: DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster, INPUT TRUE). END. ErfDatum = DATE(rowObject.Datum_1:SCREEN-VALUE) NO-ERROR. BesDatum = DATE(rowObject.Datum_2:SCREEN-VALUE) NO-ERROR. IF BesDatum = ? AND NOT rowObject.abgeschl:SCREEN-VALUE BEGINS 'n' THEN BesDatum = ErfDatum. rowObject.Datum_2:SCREEN-VALUE = STRING(BesDatum). IF rowObject.Datum_1:MODIFIED AND FNeu THEN DO: FIND LAST bKuBes NO-LOCK USE-INDEX KuBes-k1 WHERE bKuBes.Firma = Firma AND bKuBes.Knr = iKnr AND bKuBes.Datum_1 = ErfDatum NO-ERROR. IF AVAILABLE bKuBes THEN rowObject.Ind:SCREEN-VALUE = STRING(bKuBes.Ind + 1). ELSE rowObject.Ind:SCREEN-VALUE = STRING(0). END. IF rowObject.Datum_1:MODIFIED THEN XNeu = TRUE. END. FNeu = FALSE. FCopy = FALSE. RUN SUPER. DO WHILE TRUE: IF NOT XNeu THEN LEAVE. RUN NEUER_EINTRAG IN hDaten NO-ERROR. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERTRETERWECHSEL vTableWin PROCEDURE VERTRETERWECHSEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipVertr AS INT NO-UNDO. IF FMut THEN RETURN NO-APPLY. SuchVertr = ipVertr. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME