a-schriften.w 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS B-table-Win
  8. /*------------------------------------------------------------------------
  9. File:
  10. Description: from BROWSER.W - Basic SmartBrowser Object Template
  11. Input Parameters:
  12. <none>
  13. Output Parameters:
  14. <none>
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress UIB. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. &Scoped-define ERSTES-FELD Schname
  26. &Scoped-define ZWEITES-FELD Schbild
  27. &Scoped-define LETZTES-FELD Schzzend
  28. &Scoped-define INPUT-FELDER Schrift.Schname,Schrift.Schbild,Schrift.Schzztot,~
  29. Schrift.Schzzbeg,Schrift.Schzzend
  30. &Scoped-define DATEI-NAME Schrift
  31. /* *************************** Definitions ************************** */
  32. /* Parameters Definitions --- */
  33. /* Local Variable Definitions --- */
  34. /* --------------------------------------------------------------------------- */
  35. DEF VAR VUpdate AS LOG INIT FALSE NO-UNDO.
  36. DEF VAR VSpeichern AS LOG INIT FALSE NO-UNDO.
  37. DEF VAR VNeu AS LOG INIT FALSE NO-UNDO.
  38. DEF VAR FErfassen AS LOG INIT FALSE NO-UNDO.
  39. DEF VAR PHandle AS HANDLE NO-UNDO.
  40. DEF VAR XHandle AS HANDLE NO-UNDO.
  41. DEF VAR LHandle AS HANDLE NO-UNDO.
  42. DEF VAR ch AS CHAR NO-UNDO.
  43. DEF VAR VText AS CHAR FORMAT "x(30)" NO-UNDO.
  44. DEF VAR QOpen AS LOG INIT FALSE NO-UNDO.
  45. DEF VAR FQOpen AS LOG INIT FALSE NO-UNDO.
  46. DEF VAR Vorhanden AS LOG NO-UNDO.
  47. DEF VAR VRecid AS RECID NO-UNDO.
  48. DEF VAR VROWID AS ROWID NO-UNDO.
  49. DEF VAR Feldname AS CHAR NO-UNDO.
  50. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  51. DEF VAR BStatus AS INT INIT 0 NO-UNDO.
  52. DEF BUFFER B{&DATEI-NAME} FOR {&DATEI-NAME}.
  53. /* --------------------------------------------------------------------------- */
  54. /* Parameters Definitions --- */
  55. /* Local Variable Definitions --- */
  56. /* ---------- Globale Variablen ---------------------------------- */
  57. { v8/globvar.i" " " " "SHARED" }
  58. { v8/debivar.i " " " " "SHARED" }
  59. { v8/artivar.i " " " " "SHARED" }
  60. { v8/contvar.i " " " " "SHARED" }
  61. /* _UIB-CODE-BLOCK-END */
  62. &ANALYZE-RESUME
  63. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  64. /* ******************** Preprocessor Definitions ******************** */
  65. &Scoped-define PROCEDURE-TYPE SmartBrowser
  66. &Scoped-define DB-AWARE no
  67. &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
  68. /* Name of first Frame and/or Browse and/or first Query */
  69. &Scoped-define FRAME-NAME F-Main
  70. &Scoped-define BROWSE-NAME br_table
  71. /* Internal Tables (found by Frame, Query & Browse Queries) */
  72. &Scoped-define INTERNAL-TABLES Schrift
  73. /* Define KEY-PHRASE in case it is used by any query. */
  74. &Scoped-define KEY-PHRASE TRUE
  75. /* Definitions for BROWSE br_table */
  76. &Scoped-define FIELDS-IN-QUERY-br_table Schrift.Schname Schrift.Schbild ~
  77. Schrift.Schzztot Schrift.Schzzbeg Schrift.Schzzend
  78. &Scoped-define ENABLED-FIELDS-IN-QUERY-br_table Schrift.Schbild ~
  79. Schrift.Schzzbeg Schrift.Schzzend
  80. &Scoped-define ENABLED-TABLES-IN-QUERY-br_table Schrift
  81. &Scoped-define FIRST-ENABLED-TABLE-IN-QUERY-br_table Schrift
  82. &Scoped-define QUERY-STRING-br_table FOR EACH Schrift WHERE ~{&KEY-PHRASE} NO-LOCK ~
  83. ~{&SORTBY-PHRASE}
  84. &Scoped-define OPEN-QUERY-br_table OPEN QUERY br_table FOR EACH Schrift WHERE ~{&KEY-PHRASE} NO-LOCK ~
  85. ~{&SORTBY-PHRASE}.
  86. &Scoped-define TABLES-IN-QUERY-br_table Schrift
  87. &Scoped-define FIRST-TABLE-IN-QUERY-br_table Schrift
  88. /* Definitions for FRAME F-Main */
  89. /* Standard List Definitions */
  90. &Scoped-Define ENABLED-OBJECTS RECT-9 br_table Btn_Erfassen Btn_Speichern ~
  91. Btn_Loeschen
  92. /* Custom List Definitions */
  93. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  94. /* _UIB-PREPROCESSOR-BLOCK-END */
  95. &ANALYZE-RESUME
  96. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" B-table-Win _INLINE
  97. /* Actions: ? adm/support/keyedit.w ? ? ? */
  98. /* STRUCTURED-DATA
  99. <KEY-OBJECT>
  100. &BROWSE-NAME
  101. </KEY-OBJECT>
  102. <FOREIGN-KEYS>
  103. </FOREIGN-KEYS>
  104. <EXECUTING-CODE>
  105. **************************
  106. * Set attributes related to FOREIGN KEYS
  107. */
  108. RUN set-attribute-list (
  109. 'Keys-Accepted = "",
  110. Keys-Supplied = ""':U).
  111. /**************************
  112. </EXECUTING-CODE> */
  113. /* _UIB-CODE-BLOCK-END */
  114. &ANALYZE-RESUME
  115. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Advanced Query Options" B-table-Win _INLINE
  116. /* Actions: ? adm/support/advqedit.w ? ? ? */
  117. /* STRUCTURED-DATA
  118. <KEY-OBJECT>
  119. &BROWSE-NAME
  120. </KEY-OBJECT>
  121. <SORTBY-OPTIONS>
  122. </SORTBY-OPTIONS>
  123. <SORTBY-RUN-CODE>
  124. ************************
  125. * Set attributes related to SORTBY-OPTIONS */
  126. RUN set-attribute-list (
  127. 'SortBy-Options = ""':U).
  128. /************************
  129. </SORTBY-RUN-CODE>
  130. <FILTER-ATTRIBUTES>
  131. </FILTER-ATTRIBUTES> */
  132. /* _UIB-CODE-BLOCK-END */
  133. &ANALYZE-RESUME
  134. /* *********************** Control Definitions ********************** */
  135. /* Definitions of the field level widgets */
  136. DEFINE BUTTON Btn_Erfassen
  137. LABEL "&Erfassen"
  138. SIZE 14 BY 1.
  139. DEFINE BUTTON Btn_Loeschen
  140. LABEL "&Löschen"
  141. SIZE 14 BY 1.
  142. DEFINE BUTTON Btn_Speichern
  143. LABEL "&Speichern"
  144. SIZE 14 BY 1.
  145. DEFINE RECTANGLE RECT-9
  146. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  147. SIZE 130 BY 8.1.
  148. /* Query definitions */
  149. &ANALYZE-SUSPEND
  150. DEFINE QUERY br_table FOR
  151. Schrift SCROLLING.
  152. &ANALYZE-RESUME
  153. /* Browse definitions */
  154. DEFINE BROWSE br_table
  155. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_table B-table-Win _STRUCTURED
  156. QUERY br_table NO-LOCK DISPLAY
  157. Schrift.Schname COLUMN-LABEL "Drucker" FORMAT "x(50)":U
  158. Schrift.Schbild COLUMN-LABEL "Schriftbild" FORMAT "x(20)":U
  159. Schrift.Schzztot COLUMN-LABEL "Tot. Zeilen" FORMAT "zzz9":U
  160. Schrift.Schzzbeg COLUMN-LABEL "Kopfzeilen" FORMAT "zzz9":U
  161. Schrift.Schzzend COLUMN-LABEL "Fusszeilen" FORMAT "zzz9":U
  162. ENABLE
  163. Schrift.Schbild
  164. Schrift.Schzzbeg
  165. Schrift.Schzzend
  166. /* _UIB-CODE-BLOCK-END */
  167. &ANALYZE-RESUME
  168. WITH NO-ASSIGN NO-ROW-MARKERS SEPARATORS SIZE 110 BY 7.62
  169. BGCOLOR 15 .
  170. /* ************************ Frame Definitions *********************** */
  171. DEFINE FRAME F-Main
  172. br_table AT ROW 1.48 COL 3
  173. Btn_Erfassen AT ROW 1.76 COL 115.8
  174. Btn_Speichern AT ROW 2.95 COL 115.8
  175. Btn_Loeschen AT ROW 4.14 COL 115.8
  176. RECT-9 AT ROW 1.24 COL 2
  177. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
  178. SIDE-LABELS NO-UNDERLINE THREE-D
  179. AT COL 1 ROW 1 SCROLLABLE
  180. DEFAULT-BUTTON Btn_Speichern.
  181. /* *********************** Procedure Settings ************************ */
  182. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  183. /* Settings for THIS-PROCEDURE
  184. Type: SmartBrowser
  185. Allow: Basic,Browse
  186. Frames: 1
  187. Add Fields to: EXTERNAL-TABLES
  188. Other Settings: PERSISTENT-ONLY COMPILE
  189. */
  190. /* This procedure should always be RUN PERSISTENT. Report the error, */
  191. /* then cleanup and return. */
  192. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  193. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  194. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  195. RETURN.
  196. END.
  197. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  198. /* ************************* Create Window ************************** */
  199. &ANALYZE-SUSPEND _CREATE-WINDOW
  200. /* DESIGN Window definition (used by the UIB)
  201. CREATE WINDOW B-table-Win ASSIGN
  202. HEIGHT = 8.91
  203. WIDTH = 133.2.
  204. /* END WINDOW DEFINITION */
  205. */
  206. &ANALYZE-RESUME
  207. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB B-table-Win
  208. /* ************************* Included-Libraries *********************** */
  209. {src/adm/method/browser.i}
  210. /* _UIB-CODE-BLOCK-END */
  211. &ANALYZE-RESUME
  212. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  213. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  214. /* SETTINGS FOR WINDOW B-table-Win
  215. NOT-VISIBLE,,RUN-PERSISTENT */
  216. /* SETTINGS FOR FRAME F-Main
  217. NOT-VISIBLE Size-to-Fit */
  218. /* BROWSE-TAB br_table RECT-9 F-Main */
  219. ASSIGN
  220. FRAME F-Main:SCROLLABLE = FALSE
  221. FRAME F-Main:HIDDEN = TRUE
  222. FRAME F-Main:RESIZABLE = TRUE.
  223. ASSIGN
  224. br_table:COLUMN-RESIZABLE IN FRAME F-Main = TRUE.
  225. ASSIGN
  226. Btn_Erfassen:PRIVATE-DATA IN FRAME F-Main =
  227. "Abbrechen".
  228. /* _RUN-TIME-ATTRIBUTES-END */
  229. &ANALYZE-RESUME
  230. /* Setting information for Queries and Browse Widgets fields */
  231. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_table
  232. /* Query rebuild information for BROWSE br_table
  233. _TblList = "AnaDat.Schrift"
  234. _Options = "NO-LOCK KEY-PHRASE SORTBY-PHRASE"
  235. _FldNameList[1] > AnaDat.Schrift.Schname
  236. "Schname" "Drucker" "x(50)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  237. _FldNameList[2] > AnaDat.Schrift.Schbild
  238. "Schbild" "Schriftbild" "x(20)" "character" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  239. _FldNameList[3] > AnaDat.Schrift.Schzztot
  240. "Schzztot" "Tot. Zeilen" ? "integer" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  241. _FldNameList[4] > AnaDat.Schrift.Schzzbeg
  242. "Schzzbeg" "Kopfzeilen" ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  243. _FldNameList[5] > AnaDat.Schrift.Schzzend
  244. "Schzzend" "Fusszeilen" ? "integer" ? ? ? ? ? ? yes ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  245. _Query is NOT OPENED
  246. */ /* BROWSE br_table */
  247. &ANALYZE-RESUME
  248. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  249. /* Query rebuild information for FRAME F-Main
  250. _Options = "NO-LOCK"
  251. _Query is NOT OPENED
  252. */ /* FRAME F-Main */
  253. &ANALYZE-RESUME
  254. /* ************************ Control Triggers ************************ */
  255. &Scoped-define BROWSE-NAME br_table
  256. &Scoped-define SELF-NAME br_table
  257. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  258. ON LEFT-MOUSE-DBLCLICK OF br_table IN FRAME F-Main
  259. DO:
  260. IF NOT AVAILABLE Schrift THEN RETURN.
  261. LVRecid = RECID(Schrift).
  262. RUN new-state ( 'druckerwahl, BROWSER' ).
  263. END.
  264. /* _UIB-CODE-BLOCK-END */
  265. &ANALYZE-RESUME
  266. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  267. ON ROW-DISPLAY OF br_table IN FRAME F-Main
  268. DO:
  269. RUN ANZEIGE.
  270. END.
  271. /* _UIB-CODE-BLOCK-END */
  272. &ANALYZE-RESUME
  273. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  274. ON ROW-ENTRY OF br_table IN FRAME F-Main
  275. DO:
  276. {src/adm/template/brsentry.i}
  277. END.
  278. /* _UIB-CODE-BLOCK-END */
  279. &ANALYZE-RESUME
  280. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  281. ON ROW-LEAVE OF br_table IN FRAME F-Main
  282. DO:
  283. LKY = LASTKEY.
  284. LHandle = LAST-EVENT:WIDGET-LEAVE.
  285. XHandle = LAST-EVENT:WIDGET-ENTER.
  286. DO WHILE VUpdate AND NOT FErfassen WITH FRAME {&FRAME-NAME}:
  287. IF KEYFUNCTION(LKY) = 'END-ERROR' THEN DO:
  288. VSpeichern = FALSE.
  289. RUN ERFASSEN.
  290. RETURN NO-APPLY.
  291. END.
  292. IF {&BROWSE-NAME}:CURRENT-ROW-MODIFIED = FALSE THEN DO:
  293. VSpeichern = FALSE.
  294. VUpdate = FALSE.
  295. RUN ERFASSEN.
  296. RETURN NO-APPLY.
  297. END.
  298. IF LKY = KEYCODE('RETURN') THEN DO:
  299. RUN SPEICHERN.
  300. RETURN NO-APPLY.
  301. END.
  302. IF LKY = KEYCODE('TAB') AND
  303. LHandle:NAME = '{&LETZTES-FELD}' THEN DO:
  304. RUN SPEICHERN.
  305. RETURN NO-APPLY.
  306. END.
  307. IF VALID-HANDLE(XHandle) THEN DO:
  308. DO WHILE XHandle:TYPE = 'BUTTON':
  309. IF XHandle:NAME = 'Btn_Erfassen' THEN RETURN.
  310. IF XHandle:NAME = 'Btn_Speichern' THEN RETURN.
  311. APPLY 'ENTRY' TO LHandle.
  312. RETURN NO-APPLY.
  313. END.
  314. END.
  315. RETURN NO-APPLY.
  316. END.
  317. FErfassen = FALSE.
  318. {src/adm/template/brsleave.i}
  319. END.
  320. /* _UIB-CODE-BLOCK-END */
  321. &ANALYZE-RESUME
  322. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_table B-table-Win
  323. ON VALUE-CHANGED OF br_table IN FRAME F-Main
  324. DO:
  325. RUN ANZEIGE.
  326. {src/adm/template/brschnge.i}
  327. END.
  328. /* _UIB-CODE-BLOCK-END */
  329. &ANALYZE-RESUME
  330. &Scoped-define SELF-NAME Btn_Erfassen
  331. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Erfassen B-table-Win
  332. ON CHOOSE OF Btn_Erfassen IN FRAME F-Main /* Erfassen */
  333. DO:
  334. IF VUpdate THEN VSpeichern = FALSE.
  335. VUpdate = FALSE.
  336. RUN ERFASSEN.
  337. END.
  338. /* _UIB-CODE-BLOCK-END */
  339. &ANALYZE-RESUME
  340. &Scoped-define SELF-NAME Btn_Loeschen
  341. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Loeschen B-table-Win
  342. ON CHOOSE OF Btn_Loeschen IN FRAME F-Main /* Löschen */
  343. DO:
  344. RUN LOESCHEN.
  345. END.
  346. /* _UIB-CODE-BLOCK-END */
  347. &ANALYZE-RESUME
  348. &Scoped-define SELF-NAME Btn_Speichern
  349. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Speichern B-table-Win
  350. ON CHOOSE OF Btn_Speichern IN FRAME F-Main /* Speichern */
  351. DO:
  352. VUpdate = FALSE.
  353. RUN SPEICHERN.
  354. END.
  355. /* _UIB-CODE-BLOCK-END */
  356. &ANALYZE-RESUME
  357. &UNDEFINE SELF-NAME
  358. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK B-table-Win
  359. /* *************************** Main Block *************************** */
  360. /* ------ Triggers ---------------------------------------------------- */
  361. ON INSERT-MODE OF BROWSE {&BROWSE-NAME}
  362. DO:
  363. IF VUpdate THEN RETURN NO-APPLY.
  364. RUN ERFASSEN.
  365. END.
  366. ON RETURN OF BROWSE {&BROWSE-NAME}
  367. DO:
  368. IF VUpdate THEN RETURN NO-APPLY.
  369. RUN SPEICHERN.
  370. END.
  371. ON DELETE-CHARACTER OF BROWSE {&BROWSE-NAME}
  372. DO:
  373. IF VUpdate THEN RETURN NO-APPLY.
  374. RUN LOESCHEN.
  375. END.
  376. ON CTRL-CURSOR-RIGHT OF {&WINDOW-NAME}
  377. OR CTRL-CURSOR-RIGHT OF BROWSE {&BROWSE-NAME}
  378. DO:
  379. IF VUpdate THEN RETURN NO-APPLY.
  380. RUN new-state ( INPUT 'Next_Page, MAIN':U ).
  381. RETURN NO-APPLY.
  382. END.
  383. ON CTRL-CURSOR-LEFT OF {&WINDOW-NAME}
  384. OR CTRL-CURSOR-LEFT OF BROWSE {&BROWSE-NAME}
  385. DO:
  386. IF VUpdate THEN RETURN NO-APPLY.
  387. RUN new-state ( INPUT 'Prev_Page, MAIN':U ).
  388. RETURN NO-APPLY.
  389. END.
  390. ON ENTRY OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  391. DO:
  392. IF NOT VNeu THEN DO:
  393. APPLY 'ENTRY' TO {&DATEI-NAME}.{&ZWEITES-FELD} IN BROWSE {&BROWSE-NAME}.
  394. RETURN NO-APPLY.
  395. END.
  396. END.
  397. ON RETURN OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  398. DO:
  399. IF NOT VUpdate THEN RETURN.
  400. APPLY 'TAB' TO SELF.
  401. RETURN NO-APPLY.
  402. END.
  403. ON CURSOR-UP OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  404. DO:
  405. IF NOT VUpdate THEN RETURN.
  406. APPLY 'BACK-TAB' TO SELF.
  407. RETURN NO-APPLY.
  408. END.
  409. ON CURSOR-DOWN OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  410. DO:
  411. IF NOT VUpdate THEN RETURN.
  412. APPLY 'TAB' TO SELF.
  413. RETURN NO-APPLY.
  414. END.
  415. ON END-ERROR OF {&INPUT-FELDER} IN BROWSE {&BROWSE-NAME}
  416. DO:
  417. VSpeichern = FALSE.
  418. IF NOT VUpdate THEN DO:
  419. RUN new-state ( INPUT 'ENDE, MAIN':U ).
  420. RETURN NO-APPLY.
  421. END.
  422. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  423. END.
  424. ON LEFT-MOUSE-DOWN, RIGHT-MOUSE-DOWN, MIDDLE-MOUSE-DOWN OF BROWSE {&BROWSE-NAME}
  425. DO:
  426. DO WHILE TRUE:
  427. IF NOT VUpdate THEN LEAVE.
  428. XHandle = {&BROWSE-NAME}:CURRENT-COLUMN IN FRAME {&FRAME-NAME}.
  429. IF NOT VALID-HANDLE(XHandle) THEN XHandle = LAST-EVENT:WIDGET-LEAVE.
  430. IF VALID-HANDLE(XHandle) THEN DO:
  431. APPLY 'LEAVE' TO XHandle.
  432. RETURN.
  433. END.
  434. LEAVE.
  435. END.
  436. END.
  437. ON LEAVE OF {&DATEI-NAME}.{&ERSTES-FELD} IN BROWSE {&BROWSE-NAME}
  438. DO:
  439. IF NOT VUpdate THEN RETURN.
  440. LKY = LASTKEY.
  441. LHandle = LAST-EVENT:WIDGET-ENTER.
  442. IF VALID-HANDLE(LHandle) THEN DO:
  443. IF LHandle:TYPE = 'BUTTON' AND
  444. LHandle:PRIVATE-DATA = 'Abbrechen' THEN DO:
  445. VSpeichern = FALSE.
  446. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  447. RETURN NO-APPLY.
  448. END.
  449. END.
  450. IF NOT VSpeichern THEN RETURN.
  451. XHandle = {&BROWSE-NAME}:CURRENT-COLUMN IN FRAME {&FRAME-NAME}.
  452. Feldname = XHandle:NAME.
  453. Feldinhalt = XHandle:SCREEN-VALUE.
  454. END.
  455. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  456. RUN dispatch IN THIS-PROCEDURE ('initialize':U).
  457. &ENDIF
  458. /* _UIB-CODE-BLOCK-END */
  459. &ANALYZE-RESUME
  460. /* ********************** Internal Procedures *********************** */
  461. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available B-table-Win _ADM-ROW-AVAILABLE
  462. PROCEDURE adm-row-available :
  463. /*------------------------------------------------------------------------------
  464. Purpose: Dispatched to this procedure when the Record-
  465. Source has a new row available. This procedure
  466. tries to get the new row (or foriegn keys) from
  467. the Record-Source and process it.
  468. Parameters: <none>
  469. ------------------------------------------------------------------------------*/
  470. /* Define variables needed by this internal procedure. */
  471. {src/adm/template/row-head.i}
  472. /* Process the newly available records (i.e. display fields,
  473. open queries, and/or pass records on to any RECORD-TARGETS). */
  474. {src/adm/template/row-end.i}
  475. END PROCEDURE.
  476. /* _UIB-CODE-BLOCK-END */
  477. &ANALYZE-RESUME
  478. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ANZEIGE B-table-Win
  479. PROCEDURE ANZEIGE :
  480. /*------------------------------------------------------------------------------
  481. Purpose:
  482. Parameters: <none>
  483. Notes:
  484. ------------------------------------------------------------------------------*/
  485. VText = ''.
  486. IF AVAILABLE {&DATEI-NAME} THEN DO:
  487. VRecid = RECID({&DATEI-NAME}).
  488. VROWID = ROWID({&DATEI-NAME}).
  489. END.
  490. END PROCEDURE.
  491. /* _UIB-CODE-BLOCK-END */
  492. &ANALYZE-RESUME
  493. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BUTTON_ENABLE B-table-Win
  494. PROCEDURE BUTTON_ENABLE :
  495. /*------------------------------------------------------------------------------
  496. Purpose:
  497. Parameters: <none>
  498. Notes:
  499. ------------------------------------------------------------------------------*/
  500. DEF INPUT PARAMETER Art AS INT NO-UNDO.
  501. DO WITH FRAME {&FRAME-NAME}:
  502. IF Art < 90 THEN BStatus = Art.
  503. IF Art = 98 THEN Art = 9.
  504. IF Art = 99 THEN Art = BStatus.
  505. CASE Art:
  506. WHEN 1 THEN DO:
  507. ENABLE Btn_Erfassen.
  508. DISABLE Btn_Speichern Btn_Loeschen.
  509. END.
  510. WHEN 2 THEN DO:
  511. ENABLE Btn_Erfassen Btn_Speichern Btn_Loeschen.
  512. END.
  513. WHEN 3 THEN DO:
  514. DISABLE Btn_Loeschen.
  515. ENABLE Btn_Speichern.
  516. END.
  517. WHEN 9 THEN DO:
  518. DISABLE Btn_Erfassen Btn_Speichern Btn_Loeschen.
  519. END.
  520. END CASE.
  521. END.
  522. END PROCEDURE.
  523. /* _UIB-CODE-BLOCK-END */
  524. &ANALYZE-RESUME
  525. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI B-table-Win _DEFAULT-DISABLE
  526. PROCEDURE disable_UI :
  527. /*------------------------------------------------------------------------------
  528. Purpose: DISABLE the User Interface
  529. Parameters: <none>
  530. Notes: Here we clean-up the user-interface by deleting
  531. dynamic widgets we have created and/or hide
  532. frames. This procedure is usually called when
  533. we are ready to "clean-up" after running.
  534. ------------------------------------------------------------------------------*/
  535. /* Hide all frames. */
  536. HIDE FRAME F-Main.
  537. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  538. END PROCEDURE.
  539. /* _UIB-CODE-BLOCK-END */
  540. &ANALYZE-RESUME
  541. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ERFASSEN B-table-Win
  542. PROCEDURE ERFASSEN :
  543. /*------------------------------------------------------------------------------
  544. Purpose:
  545. Parameters: <none>
  546. Notes:
  547. ------------------------------------------------------------------------------*/
  548. DO WITH FRAME {&FRAME-NAME}:
  549. IF Btn_Erfassen:SENSITIVE = FALSE THEN RETURN NO-APPLY.
  550. APPLY 'ENTRY' TO Btn_Erfassen.
  551. CASE Btn_Erfassen:LABEL:
  552. WHEN '&Erfassen' THEN DO:
  553. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  554. RETURN NO-APPLY.
  555. END.
  556. WHEN '&Abbrechen' THEN DO:
  557. VSpeichern = FALSE.
  558. RUN adm-disable-fields.
  559. RUN adm-cancel-record.
  560. VUpdate = FALSE.
  561. VNeu = FALSE.
  562. FErfassen = FALSE.
  563. Btn_Erfassen:LABEL = '&Erfassen'.
  564. Btn_Speichern:LABEL = '&Aendern'.
  565. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  566. ELSE RUN BUTTON_ENABLE ( 1 ).
  567. END.
  568. END CASE.
  569. END.
  570. IF NOT VUpdate THEN RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  571. END PROCEDURE.
  572. /* _UIB-CODE-BLOCK-END */
  573. &ANALYZE-RESUME
  574. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-assign-record B-table-Win
  575. PROCEDURE local-assign-record :
  576. /*------------------------------------------------------------------------------
  577. Purpose: Override standard ADM method
  578. Notes:
  579. ------------------------------------------------------------------------------*/
  580. RUN dispatch IN THIS-PROCEDURE ( INPUT 'assign-record':U ) .
  581. IF VNeu THEN DO:
  582. END.
  583. ELSE DO:
  584. END.
  585. END PROCEDURE.
  586. /* _UIB-CODE-BLOCK-END */
  587. &ANALYZE-RESUME
  588. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-hide B-table-Win
  589. PROCEDURE local-hide :
  590. /*------------------------------------------------------------------------------
  591. Purpose: Override standard ADM method
  592. Notes:
  593. ------------------------------------------------------------------------------*/
  594. IF VUpdate THEN DO:
  595. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  596. RUN ERFASSEN.
  597. END.
  598. RUN dispatch IN THIS-PROCEDURE ( INPUT 'hide':U ) .
  599. FQOpen = FALSE.
  600. RUN BUTTON_ENABLE ( INPUT 98 ).
  601. END PROCEDURE.
  602. /* _UIB-CODE-BLOCK-END */
  603. &ANALYZE-RESUME
  604. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-open-query B-table-Win
  605. PROCEDURE local-open-query :
  606. /*------------------------------------------------------------------------------
  607. Purpose: Override standard ADM method
  608. Notes:
  609. ------------------------------------------------------------------------------*/
  610. IF QOpen THEN CLOSE QUERY {&BROWSE-NAME}.
  611. QOpen = FALSE.
  612. Vorhanden = FALSE.
  613. RUN dispatch IN THIS-PROCEDURE ( INPUT 'open-query':U ).
  614. QOpen = TRUE.
  615. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  616. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  617. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  618. Vorhanden = TRUE.
  619. LEAVE.
  620. END.
  621. DO WITH FRAME {&FRAME-NAME}:
  622. IF Vorhanden THEN DO:
  623. RUN BUTTON_ENABLE ( 2 ).
  624. APPLY 'VALUE-CHANGED' TO BROWSE {&BROWSE-NAME}.
  625. END.
  626. ELSE DO:
  627. RUN BUTTON_ENABLE ( 1 ).
  628. END.
  629. END.
  630. END PROCEDURE.
  631. /* _UIB-CODE-BLOCK-END */
  632. &ANALYZE-RESUME
  633. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-view B-table-Win
  634. PROCEDURE local-view :
  635. /*------------------------------------------------------------------------------
  636. Purpose: Override standard ADM method
  637. Notes:
  638. ------------------------------------------------------------------------------*/
  639. RUN dispatch IN THIS-PROCEDURE ( INPUT 'view':U ) .
  640. FQOpen = TRUE.
  641. RUN BUTTON_ENABLE ( INPUT 99 ).
  642. DO WITH FRAME {&FRAME-NAME}:
  643. Btn_Erfassen:LABEL IN FRAME {&FRAME-NAME} = '&Erfassen'.
  644. Btn_Speichern:LABEL IN FRAME {&FRAME-NAME} = '&Aendern'.
  645. RUN dispatch IN THIS-PROCEDURE ('disable-fields':U).
  646. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  647. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  648. {&BROWSE-NAME}:SELECT-FOCUSED-ROW().
  649. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  650. RETURN NO-APPLY.
  651. END.
  652. END PROCEDURE.
  653. /* _UIB-CODE-BLOCK-END */
  654. &ANALYZE-RESUME
  655. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN B-table-Win
  656. PROCEDURE LOESCHEN :
  657. /*------------------------------------------------------------------------------
  658. Purpose:
  659. Parameters: <none>
  660. Notes:
  661. ------------------------------------------------------------------------------*/
  662. IF Btn_Loeschen:SENSITIVE IN FRAME {&FRAME-NAME} = FALSE THEN RETURN NO-APPLY.
  663. APPLY 'ENTRY' TO Btn_Erfassen IN FRAME {&FRAME-NAME}.
  664. RUN BUTTON_ENABLE ( 9 ).
  665. Ja = FALSE.
  666. { v8/loeschen.i }
  667. IF NOT Ja THEN DO:
  668. RUN BUTTON_ENABLE ( 2 ).
  669. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  670. RETURN.
  671. END.
  672. RUN dispatch IN THIS-PROCEDURE ('delete-record':U).
  673. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  674. Vorhanden = FALSE.
  675. IF NUM-RESULTS("{&BROWSE-NAME}":U) = ? THEN LEAVE.
  676. IF NUM-RESULTS("{&BROWSE-NAME}":U) = 0 THEN LEAVE.
  677. Vorhanden = TRUE.
  678. LEAVE.
  679. END.
  680. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  681. ELSE RUN BUTTON_ENABLE ( 1 ).
  682. RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  683. END PROCEDURE.
  684. /* _UIB-CODE-BLOCK-END */
  685. &ANALYZE-RESUME
  686. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records B-table-Win _ADM-SEND-RECORDS
  687. PROCEDURE send-records :
  688. /*------------------------------------------------------------------------------
  689. Purpose: Send record ROWID's for all tables used by
  690. this file.
  691. Parameters: see template/snd-head.i
  692. ------------------------------------------------------------------------------*/
  693. /* Define variables needed by this internal procedure. */
  694. {src/adm/template/snd-head.i}
  695. /* For each requested table, put it's ROWID in the output list. */
  696. {src/adm/template/snd-list.i "Schrift"}
  697. /* Deal with any unexpected table requests before closing. */
  698. {src/adm/template/snd-end.i}
  699. END PROCEDURE.
  700. /* _UIB-CODE-BLOCK-END */
  701. &ANALYZE-RESUME
  702. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SPEICHERN B-table-Win
  703. PROCEDURE SPEICHERN :
  704. /*------------------------------------------------------------------------------
  705. Purpose:
  706. Parameters: <none>
  707. Notes:
  708. ------------------------------------------------------------------------------*/
  709. DEF VAR XROWID AS ROWID NO-UNDO.
  710. DO WITH FRAME {&FRAME-NAME}:
  711. IF Btn_Speichern:SENSITIVE = FALSE THEN RETURN NO-APPLY.
  712. APPLY 'ENTRY' TO Btn_Speichern.
  713. CASE Btn_Speichern:LABEL:
  714. WHEN '&Aendern' THEN DO:
  715. RUN adm-enable-fields.
  716. APPLY 'ENTRY' TO {&DATEI-NAME}.{&ZWEITES-FELD} IN BROWSE {&BROWSE-NAME}.
  717. VUpdate = TRUE.
  718. VNeu = FALSE.
  719. VSpeichern = TRUE.
  720. Btn_Erfassen:LABEL = '&Abbrechen'.
  721. Btn_Speichern:LABEL = '&Speichern'.
  722. RUN BUTTON_ENABLE ( 3 ).
  723. END.
  724. WHEN '&Speichern' THEN DO:
  725. VUpdate = FALSE.
  726. RUN adm-disable-fields.
  727. RUN adm-update-record.
  728. RUN adm-end-update.
  729. VNeu = FALSE.
  730. VSpeichern = FALSE.
  731. Btn_Erfassen:LABEL = '&Erfassen'.
  732. Btn_Speichern:LABEL = '&Aendern'.
  733. IF Vorhanden THEN RUN BUTTON_ENABLE ( 2 ).
  734. ELSE RUN BUTTON_ENABLE ( 1 ).
  735. END.
  736. END CASE.
  737. END.
  738. IF NOT VUpdate THEN RUN state-changed ( INPUT THIS-PROCEDURE, INPUT 'browser_entry' ).
  739. END PROCEDURE.
  740. /* _UIB-CODE-BLOCK-END */
  741. &ANALYZE-RESUME
  742. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed B-table-Win
  743. PROCEDURE state-changed :
  744. /* -----------------------------------------------------------
  745. Purpose:
  746. Parameters: <none>
  747. Notes:
  748. -------------------------------------------------------------*/
  749. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  750. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  751. CASE p-state:
  752. WHEN 'browser_entry' THEN DO:
  753. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}.
  754. RETURN NO-APPLY.
  755. END.
  756. {src/adm/template/bstates.i}
  757. END CASE.
  758. END PROCEDURE.
  759. /* _UIB-CODE-BLOCK-END */
  760. &ANALYZE-RESUME