d2aura 26.0.11 → 26.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/api/eda/edaManagerApi.d.ts +19 -2
  2. package/api/eda/edaManagerApi.js +36 -3
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +86 -28
  5. package/api/eda/generated/events.js +154 -42
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +21 -0
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/api/impl/utils/reportError.js +16 -0
  10. package/api/impl/utils/reportError.js.map +1 -1
  11. package/api/webPush/webPushApi.js.map +1 -1
  12. package/api/webPush/webPushUtils.js.map +1 -1
  13. package/core/i18n/d2aura.sk.json +8 -0
  14. package/core/i18n/jsapi.sk.json +4 -0
  15. package/core/i18n/jsapi.ua.json +4 -0
  16. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.d.ts +13 -37
  17. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +114 -211
  18. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  19. package/coreui/components/edaManagerComponent/components/edaDetailPanel.d.ts +2 -0
  20. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +2 -2
  21. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
  22. package/coreui/components/edaManagerComponent/components/edaGraphPanel.d.ts +14 -5
  23. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +338 -326
  24. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  25. package/coreui/components/edaManagerComponent/components/edaTablePanel.d.ts +15 -4
  26. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +139 -64
  27. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  28. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.d.ts +3 -8
  29. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js +12 -38
  30. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js.map +1 -1
  31. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +1 -1
  32. package/coreui/components/edaManagerComponent/components/edaTreeView.js +5 -5
  33. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  34. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.d.ts +8 -2
  35. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +39 -11
  36. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
  37. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +33 -0
  38. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js +3 -0
  39. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -0
  40. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.d.ts +9 -0
  41. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +267 -0
  42. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -0
  43. package/coreui/components/edaManagerComponent/context/loadingContext.d.ts +7 -0
  44. package/coreui/components/edaManagerComponent/context/loadingContext.js +3 -0
  45. package/coreui/components/edaManagerComponent/context/loadingContext.js.map +1 -0
  46. package/coreui/components/edaManagerComponent/context/sharedSampleRange.d.ts +1 -2
  47. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js +10 -0
  48. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js.map +1 -1
  49. package/coreui/components/edaManagerComponent/edaDetail.d.ts +4 -12
  50. package/coreui/components/edaManagerComponent/edaDetail.js +53 -88
  51. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  52. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +2 -1
  53. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
  54. package/coreui/components/edaManagerComponent/edaSelect.d.ts +13 -7
  55. package/coreui/components/edaManagerComponent/edaSelect.js +211 -7
  56. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
  57. package/coreui/components/edaManagerComponent/utils/utils.d.ts +17 -0
  58. package/coreui/components/edaManagerComponent/utils/utils.js +57 -0
  59. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  60. package/coreui/components/webPush/webPushSwitch.js.map +1 -1
  61. package/coreui/images/logo.svg +9 -9
  62. package/coreui/images/logo_full.svg +11 -11
  63. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +64 -2
  64. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +51 -13
  65. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +304 -4
  66. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +9 -3
  67. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +89 -3
  68. package/d2configuration/edaManager/EDA_StatVectorRec.xml +56 -0
  69. package/d2configuration/edaManager/SD.EM_EDA_StatVectorRec_V1.xml +125 -0
  70. package/d2configuration/edaManager/SD.EM_Filter_Condition.xml +156 -0
  71. package/d2configuration/edaManager/SD.EM_Tree_Item.xml +34 -1
  72. package/package.json +3 -3
  73. package/coreui/components/edaManagerComponent/context/sharedSampleRangeWrapper.d.ts +0 -6
  74. package/coreui/components/edaManagerComponent/context/sharedSampleRangeWrapper.js +0 -14
  75. package/coreui/components/edaManagerComponent/context/sharedSampleRangeWrapper.js.map +0 -1
