w-audit-data.w 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME w-audit-data
  4. {adecomm/appserv.i}
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS w-audit-data
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrwin.w - ADM SmartWindow Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. History: New V9 Version - January 15, 1998
  14. ------------------------------------------------------------------------*/
  15. /* This .W file was created with the Progress AB. */
  16. /*----------------------------------------------------------------------*/
  17. /* Create an unnamed pool to store all the widgets created
  18. by this procedure. This is a good default which assures
  19. that this procedure's triggers and internal procedures
  20. will execute in this procedure's storage, and that proper
  21. cleanup will occur on deletion of the procedure. */
  22. CREATE WIDGET-POOL.
  23. /* *************************** Definitions ************************** */
  24. /* Parameters Definitions --- */
  25. /* Local Variable Definitions --- */
  26. { incl/windefinition.i }
  27. DEF VAR qKopf AS HANDLE NO-UNDO.
  28. DEF VAR qZeile AS HANDLE NO-UNDO.
  29. DEF VAR bKopf AS HANDLE NO-UNDO.
  30. DEF VAR bZeile AS HANDLE NO-UNDO.
  31. DEF VAR cKey AS CHAR NO-UNDO.
  32. DEF TEMP-TABLE taud_audit-data LIKE _aud-audit-data.
  33. DEF TEMP-TABLE tKopf
  34. FIELD cKey AS CHAR
  35. FIELD cUser AS CHAR FORMAT "x(30)" LABEL 'Benutzer'
  36. FIELD cDate AS CHAR FORMAT "x(35)" LABEL 'Datum/Zeit'
  37. FIELD cMutArt AS CHAR FORMAT "x(04)" LABEL 'Art'
  38. FIELD tZeit AS DATETIME
  39. FIELD cSort AS CHAR
  40. FIELD cxKey AS CHAR FORMAT "x(80)" LABEL 'alle Schlüsselfelder'
  41. INDEX tKopf-k1 IS PRIMARY
  42. cSort DESCENDING
  43. .
  44. DEF TEMP-TABLE tZeile
  45. FIELD cKey AS CHAR
  46. FIELD Art AS CHAR
  47. FIELD cFeld AS CHAR FORMAT "x(20)" LABEL 'Feld'
  48. FIELD cAlt AS CHAR FORMAT "x(40)" LABEL 'alter Inhalt'
  49. FIELD cNeu AS CHAR FORMAT "x(40)" LABEL 'neuer Inhalt'
  50. INDEX tZeile-k1 IS PRIMARY
  51. cKey
  52. .
  53. {src/adm2/widgetprto.i}
  54. /* _UIB-CODE-BLOCK-END */
  55. &ANALYZE-RESUME
  56. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  57. /* ******************** Preprocessor Definitions ******************** */
  58. &Scoped-define PROCEDURE-TYPE SmartWindow
  59. &Scoped-define DB-AWARE no
  60. &Scoped-define ADM-CONTAINER WINDOW
  61. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  62. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  63. &Scoped-define FRAME-NAME fMain
  64. &Scoped-define BROWSE-NAME Br_Kopf
  65. /* Definitions for FRAME fMain */
  66. /* Standard List Definitions */
  67. &Scoped-Define ENABLED-OBJECTS RECT-1 CB_Tabellen F_Firma CB_Keyfelder ~
  68. F_Key F_vonDatum F_bisDatum btn_Start btn_Ende Br_Kopf Br_Zeile
  69. &Scoped-Define DISPLAYED-OBJECTS CB_Tabellen F_Firma CB_Keyfelder F_Key ~
  70. F_vonDatum F_bisDatum
  71. /* Custom List Definitions */
  72. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  73. &Scoped-define List-6 CB_Tabellen F_Firma CB_Keyfelder F_Key F_vonDatum ~
  74. F_bisDatum
  75. /* _UIB-PREPROCESSOR-BLOCK-END */
  76. &ANALYZE-RESUME
  77. /* ************************ Function Prototypes ********************** */
  78. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname w-audit-data
  79. FUNCTION getProgname RETURNS CHARACTER
  80. ( /* parameter-definitions */ ) FORWARD.
  81. /* _UIB-CODE-BLOCK-END */
  82. &ANALYZE-RESUME
  83. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setAuditUser w-audit-data
  84. FUNCTION setAuditUser RETURNS LOGICAL
  85. (ipcUser AS CHARACTER) FORWARD.
  86. /* _UIB-CODE-BLOCK-END */
  87. &ANALYZE-RESUME
  88. /* *********************** Control Definitions ********************** */
  89. /* Define the widget handle for the window */
  90. DEFINE VAR w-audit-data AS WIDGET-HANDLE NO-UNDO.
  91. /* Menu Definitions */
  92. DEFINE MENU POPUP-MENU-Br_Kopf
  93. MENU-ITEM X_EXPORT_EXCEL LABEL "Export in Excel".
  94. /* Definitions of the field level widgets */
  95. DEFINE BUTTON btn_Ende
  96. LABEL "Ende"
  97. SIZE 15 BY 1.14.
  98. DEFINE BUTTON btn_Start
  99. LABEL "Start"
  100. SIZE 15 BY 1.14.
  101. DEFINE VARIABLE CB_Keyfelder AS CHARACTER FORMAT "X(256)":U
  102. LABEL "Schlüsselfelder"
  103. VIEW-AS COMBO-BOX INNER-LINES 5
  104. LIST-ITEM-PAIRS "Item 1","Item 1"
  105. DROP-DOWN-LIST
  106. SIZE 36.8 BY 1
  107. BGCOLOR 15 NO-UNDO.
  108. DEFINE VARIABLE CB_Tabellen AS CHARACTER FORMAT "X(256)":U
  109. LABEL "Tabelle"
  110. VIEW-AS COMBO-BOX SORT INNER-LINES 5
  111. LIST-ITEMS "Item 1"
  112. DROP-DOWN-LIST
  113. SIZE 36.8 BY 1
  114. BGCOLOR 15 NO-UNDO.
  115. DEFINE VARIABLE F_bisDatum AS DATETIME-TZ FORMAT "99.99.9999":U
  116. LABEL "-"
  117. VIEW-AS FILL-IN NATIVE
  118. SIZE 20 BY 1
  119. BGCOLOR 15 NO-UNDO.
  120. DEFINE VARIABLE F_Firma AS CHARACTER FORMAT "X(256)":U
  121. LABEL "Firma"
  122. VIEW-AS FILL-IN NATIVE
  123. SIZE 10 BY 1
  124. BGCOLOR 15 NO-UNDO.
  125. DEFINE VARIABLE F_Key AS CHARACTER FORMAT "X(256)":U
  126. LABEL "Schlüssel"
  127. VIEW-AS FILL-IN NATIVE
  128. SIZE 20 BY 1
  129. BGCOLOR 15 NO-UNDO.
  130. DEFINE VARIABLE F_vonDatum AS DATETIME-TZ FORMAT "99.99.9999":U
  131. LABEL "von - bis Datum"
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 20 BY 1
  134. BGCOLOR 15 NO-UNDO.
  135. DEFINE RECTANGLE RECT-1
  136. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  137. SIZE 120 BY 27.62.
  138. /* Browse definitions */
  139. DEFINE BROWSE Br_Kopf
  140. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Kopf w-audit-data _STRUCTURED
  141. /* _UIB-CODE-BLOCK-END */
  142. &ANALYZE-RESUME
  143. WITH NO-ROW-MARKERS SEPARATORS SIZE 116 BY 7.62.
  144. DEFINE BROWSE Br_Zeile
  145. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Zeile w-audit-data _STRUCTURED
  146. /* _UIB-CODE-BLOCK-END */
  147. &ANALYZE-RESUME
  148. WITH NO-ROW-MARKERS SEPARATORS SIZE 116 BY 10.48.
  149. /* ************************ Frame Definitions *********************** */
  150. DEFINE FRAME fMain
  151. CB_Tabellen AT ROW 2 COL 18 COLON-ALIGNED WIDGET-ID 2
  152. F_Firma AT ROW 3 COL 18 COLON-ALIGNED WIDGET-ID 4
  153. CB_Keyfelder AT ROW 4 COL 18 COLON-ALIGNED WIDGET-ID 18
  154. F_Key AT ROW 5 COL 18 COLON-ALIGNED WIDGET-ID 6
  155. F_vonDatum AT ROW 6 COL 18 COLON-ALIGNED WIDGET-ID 8
  156. F_bisDatum AT ROW 6 COL 41 COLON-ALIGNED WIDGET-ID 10
  157. btn_Start AT ROW 8 COL 20 WIDGET-ID 12
  158. btn_Ende AT ROW 8 COL 43 WIDGET-ID 14
  159. Br_Kopf AT ROW 10.05 COL 5 WIDGET-ID 200
  160. Br_Zeile AT ROW 18.14 COL 5 WIDGET-ID 300
  161. RECT-1 AT ROW 1.48 COL 3 WIDGET-ID 16
  162. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  163. SIDE-LABELS NO-UNDERLINE THREE-D
  164. AT COL 1 ROW 1
  165. SIZE 124 BY 28.57 WIDGET-ID 100.
  166. /* *********************** Procedure Settings ************************ */
  167. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  168. /* Settings for THIS-PROCEDURE
  169. Type: SmartWindow
  170. Allow: Basic,Browse,DB-Fields,Query,Smart,Window
  171. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source
  172. Other Settings: COMPILE APPSERVER
  173. */
  174. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  175. /* ************************* Create Window ************************** */
  176. &ANALYZE-SUSPEND _CREATE-WINDOW
  177. IF SESSION:DISPLAY-TYPE = "GUI":U THEN
  178. CREATE WINDOW w-audit-data ASSIGN
  179. HIDDEN = YES
  180. TITLE = "Verfolgung von Datenbankmutationen"
  181. HEIGHT = 28.57
  182. WIDTH = 124
  183. MAX-HEIGHT = 57.14
  184. MAX-WIDTH = 320
  185. VIRTUAL-HEIGHT = 57.14
  186. VIRTUAL-WIDTH = 320
  187. RESIZE = NO
  188. SCROLL-BARS = NO
  189. STATUS-AREA = NO
  190. BGCOLOR = ?
  191. FGCOLOR = ?
  192. THREE-D = YES
  193. MESSAGE-AREA = NO
  194. SENSITIVE = YES.
  195. ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
  196. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN
  197. IF NOT w-audit-data:LOAD-ICON("grafik/appl.ico":U) THEN
  198. MESSAGE "Unable to load icon: grafik/appl.ico"
  199. VIEW-AS ALERT-BOX WARNING BUTTONS OK.
  200. &ENDIF
  201. /* END WINDOW DEFINITION */
  202. &ANALYZE-RESUME
  203. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB w-audit-data
  204. /* ************************* Included-Libraries *********************** */
  205. {src/adm2/containr.i}
  206. /* _UIB-CODE-BLOCK-END */
  207. &ANALYZE-RESUME
  208. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  209. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  210. /* SETTINGS FOR WINDOW w-audit-data
  211. VISIBLE,,RUN-PERSISTENT */
  212. /* SETTINGS FOR FRAME fMain
  213. FRAME-NAME */
  214. /* BROWSE-TAB Br_Kopf btn_Ende fMain */
  215. /* BROWSE-TAB Br_Zeile Br_Kopf fMain */
  216. ASSIGN
  217. Br_Kopf:POPUP-MENU IN FRAME fMain = MENU POPUP-MENU-Br_Kopf:HANDLE
  218. Br_Kopf:COLUMN-RESIZABLE IN FRAME fMain = TRUE.
  219. ASSIGN
  220. Br_Zeile:COLUMN-RESIZABLE IN FRAME fMain = TRUE.
  221. /* SETTINGS FOR COMBO-BOX CB_Keyfelder IN FRAME fMain
  222. 6 */
  223. /* SETTINGS FOR COMBO-BOX CB_Tabellen IN FRAME fMain
  224. 6 */
  225. /* SETTINGS FOR FILL-IN F_bisDatum IN FRAME fMain
  226. 6 */
  227. /* SETTINGS FOR FILL-IN F_Firma IN FRAME fMain
  228. 6 */
  229. /* SETTINGS FOR FILL-IN F_Key IN FRAME fMain
  230. 6 */
  231. /* SETTINGS FOR FILL-IN F_vonDatum IN FRAME fMain
  232. 6 */
  233. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-audit-data)
  234. THEN w-audit-data:HIDDEN = YES.
  235. /* _RUN-TIME-ATTRIBUTES-END */
  236. &ANALYZE-RESUME
  237. /* Setting information for Queries and Browse Widgets fields */
  238. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Kopf
  239. /* Query rebuild information for BROWSE Br_Kopf
  240. _Query is NOT OPENED
  241. */ /* BROWSE Br_Kopf */
  242. &ANALYZE-RESUME
  243. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Zeile
  244. /* Query rebuild information for BROWSE Br_Zeile
  245. _Query is NOT OPENED
  246. */ /* BROWSE Br_Zeile */
  247. &ANALYZE-RESUME
  248. /* ************************ Control Triggers ************************ */
  249. &Scoped-define SELF-NAME w-audit-data
  250. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-audit-data w-audit-data
  251. ON END-ERROR OF w-audit-data /* Verfolgung von Datenbankmutationen */
  252. OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
  253. /* This case occurs when the user presses the "Esc" key.
  254. In a persistently run window, just ignore this. If we did not, the
  255. application would exit. */
  256. IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY.
  257. /* ****************************** */
  258. DO WITH FRAME {&FRAME-NAME}:
  259. APPLY 'ENTRY' TO CB_Tabellen.
  260. END.
  261. RETURN NO-APPLY.
  262. /* ****************************** */
  263. END.
  264. /* _UIB-CODE-BLOCK-END */
  265. &ANALYZE-RESUME
  266. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-audit-data w-audit-data
  267. ON WINDOW-CLOSE OF w-audit-data /* Verfolgung von Datenbankmutationen */
  268. DO:
  269. /* This ADM code must be left here in order for the SmartWindow
  270. and its descendents to terminate properly on exit. */
  271. DO WITH FRAME {&FRAME-NAME}:
  272. APPLY 'ENTRY' TO CB_Tabellen.
  273. END.
  274. RETURN NO-APPLY.
  275. END.
  276. /* _UIB-CODE-BLOCK-END */
  277. &ANALYZE-RESUME
  278. &Scoped-define BROWSE-NAME Br_Kopf
  279. &Scoped-define SELF-NAME Br_Kopf
  280. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Kopf w-audit-data
  281. ON END-ERROR OF Br_Kopf IN FRAME fMain
  282. DO:
  283. APPLY 'ENTRY' TO F_Key.
  284. RETURN NO-APPLY.
  285. END.
  286. /* _UIB-CODE-BLOCK-END */
  287. &ANALYZE-RESUME
  288. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Kopf w-audit-data
  289. ON ENDKEY OF Br_Kopf IN FRAME fMain
  290. DO:
  291. APPLY 'ENTRY' TO F_Key.
  292. RETURN NO-APPLY.
  293. END.
  294. /* _UIB-CODE-BLOCK-END */
  295. &ANALYZE-RESUME
  296. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Kopf w-audit-data
  297. ON VALUE-CHANGED OF Br_Kopf IN FRAME fMain
  298. DO:
  299. DEF VAR cWhere AS CHAR NO-UNDO.
  300. cWhere = SUBSTITUTE('FOR EACH tZeile NO-LOCK USE-INDEX tZeile-k1 WHERE tZeile.cKey = "&1"', tKopf.cKey).
  301. qZeile:QUERY-PREPARE(cWhere).
  302. qZeile:QUERY-OPEN().
  303. APPLY 'ENTRY' TO Br_Kopf.
  304. END.
  305. /* _UIB-CODE-BLOCK-END */
  306. &ANALYZE-RESUME
  307. &Scoped-define BROWSE-NAME Br_Zeile
  308. &Scoped-define SELF-NAME Br_Zeile
  309. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Zeile w-audit-data
  310. ON END-ERROR OF Br_Zeile IN FRAME fMain
  311. DO:
  312. APPLY 'ENTRY' TO Br_Kopf.
  313. RETURN NO-APPLY.
  314. END.
  315. /* _UIB-CODE-BLOCK-END */
  316. &ANALYZE-RESUME
  317. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Zeile w-audit-data
  318. ON ENDKEY OF Br_Zeile IN FRAME fMain
  319. DO:
  320. APPLY 'ENTRY' TO Br_Kopf.
  321. END.
  322. /* _UIB-CODE-BLOCK-END */
  323. &ANALYZE-RESUME
  324. &Scoped-define SELF-NAME btn_Ende
  325. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_Ende w-audit-data
  326. ON CHOOSE OF btn_Ende IN FRAME fMain /* Ende */
  327. DO:
  328. RUN ENDE.
  329. RETURN NO-APPLY.
  330. END.
  331. /* _UIB-CODE-BLOCK-END */
  332. &ANALYZE-RESUME
  333. &Scoped-define SELF-NAME btn_Start
  334. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_Start w-audit-data
  335. ON CHOOSE OF btn_Start IN FRAME fMain /* Start */
  336. DO:
  337. RUN VERARBEITUNG.
  338. END.
  339. /* _UIB-CODE-BLOCK-END */
  340. &ANALYZE-RESUME
  341. &Scoped-define SELF-NAME CB_Keyfelder
  342. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Keyfelder w-audit-data
  343. ON RETURN OF CB_Keyfelder IN FRAME fMain /* Schlüsselfelder */
  344. DO:
  345. APPLY 'TAB' TO SELF.
  346. END.
  347. /* _UIB-CODE-BLOCK-END */
  348. &ANALYZE-RESUME
  349. &Scoped-define SELF-NAME CB_Tabellen
  350. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Tabellen w-audit-data
  351. ON RETURN OF CB_Tabellen IN FRAME fMain /* Tabelle */
  352. DO:
  353. APPLY 'TAB' TO SELF.
  354. END.
  355. /* _UIB-CODE-BLOCK-END */
  356. &ANALYZE-RESUME
  357. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Tabellen w-audit-data
  358. ON VALUE-CHANGED OF CB_Tabellen IN FRAME fMain /* Tabelle */
  359. DO:
  360. RUN COMBO_KEYFELDER ( SELF:SCREEN-VALUE ).
  361. END.
  362. /* _UIB-CODE-BLOCK-END */
  363. &ANALYZE-RESUME
  364. &Scoped-define SELF-NAME X_EXPORT_EXCEL
  365. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL X_EXPORT_EXCEL w-audit-data
  366. ON CHOOSE OF MENU-ITEM X_EXPORT_EXCEL /* Export in Excel */
  367. DO:
  368. RUN EXPORT_IN_EXCEL.
  369. END.
  370. /* _UIB-CODE-BLOCK-END */
  371. &ANALYZE-RESUME
  372. &Scoped-define BROWSE-NAME Br_Kopf
  373. &UNDEFINE SELF-NAME
  374. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK w-audit-data
  375. /* *************************** Main Block *************************** */
  376. DEFINE VARIABLE hClientPrincipal AS HANDLE NO-UNDO.
  377. DEFINE VARIABLE cLDBName AS CHARACTER NO-UNDO.
  378. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  379. MaxSeite = 1.
  380. AktSeite = 1.
  381. SAktiv = DYNAMIC-FUNCTION('getSuperaktiv':U) NO-ERROR.
  382. IF SAktiv = ? THEN SAktiv = FALSE.
  383. IF SAktiv THEN DO:
  384. AdFirma = DYNAMIC-FUNCTION('getAdMandant':U) NO-ERROR.
  385. FBFirma = DYNAMIC-FUNCTION('getFBMandant':U) NO-ERROR.
  386. Firma = DYNAMIC-FUNCTION('getMandant':U) NO-ERROR.
  387. Progname = DYNAMIC-FUNCTION('makeProgname':U, INPUT THIS-PROCEDURE ) NO-ERROR.
  388. END.
  389. SESSION:DATA-ENTRY-RETURN = TRUE.
  390. DO ii = 1 TO NUM-DBS:
  391. IF INDEX(LDBNAME(ii), 'pse') <> 0 THEN NEXT.
  392. cLDBName = LDBNAME(ii).
  393. LEAVE.
  394. END.
  395. DO WHILE cLDBName <> '':
  396. SECURITY-POLICY:LOAD-DOMAINS(cLDBName).
  397. hClientPrincipal = SECURITY-POLICY:GET-CLIENT().
  398. IF VALID-HANDLE ( hClientPrincipal ) THEN
  399. DO:
  400. IF hClientPrincipal:USER-ID = 'walter.riechsteiner' THEN LEAVE.
  401. hClientPrincipal:LOGOUT() NO-ERROR.
  402. SECURITY-POLICY:SET-CLIENT( ? ) NO-ERROR.
  403. DELETE OBJECT hClientPrincipal NO-ERROR.
  404. END.
  405. CREATE CLIENT-PRINCIPAL hClientPrincipal.
  406. ASSIGN
  407. hClientPrincipal:USER-ID = 'walter.riechsteiner'
  408. hClientPrincipal:DOMAIN-NAME = "Ge_MIS"
  409. hClientPrincipal:DOMAIN-TYPE = "Ge_MIS"
  410. hClientPrincipal:SESSION-ID = SUBSTRING(BASE64-ENCODE(GENERATE-UUID),1,22).
  411. hClientPrincipal:SEAL("0123456789").
  412. SECURITY-POLICY:SET-CLIENT(hClientPrincipal).
  413. LEAVE.
  414. END.
  415. /* TRIGGERS ------------------------------------------------------ */
  416. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE
  417. DO:
  418. RUN ENTRY_CURSOR.
  419. RETURN NO-APPLY.
  420. END.
  421. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE
  422. DO:
  423. APPLY 'U1'.
  424. RETURN NO-APPLY.
  425. END.
  426. ON 'CTRL-ALT-F':U OF {&WINDOW-NAME} ANYWHERE
  427. DO:
  428. RUN SCHREIBEN_FEHLWERT ( SELF:HANDLE ).
  429. RETURN NO-APPLY.
  430. END.
  431. PROCEDURE SCHREIBEN_FEHLWERT:
  432. DEF INPUT PARAMETER ipHandle AS HANDLE.
  433. IF NOT VALID-HANDLE ( ipHandle ) THEN RETURN NO-APPLY.
  434. END PROCEDURE.
  435. PROCEDURE GetSystemMetrics EXTERNAL "USER32.DLL":
  436. DEFINE INPUT PARAMETER nIndex AS LONG.
  437. DEFINE RETURN PARAMETER nRet AS LONG.
  438. END PROCEDURE.
  439. {src/adm2/windowmn.i}
  440. /* _UIB-CODE-BLOCK-END */
  441. &ANALYZE-RESUME
  442. /* ********************** Internal Procedures *********************** */
  443. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects w-audit-data _ADM-CREATE-OBJECTS
  444. PROCEDURE adm-create-objects :
  445. /*------------------------------------------------------------------------------
  446. Purpose: Create handles for all SmartObjects used in this procedure.
  447. After SmartObjects are initialized, then SmartLinks are added.
  448. Parameters: <none>
  449. ------------------------------------------------------------------------------*/
  450. END PROCEDURE.
  451. /* _UIB-CODE-BLOCK-END */
  452. &ANALYZE-RESUME
  453. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage w-audit-data
  454. PROCEDURE changePage :
  455. /*------------------------------------------------------------------------------
  456. Purpose: Super Override
  457. Parameters:
  458. Notes:
  459. ------------------------------------------------------------------------------*/
  460. RUN SUPER.
  461. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  462. CASE AktSeite:
  463. WHEN 1 THEN DO:
  464. /* RUN addLink ( hAktionen , 'TableIO':U , h_v-auftr ). */
  465. /* RUN addLink ( hAktionen , 'Navigation':U , h_d-auftr ). */
  466. /* RUN setButtons IN hAktionen ( 'initial-TableIo' ) NO-ERROR. */
  467. END.
  468. WHEN 2 THEN DO:
  469. END.
  470. END CASE.
  471. RUN ENTRY_CURSOR.
  472. END PROCEDURE.
  473. /* _UIB-CODE-BLOCK-END */
  474. &ANALYZE-RESUME
  475. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_KEYFELDER w-audit-data
  476. PROCEDURE COMBO_KEYFELDER :
  477. /*------------------------------------------------------------------------------
  478. Purpose:
  479. Parameters: <none>
  480. Notes:
  481. ------------------------------------------------------------------------------*/
  482. DEF INPUT PARAMETER ipTabelle AS CHAR NO-UNDO.
  483. DEF VAR cString AS CHAR INIT '' NO-UNDO.
  484. DEF VAR iFeld AS INT INIT 0 NO-UNDO.
  485. DO WITH FRAME {&FRAME-NAME}:
  486. CB_Keyfelder:DELIMITER = ';'.
  487. F_Firma:SCREEN-VALUE = ''.
  488. F_Firma:READ-ONLY = TRUE.
  489. FOR EACH _File WHERE _File._File-Name = ipTabelle:
  490. FIND _Index WHERE RECID(_Index) = _File._Prime-Index.
  491. FOR EACH _Index-Field OF _Index BY _Index-Field._index-Seq:
  492. FIND _Field
  493. WHERE RECID(_Field) = _Index-Field._Field-Recid.
  494. IF _Field._Field-Name = 'Firma' THEN DO:
  495. F_Firma:SCREEN-VALUE = Firma.
  496. F_Firma:READ-ONLY = FALSE.
  497. NEXT.
  498. END.
  499. iFeld = iFeld + 1.
  500. cString = cString
  501. + (IF cString = '' THEN '' ELSE ';')
  502. + _Field._Field-Name
  503. + ';'
  504. + STRING(iFeld,'99').
  505. END.
  506. END.
  507. IF cString = '' THEN cString = ';'.
  508. CB_Keyfelder:LIST-ITEM-PAIRS = cString NO-ERROR.
  509. IF cString <> ';' THEN CB_Keyfelder:SCREEN-VALUE = ENTRY(2, cString, ';').
  510. END.
  511. END PROCEDURE.
  512. /* _UIB-CODE-BLOCK-END */
  513. &ANALYZE-RESUME
  514. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_TABELLEN w-audit-data
  515. PROCEDURE COMBO_TABELLEN :
  516. /*------------------------------------------------------------------------------
  517. Purpose:
  518. Parameters: <none>
  519. Notes:
  520. ------------------------------------------------------------------------------*/
  521. DEF VAR cTabellen AS CHAR NO-UNDO.
  522. cTabellen = ''.
  523. DO WITH FRAME {&FRAME-NAME}:
  524. CB_Tabellen:DELIMITER = ';'.
  525. FOR EACH _aud-file-policy NO-LOCK
  526. WHERE NOT _aud-file-policy._File-Name BEGINS '_'
  527. AND NOT _aud-file-policy._File-Name BEGINS 'SYS':
  528. cTabellen = cTabellen
  529. + (IF cTabellen = '' THEN '' ELSE ';')
  530. + _aud-file-policy._File-Name.
  531. END.
  532. CB_Tabellen:LIST-ITEMS = cTabellen.
  533. CB_Tabellen:SCREEN-VALUE = ENTRY(1, cTabellen, ';') NO-ERROR.
  534. END.
  535. END PROCEDURE.
  536. /* _UIB-CODE-BLOCK-END */
  537. &ANALYZE-RESUME
  538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject w-audit-data
  539. PROCEDURE destroyObject :
  540. /*------------------------------------------------------------------------------
  541. Purpose: Super Override
  542. Parameters:
  543. Notes:
  544. ------------------------------------------------------------------------------*/
  545. IF VALID-HANDLE ( qKopf ) THEN DO:
  546. qKopf:QUERY-CLOSE() NO-ERROR.
  547. DELETE OBJECT qKopf.
  548. END.
  549. IF VALID-HANDLE ( qZeile ) THEN DO:
  550. qZeile:QUERY-CLOSE() NO-ERROR.
  551. DELETE OBJECT qZeile.
  552. END.
  553. RUN SUPER.
  554. /* Code placed here will execute AFTER standard behavior. */
  555. END PROCEDURE.
  556. /* _UIB-CODE-BLOCK-END */
  557. &ANALYZE-RESUME
  558. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI w-audit-data _DEFAULT-DISABLE
  559. PROCEDURE disable_UI :
  560. /*------------------------------------------------------------------------------
  561. Purpose: DISABLE the User Interface
  562. Parameters: <none>
  563. Notes: Here we clean-up the user-interface by deleting
  564. dynamic widgets we have created and/or hide
  565. frames. This procedure is usually called when
  566. we are ready to "clean-up" after running.
  567. ------------------------------------------------------------------------------*/
  568. /* Delete the WINDOW we created */
  569. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-audit-data)
  570. THEN DELETE WIDGET w-audit-data.
  571. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  572. END PROCEDURE.
  573. /* _UIB-CODE-BLOCK-END */
  574. &ANALYZE-RESUME
  575. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject w-audit-data
  576. PROCEDURE enableObject :
  577. /*------------------------------------------------------------------------------
  578. Purpose: Super Override
  579. Parameters:
  580. Notes:
  581. ------------------------------------------------------------------------------*/
  582. RUN COMBO_TABELLEN.
  583. { incl/winenableobject.i }
  584. RUN SUPER.
  585. /* Code placed here will execute AFTER standard behavior. */
  586. END PROCEDURE.
  587. /* _UIB-CODE-BLOCK-END */
  588. &ANALYZE-RESUME
  589. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI w-audit-data _DEFAULT-ENABLE
  590. PROCEDURE enable_UI :
  591. /*------------------------------------------------------------------------------
  592. Purpose: ENABLE the User Interface
  593. Parameters: <none>
  594. Notes: Here we display/view/enable the widgets in the
  595. user-interface. In addition, OPEN all queries
  596. associated with each FRAME and BROWSE.
  597. These statements here are based on the "Other
  598. Settings" section of the widget Property Sheets.
  599. ------------------------------------------------------------------------------*/
  600. DISPLAY CB_Tabellen F_Firma CB_Keyfelder F_Key F_vonDatum F_bisDatum
  601. WITH FRAME fMain IN WINDOW w-audit-data.
  602. ENABLE RECT-1 CB_Tabellen F_Firma CB_Keyfelder F_Key F_vonDatum F_bisDatum
  603. btn_Start btn_Ende
  604. WITH FRAME fMain IN WINDOW w-audit-data.
  605. {&OPEN-BROWSERS-IN-QUERY-fMain}
  606. VIEW w-audit-data.
  607. END PROCEDURE.
  608. /* _UIB-CODE-BLOCK-END */
  609. &ANALYZE-RESUME
  610. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE w-audit-data
  611. PROCEDURE ENDE :
  612. /*------------------------------------------------------------------------------
  613. Purpose:
  614. Parameters: <none>
  615. Notes:
  616. ------------------------------------------------------------------------------*/
  617. { incl/winende.i }
  618. END PROCEDURE.
  619. /* _UIB-CODE-BLOCK-END */
  620. &ANALYZE-RESUME
  621. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR w-audit-data
  622. PROCEDURE ENTRY_CURSOR :
  623. /*------------------------------------------------------------------------------
  624. Purpose:
  625. Parameters: <none>
  626. Notes:
  627. ------------------------------------------------------------------------------*/
  628. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  629. FMutFlag = DYNAMIC-FUNCTION('getMutflag':U, INPUT Progname) NO-ERROR.
  630. APPLY 'ENTRY' TO CB_Tabellen IN FRAME {&FRAME-NAME}.
  631. RETURN NO-APPLY.
  632. END PROCEDURE.
  633. /* _UIB-CODE-BLOCK-END */
  634. &ANALYZE-RESUME
  635. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject w-audit-data
  636. PROCEDURE exitObject :
  637. /*------------------------------------------------------------------------------
  638. Purpose: Window-specific override of this procedure which destroys
  639. its contents and itself.
  640. Notes:
  641. ------------------------------------------------------------------------------*/
  642. RUN ENDE.
  643. RETURN NO-APPLY.
  644. END PROCEDURE.
  645. /* _UIB-CODE-BLOCK-END */
  646. &ANALYZE-RESUME
  647. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXPORT_IN_EXCEL w-audit-data
  648. PROCEDURE EXPORT_IN_EXCEL :
  649. /*------------------------------------------------------------------------------
  650. Purpose:
  651. Parameters: <none>
  652. Notes:
  653. ------------------------------------------------------------------------------*/
  654. DEF VAR cDateiName AS CHAR NO-UNDO.
  655. DEF VAR hKopf AS HANDLE NO-UNDO.
  656. DEF VAR hZeile AS HANDLE NO-UNDO.
  657. DEF VAR ii AS INT NO-UNDO.
  658. DEF VAR lFirst AS LOG NO-UNDO.
  659. DEF VAR cZeile AS CHAR NO-UNDO.
  660. DEF VAR lRetVal AS LOG NO-UNDO.
  661. hKopf = TEMP-TABLE tKopf :DEFAULT-BUFFER-HANDLE.
  662. hZeile = TEMP-TABLE tZeile:DEFAULT-BUFFER-HANDLE.
  663. cDateiName = SESSION:TEMP-DIR + 'AuditData.csv'.
  664. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  665. DO ii = 1 TO hKopf:NUM-FIELDS:
  666. cZeile = cZeile
  667. + (IF cZeile = '' THEN '' ELSE ';')
  668. + (IF hKopf:BUFFER-FIELD(ii):LABEL <> ? THEN hKopf:BUFFER-FIELD(ii):LABEL ELSE hKopf:BUFFER-FIELD(ii):NAME).
  669. END.
  670. DO ii = 1 TO hZeile:NUM-FIELDS:
  671. cZeile = cZeile
  672. + (IF cZeile = '' THEN '' ELSE ';')
  673. + (IF hZeile:BUFFER-FIELD(ii):LABEL <> ? THEN hZeile:BUFFER-FIELD(ii):LABEL ELSE hZeile:BUFFER-FIELD(ii):NAME).
  674. END.
  675. PUT CONTROL cZeile CHR(10).
  676. FOR EACH tKopf:
  677. DO ii = 1 TO hKopf:NUM-FIELDS:
  678. PUT CONTROL hKopf:BUFFER-FIELD(ii):BUFFER-VALUE ';'.
  679. END.
  680. lFirst = TRUE.
  681. FOR EACH tZeile
  682. WHERE tZeile.cKey = tKopf.cKey:
  683. IF NOT lFirst THEN DO:
  684. cZeile = FILL(';', hKopf:NUM-FIELDS).
  685. PUT CONTROL cZeile.
  686. END.
  687. lFirst = FALSE.
  688. DO ii = 1 TO hZeile:NUM-FIELDS:
  689. PUT CONTROL hZeile:BUFFER-FIELD(ii):BUFFER-VALUE.
  690. IF ii < hZeile:NUM-FIELDS THEN PUT CONTROL ';'.
  691. END.
  692. PUT CONTROL CHR(10).
  693. END.
  694. END.
  695. OUTPUT CLOSE.
  696. DEF VAR hExcel AS COM-HANDLE NO-UNDO.
  697. hExcel = DYNAMIC-FUNCTION('createExcel':U) NO-ERROR.
  698. RUN OPENEXCEL ( hExcel, cDateiName, '', OUTPUT lRetVal ) NO-ERROR.
  699. IF NOT VALID-HANDLE ( hExcel ) THEN DO:
  700. MESSAGE 'Excel konnte nicht gestartet werden'
  701. VIEW-AS ALERT-BOX.
  702. RETURN.
  703. END.
  704. IF NOT lRetVal THEN DO:
  705. MESSAGE 'Problem mit öffnen der Datei in Excel'
  706. VIEW-AS ALERT-BOX.
  707. END.
  708. RELEASE OBJECT hExcel.
  709. END PROCEDURE.
  710. /* _UIB-CODE-BLOCK-END */
  711. &ANALYZE-RESUME
  712. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject w-audit-data
  713. PROCEDURE initializeObject :
  714. /*------------------------------------------------------------------------------
  715. Purpose: Super Override
  716. Parameters:
  717. Notes:
  718. ------------------------------------------------------------------------------*/
  719. DEF VAR cExceptListK AS CHAR NO-UNDO
  720. INIT 'cKey,tZeit,cSort'.
  721. DEF VAR cExceptListZ AS CHAR NO-UNDO
  722. INIT 'cKey'.
  723. DEF VAR cWhere AS CHAR NO-UNDO.
  724. CREATE QUERY qKopf.
  725. qKopf:SET-BUFFERS(TEMP-TABLE tKopf:DEFAULT-BUFFER-HANDLE).
  726. BROWSE Br_Kopf:QUERY = qKopf.
  727. bKopf = Br_Kopf:HANDLE IN FRAME {&FRAME-NAME}.
  728. bKopf:ADD-COLUMNS-FROM( 'tKopf', cExceptListK ).
  729. CREATE QUERY qZeile.
  730. qZeile:SET-BUFFERS(TEMP-TABLE tZeile:DEFAULT-BUFFER-HANDLE).
  731. BROWSE Br_Zeile:QUERY = qZeile.
  732. bZeile = Br_Zeile:HANDLE IN FRAME {&FRAME-NAME}.
  733. bZeile:ADD-COLUMNS-FROM( 'tZeile', cExceptListZ ).
  734. F_Firma = Firma.
  735. F_BisDatum = TODAY + 1.
  736. RUN SUPER.
  737. { incl/wininitializeobject.i }
  738. Br_Kopf :SENSITIVE = TRUE.
  739. Br_Zeile:SENSITIVE = TRUE.
  740. APPLY 'VALUE-CHANGED' TO CB_Tabellen.
  741. APPLY 'ENTRY' TO CB_Tabellen.
  742. END PROCEDURE.
  743. /* _UIB-CODE-BLOCK-END */
  744. &ANALYZE-RESUME
  745. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL w-audit-data
  746. PROCEDURE SEITENWECHSEL :
  747. /*------------------------------------------------------------------------------
  748. Purpose:
  749. Parameters: <none>
  750. Notes:
  751. ------------------------------------------------------------------------------*/
  752. { incl/winseitenwechsel.i }
  753. END PROCEDURE.
  754. /* _UIB-CODE-BLOCK-END */
  755. &ANALYZE-RESUME
  756. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage w-audit-data
  757. PROCEDURE selectPage :
  758. /*------------------------------------------------------------------------------
  759. Purpose: Super Override
  760. Parameters:
  761. Notes:
  762. ------------------------------------------------------------------------------*/
  763. DEF INPUT PARAMETER piPageNum AS INT NO-UNDO.
  764. DEF VAR FMutFlag AS LOG NO-UNDO.
  765. DEF VAR MutProg AS CHAR NO-UNDO.
  766. FMutFlag = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR.
  767. IF FMutFlag THEN RETURN NO-APPLY.
  768. CASE piPageNum:
  769. END CASE.
  770. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR.
  771. CASE AktSeite:
  772. WHEN 1 THEN DO:
  773. /* RUN removeLink ( hAktionen , 'TableIO':U , h_v-auftr ). */
  774. /* RUN removeLink ( hAktionen , 'Navigation':U , h_d-auftr ). */
  775. END.
  776. END CASE.
  777. RUN SUPER( INPUT piPageNum).
  778. END PROCEDURE.
  779. /* _UIB-CODE-BLOCK-END */
  780. &ANALYZE-RESUME
  781. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE VERARBEITUNG w-audit-data
  782. PROCEDURE VERARBEITUNG :
  783. /*------------------------------------------------------------------------------
  784. Purpose:
  785. Parameters: <none>
  786. Notes:
  787. ------------------------------------------------------------------------------*/
  788. DEF VAR cTabelle AS CHAR NO-UNDO.
  789. DEF VAR ix AS INT NO-UNDO.
  790. DEF VAR cString AS CHAR NO-UNDO.
  791. DEF VAR cIndex AS CHAR NO-UNDO.
  792. DEF VAR cFeld AS CHAR NO-UNDO.
  793. DEF VAR iFeld AS INT NO-UNDO.
  794. DEF VAR cTyp AS CHAR NO-UNDO.
  795. DEF VAR cAlt AS CHAR NO-UNDO.
  796. DEF VAR cNeu AS CHAR NO-UNDO.
  797. DEF VAR cWhere AS CHAR NO-UNDO.
  798. DEF VAR cTrenn AS CHAR NO-UNDO.
  799. DEF VAR iLang AS INT NO-UNDO.
  800. DEF VAR cSchluessel AS CHAR NO-UNDO.
  801. DEF VAR lNeu AS LOG NO-UNDO.
  802. DEF VAR cWert AS CHAR NO-UNDO.
  803. DO WITH FRAME {&FRAME-NAME}:
  804. ASSIGN {&List-6}.
  805. ASSIGN cTabelle = CB_Tabellen :SCREEN-VALUE
  806. iFeld = INTEGER(CB_Keyfelder:SCREEN-VALUE) NO-ERROR.
  807. IF iFeld = ? THEN iFeld = 0.
  808. IF cTabelle = '' OR
  809. cTabelle = ? THEN DO:
  810. APPLY 'ENTRY' TO CB_Tabellen.
  811. RETURN NO-APPLY.
  812. END.
  813. IF iFeld > 0 THEN DO:
  814. cString = CB_Keyfelder:LIST-ITEM-PAIRS.
  815. ix = ((iFeld - 1) * 2) + 1.
  816. cFeld = ENTRY(ix, cString, ';').
  817. END.
  818. ELSE cFeld = ''.
  819. IF F_vonDatum = ? THEN F_vonDatum = DATE(01,01,YEAR(TODAY)).
  820. IF F_bisDatum = ? THEN F_bisDatum = DATE(12,31,YEAR(TODAY)).
  821. cTrenn = CHR(06).
  822. DISPLAY {&List-6}.
  823. cKey = 'PUB.' + cTabelle + cTrenn.
  824. cTrenn = CHR(07).
  825. IF F_Firma:READ-ONLY = FALSE THEN DO:
  826. cKey = cKey + F_Firma.
  827. IF iFeld > 0 THEN cKey = cKey + cTrenn.
  828. END.
  829. IF cFeld <> '' THEN DO:
  830. FIND _File NO-LOCK
  831. WHERE _File._File-Name = cTabelle.
  832. FIND _Field OF _File
  833. WHERE _Field._Field-Name = cFeld.
  834. CASE _Field._Data-Type:
  835. WHEN 'INTEGER' THEN cString = TRIM (STRING(INTEGER(F_Key),'->>>>>>>>>>9') ) NO-ERROR.
  836. WHEN 'DECIMAL' THEN cString = TRIM (STRING(DECIMAL(F_Key),'->>>>>>>>>>9.99')) NO-ERROR.
  837. WHEN 'DATE' THEN cString = STRING(DATE (F_Key),'99/99/9999' ) NO-ERROR.
  838. OTHERWISE cString = F_Key.
  839. END CASE.
  840. IF ERROR-STATUS:ERROR THEN DO:
  841. MESSAGE 'ungültiger Feldinhalt' VIEW-AS ALERT-BOX.
  842. APPLY 'ENTRY' TO F_Key.
  843. RETURN NO-APPLY.
  844. END.
  845. IF R-INDEX(cString, '.00') > 0 THEN cString = REPLACE(cString, '.00', '').
  846. END.
  847. IF iFeld = 1 THEN ASSIGN cKey = cKey + cString
  848. cIndex = ''.
  849. IF iFeld > 1 THEN ASSIGN cIndex = cString.
  850. END.
  851. EMPTY TEMP-TABLE tKopf.
  852. EMPTY TEMP-TABLE tZeile.
  853. IF F_Firma:READ-ONLY = FALSE THEN iFeld = iFeld + 1.
  854. SESSION:SET-WAIT-STATE('GENERAL').
  855. FOR EACH _aud-audit-data NO-LOCK USE-INDEX _Event-context
  856. WHERE _aud-audit-data._Event-context BEGINS cKey
  857. AND _aud-audit-data._Audit-date-time <= F_bisDatum
  858. AND _aud-audit-data._Audit-date-time >= F_vonDatum :
  859. IF cIndex <> '' THEN DO:
  860. cString = ENTRY(iFeld, _aud-audit-data._Event-context, cTrenn).
  861. IF cString <> cIndex THEN NEXT.
  862. END.
  863. CREATE tKopf.
  864. ASSIGN tKopf.cKey = _aud-audit-data._Audit-data-guid
  865. tKopf.cUser = _aud-audit-data._User-id
  866. tKopf.cDate = STRING(_aud-audit-data._Audit-date-time)
  867. tKopf.tZeit = _aud-audit-data._Audit-date-time.
  868. CASE _aud-audit-data._Event-id:
  869. WHEN 5100 THEN ASSIGN tKopf.cMutArt = 'Neu'.
  870. WHEN 5101 THEN ASSIGN tKopf.cMutArt = 'Mut'.
  871. WHEN 5102 THEN ASSIGN tKopf.cMutArt = 'Loe'.
  872. END CASE.
  873. tKopf.cSort = SUBSTRING(cDate,07,04)
  874. + SUBSTRING(cDate,04,02)
  875. + SUBSTRING(cDate,01,02)
  876. + SUBSTRING(cDate,12,12).
  877. cSchluessel = _aud-audit-data._Event-context.
  878. ix = INDEX(cSchluessel, CHR(06)) + 1.
  879. cSchluessel = SUBSTRING(cSchluessel,ix).
  880. DO ix = 1 TO NUM-ENTRIES(cSchluessel, CHR(07)):
  881. tKopf.cxKey = tKopf.cxKey
  882. + (IF ix = 1 THEN '' ELSE ' - ')
  883. + ENTRY(ix, cSchluessel, CHR(07)).
  884. END.
  885. DO ix = 1 TO NUM-ENTRIES(_aud-audit-data._Event-detail, CHR(07)):
  886. cString = ENTRY(ix, _aud-audit-data._Event-detail, CHR(07)).
  887. cFeld = ENTRY(1, cString, CHR(06)).
  888. cTyp = ENTRY(2, cString, CHR(06)).
  889. cAlt = ENTRY(3, cString, CHR(06)).
  890. cNeu = ENTRY(4, cString, CHR(06)).
  891. CREATE tZeile.
  892. ASSIGN tZeile.cKey = tKopf.cKey
  893. tZeile.Art = cTyp
  894. tZeile.cFeld = cFeld
  895. tZeile.cAlt = cAlt
  896. tZeile.cNeu = cNeu.
  897. END.
  898. END.
  899. SESSION:SET-WAIT-STATE('').
  900. cWhere = 'FOR EACH tKopf NO-LOCK USE-INDEX tKopf-k1'.
  901. qKopf:QUERY-PREPARE(cWhere) NO-ERROR.
  902. qKopf:QUERY-OPEN() NO-ERROR.
  903. DO WITH FRAME {&FRAME-NAME}:
  904. IF qKopf:QUERY-OFF-END THEN DO:
  905. cWhere = 'FOR EACH tZeile NO-LOCK USE-INDEX tZeile-k1'.
  906. qZeile:QUERY-PREPARE(cWhere).
  907. qZeile:QUERY-OPEN().
  908. APPLY 'ENTRY' TO F_Key.
  909. RETURN NO-APPLY.
  910. END.
  911. APPLY 'ENTRY' TO Br_Kopf.
  912. Br_Kopf:FETCH-SELECTED-ROW(1).
  913. APPLY 'VALUE-CHANGED' TO Br_Kopf.
  914. END.
  915. END PROCEDURE.
  916. /* _UIB-CODE-BLOCK-END */
  917. &ANALYZE-RESUME
  918. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject w-audit-data
  919. PROCEDURE viewObject :
  920. /*------------------------------------------------------------------------------
  921. Purpose: Super Override
  922. Parameters:
  923. Notes:
  924. ------------------------------------------------------------------------------*/
  925. RUN SUPER.
  926. RUN ENTRY_CURSOR.
  927. END PROCEDURE.
  928. /* _UIB-CODE-BLOCK-END */
  929. &ANALYZE-RESUME
  930. /* ************************ Function Implementations ***************** */
  931. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname w-audit-data
  932. FUNCTION getProgname RETURNS CHARACTER
  933. ( /* parameter-definitions */ ) :
  934. /*------------------------------------------------------------------------------
  935. Purpose:
  936. Notes:
  937. ------------------------------------------------------------------------------*/
  938. RETURN Progname.
  939. END FUNCTION.
  940. /* _UIB-CODE-BLOCK-END */
  941. &ANALYZE-RESUME
  942. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setAuditUser w-audit-data
  943. FUNCTION setAuditUser RETURNS LOGICAL
  944. ( ipcUser AS CHARACTER ):
  945. /*------------------------------------------------------------------------------*/
  946. /* Purpose: */
  947. /* Notes: */
  948. /*------------------------------------------------------------------------------*/
  949. DEFINE VARIABLE hClientPrincipal AS HANDLE NO-UNDO.
  950. DEFINE VARIABLE cLDBName AS CHARACTER NO-UNDO.
  951. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  952. DO ii = 1 TO NUM-DBS:
  953. IF INDEX(LDBNAME(ii), 'pse') <> 0 THEN NEXT.
  954. cLDBName = LDBNAME(ii).
  955. LEAVE.
  956. END.
  957. IF cLDBName = '' THEN RETURN FALSE.
  958. DO WHILE TRUE:
  959. SECURITY-POLICY:LOAD-DOMAINS(cLDBName).
  960. hClientPrincipal = SECURITY-POLICY:GET-CLIENT().
  961. IF VALID-HANDLE ( hClientPrincipal ) THEN
  962. DO:
  963. IF hClientPrincipal:USER-ID = ipcUser THEN LEAVE.
  964. hClientPrincipal:LOGOUT() NO-ERROR.
  965. SECURITY-POLICY:SET-CLIENT( ? ) NO-ERROR.
  966. DELETE OBJECT hClientPrincipal NO-ERROR.
  967. END.
  968. CREATE CLIENT-PRINCIPAL hClientPrincipal.
  969. ASSIGN
  970. hClientPrincipal:USER-ID = ipcUser
  971. hClientPrincipal:DOMAIN-NAME = "Ge_MIS"
  972. hClientPrincipal:DOMAIN-TYPE = "Ge_MIS"
  973. hClientPrincipal:SESSION-ID = SUBSTRING(BASE64-ENCODE(GENERATE-UUID),1,22).
  974. hClientPrincipal:SEAL("0123456789").
  975. SECURITY-POLICY:SET-CLIENT(hClientPrincipal).
  976. LEAVE.
  977. END.
  978. IF NOT VALID-HANDLE (hClientPrincipal) THEN RETURN FALSE.
  979. RETURN TRUE.
  980. END FUNCTION.
  981. /* _UIB-CODE-BLOCK-END */
  982. &ANALYZE-RESUME