selectboxHandler.cls 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  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. CLASS utilities.selectboxHandler:
  14. DEFINE VARIABLE i1 AS INTEGER NO-UNDO.
  15. DEFINE VARIABLE i2 AS INTEGER NO-UNDO.
  16. /*------------------------------------------------------------------------------
  17. Purpose:
  18. Notes:
  19. ------------------------------------------------------------------------------*/
  20. METHOD PUBLIC HANDLE getSelboxCompany( INPUT cFileName AS CHARACTER ):
  21. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  22. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  23. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  24. cttBufferName = SUBSTITUTE('&1_company', cFileName).
  25. CREATE TEMP-TABLE httSelect.
  26. httSelect:ADD-NEW-FIELD('value', 'character').
  27. httSelect:ADD-NEW-FIELD('label', 'character').
  28. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  29. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  30. FOR EACH companies NO-LOCK
  31. WHERE companies.active :
  32. httBuffer:BUFFER-CREATE ().
  33. ASSIGN
  34. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = companies.company
  35. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = companies.company_name.
  36. END.
  37. RETURN httBuffer.
  38. END METHOD.
  39. /*------------------------------------------------------------------------------
  40. Purpose:
  41. Notes:
  42. ------------------------------------------------------------------------------*/
  43. METHOD PUBLIC HANDLE getSelboxLanguage( INPUT cFileName AS CHARACTER ):
  44. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  45. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  46. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  47. cttBufferName = SUBSTITUTE('&1_company', cFileName).
  48. CREATE TEMP-TABLE httSelect.
  49. httSelect:ADD-NEW-FIELD('value', 'integer' ).
  50. httSelect:ADD-NEW-FIELD('label', 'character' ).
  51. httSelect:TEMP-TABLE-PREPARE ('cttBufferName').
  52. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  53. FOR EACH languages NO-LOCK:
  54. httBuffer:BUFFER-CREATE ().
  55. ASSIGN
  56. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = languages.language_id
  57. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = languages.language_name.
  58. END.
  59. RETURN httBuffer.
  60. END METHOD.
  61. /*------------------------------------------------------------------------------
  62. Purpose:
  63. Notes:
  64. ------------------------------------------------------------------------------*/
  65. METHOD PUBLIC HANDLE getSelboxTables( INPUT cFileName AS CHARACTER ):
  66. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  67. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  68. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  69. cttBufferName = SUBSTITUTE('&1_table_name', cFileName).
  70. CREATE TEMP-TABLE httSelect.
  71. httSelect:ADD-NEW-FIELD('value', 'character' ).
  72. httSelect:ADD-NEW-FIELD('label', 'character' ).
  73. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  74. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  75. httBuffer:BUFFER-CREATE ().
  76. ASSIGN
  77. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = 'table'
  78. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = 'Default-Value (table)'.
  79. FOR EACH Ge_MIS._File NO-LOCK
  80. WHERE NOT Ge_MIS._File._File-Name BEGINS '_'
  81. AND NOT Ge_MIS._File._File-Name BEGINS 'SYS':
  82. httBuffer:BUFFER-CREATE ().
  83. ASSIGN
  84. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = Ge_MIS._File._File-Name
  85. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = Ge_MIS._File._File-Name.
  86. END.
  87. FOR EACH FRAMEWORK._File NO-LOCK
  88. WHERE NOT FRAMEWORK._File._File-Name BEGINS '_'
  89. AND NOT FRAMEWORK._File._File-Name BEGINS 'SYS':
  90. httBuffer:BUFFER-CREATE ().
  91. ASSIGN
  92. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = FRAMEWORK._File._File-Name
  93. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = FRAMEWORK._File._File-Name.
  94. END.
  95. RETURN httBuffer.
  96. END METHOD.
  97. /*------------------------------------------------------------------------------
  98. Purpose:
  99. Notes:
  100. ------------------------------------------------------------------------------*/
  101. METHOD PUBLIC HANDLE getSelboxUsers( INPUT cFileName AS CHARACTER ):
  102. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  103. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  104. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  105. cttBufferName = SUBSTITUTE('&1_user_name', cFileName).
  106. CREATE TEMP-TABLE httSelect.
  107. httSelect:ADD-NEW-FIELD('value', 'character' ).
  108. httSelect:ADD-NEW-FIELD('label', 'character' ).
  109. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  110. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  111. FOR EACH users NO-LOCK:
  112. httBuffer:BUFFER-CREATE ().
  113. ASSIGN
  114. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = users.user_name
  115. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = users.display_name.
  116. END.
  117. RETURN httBuffer.
  118. END METHOD.
  119. /*------------------------------------------------------------------------------
  120. Purpose:
  121. Notes:
  122. ------------------------------------------------------------------------------*/
  123. METHOD PUBLIC HANDLE getSelectBoxData(
  124. INPUT ipoIdent AS JsonObject,
  125. INPUT ipcFileName AS CHARACTER,
  126. INPUT ipcValueField AS CHARACTER,
  127. INPUT ipcLabelField AS CHARACTER
  128. ):
  129. DEFINE VARIABLE cttBufferName AS CHARACTER NO-UNDO.
  130. DEFINE VARIABLE httSelect AS HANDLE NO-UNDO.
  131. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  132. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
  133. DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
  134. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  135. DEFINE VARIABLE lcompany AS LOGICAL NO-UNDO.
  136. DEFINE VARIABLE lactive AS LOGICAL NO-UNDO.
  137. DEFINE VARIABLE lwhere AS LOGICAL NO-UNDO.
  138. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
  139. cttBufferName = SUBSTITUTE('&1_&2', ipcFileName, ipcValueField).
  140. CREATE BUFFER hBuffer FOR TABLE ipcFileName.
  141. MESSAGE cttBufferName.
  142. IF ipcFileName <> 'companies' THEN
  143. DO:
  144. hFeld = hBuffer:BUFFER-FIELD('company'):HANDLE NO-ERROR.
  145. lcompany = (IF VALID-HANDLE(hFeld) THEN TRUE ELSE FALSE).
  146. END.
  147. hFeld = hBuffer:BUFFER-FIELD('active'):HANDLE NO-ERROR.
  148. lactive = (IF VALID-HANDLE(hFeld) THEN TRUE ELSE FALSE).
  149. CREATE TEMP-TABLE httSelect.
  150. httSelect:ADD-NEW-FIELD('value', 'character').
  151. httSelect:ADD-NEW-FIELD('label', 'character').
  152. httSelect:TEMP-TABLE-PREPARE (cttBufferName).
  153. httBuffer = httSelect:DEFAULT-BUFFER-HANDLE.
  154. MESSAGE 'lcompany = ' lcompany ' lactive = ' lactive.
  155. lWhere = (IF lcompany OR lactive THEN TRUE ELSE FALSE).
  156. cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK ', ipcFileName).
  157. IF lcompany THEN
  158. DO:
  159. cWhere = cWhere + SUBSTITUTE('&1 &2.company = &3 ', (IF lWhere THEN 'WHERE' ELSE 'AND'), ipcFileName, QUOTER(ipoIdent:getCharacter('company'))).
  160. lwhere = FALSE.
  161. END.
  162. IF lactive THEN
  163. DO:
  164. cWhere = cWhere + SUBSTITUTE('&1 &2.active = &3 ', (IF lWhere THEN 'WHERE' ELSE 'AND'), ipcFileName, TRUE ).
  165. lwhere = FALSE.
  166. END.
  167. MESSAGE cWhere.
  168. CREATE QUERY hQuery.
  169. hQuery:SET-BUFFERS(hBuffer).
  170. hQuery:QUERY-PREPARE (cWhere).
  171. hQuery:QUERY-OPEN().
  172. hQuery:GET-FIRST ().
  173. DO WHILE NOT hQuery:QUERY-OFF-END:
  174. httBuffer:BUFFER-CREATE ().
  175. ASSIGN
  176. httBuffer:BUFFER-FIELD('value'):BUFFER-VALUE = hBuffer:BUFFER-FIELD(ipcValueField):BUFFER-VALUE
  177. httBuffer:BUFFER-FIELD('label'):BUFFER-VALUE = hBuffer:BUFFER-FIELD(ipcLabelField):BUFFER-VALUE.
  178. hQuery:GET-NEXT ().
  179. END.
  180. // httBuffer:WRITE-JSON('FILE', 'C:\TEMP\httBuffer.json', TRUE).
  181. RETURN httBuffer.
  182. END METHOD.
  183. /*------------------------------------------------------------------------------
  184. Purpose:
  185. Notes:
  186. ------------------------------------------------------------------------------*/
  187. METHOD PUBLIC HANDLE getUserRoleSelect(
  188. INPUT ipccompany AS CHARACTER
  189. ):
  190. DEFINE VARIABLE httBuffer AS HANDLE NO-UNDO.
  191. CREATE BUFFER httBuffer.
  192. httBuffer:ADD-NEW-FIELD ('value', 'CHARACTER').
  193. httBuffer:ADD-NEW-FIELD ('label', 'CHARACTER').
  194. httBuffer:TEMP-TABLE-PREPARE ('users_role').
  195. httBuffer:BUFFER-CREATE().
  196. ASSIGN
  197. httBuffer:BUFFER-FIELD('value'):buffer-value = 'admin'
  198. httBuffer:BUFFER-FIELD('label'):buffer-value = 'admin'.
  199. httBuffer:BUFFER-CREATE().
  200. ASSIGN
  201. httBuffer:BUFFER-FIELD('value'):buffer-value = 'user'
  202. httBuffer:BUFFER-FIELD('label'):buffer-value = 'Benutzer'.
  203. RETURN httBuffer.
  204. END METHOD.
  205. /*------------------------------------------------------------------------------
  206. Purpose:
  207. Notes:
  208. ------------------------------------------------------------------------------*/
  209. DESTRUCTOR PUBLIC selectboxHandler ( ):
  210. MESSAGE 'Destructor selectboxHandler '.
  211. /* DELETE OBJECT hQuery NO-ERROR. */
  212. /* DELETE OBJECT hBuffer NO-ERROR. */
  213. END DESTRUCTOR.
  214. END CLASS.