@@ -1,12 +1,12 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg width="100%" height="100%" viewBox="172 295 459 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
4
- <g id="Layer-1" serif:id="Layer 1">
5
- <g transform="matrix(1,0,0,1,182.93,310.677)">
6
- <path d="M0,32.646L-10.365,32.646L-10.365,41.595L0,41.595C1.637,44.92 5.052,47.189 9.036,47.189C13.018,47.189 16.433,44.92 18.07,41.595L56.763,41.595L56.763,32.646L18.071,32.646C16.434,29.321 13.018,27.053 9.036,27.053C5.052,27.053 1.637,29.321 0,32.646M28.326,11.846L-10.365,11.846L-10.365,20.795L28.327,20.795C29.963,24.12 33.379,26.388 37.364,26.388C41.346,26.388 44.761,24.12 46.398,20.795L56.763,20.795L56.763,11.846L46.398,11.846C44.761,8.521 41.346,6.254 37.364,6.254C33.379,6.254 29.963,8.521 28.326,11.846M0.001,-8.951L-10.365,-8.951L-10.365,-0.003L0,-0.003C1.637,3.323 5.052,5.59 9.036,5.59C13.018,5.59 16.434,3.323 18.071,-0.003L56.763,-0.003L56.763,-8.951L18.07,-8.951C16.433,-12.276 13.018,-14.543 9.036,-14.543C5.052,-14.543 1.637,-12.276 0.001,-8.951" style="stroke:black;stroke-width:1px;"/>
7
- </g>
8
- <g transform="matrix(1,0,0,1,398.066,302.582)">
9
- <path d="M0,48.893L0,36.861C5.901,39.084 13.946,40.54 23.143,40.54C35.023,40.54 37.627,38.702 37.627,35.712C37.627,26.057 -1.533,34.947 -1.533,13.64C-1.533,3.141 7.357,-3.142 27.512,-3.142C34.18,-3.142 41,-2.223 46.441,-0.766L48.509,11.036C42.685,9.503 34.868,8.354 25.978,8.354C14.101,8.354 11.494,10.193 11.494,13.181C11.494,22.837 50.656,13.948 50.656,35.252C50.656,45.751 41.767,52.035 21.611,52.035C13.716,52.035 5.746,50.734 0,48.893M-62.23,24.447C-62.23,6.208 -51.96,-3.142 -29.429,-3.142C-23.759,-3.142 -17.168,-2.452 -11.19,-1.532L-9.198,10.27C-14.792,9.195 -22.533,8.354 -29.429,8.354C-43.071,8.354 -48.053,10.653 -49.277,19.083L-10.194,19.083L-10.194,29.812L-49.277,29.812C-48.053,38.242 -43.071,40.541 -29.429,40.541C-22.533,40.541 -14.792,39.698 -9.198,38.624L-11.19,50.426C-17.168,51.345 -23.759,52.035 -29.429,52.035C-51.96,52.035 -62.23,42.687 -62.23,24.447M56.481,24.447C56.481,5.365 66.214,-3.142 88.132,-3.142C110.051,-3.142 119.782,5.365 119.782,24.447C119.782,43.53 110.051,52.035 88.132,52.035C66.214,52.035 56.481,43.53 56.481,24.447M-120.167,-2.377L-95.184,-2.377C-76.331,-2.377 -68.055,4.215 -68.055,19.005C-68.055,33.797 -76.331,40.386 -95.184,40.386L-107.827,40.386L-107.827,51.27L-120.167,51.27L-120.167,-2.377ZM-144.688,-0.844L-132.426,-2.758L-132.426,51.269L-144.688,51.269L-144.688,-0.844ZM219.637,44.756C219.637,40.924 222.319,38.242 226.151,38.242C229.983,38.242 232.664,40.924 232.664,44.756C232.664,48.587 229.983,51.269 226.151,51.269C222.319,51.269 219.637,48.587 219.637,44.756M155.188,-3.142C161.318,-3.142 166.453,-2.682 171.127,-1.532L173.121,10.193C167.987,9.044 162.084,8.354 156.643,8.354C144.153,8.354 140.934,10.883 140.934,19.389L140.934,22.915L171.972,22.915L171.972,34.027L140.934,34.027L140.934,50.964L128.672,50.964L128.672,19.849C128.672,4.829 137.944,-3.142 155.188,-3.142M197.872,9.12L177.717,9.12L177.717,-2.375L230.366,-2.375L230.366,9.12L210.212,9.12L210.212,50.964L197.872,50.964L197.872,9.12ZM226.151,50.121C229.216,50.121 231.439,47.898 231.439,44.756C231.439,41.614 229.216,39.392 226.151,39.392C223.084,39.392 220.862,41.614 220.862,44.756C220.862,47.898 223.084,50.121 226.151,50.121M223.852,41.154L226.456,41.154C228.067,41.154 228.757,41.996 228.757,43.377C228.757,44.372 228.373,45.061 227.606,45.369L229.216,48.127L227.684,48.127L226.226,45.599L225.155,45.599L225.155,48.127L223.852,48.127L223.852,41.154ZM226.304,44.448C227.071,44.448 227.376,44.296 227.376,43.377C227.376,42.456 227.071,42.304 226.304,42.304L225.155,42.304L225.155,44.448L226.304,44.448ZM88.132,40.541C102.694,40.541 106.371,37.321 106.371,24.447C106.371,11.573 102.694,8.354 88.132,8.354C73.571,8.354 69.892,11.573 69.892,24.447C69.892,37.321 73.571,40.541 88.132,40.541M-92.272,28.892C-84.531,28.892 -81.081,26.21 -81.081,19.005C-81.081,12.108 -84.147,9.12 -92.272,9.12L-107.827,9.12L-107.827,28.892L-92.272,28.892Z" style="fill-rule:nonzero;"/>
10
- </g>
11
- </g>
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="100%" height="100%" viewBox="172 295 459 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
4
+ <g id="Layer-1" serif:id="Layer 1">
5
+ <g transform="matrix(1,0,0,1,182.93,310.677)">
6
+ <path d="M0,32.646L-10.365,32.646L-10.365,41.595L0,41.595C1.637,44.92 5.052,47.189 9.036,47.189C13.018,47.189 16.433,44.92 18.07,41.595L56.763,41.595L56.763,32.646L18.071,32.646C16.434,29.321 13.018,27.053 9.036,27.053C5.052,27.053 1.637,29.321 0,32.646M28.326,11.846L-10.365,11.846L-10.365,20.795L28.327,20.795C29.963,24.12 33.379,26.388 37.364,26.388C41.346,26.388 44.761,24.12 46.398,20.795L56.763,20.795L56.763,11.846L46.398,11.846C44.761,8.521 41.346,6.254 37.364,6.254C33.379,6.254 29.963,8.521 28.326,11.846M0.001,-8.951L-10.365,-8.951L-10.365,-0.003L0,-0.003C1.637,3.323 5.052,5.59 9.036,5.59C13.018,5.59 16.434,3.323 18.071,-0.003L56.763,-0.003L56.763,-8.951L18.07,-8.951C16.433,-12.276 13.018,-14.543 9.036,-14.543C5.052,-14.543 1.637,-12.276 0.001,-8.951" style="stroke:black;stroke-width:1px;"/>
7
+ </g>
8
+ <g transform="matrix(1,0,0,1,398.066,302.582)">
9
+ <path d="M0,48.893L0,36.861C5.901,39.084 13.946,40.54 23.143,40.54C35.023,40.54 37.627,38.702 37.627,35.712C37.627,26.057 -1.533,34.947 -1.533,13.64C-1.533,3.141 7.357,-3.142 27.512,-3.142C34.18,-3.142 41,-2.223 46.441,-0.766L48.509,11.036C42.685,9.503 34.868,8.354 25.978,8.354C14.101,8.354 11.494,10.193 11.494,13.181C11.494,22.837 50.656,13.948 50.656,35.252C50.656,45.751 41.767,52.035 21.611,52.035C13.716,52.035 5.746,50.734 0,48.893M-62.23,24.447C-62.23,6.208 -51.96,-3.142 -29.429,-3.142C-23.759,-3.142 -17.168,-2.452 -11.19,-1.532L-9.198,10.27C-14.792,9.195 -22.533,8.354 -29.429,8.354C-43.071,8.354 -48.053,10.653 -49.277,19.083L-10.194,19.083L-10.194,29.812L-49.277,29.812C-48.053,38.242 -43.071,40.541 -29.429,40.541C-22.533,40.541 -14.792,39.698 -9.198,38.624L-11.19,50.426C-17.168,51.345 -23.759,52.035 -29.429,52.035C-51.96,52.035 -62.23,42.687 -62.23,24.447M56.481,24.447C56.481,5.365 66.214,-3.142 88.132,-3.142C110.051,-3.142 119.782,5.365 119.782,24.447C119.782,43.53 110.051,52.035 88.132,52.035C66.214,52.035 56.481,43.53 56.481,24.447M-120.167,-2.377L-95.184,-2.377C-76.331,-2.377 -68.055,4.215 -68.055,19.005C-68.055,33.797 -76.331,40.386 -95.184,40.386L-107.827,40.386L-107.827,51.27L-120.167,51.27L-120.167,-2.377ZM-144.688,-0.844L-132.426,-2.758L-132.426,51.269L-144.688,51.269L-144.688,-0.844ZM219.637,44.756C219.637,40.924 222.319,38.242 226.151,38.242C229.983,38.242 232.664,40.924 232.664,44.756C232.664,48.587 229.983,51.269 226.151,51.269C222.319,51.269 219.637,48.587 219.637,44.756M155.188,-3.142C161.318,-3.142 166.453,-2.682 171.127,-1.532L173.121,10.193C167.987,9.044 162.084,8.354 156.643,8.354C144.153,8.354 140.934,10.883 140.934,19.389L140.934,22.915L171.972,22.915L171.972,34.027L140.934,34.027L140.934,50.964L128.672,50.964L128.672,19.849C128.672,4.829 137.944,-3.142 155.188,-3.142M197.872,9.12L177.717,9.12L177.717,-2.375L230.366,-2.375L230.366,9.12L210.212,9.12L210.212,50.964L197.872,50.964L197.872,9.12ZM226.151,50.121C229.216,50.121 231.439,47.898 231.439,44.756C231.439,41.614 229.216,39.392 226.151,39.392C223.084,39.392 220.862,41.614 220.862,44.756C220.862,47.898 223.084,50.121 226.151,50.121M223.852,41.154L226.456,41.154C228.067,41.154 228.757,41.996 228.757,43.377C228.757,44.372 228.373,45.061 227.606,45.369L229.216,48.127L227.684,48.127L226.226,45.599L225.155,45.599L225.155,48.127L223.852,48.127L223.852,41.154ZM226.304,44.448C227.071,44.448 227.376,44.296 227.376,43.377C227.376,42.456 227.071,42.304 226.304,42.304L225.155,42.304L225.155,44.448L226.304,44.448ZM88.132,40.541C102.694,40.541 106.371,37.321 106.371,24.447C106.371,11.573 102.694,8.354 88.132,8.354C73.571,8.354 69.892,11.573 69.892,24.447C69.892,37.321 73.571,40.541 88.132,40.541M-92.272,28.892C-84.531,28.892 -81.081,26.21 -81.081,19.005C-81.081,12.108 -84.147,9.12 -92.272,9.12L-107.827,9.12L-107.827,28.892L-92.272,28.892Z" style="fill-rule:nonzero;"/>
10
+ </g>
11
+ </g>
12
12
  </svg>
