custom.p 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /*------------------------------------------------------------------------
  2. File : custom.p
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Wed Jul 17 20:12:36 CEST 2024
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. /* *************************** Definitions ************************** */
  11. USING Progress.Json.ObjectModel.*.
  12. DEF VAR xx AS LONGCHAR NO-UNDO.
  13. DEF VAR yy AS LONGCHAR NO-UNDO.
  14. DEF VAR hDset AS HANDLE NO-UNDO.
  15. DEF VAR lRetVal AS LOGICAL NO-UNDO.
  16. DEF VAR ojsonObject AS jsonObject NO-UNDO.
  17. DEF VAR ojsonInput AS jsonObject NO-UNDO.
  18. DEF VAR ojsonKunde AS jsonObject NO-UNDO.
  19. DEF VAR oParser AS ObjectModelParser NO-UNDO.
  20. /* ******************** Preprocessor Definitions ******************** */
  21. /* *************************** Main Block *************************** */
  22. COPY-LOB FROM FILE 'C:\TEMP\jsonfile.json' TO xx.
  23. /*
  24. xx = CHR(123) + ' "ttInput" : '
  25. + CHR(10) + CHR(123) + CHR(10)
  26. + ' "benutzer" : "peter", '
  27. + ' "Sprache" : "DE", '
  28. + ' "Programm" : "test" '
  29. + CHR(10) + CHR(125) + ' , '
  30. + CHR(10)
  31. + ' "ttKunde" : '
  32. + CHR(10) + CHR(123) + CHR(10)
  33. + ' "Name" : "Meier",'
  34. + ' "Vorname" : "Manfred", '
  35. + ' "Strasse" : "Bergstrasse" '
  36. + CHR(10) + CHR(125) + CHR(10)
  37. + CHR(125)
  38. .
  39. */
  40. xx = CODEPAGE-CONVERT(xx, "UTF-8":U).
  41. /*
  42. OUTPUT TO 'C:\TEMP\jsonfile.json'.
  43. PUT CONTROL STRING(xx).
  44. OUTPUT CLOSE.
  45. */
  46. MESSAGE STRING(xx)
  47. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  48. oParser = NEW ObjectModelParser().
  49. oJsonObject = CAST(oParser:Parse(xx), JsonObject).
  50. oJsonObject:write(yy, TRUE).
  51. MESSAGE '1' STRING(yy)
  52. VIEW-AS ALERT-BOX.
  53. oJsonInput = NEW JsonObject().
  54. oJsonInput:GetJsonObject('ttInput').
  55. MESSAGE '2' STRING(yy)
  56. VIEW-AS ALERT-BOX.
  57. oJsonKunde:GetJsonObject('ttKunde').
  58. MESSAGE '3'
  59. VIEW-AS ALERT-BOX.
  60. oJsonInput:write(yy, TRUE).
  61. MESSAGE STRING(yy)
  62. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  63. DEF TEMP-TABLE ttInput
  64. FIELD benutzer AS CHAR
  65. FIELD Sprache AS CHAR
  66. FIELD Programm AS CHAR
  67. .
  68. DEF TEMP-TABLE ttKunde
  69. FIELD benutzer AS CHAR SERIALIZE-HIDDEN
  70. FIELD NAME AS CHAR
  71. FIELD Vorname AS CHAR
  72. FIELD Programm AS CHAR
  73. .
  74. DEFINE DATASET hDset FOR ttInput , ttKunde
  75. DATA-RELATION dsrel1 FOR ttInput, ttKunde RELATION-FIELDS(benutzer,benutzer) NESTED
  76. .
  77. /*
  78. CREATE ttInput.
  79. CREATE ttKunde.
  80. lRetVal = dataset
  81. hDset:READ-JSON("jsonObject", ojsonObject).
  82. MESSAGE lRetVal
  83. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  84. */
  85. DEF VAR httInput AS HANDLE NO-UNDO.
  86. DEF VAR httKunde AS HANDLE NO-UNDO.
  87. httInput = TEMP-TABLE ttInput:DEFAULT-BUFFER-HANDLE.
  88. httKunde = TEMP-TABLE ttKunde:DEFAULT-BUFFER-HANDLE.
  89. MESSAGE '2'
  90. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  91. httInput:READ-JSON('jsonObject', oJsonObject, 'empty').
  92. MESSAGE '3'
  93. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  94. httKunde:READ-JSON('jsonObject', oJsonObject, 'empty').
  95. MESSAGE '4'
  96. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  97. FIND FIRST ttInput.
  98. DISPLAY ttInput.
  99. DISPLAY 'kunde' SKIP.
  100. FIND FIRST ttKunde.
  101. DISPLAY ttKunde.