v-tabel.w 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145
  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-tabel.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 KEY_FELDER CodeI,CodeC
  31. &Scoped-define NUR_LESEN
  32. /* Parameters Definitions --- */
  33. /* Local Variable Definitions --- */
  34. DEF VAR SAktiv AS LOG NO-UNDO INIT FALSE.
  35. DEF VAR FNeu AS LOG NO-UNDO INIT FALSE.
  36. DEF VAR FMut AS LOG NO-UNDO INIT FALSE.
  37. DEF VAR FCopy AS LOG NO-UNDO INIT FALSE.
  38. DEF VAR FCancel AS LOG NO-UNDO INIT FALSE.
  39. DEF VAR Fenster AS HANDLE NO-UNDO.
  40. DEF VAR oldColValues AS CHAR NO-UNDO.
  41. DEF VAR oldColList AS CHAR NO-UNDO.
  42. DEF VAR Firma AS CHAR NO-UNDO.
  43. DEF VAR Sprcd AS INT NO-UNDO.
  44. DEF VAR RecArt AS CHAR NO-UNDO.
  45. DEF VAR LetztFeld AS CHAR NO-UNDO.
  46. DEF VAR ErstFeld AS CHAR NO-UNDO.
  47. DEF VAR fCodeI AS LOG INIT FALSE NO-UNDO.
  48. DEF TEMP-TABLE THandle FIELD TNr AS INT
  49. FIELD TFeld AS HANDLE
  50. FIELD TType AS CHAR
  51. FIELD TLabel AS CHAR
  52. FIELD TLength AS DEC
  53. FIELD TFormat AS CHAR
  54. FIELD TY AS DEC
  55. FIELD TX AS DEC
  56. FIELD TFx AS DEC.
  57. /* _UIB-CODE-BLOCK-END */
  58. &ANALYZE-RESUME
  59. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  60. /* ******************** Preprocessor Definitions ******************** */
  61. &Scoped-define PROCEDURE-TYPE SmartDataViewer
  62. &Scoped-define DB-AWARE no
  63. &Scoped-define ADM-CONTAINER FRAME
  64. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  65. /* Include file with RowObject temp-table definition */
  66. &Scoped-define DATA-FIELD-DEFS "d-tabel.i"
  67. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  68. &Scoped-define FRAME-NAME F-Main
  69. /* Standard List Definitions */
  70. &Scoped-Define ENABLED-FIELDS RowObject.CodeC RowObject.CodeI ~
  71. RowObject.Bez1 RowObject.Bez2 RowObject.Firma RowObject.RecArt ~
  72. RowObject.Sprcd RowObject.BezL RowObject.Int_1 RowObject.Int_2 ~
  73. RowObject.Int_3 RowObject.Dec_1 RowObject.Dec_2 RowObject.Dec_3
  74. &Scoped-define ENABLED-TABLES RowObject
  75. &Scoped-define FIRST-ENABLED-TABLE RowObject
  76. &Scoped-Define ENABLED-OBJECTS RECT-Viewer
  77. &Scoped-Define DISPLAYED-FIELDS RowObject.CodeC RowObject.CodeI ~
  78. RowObject.Bez1 RowObject.Bez2 RowObject.Firma RowObject.RecArt ~
  79. RowObject.Sprcd RowObject.BezL RowObject.Int_1 RowObject.Int_2 ~
  80. RowObject.Int_3 RowObject.Dec_1 RowObject.Dec_2 RowObject.Dec_3
  81. &Scoped-define DISPLAYED-TABLES RowObject
  82. &Scoped-define FIRST-DISPLAYED-TABLE RowObject
  83. /* Custom List Definitions */
  84. /* ADM-ASSIGN-FIELDS,List-2,List-3,List-4,List-5,List-6 */
  85. /* _UIB-PREPROCESSOR-BLOCK-END */
  86. &ANALYZE-RESUME
  87. /* *********************** Control Definitions ********************** */
  88. /* Definitions of the field level widgets */
  89. DEFINE RECTANGLE RECT-Viewer
  90. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  91. SIZE 110 BY 5.76.
  92. /* ************************ Frame Definitions *********************** */
  93. DEFINE FRAME F-Main
  94. RowObject.CodeC AT ROW 1.52 COL 18 COLON-ALIGNED
  95. LABEL "CodeC" FORMAT "x(08)"
  96. VIEW-AS FILL-IN NATIVE
  97. SIZE 20 BY 1
  98. BGCOLOR 15
  99. RowObject.CodeI AT ROW 1.52 COL 73 COLON-ALIGNED
  100. VIEW-AS FILL-IN NATIVE
  101. SIZE 10.4 BY 1
  102. BGCOLOR 15
  103. RowObject.Bez1 AT ROW 2.52 COL 18 COLON-ALIGNED
  104. VIEW-AS FILL-IN NATIVE
  105. SIZE 32 BY 1
  106. BGCOLOR 15
  107. RowObject.Bez2 AT ROW 2.52 COL 73 COLON-ALIGNED
  108. VIEW-AS FILL-IN NATIVE
  109. SIZE 32 BY 1
  110. BGCOLOR 15
  111. RowObject.Firma AT ROW 2.81 COL 68.6 COLON-ALIGNED
  112. VIEW-AS FILL-IN
  113. SIZE 13.6 BY 1 NO-TAB-STOP
  114. RowObject.RecArt AT ROW 2.81 COL 72.6 COLON-ALIGNED
  115. LABEL "Recart" FORMAT "x(20)"
  116. VIEW-AS FILL-IN
  117. SIZE 9.6 BY 1 NO-TAB-STOP
  118. RowObject.Sprcd AT ROW 2.91 COL 77 COLON-ALIGNED
  119. VIEW-AS FILL-IN
  120. SIZE 4.8 BY 1 NO-TAB-STOP
  121. RowObject.BezL AT ROW 3.52 COL 18 COLON-ALIGNED
  122. VIEW-AS FILL-IN NATIVE
  123. SIZE 82 BY 1
  124. BGCOLOR 15
  125. RowObject.Int_1 AT ROW 4.52 COL 18 COLON-ALIGNED
  126. LABEL "Int_1" FORMAT "zzz,zz9-"
  127. VIEW-AS FILL-IN NATIVE
  128. SIZE 13 BY 1
  129. BGCOLOR 15
  130. RowObject.Int_2 AT ROW 4.52 COL 48 COLON-ALIGNED
  131. LABEL "Int_2" FORMAT "zzz,zz9-"
  132. VIEW-AS FILL-IN NATIVE
  133. SIZE 13 BY 1
  134. BGCOLOR 15
  135. RowObject.Int_3 AT ROW 4.52 COL 78 COLON-ALIGNED
  136. LABEL "Int_3" FORMAT "zzz,zz9-"
  137. VIEW-AS FILL-IN NATIVE
  138. SIZE 13 BY 1
  139. BGCOLOR 15
  140. RowObject.Dec_1 AT ROW 5.52 COL 18 COLON-ALIGNED
  141. LABEL "Dec_1" FORMAT "zzz,zz9.99-"
  142. VIEW-AS FILL-IN NATIVE
  143. SIZE 17 BY 1
  144. BGCOLOR 15
  145. RowObject.Dec_2 AT ROW 5.52 COL 48 COLON-ALIGNED
  146. LABEL "Dec_2" FORMAT "zzz,zz9.99-"
  147. VIEW-AS FILL-IN NATIVE
  148. SIZE 17 BY 1
  149. BGCOLOR 15
  150. RowObject.Dec_3 AT ROW 5.52 COL 78 COLON-ALIGNED
  151. LABEL "Dec_3" FORMAT "zzz,zz9.99-"
  152. VIEW-AS FILL-IN NATIVE
  153. SIZE 17 BY 1
  154. BGCOLOR 15
  155. RECT-Viewer AT ROW 1.24 COL 2
  156. WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY USE-DICT-EXPS
  157. SIDE-LABELS NO-UNDERLINE THREE-D NO-AUTO-VALIDATE
  158. AT COL 1 ROW 1 SCROLLABLE .
  159. /* *********************** Procedure Settings ************************ */
  160. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  161. /* Settings for THIS-PROCEDURE
  162. Type: SmartDataViewer
  163. Data Source: "d-tabel.w"
  164. Allow: Basic,DB-Fields,Smart
  165. Container Links: Data-Target,Update-Source,TableIO-Target,GroupAssign-Source,GroupAssign-Target
  166. Frames: 1
  167. Add Fields to: Neither
  168. Other Settings: PERSISTENT-ONLY COMPILE
  169. Temp-Tables and Buffers:
  170. TABLE: RowObject D "?" ?
  171. ADDITIONAL-FIELDS:
  172. {d-tabel.i}
  173. END-FIELDS.
  174. END-TABLES.
  175. */
  176. /* This procedure should always be RUN PERSISTENT. Report the error, */
  177. /* then cleanup and return. */
  178. IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
  179. MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
  180. VIEW-AS ALERT-BOX ERROR BUTTONS OK.
  181. RETURN.
  182. END.
  183. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  184. /* ************************* Create Window ************************** */
  185. &ANALYZE-SUSPEND _CREATE-WINDOW
  186. /* DESIGN Window definition (used by the UIB)
  187. CREATE WINDOW vTableWin ASSIGN
  188. HEIGHT = 7.05
  189. WIDTH = 114.6.
  190. /* END WINDOW DEFINITION */
  191. */
  192. &ANALYZE-RESUME
  193. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB vTableWin
  194. /* ************************* Included-Libraries *********************** */
  195. {src/adm2/viewer.i}
  196. /* _UIB-CODE-BLOCK-END */
  197. &ANALYZE-RESUME
  198. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  199. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  200. /* SETTINGS FOR WINDOW vTableWin
  201. VISIBLE,,RUN-PERSISTENT */
  202. /* SETTINGS FOR FRAME F-Main
  203. NOT-VISIBLE FRAME-NAME Size-to-Fit */
  204. ASSIGN
  205. FRAME F-Main:SCROLLABLE = FALSE
  206. FRAME F-Main:HIDDEN = TRUE.
  207. /* SETTINGS FOR FILL-IN RowObject.CodeC IN FRAME F-Main
  208. EXP-LABEL EXP-FORMAT */
  209. /* SETTINGS FOR FILL-IN RowObject.Dec_1 IN FRAME F-Main
  210. EXP-LABEL EXP-FORMAT */
  211. /* SETTINGS FOR FILL-IN RowObject.Dec_2 IN FRAME F-Main
  212. EXP-LABEL EXP-FORMAT */
  213. /* SETTINGS FOR FILL-IN RowObject.Dec_3 IN FRAME F-Main
  214. EXP-LABEL EXP-FORMAT */
  215. /* SETTINGS FOR FILL-IN RowObject.Int_1 IN FRAME F-Main
  216. EXP-LABEL EXP-FORMAT */
  217. /* SETTINGS FOR FILL-IN RowObject.Int_2 IN FRAME F-Main
  218. EXP-LABEL EXP-FORMAT */
  219. /* SETTINGS FOR FILL-IN RowObject.Int_3 IN FRAME F-Main
  220. EXP-LABEL EXP-FORMAT */
  221. /* SETTINGS FOR FILL-IN RowObject.RecArt IN FRAME F-Main
  222. EXP-LABEL EXP-FORMAT */
  223. /* _RUN-TIME-ATTRIBUTES-END */
  224. &ANALYZE-RESUME
  225. /* Setting information for Queries and Browse Widgets fields */
  226. &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
  227. /* Query rebuild information for FRAME F-Main
  228. _Options = "NO-LOCK"
  229. _Query is NOT OPENED
  230. */ /* FRAME F-Main */
  231. &ANALYZE-RESUME
  232. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK vTableWin
  233. /* *************************** Main Block *************************** */
  234. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR.
  235. IF SAktiv THEN DO:
  236. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR.
  237. RecArt = DYNAMIC-FUNCTION('GETTABELLE':U) NO-ERROR.
  238. END.
  239. SUBSCRIBE TO 'SETRECTBREITE' ANYWHERE.
  240. /* Triggers ------------------------------------------------------ */
  241. ON 'RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE
  242. DO:
  243. RUN RETURN_FELD ( INPUT SELF:HANDLE ).
  244. IF RETURN-VALUE = 'TAB' THEN DO:
  245. APPLY 'TAB' TO SELF.
  246. RETURN NO-APPLY.
  247. END.
  248. END.
  249. ON 'ENTRY':U OF FRAME {&FRAME-NAME} ANYWHERE
  250. DO:
  251. RUN ENTRY_FELD_TEST ( INPUT SELF:HANDLE ).
  252. IF RETURN-VALUE = 'ERROR' THEN DO:
  253. APPLY 'ENTRY' TO SELF.
  254. RETURN NO-APPLY.
  255. END.
  256. IF RETURN-VALUE = 'APPLY' THEN DO:
  257. RETURN NO-APPLY.
  258. END.
  259. END.
  260. ON 'LEAVE':U OF FRAME {&FRAME-NAME} ANYWHERE
  261. DO:
  262. RUN LEAVE_FELD_TEST ( INPUT SELF:HANDLE ).
  263. IF RETURN-VALUE = 'ERROR' THEN DO:
  264. APPLY 'ENTRY' TO SELF.
  265. RETURN NO-APPLY.
  266. END.
  267. IF RETURN-VALUE = 'APPLY' THEN DO:
  268. RETURN NO-APPLY.
  269. END.
  270. END.
  271. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
  272. RUN initializeObject.
  273. &ENDIF
  274. /************************ INTERNAL PROCEDURES ********************/
  275. /* _UIB-CODE-BLOCK-END */
  276. &ANALYZE-RESUME
  277. /* ********************** Internal Procedures *********************** */
  278. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE addRecord vTableWin
  279. PROCEDURE addRecord :
  280. /*------------------------------------------------------------------------------
  281. Purpose: Super Override
  282. Parameters:
  283. Notes:
  284. ------------------------------------------------------------------------------*/
  285. FNeu = TRUE.
  286. FMut = TRUE.
  287. RUN SUPER.
  288. END PROCEDURE.
  289. /* _UIB-CODE-BLOCK-END */
  290. &ANALYZE-RESUME
  291. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancelRecord vTableWin
  292. PROCEDURE cancelRecord :
  293. /*------------------------------------------------------------------------------
  294. Purpose: Super Override
  295. Parameters:
  296. Notes:
  297. ------------------------------------------------------------------------------*/
  298. /* Code placed here will execute PRIOR to standard behavior. */
  299. FCancel = TRUE.
  300. RUN SUPER.
  301. /* Code placed here will execute AFTER standard behavior. */
  302. END PROCEDURE.
  303. /* _UIB-CODE-BLOCK-END */
  304. &ANALYZE-RESUME
  305. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE copyRecord vTableWin
  306. PROCEDURE copyRecord :
  307. /*------------------------------------------------------------------------------
  308. Purpose: Super Override
  309. Parameters:
  310. Notes:
  311. ------------------------------------------------------------------------------*/
  312. FNeu = TRUE.
  313. FMut = TRUE.
  314. FCopy = TRUE.
  315. RUN SUPER.
  316. END PROCEDURE.
  317. /* _UIB-CODE-BLOCK-END */
  318. &ANALYZE-RESUME
  319. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE deleteRecord vTableWin
  320. PROCEDURE deleteRecord :
  321. /*------------------------------------------------------------------------------
  322. Purpose: Super Override
  323. Parameters:
  324. Notes:
  325. ------------------------------------------------------------------------------*/
  326. DEF VAR Ja AS LOG NO-UNDO.
  327. Ja = DYNAMIC-FUNCTION( 'ANTWORT_JA':U, INPUT 1000 ).
  328. IF NOT Ja THEN DO:
  329. PUBLISH 'TOOLBAR' ( INPUT 'CANCEL':U ).
  330. RETURN NO-APPLY.
  331. END.
  332. RUN SUPER.
  333. /* Code placed here will execute AFTER standard behavior. */
  334. END PROCEDURE.
  335. /* _UIB-CODE-BLOCK-END */
  336. &ANALYZE-RESUME
  337. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disableFields vTableWin
  338. PROCEDURE disableFields :
  339. /*------------------------------------------------------------------------------
  340. Purpose: Super Override
  341. Parameters:
  342. Notes:
  343. ------------------------------------------------------------------------------*/
  344. DEFINE INPUT PARAMETER pcFieldType AS CHARACTER NO-UNDO.
  345. DO WITH FRAME {&FRAME-NAME}:
  346. END.
  347. RUN SUPER( INPUT pcFieldType).
  348. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  349. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  350. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  351. RUN FARBE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT 15 ).
  352. END.
  353. DO WITH FRAME {&FRAME-NAME}:
  354. END.
  355. END PROCEDURE.
  356. /* _UIB-CODE-BLOCK-END */
  357. &ANALYZE-RESUME
  358. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI vTableWin _DEFAULT-DISABLE
  359. PROCEDURE disable_UI :
  360. /*------------------------------------------------------------------------------
  361. Purpose: DISABLE the User Interface
  362. Parameters: <none>
  363. Notes: Here we clean-up the user-interface by deleting
  364. dynamic widgets we have created and/or hide
  365. frames. This procedure is usually called when
  366. we are ready to "clean-up" after running.
  367. ------------------------------------------------------------------------------*/
  368. /* Hide all frames. */
  369. HIDE FRAME F-Main.
  370. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
  371. END PROCEDURE.
  372. /* _UIB-CODE-BLOCK-END */
  373. &ANALYZE-RESUME
  374. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE displayFields vTableWin
  375. PROCEDURE displayFields :
  376. /*------------------------------------------------------------------------------
  377. Purpose: Super Override
  378. Parameters:
  379. Notes:
  380. ------------------------------------------------------------------------------*/
  381. DEFINE INPUT PARAMETER pcColValues AS CHARACTER NO-UNDO.
  382. IF FCancel THEN pcColValues = OldColValues.
  383. IF NOT FNeu THEN OldColValues = pcColValues.
  384. OldColList = DYNAMIC-FUNCTION('getDisplayedFields':U).
  385. IF FNeu THEN RUN FEHLWERTE ( INPUT-OUTPUT pcColValues ).
  386. DO WITH FRAME {&FRAME-NAME}:
  387. END.
  388. RUN SUPER( INPUT pcColValues).
  389. FCancel = FALSE.
  390. DO WITH FRAME {&FRAME-NAME}:
  391. END.
  392. END PROCEDURE.
  393. /* _UIB-CODE-BLOCK-END */
  394. &ANALYZE-RESUME
  395. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableFields vTableWin
  396. PROCEDURE enableFields :
  397. /*------------------------------------------------------------------------------
  398. Purpose: Super Override
  399. Parameters:
  400. Notes:
  401. ------------------------------------------------------------------------------*/
  402. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  403. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT FALSE ).
  404. IF NUM-ENTRIES('{&NUR_LESEN}', ',') > 0 THEN DO:
  405. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&NUR_LESEN}', INPUT TRUE ).
  406. END.
  407. DO WITH FRAME {&FRAME-NAME}:
  408. END.
  409. IF FNeu THEN RETURN.
  410. IF NUM-ENTRIES('{&KEY_FELDER}', ',') > 0 THEN DO:
  411. RUN SCHUETZE_FELDER ( INPUT Fenster, INPUT '{&KEY_FELDER}', INPUT TRUE ).
  412. END.
  413. END PROCEDURE.
  414. /* _UIB-CODE-BLOCK-END */
  415. &ANALYZE-RESUME
  416. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject vTableWin
  417. PROCEDURE enableObject :
  418. /*------------------------------------------------------------------------------
  419. Purpose: Super Override
  420. Parameters:
  421. Notes:
  422. ------------------------------------------------------------------------------*/
  423. RUN SUPER.
  424. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  425. IF SAktiv THEN DO:
  426. RUN READONLY_FELDER ( INPUT Fenster, INPUT '{&ENABLED-FIELDS}', INPUT TRUE ).
  427. END.
  428. END PROCEDURE.
  429. /* _UIB-CODE-BLOCK-END */
  430. &ANALYZE-RESUME
  431. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_FELD_TEST vTableWin
  432. PROCEDURE ENTRY_FELD_TEST :
  433. /*------------------------------------------------------------------------------
  434. Purpose:
  435. Parameters: <none>
  436. Notes:
  437. ------------------------------------------------------------------------------*/
  438. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  439. DEF VAR FeldName AS CHAR NO-UNDO.
  440. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  441. FeldName = ''.
  442. FeldInhalt = ''.
  443. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  444. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  445. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  446. IF ipHandle:TYPE = 'LITERAL' THEN RETURN ''.
  447. FeldName = ipHandle:NAME.
  448. IF ipHandle:TYPE = 'FILL-IN' OR
  449. ipHandle:TYPE = 'COMBO-BOX' OR
  450. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  451. RETURN ''.
  452. END PROCEDURE.
  453. /* _UIB-CODE-BLOCK-END */
  454. &ANALYZE-RESUME
  455. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FEHLWERTE vTableWin
  456. PROCEDURE FEHLWERTE :
  457. /*------------------------------------------------------------------------------
  458. Purpose:
  459. Parameters: <none>
  460. Notes:
  461. ------------------------------------------------------------------------------*/
  462. DEF INPUT-OUTPUT PARAMETER pcColValues AS CHAR NO-UNDO.
  463. DEF VAR FwFelder AS CHAR NO-UNDO.
  464. DEF VAR FwFeld AS CHAR NO-UNDO.
  465. DEF VAR FwValue AS CHAR NO-UNDO.
  466. DEF VAR ix AS INT NO-UNDO.
  467. DEF VAR i1 AS INT NO-UNDO.
  468. IF FCancel THEN RETURN.
  469. GET-KEY-VALUE SECTION 'Fw???????' KEY ? VALUE FwFelder.
  470. IF NOT FCopy THEN DO:
  471. DO ix = 1 TO NUM-ENTRIES(FwFelder, ','):
  472. FwFeld = ENTRY (ix , FwFelder , ',').
  473. i1 = LOOKUP(FwFeld, oldColList, ',') + 1.
  474. IF i1 < 2 THEN NEXT.
  475. GET-KEY-VALUE SECTION 'Fw???????' KEY FwFeld VALUE FwValue.
  476. ENTRY(i1, pcColValues, CHR(1)) = FwValue NO-ERROR.
  477. END.
  478. DO WHILE fCodeI:
  479. DO ix = 1 TO 999:
  480. IF NOT CAN-FIND ( FIRST Tabel WHERE Tabel.Firma = Firma
  481. AND Tabel.RecArt = RecArt
  482. AND Tabel.CodeI = ix
  483. AND Tabel.CodeC = '' NO-LOCK)
  484. THEN LEAVE.
  485. END.
  486. i1 = LOOKUP('CodeI', oldColList, ',') + 1.
  487. ENTRY(i1, pcColValues, CHR(1)) = STRING(ix) NO-ERROR.
  488. LEAVE.
  489. END.
  490. END.
  491. IF FCopy THEN DO:
  492. END.
  493. END PROCEDURE.
  494. /* _UIB-CODE-BLOCK-END */
  495. &ANALYZE-RESUME
  496. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FORMAT_VIEWER vTableWin
  497. PROCEDURE FORMAT_VIEWER :
  498. /*------------------------------------------------------------------------------
  499. Purpose:
  500. Parameters: <none>
  501. Notes:
  502. ------------------------------------------------------------------------------*/
  503. DEF INPUT PARAMETER ipParam AS CHAR NO-UNDO.
  504. DEF INPUT PARAMETER ipFirma AS CHAR NO-UNDO.
  505. DEF INPUT PARAMETER ipSprcd AS INT NO-UNDO.
  506. DEF VAR i1 AS INT NO-UNDO.
  507. DEF VAR ib AS INT NO-UNDO.
  508. DEF VAR ie AS INT NO-UNDO.
  509. DEF VAR cFelder AS CHAR NO-UNDO.
  510. DEF VAR xFeld AS CHAR NO-UNDO.
  511. DEF VAR xLabel AS CHAR NO-UNDO.
  512. DEF VAR xFormat AS CHAR NO-UNDO.
  513. DEF VAR dLength AS DEC NO-UNDO.
  514. DEF VAR sFeld AS CHAR NO-UNDO.
  515. DEF VAR sLabel AS CHAR NO-UNDO.
  516. DEF VAR sFormat AS CHAR NO-UNDO.
  517. DEF VAR sLength AS CHAR NO-UNDO.
  518. DEF VAR hTabOrder AS HANDLE NO-UNDO.
  519. DEF VAR hFelder AS HANDLE NO-UNDO.
  520. DEF VAR xBeg AS DEC NO-UNDO INIT 20.
  521. DEF VAR xPos AS DEC NO-UNDO INIT 20.
  522. DEF VAR yPos AS DEC NO-UNDO INIT 1.50.
  523. DEF VAR yCode AS DEC NO-UNDO INIT 0.
  524. DEF VAR yBezk AS DEC NO-UNDO INIT 0.
  525. DEF VAR yBezL AS DEC NO-UNDO INIT 0.
  526. DEF VAR yInt AS DEC NO-UNDO INIT 0.
  527. DEF VAR yDec AS DEC NO-UNDO INIT 0.
  528. DEF VAR MaxBreite AS DEC NO-UNDO INIT 0.
  529. DEF VAR MaxHoehe AS DEC NO-UNDO INIT 0.
  530. Firma = ipFirma.
  531. Sprcd = ipSprcd.
  532. ErstFeld = ''.
  533. LetztFeld = ''.
  534. fCodeI = FALSE.
  535. DO i1 = 1 TO NUM-ENTRIES(ipParam, ';'):
  536. xFeld = ''.
  537. xLabel = ''.
  538. xFormat = ''.
  539. cFelder = ENTRY(i1, ipParam, ';') NO-ERROR.
  540. xFeld = ENTRY(1 , cFelder, ',') NO-ERROR.
  541. xLabel = ENTRY(2 , cFelder, ',') NO-ERROR.
  542. xFormat = ENTRY(3 , cFelder, ',') NO-ERROR.
  543. IF xFeld = 'CodeI' THEN fCodeI = TRUE.
  544. DO WHILE TRUE:
  545. IF xFormat <> '' THEN LEAVE.
  546. CASE xFeld:
  547. WHEN 'Firma' THEN xFormat = 'x(08)'.
  548. WHEN 'RecArt' THEN xFormat = 'x(04)'.
  549. WHEN 'Sprcd' THEN xFormat = '9'.
  550. WHEN 'CodeI' THEN xFormat = '999999'.
  551. WHEN 'CodeC' THEN xFormat = 'x(08)'.
  552. WHEN 'Bez1' THEN xFormat = 'x(30)'.
  553. WHEN 'Bez2' THEN xFormat = 'x(30)'.
  554. WHEN 'BezL' THEN xFormat = 'x(80)'.
  555. WHEN 'Int_1' THEN xFormat = 'zzz,zz9'.
  556. WHEN 'Int_2' THEN xFormat = 'zzz,zz9'.
  557. WHEN 'Int_3' THEN xFormat = 'zzz,zz9'.
  558. WHEN 'Dec_1' THEN xFormat = 'zzz,zz9.99'.
  559. WHEN 'Dec_2' THEN xFormat = 'zzz,zz9.99'.
  560. WHEN 'Dec_3' THEN xFormat = 'zzz,zz9.99'.
  561. END CASE.
  562. LEAVE.
  563. END.
  564. DO WHILE TRUE:
  565. dLength = LENGTH(xFormat).
  566. ib = INDEX(xFormat, '(').
  567. IF ib = 0 THEN LEAVE.
  568. ib = ib + 1.
  569. ie = INDEX(xFormat, ')').
  570. IF ie = 0 THEN LEAVE.
  571. ie = ie - ib.
  572. dLength = DECIMAL(SUBSTRING(xFormat,ib,ie)).
  573. LEAVE.
  574. END.
  575. sFeld = sFeld + xFeld .
  576. sLabel = sLabel + xLabel.
  577. sFormat = sFormat + xFormat.
  578. sLength = sLength + STRING(dLength).
  579. IF i1 = NUM-ENTRIES(ipParam, ';') THEN LEAVE.
  580. sFeld = sFeld + ';'.
  581. sLabel = sLabel + ';'.
  582. sFormat = sFormat + ';'.
  583. sLength = sLength + ';'.
  584. END.
  585. IF NOT VALID-HANDLE(hFelder) THEN hFelder = FRAME {&FRAME-NAME}:CURRENT-ITERATION.
  586. ASSIGN hFelder = hFelder:FIRST-CHILD.
  587. FOR EACH THandle:
  588. DELETE THandle.
  589. END.
  590. DO WHILE VALID-HANDLE (hFelder) :
  591. DO WHILE TRUE:
  592. IF hFelder:TYPE = 'LITERAL' THEN LEAVE.
  593. IF hFelder:TYPE = 'RECTANGLE' THEN LEAVE.
  594. i1 = LOOKUP(hFelder:NAME, sFeld, ';').
  595. IF i1 = 0 THEN DO:
  596. hFelder:HIDDEN = TRUE.
  597. hFelder:TAB-STOP = FALSE.
  598. hFelder:SENSITIVE = FALSE.
  599. hFelder:READ-ONLY = TRUE.
  600. LEAVE.
  601. END.
  602. CREATE THandle.
  603. ASSIGN THandle.TNr = i1
  604. THandle.TFeld = hFelder
  605. THandle.TLabel = ENTRY(i1, sLabel , ';')
  606. THandle.TFormat = ENTRY(i1, sFormat, ';')
  607. THandle.TLength = DECIMAL(ENTRY(i1, sLength, ';'))
  608. THandle.TType = hFelder:DATA-TYPE.
  609. CASE THandle.TType:
  610. WHEN 'CHARACTER' THEN DO:
  611. IF THandle.TLength < 6 THEN THandle.TLength = THandle.TLength * 2.00.
  612. ELSE
  613. IF THandle.TLength < 10 THEN THandle.TLength = THandle.TLength * 1.75.
  614. ELSE
  615. IF THandle.TLength < 15 THEN THandle.TLength = THandle.TLength * 1.50.
  616. ELSE
  617. IF THandle.TLength < 20 THEN THandle.TLength = THandle.TLength * 1.25.
  618. ELSE THandle.TLength = THandle.TLength + 2.
  619. END.
  620. WHEN 'INTEGER' THEN DO:
  621. IF THandle.TLength < 3 THEN THandle.TLength = THandle.TLength * 2.22.
  622. ELSE
  623. IF THandle.TLength < 5 THEN THandle.TLength = THandle.TLength * 2.00.
  624. ELSE
  625. IF THandle.TLength < 7 THEN THandle.TLength = THandle.TLength * 1.75.
  626. ELSE THandle.TLength = THandle.TLength + 1.666.
  627. END.
  628. WHEN 'DECIMAL' THEN DO:
  629. IF THandle.TLength < 3 THEN THandle.TLength = THandle.TLength * 2.22.
  630. ELSE
  631. IF THandle.TLength < 5 THEN THandle.TLength = THandle.TLength * 2.00.
  632. ELSE
  633. IF THandle.TLength < 7 THEN THandle.TLength = THandle.TLength * 1.75.
  634. ELSE THandle.TLength = THandle.TLength + 1.666.
  635. END.
  636. END CASE.
  637. ASSIGN hFelder:HIDDEN = FALSE
  638. hFelder:TAB-STOP = TRUE
  639. hFelder:SENSITIVE = TRUE
  640. hFelder:READ-ONLY = FALSE
  641. hFelder:LABEL = THandle.TLabel
  642. hFelder:FORMAT = THandle.TFormat
  643. hFelder:WIDTH = THandle.TLength.
  644. LEAVE.
  645. END.
  646. ASSIGN hFelder = hFelder:NEXT-SIBLING.
  647. END.
  648. hTabOrder = ?.
  649. FOR EACH THandle BY THandle.TNr:
  650. hFelder = THandle.TFeld.
  651. IF VALID-HANDLE(hTabOrder) THEN hFelder:MOVE-AFTER-TAB-ITEM(hTabOrder).
  652. hTabOrder = hFelder.
  653. IF hFelder:NAME BEGINS 'Code' THEN DO:
  654. IF yCode = 0 THEN DO:
  655. yCode = yPos.
  656. yPos = yPos + 1.
  657. END.
  658. THandle.TY = yCode.
  659. END.
  660. IF hFelder:NAME = 'Bez1' OR
  661. hFelder:NAME = 'Bez2' THEN DO:
  662. IF yBezK = 0 THEN DO:
  663. yBezK = yPos.
  664. yPos = yPos + 1.
  665. END.
  666. THandle.TY = yBezK.
  667. END.
  668. IF hFelder:NAME = 'BezL' THEN DO:
  669. IF yBezL = 0 THEN DO:
  670. yBezL = yPos.
  671. yPos = yPos + 1.
  672. END.
  673. THandle.TY = yBezL.
  674. END.
  675. IF hFelder:NAME BEGINS 'Int' THEN DO:
  676. IF yInt = 0 THEN DO:
  677. yInt = yPos.
  678. yPos = yPos + 1.
  679. END.
  680. THandle.TY = yInt.
  681. END.
  682. IF hFelder:NAME BEGINS 'Dec' THEN DO:
  683. IF yDec = 0 THEN DO:
  684. yDec = yPos.
  685. yPos = yPos + 1.
  686. END.
  687. THandle.TY = yDec.
  688. END.
  689. IF ErstFeld = '' THEN ErstFeld = hFelder:NAME.
  690. LetztFeld = hFelder:NAME.
  691. END.
  692. FOR EACH THandle BREAK BY THandle.TY
  693. BY THandle.TNr :
  694. hFelder = THandle.TFeld.
  695. IF FIRST-OF ( THandle.TY ) THEN xPos = XBeg.
  696. THandle.TX = xPos.
  697. THandle.TFx = xPos.
  698. IF hFelder:NAME BEGINS 'Code' THEN xPos = 72.
  699. IF hFelder:NAME BEGINS 'Bez' THEN xPos = 72.
  700. IF hFelder:NAME BEGINS 'Int' THEN xPos = xPos + 35.
  701. IF hFelder:NAME BEGINS 'Dec' THEN xPos = xPos + 35.
  702. IF THandle.TX = xBeg THEN THandle.TFx = 3.
  703. IF THandle.TX = 72 THEN THandle.TFx = 55.
  704. IF THandle.TX = 55 THEN THandle.TFx = 45.
  705. IF THandle.TX = 90 THEN THandle.TFx = 80.
  706. END.
  707. MaxBreite = 0.
  708. MaxHoehe = 0.
  709. FOR EACH THandle BREAK BY THandle.TY
  710. BY THandle.TNr :
  711. hFelder = THandle.TFeld.
  712. hFelder:ROW = THandle.TY.
  713. hFelder:COLUMN = THandle.TX.
  714. IF (hFelder:FRAME-COL + hFelder:WIDTH-CHAR) > MaxBreite
  715. THEN MaxBreite = hFelder:COLUMN + hFelder:WIDTH-CHAR.
  716. IF hFelder:FRAME-ROW > MaxHoehe THEN MaxHoehe = hFelder:FRAME-ROW.
  717. hFelder = hFelder:SIDE-LABEL-HANDLE.
  718. hFelder:ROW = THandle.TY.
  719. hFelder:COLUMN = THandle.TFx.
  720. END.
  721. RECT-Viewer:WIDTH-CHAR = MaxBreite.
  722. RECT-Viewer:HEIGHT-CHAR = MaxHoehe + 0.2.
  723. RETURN STRING(RECT-Viewer:WIDTH-CHAR) + ';'
  724. + STRING(RECT-Viewer:HEIGHT-CHAR).
  725. END PROCEDURE.
  726. /* _UIB-CODE-BLOCK-END */
  727. &ANALYZE-RESUME
  728. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LEAVE_FELD_TEST vTableWin
  729. PROCEDURE LEAVE_FELD_TEST :
  730. /*------------------------------------------------------------------------------
  731. Purpose:
  732. Parameters: <none>
  733. Notes:
  734. ------------------------------------------------------------------------------*/
  735. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  736. DEF VAR FeldName AS CHAR NO-UNDO.
  737. DEF VAR FeldInhalt AS CHAR NO-UNDO.
  738. DEF VAR ix AS INT NO-UNDO.
  739. DEF VAR LKY AS INT NO-UNDO.
  740. DEF VAR hLEAVE AS HANDLE NO-UNDO.
  741. DEF VAR hENTER AS HANDLE NO-UNDO.
  742. DEF VAR Daten AS CHAR NO-UNDO.
  743. IF FMut = FALSE THEN RETURN ''.
  744. LKY = LASTKEY.
  745. hENTER = LAST-EVENT:WIDGET-ENTER.
  746. hLEAVE = LAST-EVENT:WIDGET-LEAVE.
  747. FeldName = ''.
  748. FeldInhalt = ''.
  749. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  750. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  751. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  752. IF ipHandle:TYPE = 'LITERAL' THEN RETURN ''.
  753. FeldName = ipHandle:NAME.
  754. IF ipHandle:TYPE = 'FILL-IN' OR
  755. ipHandle:TYPE = 'COMBO-BOX' OR
  756. ipHandle:TYPE = 'TOGGLE-BOX' THEN FeldInhalt = ipHandle:SCREEN-VALUE.
  757. DO WHILE FNeu:
  758. CASE FeldName:
  759. WHEN 'CodeI' THEN DO:
  760. RUN TEST_FIND ( INPUT SELF ).
  761. IF RETURN-VALUE = 'FIND' THEN DO:
  762. RUN FEHLER ( INPUT 1023 ).
  763. RETURN 'ERROR'.
  764. END.
  765. END.
  766. END CASE.
  767. LEAVE.
  768. END.
  769. IF FeldName = LetztFeld THEN DO:
  770. DO WHILE TRUE:
  771. IF KEYFUNCTION(LKY) = 'TAB' THEN LEAVE.
  772. IF KEYFUNCTION(LKY) = 'RETURN' THEN LEAVE.
  773. IF KEYFUNCTION(LKY) = 'F9' THEN LEAVE.
  774. RETURN ''.
  775. END.
  776. APPLY 'ALT-S'.
  777. RETURN 'APPLY'.
  778. END.
  779. RETURN ''.
  780. END PROCEDURE.
  781. /* _UIB-CODE-BLOCK-END */
  782. &ANALYZE-RESUME
  783. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RETURN_FELD vTableWin
  784. PROCEDURE RETURN_FELD :
  785. /*------------------------------------------------------------------------------
  786. Purpose:
  787. Parameters: <none>
  788. Notes:
  789. ------------------------------------------------------------------------------*/
  790. DEF INPUT PARAMETER ipHandle AS HANDLE NO-UNDO.
  791. DEF VAR FeldName AS CHAR NO-UNDO.
  792. IF FMut = FALSE THEN RETURN ''.
  793. IF NOT VALID-HANDLE(ipHandle) THEN RETURN ''.
  794. IF ipHandle:TYPE = 'FRAME' THEN RETURN ''.
  795. IF ipHandle:TYPE = 'WINDOW' THEN RETURN ''.
  796. FeldName = ipHandle:NAME.
  797. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  798. RETURN 'TAB'.
  799. END.
  800. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  801. RETURN 'TAB'.
  802. END.
  803. FeldName = 'rowObject.' + FeldName.
  804. IF LOOKUP(FeldName, '{&ENABLED-FIELDS}', ' ') > 0 THEN DO:
  805. RETURN 'TAB'.
  806. END.
  807. IF LOOKUP(FeldName, '{&ENABLED-OBJECTS}', ' ') > 0 THEN DO:
  808. RETURN 'TAB'.
  809. END.
  810. RETURN ''.
  811. END PROCEDURE.
  812. /* _UIB-CODE-BLOCK-END */
  813. &ANALYZE-RESUME
  814. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SETRECTBREITE vTableWin
  815. PROCEDURE SETRECTBREITE :
  816. /*------------------------------------------------------------------------------
  817. Purpose:
  818. Parameters: <none>
  819. Notes:
  820. ------------------------------------------------------------------------------*/
  821. DEF INPUT PARAMETER ipBreite AS DEC NO-UNDO.
  822. DO WITH FRAME {&FRAME-NAME}:
  823. RECT-Viewer:WIDTH-CHAR = ipBreite.
  824. END.
  825. END PROCEDURE.
  826. /* _UIB-CODE-BLOCK-END */
  827. &ANALYZE-RESUME
  828. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TEST_FIND vTableWin
  829. PROCEDURE TEST_FIND :
  830. /*------------------------------------------------------------------------------
  831. Purpose:
  832. Parameters: <none>
  833. Notes:
  834. ------------------------------------------------------------------------------*/
  835. DEF INPUT PARAMETER ipFeld AS HANDLE NO-UNDO.
  836. CASE ipFeld:NAME:
  837. WHEN 'CodeI' THEN DO:
  838. FIND Tabel USE-INDEX Tabel-k2
  839. WHERE Tabel.Firma = Firma
  840. AND Tabel.RecArt = RecArt
  841. AND Tabel.CodeI = INTEGER(ipFeld:SCREEN-VALUE)
  842. AND Tabel.CodeC = ''
  843. AND Tabel.Sprcd = Sprcd NO-LOCK NO-ERROR.
  844. END.
  845. WHEN 'CodeC' THEN DO:
  846. FIND Tabel USE-INDEX Tabel-k1
  847. WHERE Tabel.Firma = Firma
  848. AND Tabel.RecArt = RecArt
  849. AND Tabel.CodeC = ipFeld:SCREEN-VALUE
  850. AND Tabel.CodeI = 0
  851. AND Tabel.Sprcd = Sprcd NO-LOCK NO-ERROR.
  852. END.
  853. END CASE.
  854. IF AVAILABLE Tabel THEN RETURN 'FIND'.
  855. ELSE RETURN 'NOTFIND'.
  856. END PROCEDURE.
  857. /* _UIB-CODE-BLOCK-END */
  858. &ANALYZE-RESUME
  859. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateMode vTableWin
  860. PROCEDURE updateMode :
  861. /*------------------------------------------------------------------------------
  862. Purpose: Super Override
  863. Parameters:
  864. Notes:
  865. ------------------------------------------------------------------------------*/
  866. DEFINE INPUT PARAMETER pcMode AS CHARACTER NO-UNDO.
  867. CASE pcMode:
  868. WHEN 'updateBegin' THEN DO:
  869. END.
  870. WHEN 'updateEnd' THEN DO:
  871. END.
  872. END.
  873. RUN SUPER( INPUT pcMode).
  874. CASE pcMode:
  875. WHEN 'updateBegin' THEN DO:
  876. FMut = TRUE.
  877. END.
  878. WHEN 'updateEnd' THEN DO:
  879. FNeu = FALSE.
  880. FMut = FALSE.
  881. FCopy = FALSE.
  882. END.
  883. END.
  884. END PROCEDURE.
  885. /* _UIB-CODE-BLOCK-END */
  886. &ANALYZE-RESUME
  887. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE updateRecord vTableWin
  888. PROCEDURE updateRecord :
  889. /*------------------------------------------------------------------------------
  890. Purpose: Super Override
  891. Parameters:
  892. Notes:
  893. ------------------------------------------------------------------------------*/
  894. DEF VAR iWert AS INT NO-UNDO.
  895. DEF VAR JA AS LOG INIT FALSE NO-UNDO.
  896. DEF BUFFER BArtPreis FOR ArtPreis.
  897. DO WITH FRAME {&FRAME-NAME}:
  898. rowObject.Firma:SCREEN-VALUE = Firma.
  899. rowObject.RecArt:SCREEN-VALUE = RecArt.
  900. rowObject.Sprcd:SCREEN-VALUE = STRING(Sprcd).
  901. IF rowObject.CodeI:SENSITIVE = FALSE THEN rowObject.CodeI:SCREEN-VALUE = '0'.
  902. IF rowObject.CodeC:SENSITIVE = FALSE THEN rowObject.CodeC:SCREEN-VALUE = ''.
  903. END.
  904. RUN SUPER.
  905. REPEAT TRANSACTION:
  906. IF RecArt <> 'PREGRP' THEN LEAVE.
  907. iWert = INTEGER(rowObject.Int_2:SCREEN-VALUE).
  908. IF iWert > 0 THEN LEAVE.
  909. MESSAGE 'Alle Preise mit dieser Gruppe werden auf inaktiv gesetzt!'
  910. VIEW-AS ALERT-BOX INFORMATION
  911. BUTTONS YES-NO
  912. UPDATE JA.
  913. IF NOT JA THEN LEAVE.
  914. FOR EACH ArtPreis NO-LOCK
  915. WHERE ArtPreis.Firma = Firma
  916. AND ArtPreis.Preis_Grp = INTEGER(rowObject.CodeI:SCREEN-VALUE).
  917. FIND BArtPreis WHERE RECID(BArtPreis) = RECID(ArtPreis).
  918. ASSIGN BArtPreis.Aktiv = FALSE.
  919. RELEASE BArtPreis.
  920. END.
  921. LEAVE.
  922. END.
  923. /* Code placed here will execute AFTER standard behavior. */
  924. END PROCEDURE.
  925. /* _UIB-CODE-BLOCK-END */
  926. &ANALYZE-RESUME