@@ -13,6 +13,12 @@
13
13
  <objType>EVENT</objType>
14
14
  <valType>Int</valType>
15
15
  </HOBJ_REF>
16
+ <HOBJ_REF>
17
+ <uid>A12101E2F3662D4A87E8282EBC5659FC</uid>
18
+ <name>SD.EM_Filter_Condition</name>
19
+ <objType>STRUCTDEF</objType>
20
+ <valType>NAN</valType>
21
+ </HOBJ_REF>
16
22
  <HOBJ_REF>
17
23
  <uid>3E9CFD9A52DF1A43913EBCD3FFE3871E</uid>
18
24
  <name>SD.EM_Tree_Item</name>
@@ -35,7 +41,7 @@
35
41
  <ParentId>SELF.EVH</ParentId>
36
42
  <Value_Type>Int</Value_Type>
37
43
  <CreateTime>11.03.2026 12:21:02.586</CreateTime>
38
- <ModifyTime>26.03.2026 09:57:00.446</ModifyTime>
44
+ <ModifyTime>11.05.2026 12:28:52.264</ModifyTime>
39
45
  <Text_Palette/>
40
46
  <Read_Only>False</Read_Only>
41
47
  <TECH_UNIT/>
@@ -134,13 +140,69 @@ RPC PROCEDURE GetScenarioChildren(IN INT _id, IN BOOL _showOmitted, IN INT _coun
134
140
  END GetScenarioChildren
135
141
 
136
142
  ;*********************************************************
137
- ; GetScenarioChildren
143
+ ; GetScenarioVectors
138
144
  ;*********************************************************
139
145
 
140
146
  RPC PROCEDURE GetScenarioVectors(IN INT _id, IN BOOL _showOmitted, IN BOOL _showDynamic, IN INT _count, IN INT _offset, RECORD NOALIAS (SD.EM_Tree_Item) _items, INT _leftCount, BOOL _isOk, TEXT _errorMsg)
141
147
  CALL [_unit] GetScenarioVectors(_handle, _id, _showOmitted, _showDynamic, _count, _offset, _items, _leftCount, _isOk, _errorMsg)
142
148
  END GetScenarioVectors
143
149
 
150
+ ;*********************************************************
151
+ ; GetVector
152
+ ;*********************************************************
153
+
154
+ RPC PROCEDURE GetVector(IN INT _id, RECORD NOALIAS (SD.EM_Tree_Item) _item, BOOL _isOk, TEXT _errorMsg)
155
+ CALL [_unit] GetVector(_handle, _id, _item, _isOk, _errorMsg)
156
+ END GetVector
157
+
158
+ ;*********************************************************
159
+ ; GetGroup
160
+ ;*********************************************************
161
+
162
+ RPC PROCEDURE GetGroup(IN INT _id, RECORD NOALIAS (SD.EM_Tree_Item) _item, BOOL _isOk, TEXT _errorMsg)
163
+ CALL [_unit] GetGroup(_handle, _id, _item, _isOk, _errorMsg)
164
+ END GetGroup
165
+
166
+ ;*********************************************************
167
+ ; GetScenario
168
+ ;*********************************************************
169
+
170
+ RPC PROCEDURE GetScenario(IN INT _id, RECORD NOALIAS (SD.EM_Tree_Item) _item, BOOL _isOk, TEXT _errorMsg)
171
+ CALL [_unit] GetScenario(_handle, _id, _item, _isOk, _errorMsg)
172
+ END GetScenario
173
+
174
+ ;*********************************************************
175
+ ; FindVectors
176
+ ;*********************************************************
177
+
178
+ RPC PROCEDURE FindVectors(IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, IN INT _count, RECORD NOALIAS (SD.EM_Tree_Item) _items, BOOL _isOk, TEXT _errorMsg)
179
+ CALL [_unit] FindVectors(_handle, _count, _conditions, _items, _isOk, _errorMsg)
180
+ END FindVectors
181
+
182
+ ;*********************************************************
183
+ ; FindGroups
184
+ ;*********************************************************
185
+
186
+ RPC PROCEDURE FindGroups(IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, IN INT _count, RECORD NOALIAS (SD.EM_Tree_Item) _items, BOOL _isOk, TEXT _errorMsg)
187
+ CALL [_unit] FindGroups(_handle, _count, _conditions, _items, _isOk, _errorMsg)
188
+ END FindGroups
189
+
190
+ ;*********************************************************
191
+ ; FindScenarios
192
+ ;*********************************************************
193
+
194
+ RPC PROCEDURE FindScenarios(IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, IN INT _count, RECORD NOALIAS (SD.EM_Tree_Item) _items, BOOL _isOk, TEXT _errorMsg)
195
+ CALL [_unit] FindScenarios(_handle, _count, _conditions, _items, _isOk, _errorMsg)
196
+ END FindScenarios
197
+
198
+ ;*********************************************************
199
+ ; SearchVectors
200
+ ;*********************************************************
201
+
202
+ ; RPC PROCEDURE SearchVectors(IN TEXT _, BOOL _isOk, TEXT _errorMsg)
203
+
204
+ ; END SearchVectors
205
+
144
206
  ;*********************************************************
145
207
  ;*********************************************************
146
208
  ;*********************************************************
@@ -34,7 +34,7 @@
34
34
  <ParentId>SELF.EVH</ParentId>
35
35
  <Value_Type>Int</Value_Type>
36
36
  <CreateTime>13.03.2026 14:45:11.232</CreateTime>
37
- <ModifyTime>26.03.2026 09:59:18.045</ModifyTime>
37
+ <ModifyTime>11.05.2026 12:28:06.572</ModifyTime>
38
38
  <Text_Palette/>
39
39
  <Read_Only>False</Read_Only>
40
40
  <TECH_UNIT/>
@@ -93,7 +93,7 @@ RPC PROCEDURE GetGroupCountSql(IN INT _id, IN BOOL _showOmitted, TEXT _sql, BOOL
93
93
  END GetGroupCountSql
94
94
 
95
95
  RPC PROCEDURE GetGroupItemsSql(IN INT _id, IN BOOL _showOmitted, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
96
- _sql := "SELECT ID_SkVektor, EDA_ID_SkVektor, Meno, Cesta, Zobraz_Meno, 0 FROM EDA_SkVektor WHERE "
96
+ _sql := "SELECT ID_SkVektor, EDA_ID_SkVektor, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_SkVektor WHERE "
97
97
 
98
98
  IF _showOmitted THEN
99
99
  _sql := _sql + "EDA_ID_SkVektor = ID_SkVektor"
@@ -121,7 +121,7 @@ RPC PROCEDURE GetGroupVectorsCountSql(IN INT _id, IN BOOL _showOmitted, TEXT _sq
121
121
  END GetGroupVectorsCountSql
122
122
 
123
123
  RPC PROCEDURE GetGroupVectorItemsSql(IN INT _id, IN BOOL _showOmitted, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
124
- _sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ FROM EDA_Vektor WHERE "
124
+ _sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl FROM EDA_Vektor WHERE "
125
125
 
126
126
  IF _showOmitted THEN
127
127
  _sql := _sql + "ID_SkVektor IS NULL"
@@ -153,7 +153,7 @@ RPC PROCEDURE GetScenarioItemsSql(IN INT _id, IN BOOL _showOmitted, TEXT _sql, B
153
153
  TEXT _sql2
154
154
  TEXT _where
155
155
 
156
- _sql1 := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0 FROM EDA_Scenar WHERE "
156
+ _sql1 := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_Scenar WHERE "
157
157
  _where := "FILTER IS NULL AND "
158
158
 
159
159
  IF _showOmitted THEN
@@ -166,7 +166,7 @@ RPC PROCEDURE GetScenarioItemsSql(IN INT _id, IN BOOL _showOmitted, TEXT _sql, B
166
166
 
167
167
  _sql1 := _sql1 + _where
168
168
 
169
- _sql2 := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0 FROM EDA_Scenar WHERE "
169
+ _sql2 := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_Scenar WHERE "
170
170
  _where := "FILTER IS NOT NULL AND "
171
171
 
172
172
  IF _showOmitted THEN
@@ -211,9 +211,6 @@ RPC PROCEDURE GetScenarioVectorsCountSql(IN INT _id, IN BOOL _showOmitted, IN BO
211
211
  IF _EDA_Scenar[1]^FILTER\VLD THEN
212
212
  _sqlPom := "SELECT Count(*) AS amount FROM EDA_VEKTOR v, (" + _EDA_Scenar[1]^FILTER + ") filter WHERE filter.id_vektor = v.ID_Vektor"
213
213
  _sql := "SELECT Sum(amount) AS celkovy_pocet FROM (" + _sql + " UNION ALL " + _sqlPom + ") subquery"
214
-
215
- _sql := %ReplaceStr(_sql, "OD_VW_Filter_Zmluva z WHERE (z.dat_do_zmluvy >= :1 and z.dat_od_zmluvy <= :2) AND ", "OD_VW_Filter_Zmluva z WHERE ", @TRUE)
216
- _sql := %ReplaceStr(_sql, "OD_VW_Filter_Zmluva_Short z WHERE (z.dat_do_zmluvy >= :1 and z.dat_od_zmluvy <= :2) AND ", "OD_VW_Filter_Zmluva_Short z WHERE ", @TRUE)
217
214
  ENDIF
218
215
  ENDIF
219
216
 
@@ -222,7 +219,7 @@ END GetScenarioVectorsCountSql
222
219
 
223
220
  RPC PROCEDURE GetScenarioVectorItemsSql(IN INT _id, IN BOOL _showOmitted, IN BOOL _showDynamic, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
224
221
  _sql := "SELECT v.ID_Vektor, vs.ID, v.Meno, '', CASE WHEN vs.zobraz_Meno is NULL THEN (v.zobraz_meno) ELSE (vs.Zobraz_Meno || ' (' || v.Zobraz_meno || ')') END zobraz_meno,"
225
- _sql := _sql + " v.Typ, vs.idx IDX FROM EDA_VEKTOR v, EDA_VEKTOR_SCENAR vs WHERE v.ID_Vektor = vs.ID_Vektor AND "
222
+ _sql := _sql + " v.Typ, v.Tech_Jednotky, v.View_Round, v.View_Dec_Pl, vs.idx IDX FROM EDA_VEKTOR v, EDA_VEKTOR_SCENAR vs WHERE v.ID_Vektor = vs.ID_Vektor AND "
226
223
 
227
224
  IF !_id\VLD | _showOmitted THEN
228
225
  _sql := _sql + "1 = 0"
@@ -245,12 +242,9 @@ RPC PROCEDURE GetScenarioVectorItemsSql(IN INT _id, IN BOOL _showOmitted, IN BOO
245
242
  ENDIF
246
243
 
247
244
  IF _EDA_Scenar[1]^FILTER\VLD THEN
248
- _sqlPom := "SELECT v.ID_Vektor, v.ID_SkVektor, v.Meno, '', v.Zobraz_meno, v.Typ, null FROM EDA_VEKTOR v, (" + _EDA_Scenar[1]^FILTER + ") filter WHERE filter.id_vektor = v.ID_Vektor"
245
+ _sqlPom := "SELECT v.ID_Vektor, v.ID_SkVektor, v.Meno, '', v.Zobraz_meno, v.Typ, v.Tech_Jednotky, v.View_Round, v.View_Dec_Pl, null FROM EDA_VEKTOR v, (" + _EDA_Scenar[1]^FILTER + ") filter WHERE filter.id_vektor = v.ID_Vektor"
249
246
  _sql := _sql + " UNION " + _sqlPom
250
247
  _sql := _sql + " ORDER BY 7, 5"
251
-
252
- _sql := %ReplaceStr(_sql, "OD_VW_Filter_Zmluva z WHERE (z.dat_do_zmluvy >= :1 and z.dat_od_zmluvy <= :2) AND ", "OD_VW_Filter_Zmluva z WHERE ", @TRUE)
253
- _sql := %ReplaceStr(_sql, "OD_VW_Filter_Zmluva_Short z WHERE (z.dat_do_zmluvy >= :1 and z.dat_od_zmluvy <= :2) AND ", "OD_VW_Filter_Zmluva_Short z WHERE ", @TRUE)
254
248
  ENDIF
255
249
  ELSE
256
250
  _sql := _sql + " ORDER BY Idx, Zobraz_Meno"
@@ -259,6 +253,50 @@ RPC PROCEDURE GetScenarioVectorItemsSql(IN INT _id, IN BOOL _showOmitted, IN BOO
259
253
  _isOk := @TRUE
260
254
  END GetScenarioVectorItemsSql
261
255
 
256
+ RPC PROCEDURE GetVectorSql(IN INT _id, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
257
+ _sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl FROM EDA_Vektor WHERE ID_Vektor = " + %IToStr(_id)
258
+ _isOk := @TRUE
259
+ END GetVectorSql
260
+
261
+ RPC PROCEDURE GetGroupSql(IN INT _id, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
262
+ _sql := "SELECT ID_SkVektor, EDA_ID_SkVektor, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_SkVektor WHERE ID_SkVektor = " + %IToStr(_id)
263
+ _isOk := @TRUE
264
+ END GetGroupSql
265
+
266
+ RPC PROCEDURE GetScenarioSql(IN INT _id, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
267
+ _sql := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_Scenar WHERE ID_Scenar = " + %IToStr(_id)
268
+ _isOk := @TRUE
269
+ END GetScenarioSql
270
+
271
+ RPC PROCEDURE FindVectorsSql(IN TEXT _filter, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
272
+ _sql := "SELECT ID_Vektor, ID_SkVektor, Meno, '', Zobraz_Meno, Typ, Tech_Jednotky, View_Round, View_Dec_Pl FROM EDA_Vektor WHERE " + _filter
273
+ _isOk := @TRUE
274
+ END FindVectorsSql
275
+
276
+ RPC PROCEDURE FindGroupsSql(IN TEXT _filter, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
277
+ _sql := "SELECT ID_SkVektor, EDA_ID_SkVektor, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_SkVektor WHERE " + _filter
278
+ _isOk := @TRUE
279
+ END FindGroupsSql
280
+
281
+ RPC PROCEDURE FindScenariosSql(IN TEXT _filter, TEXT _sql, BOOL _isOk, TEXT _errorMsg)
282
+ TEXT _sql1
283
+ TEXT _sql2
284
+ TEXT _where
285
+
286
+ _sql1 := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_Scenar WHERE "
287
+ _where := "FILTER IS NULL AND " + _filter
288
+
289
+ _sql1 := _sql1 + _where
290
+
291
+ _sql2 := "SELECT ID_Scenar, EDA_ID_Scenar, Meno, Cesta, Zobraz_Meno, 0, '', 0, 0 FROM EDA_Scenar WHERE "
292
+ _where := "FILTER IS NOT NULL AND " + _filter
293
+
294
+ _sql2 := _sql2 + _where
295
+
296
+ _sql := _sql1 + " UNION " + _sql2
297
+ _isOk := @TRUE
298
+ END FindScenariosSql
299
+
262
300
  BEGIN
263
301
  PRAGMA "ENABLE_INOUT_BY_REF"
264
302
  END
@@ -7,6 +7,52 @@
7
7
  <objType>EVENT</objType>
8
8
  <valType>Int</valType>
9
9
  </HOBJ_REF>
10
+ <HOBJ_REF>
11
+ <uid>A12101E2F3662D4A87E8282EBC5659FC</uid>
12
+ <name>SD.EM_Filter_Condition</name>
13
+ <objType>STRUCTDEF</objType>
14
+ <valType>NAN</valType>
15
+ </HOBJ_REF>
16
+ <COL_REF>
17
+ <col_idx>5</col_idx>
18
+ <col_name>column_name</col_name>
19
+ <col_valType>Text</col_valType>
20
+ </COL_REF>
21
+ <COL_REF>
22
+ <col_idx>4</col_idx>
23
+ <col_name>left_par</col_name>
24
+ <col_valType>Int</col_valType>
25
+ </COL_REF>
26
+ <COL_REF>
27
+ <col_idx>10</col_idx>
28
+ <col_name>logical_operator</col_name>
29
+ <col_valType>Text</col_valType>
30
+ </COL_REF>
31
+ <COL_REF>
32
+ <col_idx>3</col_idx>
33
+ <col_name>not_flag</col_name>
34
+ <col_valType>Int</col_valType>
35
+ </COL_REF>
36
+ <COL_REF>
37
+ <col_idx>6</col_idx>
38
+ <col_name>operator</col_name>
39
+ <col_valType>Text</col_valType>
40
+ </COL_REF>
41
+ <COL_REF>
42
+ <col_idx>9</col_idx>
43
+ <col_name>right_par</col_name>
44
+ <col_valType>Int</col_valType>
45
+ </COL_REF>
46
+ <COL_REF>
47
+ <col_idx>7</col_idx>
48
+ <col_name>value</col_name>
49
+ <col_valType>Text</col_valType>
50
+ </COL_REF>
51
+ <COL_REF>
52
+ <col_idx>8</col_idx>
53
+ <col_name>value_type</col_name>
54
+ <col_valType>Int</col_valType>
55
+ </COL_REF>
10
56
  <HOBJ_REF>
11
57
  <uid>3E9CFD9A52DF1A43913EBCD3FFE3871E</uid>
12
58
  <name>SD.EM_Tree_Item</name>
@@ -29,7 +75,7 @@
29
75
  <ParentId>SELF.EVH</ParentId>
30
76
  <Value_Type>Int</Value_Type>
31
77
  <CreateTime>11.03.2026 12:20:57.326</CreateTime>
32
- <ModifyTime>26.03.2026 09:57:37.748</ModifyTime>
78
+ <ModifyTime>11.05.2026 12:28:42.283</ModifyTime>
33
79
  <Text_Palette/>
34
80
  <Read_Only>False</Read_Only>
35
81
  <TECH_UNIT/>
@@ -75,6 +121,16 @@
75
121
 
76
122
  BOOL _LOG_SQL = @TRUE
77
123
 
124
+ TEXT _LIST_SEPARATOR = "@#@"
125
+
126
+ ; condition value types
127
+ INT _TYPE_STRING = 1
128
+ INT _TYPE_NUMBER = 2
129
+ INT _TYPE_STRING_LIST = 3
130
+ INT _TYPE_NUMBER_LIST = 4
131
+ INT _TYPE_DATE = 5
132
+ INT _TYPE_DATE_WITHOUT_TIME = 6
133
+
78
134
  ;*********************************************************
79
135
  ; GetGroupChildren
80
136
  ;*********************************************************
@@ -255,6 +311,123 @@ PUBLIC PROCEDURE GetScenarioVectors(IN DB_HANDLE _hndl, IN INT _id, IN BOOL _sho
255
311
  CALL GetItems(_hndl, _sql, _count, _offset, _items, _isOk, _errorMsg)
256
312
  END GetScenarioVectors
257
313
 
314
+ ;*********************************************************
315
+ ; GetVector
316
+ ;*********************************************************
317
+
318
+ PUBLIC PROCEDURE GetVector(IN DB_HANDLE _hndl, IN INT _id, RECORD NOALIAS (SD.EM_Tree_Item) _item, BOOL _isOk, TEXT _errorMsg)
319
+ TEXT _sql
320
+
321
+ CALL [E.EM_NAVIGATOR_SQL] GetVectorSql(_id, _sql, _isOk, _errorMsg) ON (%GetParentProcessHBJ())
322
+
323
+ IF !_isOk THEN
324
+ RETURN
325
+ ENDIF
326
+
327
+ CALL GetItems(_hndl, _sql, 1, 0, _item, _isOk, _errorMsg)
328
+ END GetVector
329
+
330
+ ;*********************************************************
331
+ ; GetGroup
332
+ ;*********************************************************
333
+
334
+ PUBLIC PROCEDURE GetGroup(IN DB_HANDLE _hndl, IN INT _id, RECORD NOALIAS (SD.EM_Tree_Item) _item, BOOL _isOk, TEXT _errorMsg)
335
+ TEXT _sql
336
+
337
+ CALL [E.EM_NAVIGATOR_SQL] GetGroupSql(_id, _sql, _isOk, _errorMsg) ON (%GetParentProcessHBJ())
338
+
339
+ IF !_isOk THEN
340
+ RETURN
341
+ ENDIF
342
+
343
+ CALL GetItems(_hndl, _sql, 1, 0, _item, _isOk, _errorMsg)
344
+ END GetGroup
345
+
346
+ ;*********************************************************
347
+ ; GetScenario
348
+ ;*********************************************************
349
+
350
+ PUBLIC PROCEDURE GetScenario(IN DB_HANDLE _hndl, IN INT _id, RECORD NOALIAS (SD.EM_Tree_Item) _item, BOOL _isOk, TEXT _errorMsg)
351
+ TEXT _sql
352
+
353
+ CALL [E.EM_NAVIGATOR_SQL] GetScenarioSql(_id, _sql, _isOk, _errorMsg) ON (%GetParentProcessHBJ())
354
+
355
+ IF !_isOk THEN
356
+ RETURN
357
+ ENDIF
358
+
359
+ CALL GetItems(_hndl, _sql, 1, 0, _item, _isOk, _errorMsg)
360
+ END GetScenario
361
+
362
+ ;*********************************************************
363
+ ; FindVectors
364
+ ;*********************************************************
365
+
366
+ PUBLIC PROCEDURE FindVectors(IN DB_HANDLE _hndl, IN INT _count, IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, RECORD NOALIAS (SD.EM_Tree_Item) _items, BOOL _isOk, TEXT _errorMsg)
367
+ TEXT _sql
368
+ TEXT _filter
369
+
370
+ CALL GetFilterAsText(_conditions, _filter, _isOk, _errorMsg)
371
+
372
+ IF !_isOk THEN
373
+ RETURN
374
+ ENDIF
375
+
376
+ CALL [E.EM_NAVIGATOR_SQL] FindVectorsSql(_filter, _sql, _isOk, _errorMsg) ON (%GetParentProcessHBJ())
377
+
378
+ IF !_isOk THEN
379
+ RETURN
380
+ ENDIF
381
+
382
+ CALL GetItems(_hndl, _sql, _count, 0, _items, _isOk, _errorMsg)
383
+ END FindVectors
384
+
385
+ ;*********************************************************
386
+ ; FindGroups
387
+ ;*********************************************************
388
+
389
+ PUBLIC PROCEDURE FindGroups(IN DB_HANDLE _hndl, IN INT _count, IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, RECORD NOALIAS (SD.EM_Tree_Item) _items, BOOL _isOk, TEXT _errorMsg)
390
+ TEXT _sql
391
+ TEXT _filter
392
+
393
+ CALL GetFilterAsText(_conditions, _filter, _isOk, _errorMsg)
394
+
395
+ IF !_isOk THEN
396
+ RETURN
397
+ ENDIF
398
+
399
+ CALL [E.EM_NAVIGATOR_SQL] FindGroupsSql(_filter, _sql, _isOk, _errorMsg) ON (%GetParentProcessHBJ())
400
+
401
+ IF !_isOk THEN
402
+ RETURN
403
+ ENDIF
404
+
405
+ CALL GetItems(_hndl, _sql, _count, 0, _items, _isOk, _errorMsg)
406
+ END FindGroups
407
+
408
+ ;*********************************************************
409
+ ; FindScenarios
410
+ ;*********************************************************
411
+
412
+ PUBLIC PROCEDURE FindScenarios(IN DB_HANDLE _hndl, IN INT _count, IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, RECORD NOALIAS (SD.EM_Tree_Item) _items, BOOL _isOk, TEXT _errorMsg)
413
+ TEXT _sql
414
+ TEXT _filter
415
+
416
+ CALL GetFilterAsText(_conditions, _filter, _isOk, _errorMsg)
417
+
418
+ IF !_isOk THEN
419
+ RETURN
420
+ ENDIF
421
+
422
+ CALL [E.EM_NAVIGATOR_SQL] FindScenariosSql(_filter, _sql, _isOk, _errorMsg) ON (%GetParentProcessHBJ())
423
+
424
+ IF !_isOk THEN
425
+ RETURN
426
+ ENDIF
427
+
428
+ CALL GetItems(_hndl, _sql, _count, 0, _items, _isOk, _errorMsg)
429
+ END FindScenarios
430
+
258
431
  ;*********************************************************
259
432
  ; GetGroupCount
260
433
  ;*********************************************************
@@ -317,19 +490,146 @@ PROCEDURE GetItems(IN DB_HANDLE _hndl, IN TEXT _sql, IN INT _count, IN INT _offs
317
490
 
318
491
  SQL_FETCH _hndl, _retCode, _maxRows
319
492
 
320
- IF _retCode # _ERR_NO_ERROR THEN
493
+ IF _retCode # _ERR_NO_ERROR & _retCode # _ERR_NO_DATA THEN
321
494
  _isOk := @FALSE
322
495
  _errorMsg := "Error SQL_FETCH [" + %IToStr(_retCode) + "] " + _sql
323
496
  LOG _errorMsg PRIORITY _LOG_PRTY_ERROR
324
497
  RETURN
325
498
  ENDIF
326
499
 
327
- REDIM _items[_count]
328
- COPYSTRUCT _items, 1, _tmp[_fromRow], _tmp[_offset + _count]
500
+ IF _tmp\DIM = 0 THEN
501
+ _isOk := @TRUE
502
+ RETURN
503
+ ENDIF
504
+
505
+ REDIM _items[_tmp\DIM - _offset]
506
+ COPYSTRUCT _items, 1, _tmp[_fromRow], _tmp[_tmp\DIM]
329
507
 
330
508
  _isOk := @TRUE
331
509
  END GetItems
332
510
 
511
+ ;*********************************************************
512
+ ; GetFilterAsText
513
+ ;*********************************************************
514
+
515
+ PROCEDURE GetFilterAsText(IN RECORD NOALIAS(SD.EM_Filter_Condition) _conditions, TEXT _filter, BOOL _isOk, TEXT _errorMsg)
516
+ INT _i, _j
517
+ TEXT _value, _nextValue, _errorMsgUnsupported, _start_of_day, _start_of_next_day
518
+
519
+ _isOk := @TRUE
520
+ _errorMsg := ""
521
+
522
+ _filter := ""
523
+
524
+ IF _conditions\DIM = 0 THEN
525
+ _filter := _filter + "1 = 1"
526
+ ENDIF
527
+
528
+ ; build filter
529
+ ; each condition has format :
530
+ ; [NOT] [(] [UPPER(] column_name [)] [> | < | = | in ...] value_or_list [)] [AND | OR]
531
+ ; NOTE : One condition of type _TYPE_DATE_WITHOUT_TIME can generate multiple conditions (depending on operator). See the implementation below.
532
+ FOR _i RANGE _conditions DO_LOOP
533
+ _errorMsgUnsupported := "Filter error : Unsupported combination of operator (" + _conditions[_i]^operator + ") and value_type (" +%IToStr(_conditions[_i]^value_type) + ") in condition " + %IToStr(_i) + "."
534
+
535
+ IF _conditions[_i]^not_flag = 1 THEN
536
+ _filter := _filter + " NOT"
537
+ ENDIF
538
+
539
+ IF _conditions[_i]^left_par = 1 THEN
540
+ _filter := _filter + " ("
541
+ ENDIF
542
+
543
+ IF _conditions[_i]^value_type = _TYPE_STRING_LIST | _conditions[_i]^value_type = _TYPE_STRING THEN
544
+ _filter := _filter + " UPPER(" + _conditions[_i]^column_name + ")"
545
+ ELSIF _conditions[_i]^value_type = _TYPE_DATE_WITHOUT_TIME THEN
546
+ _filter := _filter + " (" + _conditions[_i]^column_name
547
+ ELSE
548
+ _filter := _filter + " " + _conditions[_i]^column_name
549
+ ENDIF
550
+
551
+ IF _conditions[_i]^value_type != _TYPE_DATE_WITHOUT_TIME THEN
552
+ IF _conditions[_i]^operator = "=" & (_conditions[_i]^value_type = _TYPE_NUMBER_LIST | _conditions[_i]^value_type = _TYPE_STRING_LIST) THEN
553
+ _filter := _filter + " IN"
554
+ ELSE
555
+ _filter := _filter + " " + _conditions[_i]^operator
556
+ ENDIF
557
+ ENDIF
558
+
559
+ IF %ToUpper(_conditions[_i]^operator) = "IS" THEN
560
+ IF _conditions[_i]^value_type = _TYPE_DATE_WITHOUT_TIME THEN
561
+ _filter := _filter + " IS NULL )"
562
+ ELSE
563
+ _filter := _filter + " NULL "
564
+ ENDIF
565
+ ELSIF %ToUpper(_conditions[_i]^operator) = "IN" | %ToUpper(_conditions[_i]^operator) = "=" & (_conditions[_i]^value_type = _TYPE_NUMBER_LIST | _conditions[_i]^value_type = _TYPE_STRING_LIST) THEN
566
+ _filter := _filter + " ("
567
+ _j := 1
568
+ DO_LOOP
569
+ _value := %GetStrItem(_conditions[_i]^value, _j, _LIST_SEPARATOR, @TRUE)
570
+ _nextValue := %GetStrItem(_conditions[_i]^value, _j + 1, _LIST_SEPARATOR, @TRUE)
571
+ EXIT_LOOP _value = ""
572
+ IF _conditions[_i]^value_type = _TYPE_STRING_LIST | _conditions[_i]^value_type = _TYPE_STRING THEN
573
+ _filter := _filter + " UPPER('" + _value + "')"
574
+ ELSIF _conditions[_i]^value_type = _TYPE_NUMBER_LIST | _conditions[_i]^value_type = _TYPE_NUMBER THEN
575
+ _filter := _filter + " " + _value
576
+ ELSE
577
+ _errorMsg := _errorMsgUnsupported
578
+ _isOk := @FALSE
579
+ RETURN
580
+ ENDIF
581
+ IF _nextValue != "" THEN
582
+ _filter := _filter + ","
583
+ ENDIF
584
+ _j := _j + 1
585
+ END_LOOP
586
+ _filter := _filter + " )"
587
+ ELSIF _conditions[_i]^value_type = _TYPE_STRING THEN
588
+ _filter := _filter + " UPPER('" + _conditions[_i]^value + "')"
589
+ ELSIF _conditions[_i]^value_type = _TYPE_NUMBER THEN
590
+ _filter := _filter + " " + _conditions[_i]^value
591
+ ELSIF _conditions[_i]^value_type = _TYPE_DATE THEN
592
+ ; TO_TIMESTAMP('2012-07-18 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
593
+ _filter := _filter + " TO_TIMESTAMP('" + _conditions[_i]^value + "', 'YYYY-MM-DD HH24:MI:SS')"
594
+ ELSIF _conditions[_i]^value_type = _TYPE_DATE_WITHOUT_TIME THEN
595
+ _start_of_day := "TO_TIMESTAMP('" + _conditions[_i]^value + "', 'YYYY-MM-DD HH24:MI:SS')"
596
+ _start_of_next_day := "(TO_TIMESTAMP('" + _conditions[_i]^value + "', 'YYYY-MM-DD HH24:MI:SS') + interval '1' day)"
597
+ IF _conditions[_i]^operator = "=" THEN
598
+ _filter := _filter + " >= " + _start_of_day + " AND " + _conditions[_i]^column_name + " < " + _start_of_next_day
599
+ ELSIF _conditions[_i]^operator = "<" THEN
600
+ _filter := _filter + " < " + _start_of_day
601
+ ELSIF _conditions[_i]^operator = ">" THEN
602
+ _filter := _filter + " >= " + _start_of_next_day
603
+ ELSIF _conditions[_i]^operator = "<>" THEN
604
+ _filter := _filter + " < " + _start_of_day + " OR " + _conditions[_i]^column_name + " >= " + _start_of_next_day
605
+ ELSIF _conditions[_i]^operator = "<=" THEN
606
+ _filter := _filter + " < " + _start_of_next_day
607
+ ELSIF _conditions[_i]^operator = ">=" THEN
608
+ _filter := _filter + " >= " + _start_of_day
609
+ ELSE
610
+ _errorMsg := _errorMsgUnsupported
611
+ _isOk := @FALSE
612
+ RETURN
613
+ ENDIF
614
+ _filter := _filter + " )"
615
+ ELSE
616
+ _errorMsg := _errorMsgUnsupported
617
+ _isOk := @FALSE
618
+ RETURN
619
+ ENDIF
620
+
621
+ IF _conditions[_i]^right_par = 1 THEN
622
+ _filter := _filter + " )"
623
+ ENDIF
624
+
625
+ IF _conditions[_i]^logical_operator\VLD & _conditions[_i]^logical_operator != "" THEN
626
+ _filter := _filter + " " + _conditions[_i]^logical_operator
627
+ ENDIF
628
+
629
+ END_LOOP
630
+
631
+ END GetFilterAsText
632
+
333
633
  ;*********************************************************
334
634
  ;*********************************************************
335
635
  ;*********************************************************
@@ -7,6 +7,12 @@
7
7
  <objType>EVENT</objType>
8
8
  <valType>Int</valType>
9
9
  </HOBJ_REF>
10
+ <HOBJ_REF>
11
+ <uid>88D757FB3AD367478EDD36D2EC77BC26</uid>
12
+ <name>SD.EM_EDA_VectorStats</name>
13
+ <objType>STRUCTDEF</objType>
14
+ <valType>NAN</valType>
15
+ </HOBJ_REF>
10
16
  <HOBJ_REF>
11
17
  <uid>0C36D083CCA9034B8DF4A98D4D824202</uid>
12
18
  <name>SD.EM_EDA_VectorValues</name>
@@ -29,7 +35,7 @@
29
35
  <ParentId>SELF.EVH</ParentId>
30
36
  <Value_Type>Int</Value_Type>
31
37
  <CreateTime>08.04.2026 07:43:45.523</CreateTime>
32
- <ModifyTime>09.04.2026 12:48:51.594</ModifyTime>
38
+ <ModifyTime>30.04.2026 12:40:26.244</ModifyTime>
33
39
  <Text_Palette/>
34
40
  <Read_Only>False</Read_Only>
35
41
  <TECH_UNIT/>
@@ -75,8 +81,8 @@
75
81
 
76
82
  UNIT (E.EM_VECTOR_UNIT) _unit
77
83
 
78
- RPC PROCEDURE ReadValuesFromVector(IN INT _id, IN TIME _from, IN TIME _to, IN INT _step, RECORD NOALIAS(SD.EM_EDA_VectorValues) _data, BOOL _isOk, TEXT _errorMsg)
79
- CALL [_unit] ReadValuesFromVector(_id, _from, _to, _step, _data, _isOk, _errorMsg)
84
+ RPC PROCEDURE ReadValuesFromVector(IN INT _id, IN TIME _from, IN TIME _to, IN INT _step, RECORD NOALIAS(SD.EM_EDA_VectorValues) _data, RECORD NOALIAS(SD.EM_EDA_VectorStats) _stats, BOOL _isOk, TEXT _errorMsg)
85
+ CALL [_unit] ReadValuesFromVector(_id, _from, _to, _step, _data, _stats, _isOk, _errorMsg)
80
86
  END ReadValuesFromVector
81
87
 
82
88
  BEGIN