Wiki source code of 09_table

Version 12.1 by Bimit Administrator on 04.03.2026, 09:56

Show last authors
1 Это интерфейс для отображения результата работы плагина в табличном виде в системе BIMIT
2 В нем доступны следующий функции:
3
4 * [[addHeaderRow>>path:#_Toc1]] - добавление строки с заголовками в таблицу
5 * [[addRow>>path:#_Toc2]] - добавление строки
6 * [[insertRow>>path:#_Toc14]] - добавление содержимого строки
7 * [[addCell>>path:#_Toc3]] - добавление ячейки в таблицу
8 * [[addButton>>path:#_Toc4]] - добавление кнопки с действием жирный/простой
9 * [[setPageSize>>path:#_Toc5]] - установка количества элементов на одной странице
10 * [[showPage>>path:#_Toc6]] - установка текущей отображаемой таблиц
11 * [[replaceRow>>path:#_Toc7]] - замена содержимого строки по указанному индексу с указанием новых данных
12 * [[sortASC>>path:#_Toc8]] - установка параметров для сортировки данных в таблице по возрастанию с указанием столбца
13 * [[sortDESC>>path:#_Toc9]] - установка параметров для сортировки данных в таблице по убыванию с указанием столбца
14 * [[createGroupElements>>path:#_Toc10]] - создание группы элементов с указанием цвета группы и списка элементов
15 * [[saveTempTable>>path:#_Toc11]] - сохранение временной таблицы (перед сохранением сортирует данные)
16 * [[xlsxToJSON>>path:#_Toc12]] - преобразование документа Excel (XLSX, XLS) в формат JSON
17 * [[xlsxToJSON>>path:#_Toc13]] - преобразование документа Excel (XLSX, XLS) в формат JSON с учетом пагинации
18 * [[setFontBold>>path:#_Toc14]] - применение жирного шрифта
19 * [[setFontItalic>>path:#_Toc15]] - применение курсива
20 * [[setFontSize>>path:#_Toc16]] - применение размера шрифта
21 * [[setCellAlignment>>path:#_Toc17]] - применение выравнивания
22 * [[setColumnVisible>>path:#_Toc18]] - добавление видимости колонки
23 * [[addImage>>path:#_Toc19]] - добавление картинки в таблицу
24 * [[getImage>>path:#_Toc20]] - получение картинки
25
26 (% class="box infomessage" %)
27 (((
28 **{{id name="_Toc1"/}}addHeaderRow** - добавление строки с заголовками в таблицу
29 )))
30
31 * **table.addHeaderRow ("Заголовок 1","Заголовок 2","Заголовок 3")** - сколько заголовков, столько и столбцов в итоговой странице
32 * **table.addHeaderRow(new Column(“Код”,EXPORT), new Column(“Название”,BOTH), new Column(“Ед. изм”,TABLE))** - добавление в аналитический отчет параметра видимости колонки в файле экспорта и в таблице
33
34 **Пример использования:**
35
36 {{code language="java"}}
37 table.addHeaderRow("Заголовок 1","Заголовок 2","Заголовок 3")
38 table.addHeaderRow( new Column("Код",EXPORT), new Column("Название",BOTH), new Column("Ед. изм",TABLE))
39 {{/code}}
40
41 **Примечание:**
42
43 * на экране отобразятся колонки где TABLE | BOTH
44 * файле экспорта отобразятся колонки где EXPORT | BOTH
45
46 (% class="box infomessage" %)
47 (((
48 **{{id name="_Toc2"/}}addRow** - добавление строки
49 )))
50
51 * **table.addRow ("Строка 1","Строка 2","Строка 3")** - создает строку с выбранными данными
52 * **table.addRow ()** - создает пустую строку
53
54 **Примеры использования:**
55
56 {{code language="java"}}
57 table.addRow("Строка 1","Строка 2","Строка 3")
58 {{/code}}
59
60 {{code language="java"}}
61 table.addRow()
62 {{/code}}
63
64
65 (% class="box infomessage" %)
66 (((
67 **{{id name="_Toc14"/}}insertRow** - добавление содержимого строки
68 )))
69
70 * **table.insertRow (int indexRow, Map<Object, Object>... inp)** - добавление содержимого строки по указанному индексу
71 * **table.insertRow (int indexRow, Object... inp)** - добавление содержимого строки по указанному индексу
72
73 **Пример использования:**
74
75 {{code language="java"}}{{/code}}
76
77 {{code language="java"}}{{/code}}
78
79
80 (% class="box infomessage" %)
81 (((
82 **{{id name="_Toc3"/}}addCell** - добавление ячейки в таблицу
83 )))
84
85 * **table.addCell (индекс строки, индекс столбца, данные)**
86 * **table.addCell (1,1, "123")** - создает ячейку в указанном поле или заменяет существующую
87 * **table.addCell (индекс столбца, данные)**
88 * **table.addCell (1, "123")** - заменяет существующую в указанном столбце
89
90 **Примеры использования:**
91
92 {{code language="java"}}
93 table.addCell(индекс строки, индекс столбца, данные)
94 {{/code}}
95
96 {{code language="java"}}
97 table.addCell(1,1, "123")
98 {{/code}}
99
100 {{code language="java"}}
101 table.addCell(индекс столбца, данные)
102 {{/code}}
103
104 {{code language="java"}}
105 table.addCell(1, "123")
106 {{/code}}
107
108
109 (% class="box infomessage" %)
110 (((
111 **{{id name="_Toc4"/}}addButton** - добавление кнопки с действием
112 )))
113
114 * **table.addButton (int indexColumn, int indexRow, String buttonName, String ACTION_TYPE, Object... args)**
115 Количество и тип передаваемых данных зависит от действия
116
117 **Типы действий:**
118
119 (% cellspacing="0" style="border-collapse:collapse; border:none; width:850px" %)
120 |(% style="border-color:#000000; border-style:solid; border-width:1px; padding:7px; vertical-align:top; width:363px" %)**SHOW_ELEMENTS**|(% style="border-color:#000000; border-style:solid; border-width:1px; padding:7px; vertical-align:top; width:485px" %)подсветка элементов на модели по defoult (обычная выборка)
121 |(% style="border-color:#000000; border-style:solid; border-width:1px; padding:7px; vertical-align:top; width:363px" %)**SHOW_GROUP_ELEMENTS**|(% style="border-color:#000000; border-style:solid; border-width:1px; padding:7px; vertical-align:top; width:485px" %)подсветка элементов на модели в соответствии с назначенными для них цветами (если цвет не назначен, то по defoult)
122
123 **Примеры использования:**
124
125
126 {{code language="java"}}
127 table.addButton(1,3,"click","SHOW_ELEMENTS",["29dec5b9-bfe8-4189-82c7-7aec4c858fce", "98cff622-b2a9-475b-be6d-77f443f0ed53"])
128 {{/code}}
129
130 {{code language="java"}}
131 table.addButton(1,1, "color el", "SHOW_GROUP_ELEMENTS", "#FF0000",
132 ["98cff622-b2a9-475b-be6d-77f443f0ed53", "bd70e912-ffaf-4374-8185-e1d44bd4461e", "29dec5b9-bfe8-4189-82c7-7aec4c858fce"])
133 {{/code}}
134
135 {{code language="java"}}
136 def arr = []
137 def conditionOne = bim.createCondition("class", "eq", "IfcPile")
138
139 def el = bim.getElements(conditionOne)
140
141 arr.add(el[0].uuid)
142 arr.add(new Colored("#F322dd", el[1]))
143 arr.add(new Colored("#F30011", el[3].uuid))
144 arr.add(new Colored("#F399dd", "493105b3-d8ab-422e-95ea-dbaab48c8a68"))
145 arr.add(new Colored("#002fff", "2049c986-1f49-4a39-8c1a-dc19348f9d40"))
146
147 table.addButton(1,1, "color group", "SHOW_GROUP_ELEMENTS", "#ff6600", arr)
148 table.addButton(2,1, "group", "SHOW_GROUP_ELEMENTS", arr)
149 {{/code}}
150
151
152 (% class="box infomessage" %)
153 (((
154 **{{id name="_Toc5"/}}setPageSize** - установка количества элементов на одной странице
155 )))
156
157 * **table.setPageSize (количество элементов на странице)** - устанавливает количество отображаемых элементов  (по умолчанию 10)
158
159 **Примеры использования:**
160
161 {{code language="java"}}
162 table.setPageSize(10)
163 {{/code}}
164
165
166 (% class="box infomessage" %)
167 (((
168 **{{id name="_Toc6"/}}showPage** - установка текущей отображаемой таблиц
169 )))
170
171 * **table.showPage (индекс текущей страницы)** - устанавливает текущую страницу (нумерация начинается с 1)
172
173 **Примеры использования:**
174
175 {{code language="java"}}
176 table.showPage(1)
177 {{/code}}
178
179 (% class="box infomessage" %)
180 (((
181 **{{id name="_Toc7"/}}replaceRow** - замена содержимого строки по указанному индексу с указанием новых данных
182 )))
183
184 * **table.replaceRow (int indexRow, Object... inp)**
185
186 **Пример использования:**
187
188 {{code language="java"}}{{/code}}
189
190 (% class="box infomessage" %)
191 (((
192 **{{id name="_Toc8"/}}sortASC** - установка параметров для сортировки данных в таблице по возрастанию с указанием столбца
193 )))
194
195 * **table.sortASC (int indexColumn)**
196
197 **Пример использования:**
198
199 {{code language="java"}}{{/code}}
200
201 (% class="box infomessage" %)
202 (((
203 **{{id name="_Toc9"/}}sortDESC** - установка параметров для сортировки данных в таблице по убыванию с указанием столбца
204 )))
205
206 * **table.sortDESC (int indexColumn)**
207
208 **Пример использования:**
209
210 {{code language="java"}}{{/code}}
211
212 (% class="box infomessage" %)
213 (((
214 **{{id name="_Toc10"/}}createGroupElements** - создание группы элементов с указанием цвета группы и списка элементов
215 )))
216
217 * **table.createGroupElements (String color, List<T> elements)**
218
219 **Пример использования:**
220
221 {{code language="java"}}{{/code}}
222
223 (% class="box infomessage" %)
224 (((
225 **{{id name="_Toc11"/}}saveTempTable** - сохранение временной таблицы (перед сохранением сортирует данные)
226 )))
227
228 * **table.saveTempTable ()**
229
230 **Пример использования:**
231
232 {{code language="java"}}{{/code}}
233
234 (% class="box infomessage" %)
235 (((
236 **{{id name="_Toc12"/}}xlsxToJSON** - преобразование документа Excel (XLSX, XLS) в формат JSON
237 )))
238
239 * **table.xlsxToJSON ()**
240
241 **Пример использования:**
242
243 {{code language="java"}}{{/code}}
244
245 (% class="box infomessage" %)
246 (((
247 **{{id name="_Toc13"/}}xlsxToJSON** - преобразование документа Excel (XLSX, XLS) в формат JSON с учетом пагинации
248 )))
249
250 * **table.xlsxToJSON (int page, int pageSize)**
251
252 **Пример использования:**
253
254 {{code language="java"}}{{/code}}
255
256 (% class="box infomessage" %)
257 (((
258 **{{id name="_Toc14"/}}setFontBold** - применение жирного шрифта
259 )))
260
261 * **table.setFontBold (индекс столбца, индекс строки)**
262
263 **Пример использования:**
264
265 {{code language="java"}}
266 //Применить на всю таблицу
267 table.setFontBold(0, 0)
268
269 //Применить на конкретную строку
270 table.setFontBold(0, 2)
271
272 //Применить на конкретный столбец
273 table.setFontBold(4, 0)
274
275 //Применить на конкретную ячейку
276 table.setFontBold(4, 2)
277 {{/code}}
278
279
280 (% class="box infomessage" %)
281 (((
282 **{{id name="_Toc15"/}}setFontItalic** - применение курсива
283 )))
284
285 * **table.setFontItalic (индекс столбца, индекс строки)**
286
287 **Пример использования:**
288
289 {{code language="java"}}
290 //Применить на всю таблицу
291 table.setFontItalic(0, 0)
292
293 //Применить на конкретную строку
294 table.setFontItalic(0, 2)
295
296 //Применить на конкретный столбец
297 table.setFontItalic(4, 0)
298
299 //Применить на конкретную ячейку
300 table.setFontItalic(4, 2)
301 {{/code}}
302
303
304 (% class="box infomessage" %)
305 (((
306 **{{id name="_Toc16"/}}setFontSize** - применение размера шрифта
307 )))
308
309 * **table.setFontSize (размер шрифта, индекс столбца, индекс строки)**
310
311 **Пример использования:**
312
313 {{code language="java"}}
314 //Применить на всю таблицу
315 table.setFontSize(12, 0, 0)
316
317 //Применить на конкретную строку
318 table.setFontSize(15, 0, 2)
319
320 //Применить на конкретный столбец
321 table.setFontSize(8, 4, 0)
322
323 //Применить на конкретную ячейку
324 table.setFontSize(20, 4, 2)
325 {{/code}}
326
327
328 (% class="box infomessage" %)
329 (((
330 **{{id name="_Toc17"/}}setCellAlignment** - применение выравнивания
331 )))
332
333 * **table.setCellAlignment (сторона выравнивания, индекс столбца, индекс строки)**
334
335 **Пример использования:**
336
337 {{code language="java"}}
338 //Применить на всю таблицу
339 table.setFontSize("left", 0, 0)
340
341 //Применить на конкретную строку
342 table.setFontSize("center", 0, 2)
343
344 //Применить на конкретный столбец
345 table.setFontSize("right", 4, 0)
346
347 //Применить на конкретную ячейку
348 table.setFontSize("left", 4, 2)
349 {{/code}}
350
351 (% class="box infomessage" %)
352 (((
353 **{{id name="_Toc18"/}}setColumnVisible** - добавление видимости колонки
354 )))
355
356 * **table.setColumnVisible ("Индекс колонки"," ")** - добавление видимости колонки
357
358 **Пример использования:**
359
360 {{code language="java"}}
361 table.setColumnVisible(1, "TABLE")
362 table.setColumnVisible(2, "TABLE")
363 table.setColumnVisible(3, "EXPORT")
364 {{/code}}
365
366
367 (% class="box infomessage" %)
368 (((
369 **{{id name="_Toc19"/}}addImage** - добавление картинки в таблицу
370 )))
371
372 * **table.addImage(6, 1, изображение)** - добавление картинки в таблицу
373 * **table.addImage(5, 1,img3, 200) **-
374
375 **Пример использования:**
376
377 {{code language="java"}}
378 table.addImage(6, 1, imgResult)
379 {{/code}}
380
381
382 (% class="box infomessage" %)
383 (((
384 **{{id name="_Toc20"/}}getImage** - получение картинки
385 )))
386
387 * **table.getImage("путь до картинки")** - получение картинки
388
389 **Пример использования:**
390
391 {{code language="java"}}
392 def img1 = table.getImage("collections/images/Arm/IFC_Арматура_Кольцо_ГОСТ_5781-82.png")
393 def img2 = table.getImage("collections/images/Arm/О_(23).png")
394 def img3 = Images.joinHorizontal(img1, img2.crop(10, 10, 400, 200))
395 def img4 = Images.joinVertical(img1, img2.crop(10, 10, 400, 200))
396 {{/code}}