Wiki source code of 09_table

Version 15.2 by Bimit Administrator on 04.03.2026, 10:57

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