Wiki source code of 09_table

Version 10.1 by Bimit Administrator on 04.03.2026, 09:46

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