feat(form-compile): группировка колонок таблицы (ColumnGroup)

Новый DSL-ключ columnGroup со значением-ориентацией horizontal/vertical/inCell
для элемента <ColumnGroup> внутри columns таблицы. Поддерживает вложение,
showTitle/showInHeader/width, тихие синонимы ColumnGroup и ГруппаКолонок.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-05-04 11:48:35 +03:00
parent f3466e19fd
commit 4f9d9aee97
5 changed files with 192 additions and 7 deletions
+28 -1
View File
@@ -268,7 +268,7 @@
| Свойство | Тип | Описание |
|----------|-----|----------|
| `path` | string | DataPath |
| `columns` | array | Колонки (элементы input/check/labelField/picField) |
| `columns` | array | Колонки (элементы input/check/labelField/picField, либо `columnGroup` для группировки) |
| `representation` | string | `List`, `Tree`, `HierarchicalList` |
| `changeRowSet` | bool | Разрешить добавление/удаление строк |
| `changeRowOrder` | bool | Разрешить перемещение строк |
@@ -278,6 +278,33 @@
| `commandBarLocation` | string | `None`, `Top`, `Bottom`, `Auto` |
| `searchStringLocation` | string | `None`, `Top`, `Bottom`, `CommandBar`, `Auto` |
#### columnGroup — ColumnGroup
Группа колонок таблицы. Используется только внутри `columns` таблицы. Допускается вложение `columnGroup` в `columnGroup`.
```json
{ "table": "Список", "path": "Список", "columns": [
{ "columnGroup": "horizontal", "name": "ГруппаДата", "title": "Срок", "children": [
{ "input": "ДатаНачала", "path": "Список.ДатаНачала" },
{ "input": "ДатаОкончания", "path": "Список.ДатаОкончания" }
]},
{ "columnGroup": "inCell", "name": "ГруппаИсполнитель", "showInHeader": true, "children": [
{ "input": "Исполнитель", "path": "Список.Исполнитель" }
]}
]}
```
| Свойство | Тип | Описание |
|----------|-----|----------|
| `columnGroup` | string | Ориентация: `horizontal`, `vertical`, `inCell` (склейка колонок в одной ячейке шапки) |
| `name` | string | Имя элемента (рекомендуется задавать явно) |
| `title` | string/object | Заголовок группы |
| `showTitle` | bool | Показывать заголовок |
| `showInHeader` | bool | Показывать в шапке таблицы |
| `width` | int | Ширина |
| `horizontalStretch` | bool | Растягивание |
| `children` | array | Колонки внутри группы |
#### pages / page — Pages / Page
```json