v-formulartexte.w 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. /* Temp-Table and Buffer definitions */
  8. DEFINE TEMP-TABLE RowObject
  9. {"d-formulartexte.i"}.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS vTableWin
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from viewer.w - Template for SmartDataViewer objects
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. ------------------------------------------------------------------------*/
  19. /* This .W file was created with the Progress AppBuilder. */
  20. /*----------------------------------------------------------------------*/
  21. /* Create an unnamed pool to store all the widgets created
  22. by this procedure. This is a good default which assures
  23. that this procedure's triggers and internal procedures
  24. will execute in this procedure's storage, and that proper
  25. cleanup will occur on deletion of the procedure. */
  26. CREATE WIDGET-POOL.
  27. /* *************************** Definitions ************************** */
  28. /* Komma-Trennzeichen */
  29. /* Keyfelder werden beim Mutieren nicht "Enabled" */
  30. &Scoped-define ERSTES_FELD Tenr
  31. &Scoped-define LETZTES_FELD Litext
  32. &Scoped-define KEY_FELDER CB_Sprache,CB_Fakart,Tenr
  33. &Scoped-define NUR_LESEN
  34. /* Parameters Definitions --- */
  35. /* Local Variable Definitions --- */
  36. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  37. DEF VAR FNeu AS LOG NO-UNDO INIT FALSE.
  38. DEF VAR FMut AS LOG NO-UNDO INIT FALSE.
  39. DEF VAR FCopy AS LOG NO-UNDO INIT FALSE.
  40. DEF VAR FDisp AS LOG NO-UNDO INIT TRUE .
  41. DEF VAR Fenster AS HANDLE NO-UNDO.
  42. DEF VAR oldColValues AS CHAR NO-UNDO.
  43. DEF VAR oldColList AS CHAR NO-UNDO.
  44. DEF VAR Firma AS CHAR NO-UNDO.
  45. DEF VAR Sprcd AS INT NO-UNDO INIT 1.
  46. DEF VAR Inst AS CHAR NO-UNDO.
  47. DEF VAR Fakart AS CHAR NO-UNDO.
  48. DEF VAR cProg AS CHAR NO-UNDO.
  49. /* _UIB-CODE-BLOCK-END */
  50. &ANALYZE-RESUME
  51. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  52. /* ******************** Preprocessor Definitions ******************** */
  53. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  54. &Scoped-define DB-AWARE no
  55. &Scoped-define ADM-CONTAINER FRAME
  56. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  57. /* Include file with RowObject temp-table definition */
  58. &Scoped-define DATA-FIELD-DEFS "d-formulartexte.i"
  59. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  60. &Scoped-define FRAME-NAME F-Main
  61. /* Standard List Definitions */
  62. &Scoped-Define ENABLED-FIELDS RowObject.Tenr RowObject.Litext
  63. &Scoped-define ENABLED-TABLES RowObject
  64. &Scoped-define FIRST-ENABLED-TABLE RowObject
  65. &Scoped-Define ENABLED-OBJECTS RECT-6 CB_Sprache CB_Fakart
  66. &Scoped-Define DISPLAYED-FIELDS RowObject.Prog RowObject.Sprcd ~
  67. RowObject.Tenr RowObject.Litext
  68. &Scoped-define DISPLAYED-TABLES RowObject
  69. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  70. &Scoped-Define DISPLAYED-OBJECTS CB_Sprache CB_Fakart
  71. /* Custom List Definitions */
  72. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  73. /* _UIB-PREPROCESSOR-BLOCK-END */
  74. &ANALYZE-RESUME
  75. /* *********************** Control Definitions ********************** */
  76. /* Definitions of the field level widgets */
  77. DEFINE VARIABLE CB_Fakart AS CHARACTER FORMAT "X(256)":U
  78. LABEL "Dok. Art"
  79. VIEW-AS COMBO-BOX INNER-LINES 5
  80. LIST-ITEMS "Item 1"
  81. DROP-DOWN-LIST
  82. SIZE 34.2 BY 1
  83. BGCOLOR 15 NO-UNDO.
  84. DEFINE VARIABLE CB_Sprache AS CHARACTER FORMAT "X(256)":U
  85. LABEL "Sprache"
  86. VIEW-AS COMBO-BOX INNER-LINES 5
  87. LIST-ITEM-PAIRS "Item 1","Item 1"
  88. DROP-DOWN-LIST
  89. SIZE 34.2 BY 1
  90. BGCOLOR 15 NO-UNDO.
  91. DEFINE RECTANGLE RECT-6
  92. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  93. SIZE 114 BY 6.81.
  94. /* ************************ Frame Definitions *********************** */
  95. DEFINE FRAME F-Main
  96. CB_Sprache AT ROW 1.52 COL 11 COLON-ALIGNED
  97. RowObject.Prog AT ROW 2 COL 48 COLON-ALIGNED FORMAT "x(30)"
  98. VIEW-AS FILL-IN NATIVE
  99. SIZE 4 BY 1
  100. BGCOLOR 15 NO-TAB-STOP
  101. RowObject.Sprcd AT ROW 2 COL 48 COLON-ALIGNED
  102. LABEL "Sprcd" FORMAT "999999"
  103. VIEW-AS FILL-IN NATIVE
  104. SIZE 4 BY 1
  105. BGCOLOR 15 NO-TAB-STOP
  106. CB_Fakart AT ROW 2.57 COL 11 COLON-ALIGNED
  107. RowObject.Tenr AT ROW 3.52 COL 11 COLON-ALIGNED
  108. LABEL "Nr"
  109. VIEW-AS FILL-IN NATIVE
  110. SIZE 7.6 BY 1
  111. BGCOLOR 15
  112. RowObject.Litext AT ROW 4.52 COL 11 COLON-ALIGNED
  113. LABEL "Text"
  114. VIEW-AS FILL-IN NATIVE
  115. SIZE 100 BY 1
  116. BGCOLOR 15 FONT 2
  117. "1234567890123456789012345678901234567890123456789012345678901234567890" VIEW-AS TEXT
  118. SIZE 100 BY 1 AT ROW 5.52 COL 13.6
  119. FONT 2
  120. RECT-6 AT ROW 1.24 COL 2
  121. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  122. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  123. AT COL 1 ROW 1 SCROLLABLE .
  124. /* *********************** Procedure Settings ************************ */
  125. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  126. /* Settings for THIS-PROCEDURE
  127. Type: SmartDataViewer
  128. Data Source: "d-formulartexte.w"
  129. Allow: Basic,DB-Fields,Smart
  130. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  131. Frames: 1
  132. Add Fields to: Neither
  133. Other Settings: PERSISTENT-ONLY COMPILE
  134. Temp-Tables and Buffers:
  135. TABLE: RowObject D "?" ?
  136. ADDITIONAL-FIELDS:
  137. {d-formulartexte.i}
  138. END-FIELDS.
  139. END-TABLES.
  140. */
  141. /* This procedure should always be RUN PERSISTENT. Report the error, */
  142. /* then cleanup and return. */
  143. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  144. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  145. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  146. RETURN.
  147. END.
  148. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  149. /* ************************* Create Window ************************** */
  150. &ANALYZE-SUSPEND _CREATE-WINDOW
  151. /* DESIGN Window definition (used by the UIB)
  152. CREATE WINDOW vTableWin ASSIGN
  153. HEIGHT = 7.33
  154. WIDTH = 116.
  155. /* END WINDOW DEFINITION */
  156. */
  157. &ANALYZE-RESUME
  158. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  159. /* ************************* Included-Libraries *********************** */
  160. {src/adm2/viewer.i}
  161. /* _UIB-CODE-BLOCK-END */
  162. &ANALYZE-RESUME
  163. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  164. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  165. /* SETTINGS FOR WINDOW vTableWin
  166. VISIBLE,,RUN-PERSISTENT */
  167. /* SETTINGS FOR FRAME F-Main
  168. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  169. ASSIGN
  170. FRAME F-Main:SCROLLABLE = FALSE
  171. FRAME F-Main:HIDDEN = TRUE.
  172. /* SETTINGS FOR FILL-IN RowObject.Litext IN FRAME F-Main
  173. EXP-LABEL */
  174. /* SETTINGS FOR FILL-IN RowObject.Prog IN FRAME F-Main
  175. NO-ENABLE EXP-FORMAT */
  176. ASSIGN
  177. RowObject.Prog:HIDDEN IN FRAME F-Main = TRUE
  178. RowObject.Prog:READ-ONLY IN FRAME F-Main = TRUE.
  179. /* SETTINGS FOR FILL-IN RowObject.Sprcd IN FRAME F-Main
  180. NO-ENABLE EXP-LABEL EXP-FORMAT */
  181. ASSIGN
  182. RowObject.Sprcd:HIDDEN IN FRAME F-Main = TRUE
  183. RowObject.Sprcd:READ-ONLY IN FRAME F-Main = TRUE.
  184. /* SETTINGS FOR FILL-IN RowObject.Tenr IN FRAME F-Main
  185. EXP-LABEL */
  186. /* _RUN-TIME-ATTRIBUTES-END */
  187. &ANALYZE-RESUME
  188. /* Setting information for Queries and Browse Widgets fields */
  189. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  190. /* Query rebuild information for FRAME F-Main
  191. _Options = "NO-LOCK"
  192. _Query is NOT OPENED
  193. */ /* FRAME F-Main */
  194. &ANALYZE-RESUME
  195. /* ************************ Control Triggers ************************ */
  196. &Scoped-define SELF-NAME CB_Fakart
  197. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Fakart vTableWin
  198. ON VALUE-CHANGED OF CB_Fakart IN FRAME F-Main /* Dok. Art */
  199. DO:
  200. DEF VAR hData AS HANDLE NO-UNDO.
  201. DEF BUFFER BLiBild FOR LiBild.
  202. IF FMut THEN SELF:SCREEN-VALUE = Fakart.
  203. Fakart = SELF:SCREEN-VALUE.
  204. cProg = Inst + ':' + Fakart.
  205. IF NOT FMut THEN DO:
  206. IF Sprcd <> 1 THEN DO:
  207. FIND FIRST LiBild NO-LOCK USE-INDEX LiBild-k1
  208. WHERE LiBild.Sprcd = Sprcd
  209. AND LiBild.Prog = cProg NO-ERROR.
  210. IF NOT AVAILABLE LiBild THEN DO:
  211. FOR EACH LiBild NO-LOCK USE-INDEX LiBild-k1
  212. WHERE LiBild.Sprcd = 1
  213. AND LiBild.Prog = cProg:
  214. CREATE BLiBild.
  215. BUFFER-COPY LiBild EXCEPT Sprcd TO BLiBild
  216. ASSIGN BLiBild.Sprcd = Sprcd.
  217. END.
  218. RELEASE BLiBild.
  219. END.
  220. END.
  221. hData = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  222. DYNAMIC-FUNCTION('setFakart':U IN hData, Fakart ) NO-ERROR.
  223. APPLY 'U1'.
  224. END.
  225. END.
  226. /* _UIB-CODE-BLOCK-END */
  227. &ANALYZE-RESUME
  228. &Scoped-define SELF-NAME CB_Sprache
  229. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Sprache vTableWin
  230. ON VALUE-CHANGED OF CB_Sprache IN FRAME F-Main /* Sprache */
  231. DO:
  232. DEF VAR hData AS HANDLE NO-UNDO.
  233. DEF BUFFER BLiBild FOR LiBild.
  234. IF FMut THEN SELF:SCREEN-VALUE = rowObject.Sprcd:SCREEN-VALUE.
  235. rowObject.Sprcd:SCREEN-VALUE = SELF:SCREEN-VALUE.
  236. Sprcd = INTEGER(SELF:SCREEN-VALUE).
  237. IF NOT FMut THEN DO:
  238. FIND FIRST LiBild NO-LOCK USE-INDEX LiBild-k1
  239. WHERE LiBild.Sprcd = Sprcd
  240. AND LiBild.Prog = cProg NO-ERROR.
  241. IF NOT AVAILABLE LiBild THEN DO:
  242. FOR EACH LiBild NO-LOCK USE-INDEX LiBild-k1
  243. WHERE LiBild.Sprcd = 1
  244. AND LiBild.Prog = cProg:
  245. CREATE BLiBild.
  246. BUFFER-COPY LiBild EXCEPT Sprcd TO BLiBild
  247. ASSIGN BLiBild.Sprcd = Sprcd.
  248. END.
  249. RELEASE BLiBild.
  250. END.
  251. hData = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  252. DYNAMIC-FUNCTION('setSprcd':U IN hData, Sprcd ) NO-ERROR.
  253. APPLY 'U1'.
  254. END.
  255. END.
  256. /* _UIB-CODE-BLOCK-END */
  257. &ANALYZE-RESUME
  258. &UNDEFINE SELF-NAME
  259. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  260. /* *************************** Main Block *************************** */
  261. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  262. IF SAktiv THEN DO:
  263. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  264. END.
  265. /* Triggers ------------------------------------------------------ */
  266. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  267. DO:
  268. RUN RETURN_FELD ( INPUT SELF:HANDLE ).
  269. IF RETURN-VALUE = 'TAB' THEN DO:
  270. APPLY 'TAB' TO SELF.
  271. RETURN NO-APPLY.
  272. END.
  273. END.
  274. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
  275. DO:
  276. RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
  277. IF RETURN-VALUE = 'ERROR' THEN DO:
  278. APPLY 'ENTRY' TO SELF.
  279. RETURN NO-APPLY.
  280. END.
  281. IF RETURN-VALUE = 'APPLY' THEN DO:
  282. RETURN NO-APPLY.
  283. END.
  284. END.
  285. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
  286. DO:
  287. RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
  288. IF RETURN-VALUE = 'ERROR' THEN DO:
  289. APPLY 'ENTRY' TO SELF.
  290. RETURN NO-APPLY.
  291. END.
  292. IF RETURN-VALUE = 'APPLY' THEN DO:
  293. RETURN NO-APPLY.
  294. END.
  295. END.
  296. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  297. RUN initializeObject.
  298. &ENDIF
  299. /************************ INTERNAL PROCEDURES ********************/
  300. /* _UIB-CODE-BLOCK-END */
  301. &ANALYZE-RESUME
  302. /* ********************** Internal Procedures *********************** */
  303. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  304. PROCEDURE addRecord :
  305. /*------------------------------------------------------------------------------
  306. Purpose: Super Override
  307. Parameters:
  308. Notes:
  309. ------------------------------------------------------------------------------*/
  310. FNeu = TRUE.
  311. FMut = TRUE.
  312. FDisp = TRUE.
  313. RUN SUPER.
  314. END PROCEDURE.
  315. /* _UIB-CODE-BLOCK-END */
  316. &ANALYZE-RESUME
  317. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  318. PROCEDURE cancelRecord :
  319. /*------------------------------------------------------------------------------
  320. Purpose: Super Override
  321. Parameters:
  322. Notes:
  323. ------------------------------------------------------------------------------*/
  324. /* Code placed here will execute PRIOR to standard behavior. */
  325. RUN SUPER.
  326. /* Code placed here will execute AFTER standard behavior. */
  327. END PROCEDURE.
  328. /* _UIB-CODE-BLOCK-END */
  329. &ANALYZE-RESUME
  330. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE COMBO_DOKART vTableWin
  331. PROCEDURE COMBO_DOKART :
  332. /*------------------------------------------------------------------------------
  333. Purpose:
  334. Parameters: <none>
  335. Notes:
  336. ------------------------------------------------------------------------------*/
  337. DEF INPUT PARAMETER ipCombo AS HANDLE NO-UNDO.
  338. DEF VAR cString AS CHAR NO-UNDO.
  339. ipCombo:DELIMITER = ';'.
  340. cString = ''.
  341. FOR EACH Tabel NO-LOCK USE-INDEX Tabel-k1
  342. WHERE Tabel.Firma = Firma
  343. AND Tabel.RecArt = 'FAKART'
  344. BREAK BY Tabel.Bez2:
  345. IF NOT FIRST-OF ( Tabel.Bez2 ) THEN NEXT.
  346. cString = cString + ';' + Tabel.Bez2.
  347. END.
  348. IF cString <> '' THEN cString = SUBSTRING(cString,02).
  349. ipCombo:LIST-ITEMS = cString.
  350. END PROCEDURE.
  351. /* _UIB-CODE-BLOCK-END */
  352. &ANALYZE-RESUME
  353. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  354. PROCEDURE copyRecord :
  355. /*------------------------------------------------------------------------------
  356. Purpose: Super Override
  357. Parameters:
  358. Notes:
  359. ------------------------------------------------------------------------------*/
  360. FNeu = TRUE.
  361. FMut = TRUE.
  362. FCopy = TRUE.
  363. FDisp = FALSE.
  364. RUN SUPER.
  365. END PROCEDURE.
  366. /* _UIB-CODE-BLOCK-END */
  367. &ANALYZE-RESUME
  368. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  369. PROCEDURE deleteRecord :
  370. /*------------------------------------------------------------------------------
  371. Purpose: Super Override
  372. Parameters:
  373. Notes:
  374. ------------------------------------------------------------------------------*/
  375. DEF VAR Ja AS LOG NO-UNDO.
  376. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
  377. IF NOT Ja THEN DO:
  378. PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
  379. RETURN NO-APPLY.
  380. END.
  381. RUN SUPER.
  382. /* Code placed here will execute AFTER standard behavior. */
  383. END PROCEDURE.
  384. /* _UIB-CODE-BLOCK-END */
  385. &ANALYZE-RESUME
  386. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  387. PROCEDURE disableFields :
  388. /*------------------------------------------------------------------------------
  389. Purpose: Super Override
  390. Parameters:
  391. Notes:
  392. ------------------------------------------------------------------------------*/
  393. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  394. DO WITH FRAME {&FRAME-NAME}:
  395. END.
  396. RUN SUPER( INPUT pcFieldType).
  397. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  398. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  399. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  400. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  401. END.
  402. DO WITH FRAME {&FRAME-NAME}:
  403. END.
  404. END PROCEDURE.
  405. /* _UIB-CODE-BLOCK-END */
  406. &ANALYZE-RESUME
  407. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  408. PROCEDURE disable_UI :
  409. /*------------------------------------------------------------------------------
  410. Purpose: DISABLE the User Interface
  411. Parameters: <none>
  412. Notes: Here we clean-up the user-interface by deleting
  413. dynamic widgets we have created and/or hide
  414. frames. This procedure is usually called when
  415. we are ready to "clean-up" after running.
  416. ------------------------------------------------------------------------------*/
  417. /* Hide all frames. */
  418. HIDE FRAME F-Main.
  419. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  420. END PROCEDURE.
  421. /* _UIB-CODE-BLOCK-END */
  422. &ANALYZE-RESUME
  423. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  424. PROCEDURE displayFields :
  425. /*------------------------------------------------------------------------------
  426. Purpose: Super Override
  427. Parameters:
  428. Notes:
  429. ------------------------------------------------------------------------------*/
  430. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  431. IF NOT FDisp THEN DO:
  432. FDisp = TRUE.
  433. RETURN.
  434. END.
  435. OldColValues = pcColValues.
  436. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  437. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  438. DO WITH FRAME {&FRAME-NAME}:
  439. END.
  440. RUN SUPER( INPUT pcColValues).
  441. DO WITH FRAME {&FRAME-NAME}:
  442. END.
  443. END PROCEDURE.
  444. /* _UIB-CODE-BLOCK-END */
  445. &ANALYZE-RESUME
  446. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  447. PROCEDURE enableFields :
  448. /*------------------------------------------------------------------------------
  449. Purpose: Super Override
  450. Parameters:
  451. Notes:
  452. ------------------------------------------------------------------------------*/
  453. /* Code placed here will execute PRIOR to standard behavior. */
  454. /*
  455. RUN SUPER.
  456. */
  457. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  458. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  459. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  460. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  461. END.
  462. DO WITH FRAME {&FRAME-NAME}:
  463. END.
  464. IF FNeu THEN RETURN.
  465. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  466. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  467. END.
  468. END PROCEDURE.
  469. /* _UIB-CODE-BLOCK-END */
  470. &ANALYZE-RESUME
  471. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  472. PROCEDURE enableObject :
  473. /*------------------------------------------------------------------------------
  474. Purpose: Super Override
  475. Parameters:
  476. Notes:
  477. ------------------------------------------------------------------------------*/
  478. DEF VAR hData AS HANDLE NO-UNDO.
  479. FIND Steuer NO-LOCK USE-INDEX Steuer-k1
  480. WHERE Steuer.Firma = Firma NO-ERROR.
  481. Inst = Steuer.Fwc10.
  482. DO WITH FRAME {&FRAME-NAME}:
  483. RUN COMBO_SPRACHE( CB_Sprache:HANDLE ).
  484. RUN COMBO_DOKART ( CB_Fakart :HANDLE ).
  485. Sprcd = INTEGER(ENTRY(2, CB_Sprache:LIST-ITEM-PAIRS, ';')).
  486. Fakart = SUBSTITUTE('&1', ENTRY(2, CB_Fakart:LIST-ITEMS, ';')).
  487. CB_Sprache:SCREEN-VALUE = STRING(Sprcd,'999999') NO-ERROR.
  488. CB_Fakart :SCREEN-VALUE = Fakart NO-ERROR.
  489. cProg = Inst + ':' + Fakart.
  490. hData = DYNAMIC-FUNCTION('getDataSource':U) NO-ERROR.
  491. DYNAMIC-FUNCTION('setSprache':U IN hData, Sprcd ) NO-ERROR.
  492. DYNAMIC-FUNCTION('setFakart':U IN hData, Fakart) NO-ERROR.
  493. END.
  494. RUN SUPER.
  495. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  496. IF SAktiv THEN DO:
  497. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  498. END.
  499. DO WITH FRAME {&FRAME-NAME}:
  500. APPLY 'VALUE-CHANGED' TO CB_Sprache.
  501. END.
  502. END PROCEDURE.
  503. /* _UIB-CODE-BLOCK-END */
  504. &ANALYZE-RESUME
  505. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  506. PROCEDURE ENTRY_FELD_TEST :
  507. /*------------------------------------------------------------------------------
  508. Purpose:
  509. Parameters: <none>
  510. Notes:
  511. ------------------------------------------------------------------------------*/
  512. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  513. DEF VAR FeldName AS CHAR NO-UNDO.
  514. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  515. FeldName = ''.
  516. FeldInhalt = ''.
  517. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  518. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  519. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  520. FeldName = ipHandle:NAME.
  521. IF ipHandle:TYPE = 'FILL-IN' OR
  522. ipHandle:TYPE = 'COMBO-BOX' OR
  523. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  524. IF NOT FMut THEN RETURN ''.
  525. DO WITH FRAME {&FRAME-NAME}:
  526. CASE FeldName:
  527. END CASE.
  528. END.
  529. RETURN ''.
  530. END PROCEDURE.
  531. /* _UIB-CODE-BLOCK-END */
  532. &ANALYZE-RESUME
  533. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  534. PROCEDURE FEHLWERTE PRIVATE :
  535. /*------------------------------------------------------------------------------
  536. Purpose:
  537. Parameters: <none>
  538. Notes:
  539. ------------------------------------------------------------------------------*/
  540. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  541. DEF VAR FwFelder AS CHAR NO-UNDO.
  542. DEF VAR FwFeld AS CHAR NO-UNDO.
  543. DEF VAR FwValue AS CHAR NO-UNDO.
  544. DEF VAR ix AS INT NO-UNDO.
  545. DEF VAR i1 AS INT NO-UNDO.
  546. DEF VAR cProg AS CHAR NO-UNDO.
  547. DEF VAR iSprcd AS INT NO-UNDO.
  548. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
  549. cProg = Inst + ':' + Fakart.
  550. IF NOT FCopy THEN DO:
  551. DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
  552. FwFeld = ENTRY (ix , FwFelder , ',').
  553. i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
  554. IF i1 < 2 THEN NEXT.
  555. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
  556. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
  557. END.
  558. i1 = LOOKUP('Sprcd', oldColList, ',') + 1.
  559. ENTRY(i1, pcColValues, CHR(1)) = STRING(Sprcd) NO-ERROR.
  560. i1 = LOOKUP('Prog', oldColList, ',') + 1.
  561. ENTRY(i1, pcColValues, CHR(1)) = Fakart NO-ERROR.
  562. END.
  563. IF FCopy THEN DO:
  564. END.
  565. OldColValues = pcColValues.
  566. END PROCEDURE.
  567. /* _UIB-CODE-BLOCK-END */
  568. &ANALYZE-RESUME
  569. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  570. PROCEDURE LEAVE_FELD_TEST :
  571. /*------------------------------------------------------------------------------
  572. Purpose:
  573. Parameters: <none>
  574. Notes:
  575. ------------------------------------------------------------------------------*/
  576. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  577. DEF VAR FeldName AS CHAR NO-UNDO.
  578. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  579. DEF VAR ix AS INT NO-UNDO.
  580. DEF VAR LKY AS INT NO-UNDO.
  581. DEF VAR hLEAVE AS HANDLE NO-UNDO.
  582. DEF VAR hENTER AS HANDLE NO-UNDO.
  583. DEF VAR Daten AS CHAR NO-UNDO.
  584. IF FMut = FALSE THEN RETURN ''.
  585. LKY = LASTKEY.
  586. hENTER = LAST-EVENT:WIDGET-ENTER.
  587. hLEAVE = LAST-EVENT:WIDGET-LEAVE.
  588. FeldName = ''.
  589. FeldInhalt = ''.
  590. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  591. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  592. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  593. FeldName = ipHandle:NAME.
  594. IF ipHandle:TYPE = 'FILL-IN' OR
  595. ipHandle:TYPE = 'COMBO-BOX' OR
  596. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  597. DO WHILE FNeu:
  598. CASE FeldName:
  599. WHEN 'Tenr' THEN DO:
  600. IF CAN-FIND ( FIRST LiBild NO-LOCK USE-INDEX LiBild-k1
  601. WHERE LiBild.Sprcd = Sprcd
  602. AND LiBild.Prog = cProg
  603. AND LiBild.Tenr = INTEGER(FeldInhalt) )
  604. THEN DO:
  605. DYNAMIC-FUNCTION('FEHLER', INPUT 1099) NO-ERROR.
  606. RETURN 'ERROR'.
  607. END.
  608. END.
  609. END CASE.
  610. LEAVE.
  611. END.
  612. IF LOOKUP(FeldName, '{&LETZTES_FELD}', ',') > 0 THEN DO:
  613. DO WHILE TRUE:
  614. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  615. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  616. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  617. RETURN ''.
  618. END.
  619. APPLY 'ALT-S'.
  620. RETURN 'APPLY'.
  621. END.
  622. RETURN ''.
  623. END PROCEDURE.
  624. /* _UIB-CODE-BLOCK-END */
  625. &ANALYZE-RESUME
  626. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  627. PROCEDURE RETURN_FELD :
  628. /*------------------------------------------------------------------------------
  629. Purpose:
  630. Parameters: <none>
  631. Notes:
  632. ------------------------------------------------------------------------------*/
  633. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  634. DEF VAR FeldName AS CHAR NO-UNDO.
  635. IF FMut = FALSE THEN RETURN ''.
  636. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  637. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  638. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  639. FeldName = ipHandle:NAME.
  640. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  641. RETURN 'TAB'.
  642. END.
  643. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  644. RETURN 'TAB'.
  645. END.
  646. FeldName = 'rowObject.' + FeldName.
  647. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  648. RETURN 'TAB'.
  649. END.
  650. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  651. RETURN 'TAB'.
  652. END.
  653. RETURN ''.
  654. END PROCEDURE.
  655. /* _UIB-CODE-BLOCK-END */
  656. &ANALYZE-RESUME
  657. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  658. PROCEDURE updateMode :
  659. /*------------------------------------------------------------------------------
  660. Purpose: Super Override
  661. Parameters:
  662. Notes:
  663. ------------------------------------------------------------------------------*/
  664. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  665. CASE pcMode:
  666. WHEN 'updateBegin' THEN DO:
  667. END.
  668. WHEN 'updateEnd' THEN DO:
  669. END.
  670. END.
  671. RUN SUPER( INPUT pcMode).
  672. CASE pcMode:
  673. WHEN 'updateBegin' THEN DO:
  674. FMut = TRUE.
  675. END.
  676. WHEN 'updateEnd' THEN DO:
  677. FNeu = FALSE.
  678. FMut = FALSE.
  679. FCopy = FALSE.
  680. END.
  681. END.
  682. END PROCEDURE.
  683. /* _UIB-CODE-BLOCK-END */
  684. &ANALYZE-RESUME
  685. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  686. PROCEDURE updateRecord :
  687. /*------------------------------------------------------------------------------
  688. Purpose: Super Override
  689. Parameters:
  690. Notes:
  691. ------------------------------------------------------------------------------*/
  692. DO WITH FRAME {&FRAME-NAME}:
  693. IF FNeu THEN DO:
  694. IF NOT VALID-HANDLE(Fenster)
  695. THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  696. DYNAMIC-FUNCTION('SETMODIFIEDFLAG':U, INPUT Fenster,
  697. INPUT TRUE ) NO-ERROR.
  698. END.
  699. rowObject.Sprcd:SCREEN-VALUE = STRING(Sprcd,'999999').
  700. rowObject.Prog :SCREEN-VALUE = SUBSTITUTE('&1:&2', Inst, CB_Fakart:SCREEN-VALUE).
  701. END.
  702. FNeu = FALSE.
  703. FCopy = FALSE.
  704. RUN SUPER.
  705. /* Code placed here will execute AFTER standard behavior. */
  706. END PROCEDURE.
  707. /* _UIB-CODE-BLOCK-END */
  708. &ANALYZE-RESUME