CreateMenuBaum.p 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. /*
  2. USING Progress.Json.ObjectModel.* FROM PROPATH.
  3. USING PROGRESS.Lang.* FROM PROPATH.
  4. DEF VAR ttMenu AS HANDLE NO-UNDO.
  5. DEF VAR hbttMenu AS HANDLE NO-UNDO.
  6. DEF VAR ttHMenu AS HANDLE NO-UNDO.
  7. DEF VAR hbttHMenu AS HANDLE NO-UNDO.
  8. DEF VAR hFeld AS HANDLE NO-UNDO.
  9. DEF VAR oJsonObject AS JsonObject.
  10. DEF VAR oJsonMenu AS jsonObject.
  11. DEF VAR oJsonSub1 AS JsonObject.
  12. DEF VAR oJsonSub2 AS JsonObject.
  13. lcString = chr(123).
  14. lcString = lcString + '"Adressverwaltung": ' + CHR(125).
  15. MESSAGE STRING(lcString)
  16. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  17. CREATE TEMP-TABLE ttMenu.
  18. ttMenu:ADD-NEW-FIELD('Dummy', 'CHARACTER').
  19. ttMenu:TEMP-TABLE-PREPARE('Adressverwaltung').
  20. hbttMenu = ttMenu:DEFAULT-BUFFER-HANDLE.
  21. CREATE TEMP-TABLE ttHMenu.
  22. ttHMenu:ADD-NEW-FIELD('Adressen', 'CHARACTER').
  23. ttHMenu:TEMP-TABLE-PREPARE('Adressen').
  24. hbttHMenu = ttHMenu:DEFAULT-BUFFER-HANDLE.
  25. hbttHMenu:BUFFER-CREATE().
  26. hFeld = hbttHMenu:BUFFER-FIELD('Adressen').
  27. hFeld:BUFFER-VALUE = 'adressen.html'.
  28. oJsonObject = NEW JsonObject().
  29. oJsonObject:READ(ttMenu).
  30. oJsonMenu = NEW JsonObject().
  31. oJsonMenu:READ(ttHMenu).
  32. hbttHMenu:FIND-FIRST().
  33. oJsonObject:ADD(hbttHMenu:NAME, hbttHMenu:BUFFER-FIELD('Adressen'):BUFFER-VALUE).
  34. oJsonObject:ADD('Debitoren', 'debitoren.html').
  35. oJsonObject:WRITE(lcString, TRUE).
  36. MESSAGE STRING(lcString)
  37. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  38. /*
  39. DEF TEMP-TABLE ttMenu NO-UNDO
  40. FIELD Dummy AS CHAR
  41. XML-NODE-TYPE "HIDDEN"
  42. .
  43. DEF TEMP-TABLE ttHauptMenu NO-UNDO
  44. XML-NODE-NAME "HIDDEN"
  45. FIELD cTitel AS CHAR
  46. FIELD ttMenu_Id AS RECID
  47. XML-NODE-TYPE "HIDDEN"
  48. .
  49. DEF TEMP-TABLE ttSubMenu1 NO-UNDO
  50. XML-NODE-NAME "HIDDEN"
  51. FIELD cTitel AS CHAR
  52. FIELD ttHauptMenu_Id AS RECID
  53. XML-NODE-TYPE "HIDDEN"
  54. .
  55. DEF TEMP-TABLE ttSubMenu2 NO-UNDO
  56. XML-NODE-NAME "HIDDEN"
  57. FIELD cTitel AS CHAR
  58. FIELD ttSubMenu1_Id AS RECID
  59. XML-NODE-TYPE "HIDDEN"
  60. .
  61. DEF TEMP-TABLE ttLink NO-UNDO
  62. XML-NODE-NAME "HIDDEN"
  63. FIELD cLink AS CHAR
  64. FIELD ttSubMenu2_Id AS RECID
  65. XML-NODE-TYPE "HIDDEN"
  66. .
  67. DEFINE DATASET MENU_Dset
  68. XML-NODE-TYPE "HIDDEN"
  69. FOR
  70. ttMenu,
  71. ttHauptMenu,
  72. ttSubMenu1,
  73. ttSubMenu2,
  74. ttLink
  75. PARENT-ID-RELATION relatione1
  76. FOR ttMenu, ttHauptMenu
  77. PARENT-ID-FIELD ttMenu_Id
  78. PARENT-ID-RELATION relatione2
  79. FOR ttHauptMenu, ttSubMenu1
  80. PARENT-ID-FIELD ttHauptMenu_Id
  81. PARENT-ID-RELATION relatione3
  82. FOR ttSubMenu1, ttSubMenu2
  83. PARENT-ID-FIELD ttSubMenu1_Id
  84. PARENT-ID-RELATION relatione4
  85. FOR ttSubMenu2, ttLink
  86. PARENT-ID-FIELD ttSubMenu2_Id
  87. .
  88. CREATE ttMenu.
  89. CREATE ttHauptMenu.
  90. ASSIGN
  91. ttHauptMenu.cTitel = 'Adresseverwaltung'
  92. ttHauptMenu.ttMenu_Id = RECID(ttMenu).
  93. CREATE ttSubMenu1.
  94. ASSIGN
  95. ttSubMenu1.cTitel = 'Adressen'
  96. ttSubMenu1.ttHauptMenu_Id = RECID(ttHauptMenu).
  97. CREATE ttSubMenu2.
  98. ASSIGN
  99. ttSubMenu2.cTitel = ''
  100. ttSubMenu2.ttSubMenu1_Id = RECID(ttSubMenu1).
  101. CREATE ttLink.
  102. ASSIGN
  103. ttLink.cLink = 'adressen.html'
  104. ttLink.ttSubMenu2_Id = RECID(ttSubMenu2).
  105. CREATE ttSubMenu1.
  106. ASSIGN
  107. ttSubMenu1.cTitel = 'Debitoren'
  108. ttSubMenu1.ttHauptMenu_Id = RECID(ttHauptMenu).
  109. CREATE ttSubMenu2.
  110. ASSIGN
  111. ttSubMenu2.cTitel = ''
  112. ttSubMenu2.ttSubMenu1_Id = RECID(ttSubMenu1).
  113. CREATE ttLink.
  114. ASSIGN
  115. ttLink.cLink = 'debitoren.html'
  116. ttLink.ttSubMenu2_Id = RECID(ttSubMenu2).
  117. CREATE ttSubMenu1.
  118. ASSIGN
  119. ttSubMenu1.cTitel = 'Tabellen'
  120. ttSubMenu1.ttHauptMenu_Id = RECID(ttHauptMenu).
  121. CREATE ttSubMenu2.
  122. ASSIGN
  123. ttSubMenu2.cTitel = 'Artikeltabellen'
  124. ttSubMenu2.ttSubMenu1_Id = RECID(ttSubMenu1).
  125. CREATE ttLink.
  126. ASSIGN
  127. ttLink.cLink = 'kleingebide.html'
  128. ttLink.ttSubMenu2_Id = RECID(ttSubMenu2).
  129. CREATE ttSubMenu1.
  130. /*DATASET MENU_DSet:FILL().*/
  131. DEF VAR hMENU_Dset AS HANDLE.
  132. hMENU_Dset = DATASET MENU_Dset:HANDLE.
  133. DATASET MENU_Dset:WRITE-JSON(
  134. "File", 'C:\TEMP\GEMIS_WEB.json',
  135. TRUE, /* Formatted */
  136. "UTF-8",
  137. TRUE
  138. ). /* ommit-initial-values */
  139. */
  140. */
  141. USING Progress.Json.ObjectModel.* FROM PROPATH.
  142. USING PROGRESS.Lang.* FROM PROPATH.
  143. DEF VAR lcString AS LONGCHAR NO-UNDO.
  144. DEF VAR iAktStufe AS INTEGER NO-UNDO.
  145. DEF TEMP-TABLE ttMenu NO-UNDO
  146. FIELD Cd1 AS INT
  147. FIELD Cd2 AS INT
  148. FIELD Cd3 AS INT
  149. FIELD Stufe AS INT
  150. FIELD cMenu AS CHAR
  151. FIELD cLink AS CHAR
  152. INDEX ttMenu-k1 IS PRIMARY
  153. Cd1
  154. Cd2
  155. Cd3
  156. Stufe
  157. .
  158. iAktStufe = 0.
  159. CREATE ttMenu.
  160. ASSIGN
  161. ttMenu.Cd1 = 10
  162. ttMenu.Cd2 = 0
  163. ttMenu.Cd3 = 0
  164. ttMenu.Stufe = 0 ttMenu.cMenu = 'Adressverwaltung'
  165. ttMenu.cLink = ''.
  166. CREATE ttMenu.
  167. ASSIGN
  168. ttMenu.Cd1 = 20
  169. ttMenu.Cd2 = 0
  170. ttMenu.Cd3 = 0
  171. ttMenu.Stufe = 1
  172. ttMenu.cMenu = 'Adressen'
  173. ttMenu.cLink = 'adressen.html'.
  174. CREATE ttMenu.
  175. ASSIGN
  176. ttMenu.Cd1 = 30
  177. ttMenu.Cd2 = 0
  178. ttMenu.Cd3 = 0
  179. ttMenu.Stufe = 1
  180. ttMenu.cMenu = 'Debitoren'
  181. ttMenu.cLink = 'debitoren.html'.
  182. CREATE ttMenu.
  183. ASSIGN
  184. ttMenu.Cd1 = 40
  185. ttMenu.Cd2 = 0
  186. ttMenu.Cd3 = 0
  187. ttMenu.Stufe = 2
  188. ttMenu.cMenu = 'Kreditoren'
  189. ttMenu.cLink = ''.
  190. CREATE ttMenu.
  191. ASSIGN
  192. ttMenu.Cd1 = 50
  193. ttMenu.Cd2 = 0
  194. ttMenu.Cd3 = 0
  195. ttMenu.Stufe = 2
  196. ttMenu.cMenu = 'Kreditorenstamm'
  197. ttMenu.cLink = 'kreditoren.html'.
  198. CREATE ttMenu.
  199. ASSIGN
  200. ttMenu.Cd1 = 60
  201. ttMenu.Cd2 = 0
  202. ttMenu.Cd3 = 0
  203. ttMenu.Stufe = 2
  204. ttMenu.cMenu = 'Zahlungskontidionen'
  205. ttMenu.cLink = 'kredzahlung.html'.
  206. CREATE ttMenu.
  207. ASSIGN
  208. ttMenu.Cd1 = 70
  209. ttMenu.Cd2 = 0
  210. ttMenu.Cd3 = 0
  211. ttMenu.Stufe = 0
  212. ttMenu.cMenu = 'Artikelverwaltung'
  213. ttMenu.cLink = ''.
  214. CREATE ttMenu.
  215. ASSIGN
  216. ttMenu.Cd1 = 80
  217. ttMenu.Cd2 = 0
  218. ttMenu.Cd3 = 0
  219. ttMenu.Stufe = 1
  220. ttMenu.cMenu = 'Artikelstamm'
  221. ttMenu.cLink = 'artikel.html'.
  222. CREATE ttMenu.
  223. ASSIGN
  224. ttMenu.Cd1 = 90
  225. ttMenu.Cd2 = 0
  226. ttMenu.Cd3 = 0
  227. ttMenu.Stufe = 1
  228. ttMenu.cMenu = 'Lieferanten'
  229. ttMenu.cLink = 'artlief.html'.
  230. lcString = CHR(123) + ' ' + CHR(10).
  231. FOR EACH ttMenu
  232. BREAK
  233. BY Cd1
  234. BY Cd2
  235. BY Cd3
  236. BY Stufe:
  237. CASE ttMenu.Stufe:
  238. WHEN 0 THEN
  239. DO:
  240. IF iAktStufe = 1 THEN
  241. DO:
  242. lcString = lcString + SUBSTITUTE('&2&1, ', CHR(125), CHR(10) ).
  243. END.
  244. IF iAktStufe = 2 THEN
  245. DO:
  246. lcString = lcString + SUBSTITUTE('&1, &2 &1, &2', CHR(125), CHR(10) ).
  247. END.
  248. IF ttMenu.cLink = '' THEN lcString = lcString + SUBSTITUTE('&1: &2 &3' , QUOTER(ttMenu.cMenu), CHR(123), CHR(10) ).
  249. ELSE lcString = lcString + SUBSTITUTE('&1: &2,', QUOTER(ttMenu.cMenu), QUOTER(ttMenu.cLink) ) + CHR(10).
  250. iAktStufe = ttMenu.Stufe.
  251. END.
  252. WHEN 1 THEN
  253. DO:
  254. IF iAktStufe = 2 THEN
  255. DO:
  256. lcString = lcString + SUBSTITUTE('&2 &1, ', CHR(125), CHR(10) ).
  257. END.
  258. IF ttMenu.cLink = '' THEN lcString = lcString + SUBSTITUTE('&1: &2' , QUOTER(ttMenu.cMenu), CHR(123) ) + CHR(10).
  259. ELSE lcString = lcString + SUBSTITUTE('&1: &2,', QUOTER(ttMenu.cMenu), QUOTER(ttMenu.cLink) ) + CHR(10).
  260. iAktStufe = ttMenu.Stufe.
  261. END.
  262. WHEN 2 THEN
  263. DO:
  264. IF ttMenu.cLink = '' THEN lcString = lcString + SUBSTITUTE('&1: &2' , QUOTER(ttMenu.cMenu), CHR(123) ) + CHR(10).
  265. ELSE lcString = lcString + SUBSTITUTE('&1: &2,', QUOTER(ttMenu.cMenu), QUOTER(ttMenu.cLink) ) + CHR(10).
  266. iAktStufe = ttMenu.Stufe.
  267. END.
  268. END CASE.
  269. END.
  270. IF iAktStufe = 2 THEN lcString = lcString + SUBSTITUTE('&1,&2&1,', CHR(125), CHR(10) ).
  271. IF iAktStufe = 1 THEN lcString = lcString + SUBSTITUTE('&1,' , CHR(125), CHR(10) ).
  272. lcString = lcString + CHR(10) + CHR(125).
  273. MESSAGE STRING(lcString)
  274. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  275. /*
  276. FOR EACH Katalog NO-LOCK
  277. WHERE Katalog.Firma = '1010'
  278. AND Katalog.Cd1 < 100
  279. BREAK
  280. BY Katalog.Cd1
  281. BY Katalog.Cd2
  282. BY Katalog.Cd3
  283. BY Katalog.Artnr:
  284. IF FIRST-OF(Katalog.Cd1) THEN
  285. DO:
  286. lcString = lcString
  287. + (IF lcString = '' THEN + CHR(123) ELSE ', ').
  288. FIND FIRST KatSt1 NO-LOCK OF Katalog NO-ERROR.
  289. lcString = lcString + SUBSTITUTE('&1: &2', QUOTER(KatSt1.Bezeichnung), CHR(123)).
  290. END.
  291. IF FIRST-OF(Katalog.St2) THEN
  292. DO:
  293. IF FIRST-OF(Katalog.Cd3) THEN
  294. DO:
  295. FIND FIRST KatSt2 NO-LOCK OF Katalog NO-ERROR.
  296. lcString = lcString + SUBSTITUTE('&1: &2', QUOTER(KatSt2.Bezeichnung), CHR(123)).
  297. lcString = lcString + SUBSTITUTE('&1: &2,', QUOTER(
  298. END.
  299. END.
  300. IF LAST-OF(Katalog.Cd1 THEN
  301. DO:
  302. lcString = lcString +
  303. END.
  304. END.
  305. */