| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
- &ANALYZE-RESUME
- &Scoped-define WINDOW-NAME w-audit-data
- {adecomm/appserv.i}
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS w-audit-data
- /*------------------------------------------------------------------------
- File:
- Description: from cntnrwin.w - ADM SmartWindow Template
- Input Parameters:
- <none>
- Output Parameters:
- <none>
- History: New V9 Version - January 15, 1998
-
- ------------------------------------------------------------------------*/
- /* This .W file was created with the Progress AB. */
- /*----------------------------------------------------------------------*/
- /* 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 ************************** */
- /* Parameters Definitions --- */
- /* Local Variable Definitions --- */
- { incl/windefinition.i }
- DEF VAR qKopf AS HANDLE NO-UNDO.
- DEF VAR qZeile AS HANDLE NO-UNDO.
- DEF VAR bKopf AS HANDLE NO-UNDO.
- DEF VAR bZeile AS HANDLE NO-UNDO.
- DEF VAR cKey AS CHAR NO-UNDO.
- DEF TEMP-TABLE taud_audit-data LIKE _aud-audit-data.
- DEF TEMP-TABLE tKopf
- FIELD cKey AS CHAR
- FIELD cUser AS CHAR FORMAT "x(30)" LABEL 'Benutzer'
- FIELD cDate AS CHAR FORMAT "x(35)" LABEL 'Datum/Zeit'
- FIELD cMutArt AS CHAR FORMAT "x(04)" LABEL 'Art'
- FIELD tZeit AS DATETIME
- FIELD cSort AS CHAR
- FIELD cxKey AS CHAR FORMAT "x(80)" LABEL 'alle Schlüsselfelder'
- INDEX tKopf-k1 IS PRIMARY
- cSort DESCENDING
- .
- DEF TEMP-TABLE tZeile
- FIELD cKey AS CHAR
- FIELD Art AS CHAR
- FIELD cFeld AS CHAR FORMAT "x(20)" LABEL 'Feld'
- FIELD cAlt AS CHAR FORMAT "x(40)" LABEL 'alter Inhalt'
- FIELD cNeu AS CHAR FORMAT "x(40)" LABEL 'neuer Inhalt'
- INDEX tZeile-k1 IS PRIMARY
- cKey
- .
- {src/adm2/widgetprto.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE SmartWindow
- &Scoped-define DB-AWARE no
- &Scoped-define ADM-CONTAINER WINDOW
- &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
- /* Name of designated FRAME-NAME and/or first browse and/or first query */
- &Scoped-define FRAME-NAME fMain
- &Scoped-define BROWSE-NAME Br_Kopf
- /* Definitions for FRAME fMain */
- /* Standard List Definitions */
- &Scoped-Define ENABLED-OBJECTS RECT-1 CB_Tabellen F_Firma CB_Keyfelder ~
- F_Key F_vonDatum F_bisDatum btn_Start btn_Ende Br_Kopf Br_Zeile
- &Scoped-Define DISPLAYED-OBJECTS CB_Tabellen F_Firma CB_Keyfelder F_Key ~
- F_vonDatum F_bisDatum
- /* Custom List Definitions */
- /* List-1,List-2,List-3,List-4,List-5,List-6 */
- &Scoped-define List-6 CB_Tabellen F_Firma CB_Keyfelder F_Key F_vonDatum ~
- F_bisDatum
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname w-audit-data
- FUNCTION getProgname RETURNS CHARACTER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setAuditUser w-audit-data
- FUNCTION setAuditUser RETURNS LOGICAL
- (ipcUser AS CHARACTER) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********************** Control Definitions ********************** */
- /* Define the widget handle for the window */
- DEFINE VAR w-audit-data AS WIDGET-HANDLE NO-UNDO.
- /* Menu Definitions */
- DEFINE MENU POPUP-MENU-Br_Kopf
- MENU-ITEM X_EXPORT_EXCEL LABEL "Export in Excel".
- /* Definitions of the field level widgets */
- DEFINE BUTTON btn_Ende
- LABEL "Ende"
- SIZE 15 BY 1.14.
- DEFINE BUTTON btn_Start
- LABEL "Start"
- SIZE 15 BY 1.14.
- DEFINE VARIABLE CB_Keyfelder AS CHARACTER FORMAT "X(256)":U
- LABEL "Schlüsselfelder"
- VIEW-AS COMBO-BOX INNER-LINES 5
- LIST-ITEM-PAIRS "Item 1","Item 1"
- DROP-DOWN-LIST
- SIZE 36.8 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE CB_Tabellen AS CHARACTER FORMAT "X(256)":U
- LABEL "Tabelle"
- VIEW-AS COMBO-BOX SORT INNER-LINES 5
- LIST-ITEMS "Item 1"
- DROP-DOWN-LIST
- SIZE 36.8 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_bisDatum AS DATETIME-TZ FORMAT "99.99.9999":U
- LABEL "-"
- VIEW-AS FILL-IN NATIVE
- SIZE 20 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Firma AS CHARACTER FORMAT "X(256)":U
- LABEL "Firma"
- VIEW-AS FILL-IN NATIVE
- SIZE 10 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_Key AS CHARACTER FORMAT "X(256)":U
- LABEL "Schlüssel"
- VIEW-AS FILL-IN NATIVE
- SIZE 20 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE VARIABLE F_vonDatum AS DATETIME-TZ FORMAT "99.99.9999":U
- LABEL "von - bis Datum"
- VIEW-AS FILL-IN NATIVE
- SIZE 20 BY 1
- BGCOLOR 15 NO-UNDO.
- DEFINE RECTANGLE RECT-1
- EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
- SIZE 120 BY 27.62.
- /* Browse definitions */
- DEFINE BROWSE Br_Kopf
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Kopf w-audit-data _STRUCTURED
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- WITH NO-ROW-MARKERS SEPARATORS SIZE 116 BY 7.62.
- DEFINE BROWSE Br_Zeile
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Zeile w-audit-data _STRUCTURED
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- WITH NO-ROW-MARKERS SEPARATORS SIZE 116 BY 10.48.
- /* ************************ Frame Definitions *********************** */
- DEFINE FRAME fMain
- CB_Tabellen AT ROW 2 COL 18 COLON-ALIGNED WIDGET-ID 2
- F_Firma AT ROW 3 COL 18 COLON-ALIGNED WIDGET-ID 4
- CB_Keyfelder AT ROW 4 COL 18 COLON-ALIGNED WIDGET-ID 18
- F_Key AT ROW 5 COL 18 COLON-ALIGNED WIDGET-ID 6
- F_vonDatum AT ROW 6 COL 18 COLON-ALIGNED WIDGET-ID 8
- F_bisDatum AT ROW 6 COL 41 COLON-ALIGNED WIDGET-ID 10
- btn_Start AT ROW 8 COL 20 WIDGET-ID 12
- btn_Ende AT ROW 8 COL 43 WIDGET-ID 14
- Br_Kopf AT ROW 10.05 COL 5 WIDGET-ID 200
- Br_Zeile AT ROW 18.14 COL 5 WIDGET-ID 300
- RECT-1 AT ROW 1.48 COL 3 WIDGET-ID 16
- WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
- SIDE-LABELS NO-UNDERLINE THREE-D
- AT COL 1 ROW 1
- SIZE 124 BY 28.57 WIDGET-ID 100.
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: SmartWindow
- Allow: Basic,Browse,DB-Fields,Query,Smart,Window
- Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
- Other Settings: COMPILE APPSERVER
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- IF SESSION:DISPLAY-TYPE = "GUI":U THEN
- CREATE WINDOW w-audit-data ASSIGN
- HIDDEN = YES
- TITLE = "Verfolgung von Datenbankmutationen"
- HEIGHT = 28.57
- WIDTH = 124
- MAX-HEIGHT = 57.14
- MAX-WIDTH = 320
- VIRTUAL-HEIGHT = 57.14
- VIRTUAL-WIDTH = 320
- RESIZE = NO
- SCROLL-BARS = NO
- STATUS-AREA = NO
- BGCOLOR = ?
- FGCOLOR = ?
- THREE-D = YES
- MESSAGE-AREA = NO
- SENSITIVE = YES.
- ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
- &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN
- IF NOT w-audit-data:LOAD-ICON("grafik/appl.ico":U) THEN
- MESSAGE "Unable to load icon: grafik/appl.ico"
- VIEW-AS ALERT-BOX WARNING BUTTONS OK.
- &ENDIF
- /* END WINDOW DEFINITION */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB w-audit-data
- /* ************************* Included-Libraries *********************** */
- {src/adm2/containr.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* *********** Runtime Attributes and AppBuilder Settings *********** */
- &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
- /* SETTINGS FOR WINDOW w-audit-data
- VISIBLE,,RUN-PERSISTENT */
- /* SETTINGS FOR FRAME fMain
- FRAME-NAME */
- /* BROWSE-TAB Br_Kopf btn_Ende fMain */
- /* BROWSE-TAB Br_Zeile Br_Kopf fMain */
- ASSIGN
- Br_Kopf:POPUP-MENU IN FRAME fMain = MENU POPUP-MENU-Br_Kopf:HANDLE
- Br_Kopf:COLUMN-RESIZABLE IN FRAME fMain = TRUE.
- ASSIGN
- Br_Zeile:COLUMN-RESIZABLE IN FRAME fMain = TRUE.
- /* SETTINGS FOR COMBO-BOX CB_Keyfelder IN FRAME fMain
- 6 */
- /* SETTINGS FOR COMBO-BOX CB_Tabellen IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_bisDatum IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_Firma IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_Key IN FRAME fMain
- 6 */
- /* SETTINGS FOR FILL-IN F_vonDatum IN FRAME fMain
- 6 */
- IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-audit-data)
- THEN w-audit-data:HIDDEN = YES.
- /* _RUN-TIME-ATTRIBUTES-END */
- &ANALYZE-RESUME
- /* Setting information for Queries and Browse Widgets fields */
- &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Kopf
- /* Query rebuild information for BROWSE Br_Kopf
- _Query is NOT OPENED
- */ /* BROWSE Br_Kopf */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Zeile
- /* Query rebuild information for BROWSE Br_Zeile
- _Query is NOT OPENED
- */ /* BROWSE Br_Zeile */
- &ANALYZE-RESUME
-
- /* ************************ Control Triggers ************************ */
- &Scoped-define SELF-NAME w-audit-data
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-audit-data w-audit-data
- ON END-ERROR OF w-audit-data /* Verfolgung von Datenbankmutationen */
- OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
- /* This case occurs when the user presses the "Esc" key.
- In a persistently run window, just ignore this. If we did not, the
- application would exit. */
- IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
- /* ****************************** */
- DO WITH FRAME {&FRAME-NAME}:
- APPLY 'ENTRY' TO CB_Tabellen.
- END.
- RETURN NO-APPLY.
- /* ****************************** */
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-audit-data w-audit-data
- ON WINDOW-CLOSE OF w-audit-data /* Verfolgung von Datenbankmutationen */
- DO:
- /* This ADM code must be left here in order for the SmartWindow
- and its descendents to terminate properly on exit. */
- DO WITH FRAME {&FRAME-NAME}:
- APPLY 'ENTRY' TO CB_Tabellen.
- END.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define BROWSE-NAME Br_Kopf
- &Scoped-define SELF-NAME Br_Kopf
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Kopf w-audit-data
- ON END-ERROR OF Br_Kopf IN FRAME fMain
- DO:
- APPLY 'ENTRY' TO F_Key.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Kopf w-audit-data
- ON ENDKEY OF Br_Kopf IN FRAME fMain
- DO:
- APPLY 'ENTRY' TO F_Key.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Kopf w-audit-data
- ON VALUE-CHANGED OF Br_Kopf IN FRAME fMain
- DO:
- DEF VAR cWhere AS CHAR NO-UNDO.
- cWhere = SUBSTITUTE('FOR EACH tZeile NO-LOCK USE-INDEX tZeile-k1 WHERE tZeile.cKey = "&1"', tKopf.cKey).
- qZeile:QUERY-PREPARE(cWhere).
- qZeile:QUERY-OPEN().
- APPLY 'ENTRY' TO Br_Kopf.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define BROWSE-NAME Br_Zeile
- &Scoped-define SELF-NAME Br_Zeile
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Zeile w-audit-data
- ON END-ERROR OF Br_Zeile IN FRAME fMain
- DO:
- APPLY 'ENTRY' TO Br_Kopf.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Zeile w-audit-data
- ON ENDKEY OF Br_Zeile IN FRAME fMain
- DO:
- APPLY 'ENTRY' TO Br_Kopf.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME btn_Ende
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_Ende w-audit-data
- ON CHOOSE OF btn_Ende IN FRAME fMain /* Ende */
- DO:
- RUN ENDE.
- RETURN NO-APPLY.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME btn_Start
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_Start w-audit-data
- ON CHOOSE OF btn_Start IN FRAME fMain /* Start */
- DO:
- RUN VERARBEITUNG.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB_Keyfelder
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Keyfelder w-audit-data
- ON RETURN OF CB_Keyfelder IN FRAME fMain /* Schlüsselfelder */
- DO:
- APPLY 'TAB' TO SELF.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME CB_Tabellen
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Tabellen w-audit-data
- ON RETURN OF CB_Tabellen IN FRAME fMain /* Tabelle */
- DO:
- APPLY 'TAB' TO SELF.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Tabellen w-audit-data
- ON VALUE-CHANGED OF CB_Tabellen IN FRAME fMain /* Tabelle */
- DO:
- RUN COMBO_KEYFELDER ( SELF:SCREEN-VALUE ).
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define SELF-NAME X_EXPORT_EXCEL
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL X_EXPORT_EXCEL w-audit-data
- ON CHOOSE OF MENU-ITEM X_EXPORT_EXCEL /* Export in Excel */
- DO:
- RUN EXPORT_IN_EXCEL.
- END.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &Scoped-define BROWSE-NAME Br_Kopf
- &UNDEFINE SELF-NAME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK w-audit-data
- /* *************************** Main Block *************************** */
- DEFINE VARIABLE hClientPrincipal AS HANDLE NO-UNDO.
- DEFINE VARIABLE cLDBName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
-
- MaxSeite = 1.
- AktSeite = 1.
- SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR.
- IF SAktiv = ? THEN SAktiv = FALSE.
- IF SAktiv THEN DO:
- AdFirma = DYNAMIC-FUNCTION('getAdMandant':U) NO-ERROR.
- FBFirma = DYNAMIC-FUNCTION('getFBMandant':U) NO-ERROR.
- Firma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR.
- Progname = DYNAMIC-FUNCTION('makeProgname':U, INPUT THIS-PROCEDURE ) NO-ERROR.
- END.
- SESSION:DATA-ENTRY-RETURN = TRUE.
- DO ii = 1 TO NUM-DBS:
- IF INDEX(LDBNAME(ii), 'pse') <> 0 THEN NEXT.
- cLDBName = LDBNAME(ii).
- LEAVE.
- END.
-
- DO WHILE cLDBName <> '':
- SECURITY-POLICY:LOAD-DOMAINS(cLDBName).
-
- hClientPrincipal = SECURITY-POLICY:GET-CLIENT().
- IF VALID-HANDLE ( hClientPrincipal ) THEN
- DO:
- IF hClientPrincipal:USER-ID = 'walter.riechsteiner' THEN LEAVE.
-
- hClientPrincipal:LOGOUT() NO-ERROR.
- SECURITY-POLICY:SET-CLIENT( ? ) NO-ERROR.
- DELETE OBJECT hClientPrincipal NO-ERROR.
- END.
- CREATE CLIENT-PRINCIPAL hClientPrincipal.
- ASSIGN
- hClientPrincipal:USER-ID = 'walter.riechsteiner'
- hClientPrincipal:DOMAIN-NAME = "Ge_MIS"
- hClientPrincipal:DOMAIN-TYPE = "Ge_MIS"
- hClientPrincipal:SESSION-ID = SUBSTRING(BASE64-ENCODE(GENERATE-UUID),1,22).
- hClientPrincipal:SEAL("0123456789").
- SECURITY-POLICY:SET-CLIENT(hClientPrincipal).
- LEAVE.
- END.
-
- /* TRIGGERS ------------------------------------------------------ */
- ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN ENTRY_CURSOR.
- RETURN NO-APPLY.
- END.
- ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- APPLY 'U1'.
- RETURN NO-APPLY.
- END.
- ON 'CTRL-ALT-F':U OF {&WINDOW-NAME} ANYWHERE
- DO:
- RUN SCHREIBEN_FEHLWERT ( SELF:HANDLE ).
- RETURN NO-APPLY.
- END.
- PROCEDURE SCHREIBEN_FEHLWERT:
- DEF INPUT PARAMETER ipHandle AS HANDLE.
- IF NOT VALID-HANDLE ( ipHandle ) THEN RETURN NO-APPLY.
- END PROCEDURE.
- PROCEDURE GetSystemMetrics EXTERNAL "USER32.DLL":
- DEFINE INPUT PARAMETER nIndex AS LONG.
- DEFINE RETURN PARAMETER nRet AS LONG.
- END PROCEDURE.
- {src/adm2/windowmn.i}
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects w-audit-data _ADM-CREATE-OBJECTS
- PROCEDURE adm-create-objects :
- /*------------------------------------------------------------------------------
- Purpose: Create handles for all SmartObjects used in this procedure.
- After SmartObjects are initialized, then SmartLinks are added.
- Parameters: <none>
- ------------------------------------------------------------------------------*/
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage w-audit-data
- PROCEDURE changePage :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN SUPER.
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
- CASE AktSeite:
- WHEN 1 THEN DO:
- /* RUN addLink ( hAktionen , 'TableIO':U , h_v-auftr ). */
- /* RUN addLink ( hAktionen , 'Navigation':U , h_d-auftr ). */
- /* RUN setButtons IN hAktionen ( 'initial-TableIo' ) NO-ERROR. */
- END.
- WHEN 2 THEN DO:
- END.
- END CASE.
- RUN ENTRY_CURSOR.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_KEYFELDER w-audit-data
- PROCEDURE COMBO_KEYFELDER :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER ipTabelle AS CHAR NO-UNDO.
- DEF VAR cString AS CHAR INIT '' NO-UNDO.
- DEF VAR iFeld AS INT INIT 0 NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- CB_Keyfelder:DELIMITER = ';'.
- F_Firma:SCREEN-VALUE = ''.
- F_Firma:READ-ONLY = TRUE.
- FOR EACH _File WHERE _File._File-Name = ipTabelle:
- FIND _Index WHERE RECID(_Index) = _File._Prime-Index.
-
- FOR EACH _Index-Field OF _Index BY _Index-Field._index-Seq:
- FIND _Field
- WHERE RECID(_Field) = _Index-Field._Field-Recid.
- IF _Field._Field-Name = 'Firma' THEN DO:
- F_Firma:SCREEN-VALUE = Firma.
- F_Firma:READ-ONLY = FALSE.
- NEXT.
- END.
- iFeld = iFeld + 1.
- cString = cString
- + (IF cString = '' THEN '' ELSE ';')
- + _Field._Field-Name
- + ';'
- + STRING(iFeld,'99').
- END.
- END.
- IF cString = '' THEN cString = ';'.
- CB_Keyfelder:LIST-ITEM-PAIRS = cString NO-ERROR.
- IF cString <> ';' THEN CB_Keyfelder:SCREEN-VALUE = ENTRY(2, cString, ';').
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_TABELLEN w-audit-data
- PROCEDURE COMBO_TABELLEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cTabellen AS CHAR NO-UNDO.
- cTabellen = ''.
- DO WITH FRAME {&FRAME-NAME}:
- CB_Tabellen:DELIMITER = ';'.
- FOR EACH _aud-file-policy NO-LOCK
- WHERE NOT _aud-file-policy._File-Name BEGINS '_'
- AND NOT _aud-file-policy._File-Name BEGINS 'SYS':
- cTabellen = cTabellen
- + (IF cTabellen = '' THEN '' ELSE ';')
- + _aud-file-policy._File-Name.
- END.
- CB_Tabellen:LIST-ITEMS = cTabellen.
- CB_Tabellen:SCREEN-VALUE = ENTRY(1, cTabellen, ';') NO-ERROR.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject w-audit-data
- PROCEDURE destroyObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- IF VALID-HANDLE ( qKopf ) THEN DO:
- qKopf:QUERY-CLOSE() NO-ERROR.
- DELETE OBJECT qKopf.
- END.
- IF VALID-HANDLE ( qZeile ) THEN DO:
- qZeile:QUERY-CLOSE() NO-ERROR.
- DELETE OBJECT qZeile.
- 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 disable_UI w-audit-data _DEFAULT-DISABLE
- PROCEDURE disable_UI :
- /*------------------------------------------------------------------------------
- Purpose: DISABLE the User Interface
- Parameters: <none>
- 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.
- ------------------------------------------------------------------------------*/
- /* Delete the WINDOW we created */
- IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-audit-data)
- THEN DELETE WIDGET w-audit-data.
- IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject w-audit-data
- PROCEDURE enableObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN COMBO_TABELLEN.
- { incl/winenableobject.i }
- RUN SUPER.
- /* Code placed here will execute AFTER standard behavior. */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI w-audit-data _DEFAULT-ENABLE
- PROCEDURE enable_UI :
- /*------------------------------------------------------------------------------
- Purpose: ENABLE the User Interface
- Parameters: <none>
- Notes: Here we display/view/enable the widgets in the
- user-interface. In addition, OPEN all queries
- associated with each FRAME and BROWSE.
- These statements here are based on the "Other
- Settings" section of the widget Property Sheets.
- ------------------------------------------------------------------------------*/
- DISPLAY CB_Tabellen F_Firma CB_Keyfelder F_Key F_vonDatum F_bisDatum
- WITH FRAME fMain IN WINDOW w-audit-data.
- ENABLE RECT-1 CB_Tabellen F_Firma CB_Keyfelder F_Key F_vonDatum F_bisDatum
- btn_Start btn_Ende
- WITH FRAME fMain IN WINDOW w-audit-data.
- {&OPEN-BROWSERS-IN-QUERY-fMain}
- VIEW w-audit-data.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE w-audit-data
- PROCEDURE ENDE :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/winende.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR w-audit-data
- PROCEDURE ENTRY_CURSOR :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
- FMutFlag = DYNAMIC-FUNCTION('getMutflag':U, INPUT Progname) NO-ERROR.
- APPLY 'ENTRY' TO CB_Tabellen IN FRAME {&FRAME-NAME}.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject w-audit-data
- PROCEDURE exitObject :
- /*------------------------------------------------------------------------------
- Purpose: Window-specific override of this procedure which destroys
- its contents and itself.
- Notes:
- ------------------------------------------------------------------------------*/
- RUN ENDE.
- RETURN NO-APPLY.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXPORT_IN_EXCEL w-audit-data
- PROCEDURE EXPORT_IN_EXCEL :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cDateiName AS CHAR NO-UNDO.
- DEF VAR hKopf AS HANDLE NO-UNDO.
- DEF VAR hZeile AS HANDLE NO-UNDO.
- DEF VAR ii AS INT NO-UNDO.
- DEF VAR lFirst AS LOG NO-UNDO.
- DEF VAR cZeile AS CHAR NO-UNDO.
- DEF VAR lRetVal AS LOG NO-UNDO.
- hKopf = TEMP-TABLE tKopf :DEFAULT-BUFFER-HANDLE.
- hZeile = TEMP-TABLE tZeile:DEFAULT-BUFFER-HANDLE.
- cDateiName = SESSION:TEMP-DIR + 'AuditData.csv'.
- OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
- DO ii = 1 TO hKopf:NUM-FIELDS:
- cZeile = cZeile
- + (IF cZeile = '' THEN '' ELSE ';')
- + (IF hKopf:BUFFER-FIELD(ii):LABEL <> ? THEN hKopf:BUFFER-FIELD(ii):LABEL ELSE hKopf:BUFFER-FIELD(ii):NAME).
- END.
- DO ii = 1 TO hZeile:NUM-FIELDS:
- cZeile = cZeile
- + (IF cZeile = '' THEN '' ELSE ';')
- + (IF hZeile:BUFFER-FIELD(ii):LABEL <> ? THEN hZeile:BUFFER-FIELD(ii):LABEL ELSE hZeile:BUFFER-FIELD(ii):NAME).
- END.
- PUT CONTROL cZeile CHR(10).
-
- FOR EACH tKopf:
- DO ii = 1 TO hKopf:NUM-FIELDS:
- PUT CONTROL hKopf:BUFFER-FIELD(ii):BUFFER-VALUE ';'.
- END.
- lFirst = TRUE.
- FOR EACH tZeile
- WHERE tZeile.cKey = tKopf.cKey:
-
- IF NOT lFirst THEN DO:
- cZeile = FILL(';', hKopf:NUM-FIELDS).
- PUT CONTROL cZeile.
- END.
- lFirst = FALSE.
- DO ii = 1 TO hZeile:NUM-FIELDS:
- PUT CONTROL hZeile:BUFFER-FIELD(ii):BUFFER-VALUE.
- IF ii < hZeile:NUM-FIELDS THEN PUT CONTROL ';'.
- END.
- PUT CONTROL CHR(10).
- END.
- END.
-
- OUTPUT CLOSE.
-
- DEF VAR hExcel AS COM-HANDLE NO-UNDO.
-
- hExcel = DYNAMIC-FUNCTION('createExcel':U) NO-ERROR.
- RUN OPENEXCEL ( hExcel, cDateiName, '', OUTPUT lRetVal ) NO-ERROR.
- IF NOT VALID-HANDLE ( hExcel ) THEN DO:
- MESSAGE 'Excel konnte nicht gestartet werden'
- VIEW-AS ALERT-BOX.
- RETURN.
- END.
-
- IF NOT lRetVal THEN DO:
- MESSAGE 'Problem mit öffnen der Datei in Excel'
- VIEW-AS ALERT-BOX.
- END.
-
- RELEASE OBJECT hExcel.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject w-audit-data
- PROCEDURE initializeObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
-
- DEF VAR cExceptListK AS CHAR NO-UNDO
- INIT 'cKey,tZeit,cSort'.
- DEF VAR cExceptListZ AS CHAR NO-UNDO
- INIT 'cKey'.
- DEF VAR cWhere AS CHAR NO-UNDO.
- CREATE QUERY qKopf.
- qKopf:SET-BUFFERS(TEMP-TABLE tKopf:DEFAULT-BUFFER-HANDLE).
- BROWSE Br_Kopf:QUERY = qKopf.
- bKopf = Br_Kopf:HANDLE IN FRAME {&FRAME-NAME}.
- bKopf:ADD-COLUMNS-FROM( 'tKopf', cExceptListK ).
- CREATE QUERY qZeile.
- qZeile:SET-BUFFERS(TEMP-TABLE tZeile:DEFAULT-BUFFER-HANDLE).
- BROWSE Br_Zeile:QUERY = qZeile.
- bZeile = Br_Zeile:HANDLE IN FRAME {&FRAME-NAME}.
- bZeile:ADD-COLUMNS-FROM( 'tZeile', cExceptListZ ).
- F_Firma = Firma.
- F_BisDatum = TODAY + 1.
- RUN SUPER.
- { incl/wininitializeobject.i }
- Br_Kopf :SENSITIVE = TRUE.
- Br_Zeile:SENSITIVE = TRUE.
- APPLY 'VALUE-CHANGED' TO CB_Tabellen.
- APPLY 'ENTRY' TO CB_Tabellen.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL w-audit-data
- PROCEDURE SEITENWECHSEL :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- { incl/winseitenwechsel.i }
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage w-audit-data
- PROCEDURE selectPage :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
- DEF VAR FMutFlag AS LOG NO-UNDO.
- DEF VAR MutProg AS CHAR NO-UNDO.
- FMutFlag = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR.
- IF FMutFlag THEN RETURN NO-APPLY.
- CASE piPageNum:
- END CASE.
- AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
- CASE AktSeite:
- WHEN 1 THEN DO:
- /* RUN removeLink ( hAktionen , 'TableIO':U , h_v-auftr ). */
- /* RUN removeLink ( hAktionen , 'Navigation':U , h_d-auftr ). */
- END.
- END CASE.
- RUN SUPER( INPUT piPageNum).
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERARBEITUNG w-audit-data
- PROCEDURE VERARBEITUNG :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEF VAR cTabelle AS CHAR NO-UNDO.
- DEF VAR ix AS INT NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR cIndex AS CHAR NO-UNDO.
- DEF VAR cFeld AS CHAR NO-UNDO.
- DEF VAR iFeld AS INT NO-UNDO.
- DEF VAR cTyp AS CHAR NO-UNDO.
- DEF VAR cAlt AS CHAR NO-UNDO.
- DEF VAR cNeu AS CHAR NO-UNDO.
- DEF VAR cWhere AS CHAR NO-UNDO.
- DEF VAR cTrenn AS CHAR NO-UNDO.
- DEF VAR iLang AS INT NO-UNDO.
- DEF VAR cSchluessel AS CHAR NO-UNDO.
- DEF VAR lNeu AS LOG NO-UNDO.
- DEF VAR cWert AS CHAR NO-UNDO.
- DO WITH FRAME {&FRAME-NAME}:
- ASSIGN {&List-6}.
- ASSIGN cTabelle = CB_Tabellen :SCREEN-VALUE
- iFeld = INTEGER(CB_Keyfelder:SCREEN-VALUE) NO-ERROR.
- IF iFeld = ? THEN iFeld = 0.
- IF cTabelle = '' OR
- cTabelle = ? THEN DO:
- APPLY 'ENTRY' TO CB_Tabellen.
- RETURN NO-APPLY.
- END.
- IF iFeld > 0 THEN DO:
- cString = CB_Keyfelder:LIST-ITEM-PAIRS.
- ix = ((iFeld - 1) * 2) + 1.
- cFeld = ENTRY(ix, cString, ';').
- END.
- ELSE cFeld = ''.
- IF F_vonDatum = ? THEN F_vonDatum = DATE(01,01,YEAR(TODAY)).
- IF F_bisDatum = ? THEN F_bisDatum = DATE(12,31,YEAR(TODAY)).
- cTrenn = CHR(06).
- DISPLAY {&List-6}.
- cKey = 'PUB.' + cTabelle + cTrenn.
- cTrenn = CHR(07).
- IF F_Firma:READ-ONLY = FALSE THEN DO:
- cKey = cKey + F_Firma.
- IF iFeld > 0 THEN cKey = cKey + cTrenn.
- END.
- IF cFeld <> '' THEN DO:
- FIND _File NO-LOCK
- WHERE _File._File-Name = cTabelle.
- FIND _Field OF _File
- WHERE _Field._Field-Name = cFeld.
- CASE _Field._Data-Type:
- WHEN 'INTEGER' THEN cString = TRIM (STRING(INTEGER(F_Key),'->>>>>>>>>>9') ) NO-ERROR.
- WHEN 'DECIMAL' THEN cString = TRIM (STRING(DECIMAL(F_Key),'->>>>>>>>>>9.99')) NO-ERROR.
- WHEN 'DATE' THEN cString = STRING(DATE (F_Key),'99/99/9999' ) NO-ERROR.
- OTHERWISE cString = F_Key.
- END CASE.
- IF ERROR-STATUS:ERROR THEN DO:
- MESSAGE 'ungültiger Feldinhalt' VIEW-AS ALERT-BOX.
- APPLY 'ENTRY' TO F_Key.
- RETURN NO-APPLY.
- END.
- IF R-INDEX(cString, '.00') > 0 THEN cString = REPLACE(cString, '.00', '').
- END.
- IF iFeld = 1 THEN ASSIGN cKey = cKey + cString
- cIndex = ''.
- IF iFeld > 1 THEN ASSIGN cIndex = cString.
- END.
- EMPTY TEMP-TABLE tKopf.
- EMPTY TEMP-TABLE tZeile.
- IF F_Firma:READ-ONLY = FALSE THEN iFeld = iFeld + 1.
- SESSION:SET-WAIT-STATE('GENERAL').
- FOR EACH _aud-audit-data NO-LOCK USE-INDEX _Event-context
- WHERE _aud-audit-data._Event-context BEGINS cKey
- AND _aud-audit-data._Audit-date-time <= F_bisDatum
- AND _aud-audit-data._Audit-date-time >= F_vonDatum :
- IF cIndex <> '' THEN DO:
- cString = ENTRY(iFeld, _aud-audit-data._Event-context, cTrenn).
- IF cString <> cIndex THEN NEXT.
- END.
- CREATE tKopf.
- ASSIGN tKopf.cKey = _aud-audit-data._Audit-data-guid
- tKopf.cUser = _aud-audit-data._User-id
- tKopf.cDate = STRING(_aud-audit-data._Audit-date-time)
- tKopf.tZeit = _aud-audit-data._Audit-date-time.
- CASE _aud-audit-data._Event-id:
- WHEN 5100 THEN ASSIGN tKopf.cMutArt = 'Neu'.
- WHEN 5101 THEN ASSIGN tKopf.cMutArt = 'Mut'.
- WHEN 5102 THEN ASSIGN tKopf.cMutArt = 'Loe'.
- END CASE.
- tKopf.cSort = SUBSTRING(cDate,07,04)
- + SUBSTRING(cDate,04,02)
- + SUBSTRING(cDate,01,02)
- + SUBSTRING(cDate,12,12).
- cSchluessel = _aud-audit-data._Event-context.
- ix = INDEX(cSchluessel, CHR(06)) + 1.
- cSchluessel = SUBSTRING(cSchluessel,ix).
- DO ix = 1 TO NUM-ENTRIES(cSchluessel, CHR(07)):
- tKopf.cxKey = tKopf.cxKey
- + (IF ix = 1 THEN '' ELSE ' - ')
- + ENTRY(ix, cSchluessel, CHR(07)).
- END.
- DO ix = 1 TO NUM-ENTRIES(_aud-audit-data._Event-detail, CHR(07)):
- cString = ENTRY(ix, _aud-audit-data._Event-detail, CHR(07)).
- cFeld = ENTRY(1, cString, CHR(06)).
- cTyp = ENTRY(2, cString, CHR(06)).
- cAlt = ENTRY(3, cString, CHR(06)).
- cNeu = ENTRY(4, cString, CHR(06)).
- CREATE tZeile.
- ASSIGN tZeile.cKey = tKopf.cKey
- tZeile.Art = cTyp
- tZeile.cFeld = cFeld
- tZeile.cAlt = cAlt
- tZeile.cNeu = cNeu.
- END.
- END.
- SESSION:SET-WAIT-STATE('').
- cWhere = 'FOR EACH tKopf NO-LOCK USE-INDEX tKopf-k1'.
- qKopf:QUERY-PREPARE(cWhere) NO-ERROR.
- qKopf:QUERY-OPEN() NO-ERROR.
- DO WITH FRAME {&FRAME-NAME}:
- IF qKopf:QUERY-OFF-END THEN DO:
- cWhere = 'FOR EACH tZeile NO-LOCK USE-INDEX tZeile-k1'.
- qZeile:QUERY-PREPARE(cWhere).
- qZeile:QUERY-OPEN().
- APPLY 'ENTRY' TO F_Key.
- RETURN NO-APPLY.
- END.
- APPLY 'ENTRY' TO Br_Kopf.
- Br_Kopf:FETCH-SELECTED-ROW(1).
- APPLY 'VALUE-CHANGED' TO Br_Kopf.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject w-audit-data
- PROCEDURE viewObject :
- /*------------------------------------------------------------------------------
- Purpose: Super Override
- Parameters:
- Notes:
- ------------------------------------------------------------------------------*/
- RUN SUPER.
- RUN ENTRY_CURSOR.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Implementations ***************** */
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname w-audit-data
- FUNCTION getProgname RETURNS CHARACTER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- RETURN Progname.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setAuditUser w-audit-data
- FUNCTION setAuditUser RETURNS LOGICAL
- ( ipcUser AS CHARACTER ):
- /*------------------------------------------------------------------------------*/
- /* Purpose: */
- /* Notes: */
- /*------------------------------------------------------------------------------*/
- DEFINE VARIABLE hClientPrincipal AS HANDLE NO-UNDO.
- DEFINE VARIABLE cLDBName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DO ii = 1 TO NUM-DBS:
- IF INDEX(LDBNAME(ii), 'pse') <> 0 THEN NEXT.
- cLDBName = LDBNAME(ii).
- LEAVE.
- END.
-
- IF cLDBName = '' THEN RETURN FALSE.
-
- DO WHILE TRUE:
- SECURITY-POLICY:LOAD-DOMAINS(cLDBName).
-
- hClientPrincipal = SECURITY-POLICY:GET-CLIENT().
- IF VALID-HANDLE ( hClientPrincipal ) THEN
- DO:
- IF hClientPrincipal:USER-ID = ipcUser THEN LEAVE.
-
- hClientPrincipal:LOGOUT() NO-ERROR.
- SECURITY-POLICY:SET-CLIENT( ? ) NO-ERROR.
- DELETE OBJECT hClientPrincipal NO-ERROR.
- END.
- CREATE CLIENT-PRINCIPAL hClientPrincipal.
- ASSIGN
- hClientPrincipal:USER-ID = ipcUser
- hClientPrincipal:DOMAIN-NAME = "Ge_MIS"
- hClientPrincipal:DOMAIN-TYPE = "Ge_MIS"
- hClientPrincipal:SESSION-ID = SUBSTRING(BASE64-ENCODE(GENERATE-UUID),1,22).
- hClientPrincipal:SEAL("0123456789").
- SECURITY-POLICY:SET-CLIENT(hClientPrincipal).
- LEAVE.
- END.
-
- IF NOT VALID-HANDLE (hClientPrincipal) THEN RETURN FALSE.
-
- RETURN TRUE.
-
- END FUNCTION.
-
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
|