selectboxHandler.cls 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. /*------------------------------------------------------------------------
  2. File : queryHandler
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Wed Jul 10 18:09:37 CEST 2024
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. USING Progress.Json.ObjectModel.JsonObject FROM PROPATH.
  11. USING OpenEdge.Net.HTTP.IHttpRequest FROM PROPATH.
  12. USING System.Drawing.CharacterRange FROM ASSEMBLY.
  13. USING Progress.Json.ObjectModel.JsonArray FROM PROPATH.
  14. CLASS utilities.selectboxHandler:
  15. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  16. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  17. DEFINE TEMP-TABLE ttSelect
  18. FIELD ind AS INTEGER SERIALIZE-HIDDEN
  19. FIELD cValue AS CHARACTER SERIALIZE-NAME 'value'
  20. FIELD cLabel AS CHARACTER SERIALIZE-NAME 'label'.
  21. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  22. DEFINE VARIABLE httSelectBuff AS HANDLE NO-UNDO.
  23. DEFINE TEMP-TABLE ttParam
  24. FIELD company AS CHARACTER
  25. FIELD user_name AS CHARACTER
  26. FIELD table_name AS CHARACTER
  27. FIELD field_name AS CHARACTER
  28. FIELD language_id AS INTEGER
  29. FIELD field_value AS CHARACTER.
  30. DEFINE VARIABLE httParam AS HANDLE NO-UNDO.
  31. DEFINE VARIABLE httParamBuff AS HANDLE NO-UNDO.
  32. /*------------------------------------------------------------------------------
  33. Purpose:
  34. Notes:
  35. ------------------------------------------------------------------------------*/
  36. METHOD PUBLIC HANDLE getSelboxCompany(
  37. INPUT cFileName AS CHARACTER
  38. ):
  39. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  40. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  41. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  42. cttBufferName = SUBSTITUTE('&1_company', cFileName).
  43. CREATE TEMP-TABLE httSelect.
  44. httSelect:ADD-NEW-FIELD('value', 'character').
  45. httSelect:ADD-NEW-FIELD('label', 'character').
  46. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  47. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  48. FOR EACH companies NO-LOCK
  49. WHERE companies.active :
  50. httBuffer:BUFFER-CREATE ().
  51. ASSIGN
  52. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = companies.company
  53. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = companies.company_name.
  54. END.
  55. RETURN httBuffer.
  56. END METHOD.
  57. /*------------------------------------------------------------------------------
  58. Purpose:
  59. Notes:
  60. ------------------------------------------------------------------------------*/
  61. METHOD PUBLIC HANDLE getSelboxLanguage(
  62. INPUT cFileName AS CHARACTER
  63. ):
  64. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  65. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  66. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  67. cttBufferName = SUBSTITUTE('&1_language_id', cFileName).
  68. CREATE TEMP-TABLE httSelect.
  69. httSelect:ADD-NEW-FIELD('value', 'integer' ).
  70. httSelect:ADD-NEW-FIELD('label', 'character' ).
  71. httSelect:TEMP-TABLE-PREPARE ('cttBufferName').
  72. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  73. FOR EACH languages NO-LOCK:
  74. httBuffer:BUFFER-CREATE ().
  75. ASSIGN
  76. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = languages.language_id
  77. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = languages.language_name.
  78. END.
  79. RETURN httBuffer.
  80. END METHOD.
  81. /*------------------------------------------------------------------------------
  82. Purpose:
  83. Notes:
  84. ------------------------------------------------------------------------------*/
  85. METHOD PUBLIC HANDLE getSelboxTables(
  86. INPUT cFileName AS CHARACTER
  87. ):
  88. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  89. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  90. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  91. cttBufferName = SUBSTITUTE('&1_table_name', cFileName).
  92. CREATE TEMP-TABLE httSelect.
  93. httSelect:ADD-NEW-FIELD('value', 'character' ).
  94. httSelect:ADD-NEW-FIELD('label', 'character' ).
  95. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  96. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  97. httBuffer:BUFFER-CREATE ().
  98. ASSIGN
  99. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = 'table'
  100. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = 'Default-Value (table)'.
  101. FOR EACH Ge_MIS._File NO-LOCK
  102. WHERE NOT Ge_MIS._File._File-Name BEGINS '_'
  103. AND NOT Ge_MIS._File._File-Name BEGINS 'SYS':
  104. httBuffer:BUFFER-CREATE ().
  105. ASSIGN
  106. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = Ge_MIS._File._File-Name
  107. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = Ge_MIS._File._File-Name.
  108. END.
  109. FOR EACH FRAMEWORK._File NO-LOCK
  110. WHERE NOT FRAMEWORK._File._File-Name BEGINS '_'
  111. AND NOT FRAMEWORK._File._File-Name BEGINS 'SYS':
  112. httBuffer:BUFFER-CREATE ().
  113. ASSIGN
  114. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = FRAMEWORK._File._File-Name
  115. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = FRAMEWORK._File._File-Name.
  116. END.
  117. RETURN httBuffer.
  118. END METHOD.
  119. /*------------------------------------------------------------------------------
  120. Purpose:
  121. Notes:
  122. ------------------------------------------------------------------------------*/
  123. METHOD PUBLIC HANDLE getSelboxUsers(
  124. INPUT cFileName AS CHARACTER
  125. ):
  126. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  127. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  128. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  129. cttBufferName = SUBSTITUTE('&1_user_name', cFileName).
  130. CREATE TEMP-TABLE httSelect.
  131. httSelect:ADD-NEW-FIELD('value', 'character' ).
  132. httSelect:ADD-NEW-FIELD('label', 'character' ).
  133. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  134. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  135. FOR EACH users NO-LOCK:
  136. httBuffer:BUFFER-CREATE ().
  137. ASSIGN
  138. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = users.user_name
  139. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = users.display_name.
  140. END.
  141. RETURN httBuffer.
  142. END METHOD.
  143. /*------------------------------------------------------------------------------
  144. Purpose:
  145. Notes:
  146. ------------------------------------------------------------------------------*/
  147. METHOD PUBLIC VOID getSelectBoxContacts(
  148. INPUT iAddress_Id AS INT64 ,
  149. INPUT oJsonIdent AS JsonObject,
  150. OUTPUT oJsonBoxEval AS JsonArray
  151. ):
  152. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  153. DEFINE VARIABLE cCompany AS CHARACTER NO-UNDO.
  154. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  155. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  156. cCompany = oJsonIdent:GetCharacter('company').
  157. cttBufferName = 'contact_persons'.
  158. CREATE TEMP-TABLE httSelect.
  159. httSelect:ADD-NEW-FIELD('value', 'character' ).
  160. httSelect:ADD-NEW-FIELD('label', 'character' ).
  161. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  162. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  163. FOR EACH contact_persons NO-LOCK
  164. WHERE contact_persons.company = cCompany
  165. AND contact_persons.address_id = iAddress_id,
  166. FIRST addresses NO-LOCK
  167. WHERE addresses.address_id = iAddress_Id:
  168. httBuffer:BUFFER-CREATE ().
  169. ASSIGN
  170. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = contact_persons.contact_id
  171. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = SUBSTITUTE('(&1) &2', contact_persons.contact_id, contact_persons.address_display).
  172. END.
  173. /* httBuffer:SERIALIZE-NAME = 'cFileName'.*/
  174. oJsonBoxEval = NEW JsonArray().
  175. httBuffer:WRITE-JSON('JsonArray', oJsonBoxEval).
  176. RETURN.
  177. END METHOD.
  178. /*------------------------------------------------------------------------------
  179. Purpose:
  180. Notes:
  181. ------------------------------------------------------------------------------*/
  182. METHOD PUBLIC VOID getSelectBoxCountry(
  183. INPUT iLanguage_Id AS INTEGER ,
  184. INPUT cFile_Name AS CHARACTER ,
  185. OUTPUT oJsonBoxEval AS JsonArray
  186. ):
  187. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  188. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  189. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  190. cttBufferName = SUBSTITUTE('&1_country_code', cFile_Name).
  191. CREATE TEMP-TABLE httSelect.
  192. httSelect:ADD-NEW-FIELD('value', 'character' ).
  193. httSelect:ADD-NEW-FIELD('label', 'character' ).
  194. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  195. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  196. FOR EACH countries NO-LOCK
  197. WHERE countries.language_id = iLanguage_id:
  198. httBuffer:BUFFER-CREATE ().
  199. ASSIGN
  200. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = countries.country_code
  201. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = countries.country_name.
  202. END.
  203. /* httBuffer:SERIALIZE-NAME = 'cFileName'.*/
  204. oJsonBoxEval = NEW JsonArray().
  205. httBuffer:WRITE-JSON('JsonArray', oJsonBoxEval).
  206. RETURN.
  207. END METHOD.
  208. /*------------------------------------------------------------------------------
  209. Purpose:
  210. Notes:
  211. ------------------------------------------------------------------------------*/
  212. METHOD PUBLIC VOID getSelectBoxData(
  213. INPUT oJsonIdent AS JsonObject,
  214. INPUT cField_Name AS CHARACTER,
  215. OUTPUT oJsonBox AS JsonArray
  216. ):
  217. DEFINE VARIABLE httParam AS HANDLE NO-UNDO.
  218. DEFINE VARIABLE httParamBuff AS HANDLE NO-UNDO.
  219. DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
  220. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  221. DEFINE VARIABLE httSelectBuff AS HANDLE NO-UNDO.
  222. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  223. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  224. DEFINE VARIABLE cReplace AS CHARACTER NO-UNDO.
  225. DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
  226. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
  227. DEFINE VARIABLE ccompany AS CHARACTER NO-UNDO.
  228. DEFINE VARIABLE cuser_name AS CHARACTER NO-UNDO.
  229. DEFINE VARIABLE ilanguage_id AS INTEGER NO-UNDO.
  230. DEFINE VARIABLE ctable_name AS CHARACTER NO-UNDO.
  231. DEFINE VARIABLE oJsonBoxEval AS JsonArray NO-UNDO.
  232. ccompany = oJsonIdent:GetCharacter('company') NO-ERROR.
  233. cuser_name = oJsonIdent:GetCharacter('user_name') NO-ERROR.
  234. ctable_name = oJsonIdent:GetCharacter('file_name') NO-ERROR.
  235. ilanguage_id = oJsonIdent:GetInteger ('language_id') NO-ERROR.
  236. cFileName = ENTRY(1, cField_Name, '_').
  237. cReplace = cFileName + '_'.
  238. cField_Name = REPLACE(cField_Name, cReplace, '').
  239. IF cField_Name = 'country_code' THEN
  240. DO:
  241. getSelectBoxCountry (
  242. INPUT iLanguage_id ,
  243. INPUT cFileName ,
  244. OUTPUT oJsonBoxEval
  245. ).
  246. oJsonBox = oJsonBoxEval.
  247. RETURN.
  248. END.
  249. IF cField_Name = 'salutation_code' THEN
  250. DO:
  251. getSelectBoxSalutation (
  252. INPUT iLanguage_id ,
  253. INPUT cFileName ,
  254. OUTPUT oJsonBoxEval
  255. ).
  256. oJsonBox = oJsonBoxEval.
  257. RETURN.
  258. END.
  259. //
  260. httParam = BUFFER ttParam:HANDLE.
  261. httParamBuff = TEMP-TABLE ttParam:DEFAULT-BUFFER-HANDLE.
  262. //
  263. // Felder der Temptable initial füllen
  264. //
  265. EMPTY TEMP-TABLE ttParam.
  266. EMPTY TEMP-TABLE ttSelect.
  267. CREATE ttParam.
  268. ASSIGN
  269. ttParam.company = ccompany
  270. ttParam.user_name = 'admin'
  271. ttParam.table_name = 'table'
  272. ttParam.field_name = cField_Name
  273. ttParam.language_id = iLanguage_id
  274. .
  275. //
  276. CREATE QUERY hQuery.
  277. hBuffer = BUFFER selections:HANDLE.
  278. hQuery:SET-BUFFERS(hBuffer).
  279. DO ii = 1 TO 4:
  280. // IF hQuery:QUERY-OPEN () THEN hQuery:QUERY-CLOSE ().
  281. FIND FIRST ttParam.
  282. cWhere = ''.
  283. cWhere = cWhere + SUBSTITUTE('WHERE selections.company = &1 AND selections.user_name = &2 ', QUOTER(ttParam.company) , QUOTER(ttParam.user_name) ).
  284. cWhere = cWhere + SUBSTITUTE('AND selections.table_name = &1 AND selections.field_name = &2 ', QUOTER(ttParam.table_name), QUOTER(ttParam.field_name)).
  285. cWhere = cWhere + SUBSTITUTE('AND selections.language_id = &1 ', ttParam.language_id).
  286. cWhere = 'FOR EACH selections NO-LOCK ' + cWhere.
  287. hQuery:QUERY-PREPARE(cWhere).
  288. hQuery:QUERY-OPEN ().
  289. hQuery:GET-FIRST () NO-ERROR.
  290. DO WHILE NOT hQuery:QUERY-OFF-END:
  291. CREATE ttSelect.
  292. ASSIGN
  293. ttSelect.ind = ii
  294. ttSelect.cvalue = hBuffer::field_value
  295. ttSelect.cLabel = hBuffer::field_show
  296. .
  297. hQuery:GET-NEXT () NO-ERROR.
  298. END.
  299. CASE ii:
  300. WHEN 1 THEN
  301. DO:
  302. ASSIGN
  303. ttParam.table_name = cFileName.
  304. END.
  305. WHEN 2 THEN
  306. DO:
  307. IF cuser_name = 'admin' THEN LEAVE.
  308. ASSIGN
  309. ttParam.user_name = cuser_name
  310. ttParam.table_name = 'table'.
  311. END.
  312. WHEN 3 THEN
  313. DO:
  314. ASSIGN
  315. ttParam.user_name = cuser_name
  316. ttParam.table_name = cFileName.
  317. END.
  318. END CASE.
  319. END.
  320. FOR EACH ttSelect
  321. BREAK
  322. BY ttSelect.cValue
  323. BY ttSelect.ind:
  324. IF LAST-OF ( ttSelect.cValue) THEN NEXT.
  325. DELETE ttSelect.
  326. END.
  327. httSelectBuff = TEMP-TABLE ttSelect:DEFAULT-BUFFER-HANDLE.
  328. httSelectBuff:SERIALIZE-NAME = 'cFileName'.
  329. oJsonBox = NEW JsonArray().
  330. httSelectBuff:WRITE-JSON('JsonArray', oJsonBox).
  331. RETURN.
  332. END METHOD.
  333. /*------------------------------------------------------------------------------
  334. Purpose:
  335. Notes:
  336. ------------------------------------------------------------------------------*/
  337. METHOD PUBLIC VOID getSelectBoxSalutation(
  338. INPUT iLanguage_Id AS INTEGER ,
  339. INPUT cFile_Name AS CHARACTER ,
  340. OUTPUT oJsonBoxEval AS JsonArray
  341. ):
  342. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  343. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  344. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  345. cttBufferName = SUBSTITUTE('&1_salutation_code', cFile_Name).
  346. CREATE TEMP-TABLE httSelect.
  347. httSelect:ADD-NEW-FIELD('value', 'character' ).
  348. httSelect:ADD-NEW-FIELD('label', 'character' ).
  349. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  350. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  351. FOR EACH salutations NO-LOCK
  352. WHERE salutations.language_id = iLanguage_id:
  353. httBuffer:BUFFER-CREATE ().
  354. ASSIGN
  355. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = salutations.salutation_code.
  356. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = salutations.salutation_display.
  357. END.
  358. /* httBuffer:SERIALIZE-NAME = 'cFileName'.*/
  359. oJsonBoxEval = NEW JsonArray().
  360. httBuffer:WRITE-JSON('JsonArray', oJsonBoxEval).
  361. RETURN.
  362. END METHOD.
  363. /*------------------------------------------------------------------------------
  364. Purpose:
  365. Notes:
  366. ------------------------------------------------------------------------------*/
  367. METHOD PUBLIC HANDLE getUserRoleSelect(
  368. INPUT ipccompany AS CHARACTER
  369. ):
  370. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  371. CREATE BUFFER httBuffer.
  372. httBuffer:ADD-NEW-FIELD ('value', 'CHARACTER').
  373. httBuffer:ADD-NEW-FIELD ('label', 'CHARACTER').
  374. httBuffer:TEMP-TABLE-PREPARE ('users_role').
  375. httBuffer:BUFFER-CREATE().
  376. ASSIGN
  377. httBuffer:BUFFER-FIELD('value'):buffer-value = 'admin'
  378. httBuffer:BUFFER-FIELD('label'):buffer-value = 'admin'.
  379. httBuffer:BUFFER-CREATE().
  380. ASSIGN
  381. httBuffer:BUFFER-FIELD('value'):buffer-value = 'user'
  382. httBuffer:BUFFER-FIELD('label'):buffer-value = 'Benutzer'.
  383. RETURN httBuffer.
  384. END METHOD.
  385. /*------------------------------------------------------------------------------
  386. Purpose:
  387. Notes:
  388. ------------------------------------------------------------------------------*/
  389. METHOD PUBLIC LOGICAL getVariableSelectBoxes(
  390. INPUT oJsonIdent AS JsonObject,
  391. OUTPUT oJsonSelectBoxes AS JsonObject
  392. ):
  393. DEFINE VARIABLE lRetVal AS LOGICAL NO-UNDO INIT FALSE.
  394. DEFINE VARIABLE ii AS INTEGER NO-UNDO.
  395. DEFINE VARIABLE cCompany AS CHARACTER NO-UNDO.
  396. DEFINE VARIABLE cFormId AS CHARACTER NO-UNDO.
  397. DEFINE VARIABLE cFormUser AS CHARACTER NO-UNDO.
  398. DEFINE VARIABLE cFieldName AS CHARACTER NO-UNDO.
  399. DEFINE VARIABLE cFileName AS CHARACTER NO-UNDO.
  400. DEFINE VARIABLE oJsonBox AS JsonArray NO-UNDO.
  401. cCompany = oJsonIdent:GetCharacter('company').
  402. cFormId = oJsonIdent:GetCharacter('formId').
  403. cFormUser = oJsonIdent:GetCharacter('formUser').
  404. oJsonSelectBoxes = NEW JsonObject().
  405. FOR EACH selectboxfields NO-LOCK
  406. WHERE selectboxfields.company = ccompany
  407. AND selectboxfields.program = cformId
  408. AND selectboxfields.user_name = cFormUser
  409. AND selectboxfields.boxfields <> '':
  410. DO ii = 1 TO NUM-ENTRIES(selectboxfields.boxfields , ';'):
  411. cFieldName = ENTRY(ii, selectboxfields.boxfields, ';').
  412. cFileName = ENTRY(1, cFieldName, '_').
  413. getSelectBoxData(
  414. INPUT oJsonIdent,
  415. INPUT cFieldName,
  416. OUTPUT oJsonBox
  417. ).
  418. // oJsonBox:WriteFile('C:\TEMP\JsonBox.json', TRUE).
  419. oJsonSelectBoxes:ADD(cFieldName, oJsonBox).
  420. // oJsonSelectBoxes:WriteFile(SUBSTITUTE('C:\TEMP\&1_JsonSelectBoxes.json', cFieldName), TRUE).
  421. END.
  422. END.
  423. lRetVal = TRUE.
  424. RETURN lRetVal.
  425. END METHOD.
  426. /*------------------------------------------------------------------------------
  427. Purpose:
  428. Notes:
  429. ------------------------------------------------------------------------------*/
  430. DESTRUCTOR PUBLIC selectboxHandler ( ):
  431. // MESSAGE 'Destructor selectboxHandler '.
  432. END DESTRUCTOR.
  433. END CLASS.