Платформа 3V/Справочник/Группировка: различия между версиями
S.klimov (обсуждение | вклад) (Добавлено описание настройки DisplayAttribute) |
|||
(не показаны 4 промежуточные версии 1 участника) | |||
Строка 12: | Строка 12: | ||
"attribute": { | "attribute": { | ||
"id": 21, | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "DisplayAttribute": { | ||
+ | "id": 2, | ||
"discriminator": "OwnAttributeDefinitionDto" | "discriminator": "OwnAttributeDefinitionDto" | ||
}, | }, | ||
Строка 44: | Строка 48: | ||
|} | |} | ||
− | == Ссылка на | + | == Ссылка на группировочные атрибуты (dictionaryGroupingAttributes) == |
+ | Указываются атрибуты, по которым необходимо сгруппировать справочник. Может иметь один или больше группировочных атрибутов | ||
<syntaxhighlight lang="JSON" line> | <syntaxhighlight lang="JSON" line> | ||
"dictionaryGroupingAttributes": [ | "dictionaryGroupingAttributes": [ | ||
Строка 50: | Строка 55: | ||
"attribute": { | "attribute": { | ||
"id": 21, | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "DisplayAttribute": { | ||
+ | "id": 2, | ||
"discriminator": "OwnAttributeDefinitionDto" | "discriminator": "OwnAttributeDefinitionDto" | ||
}, | }, | ||
Строка 61: | Строка 70: | ||
|- | |- | ||
| [[Платформа_3V/Справочник/Связь_атрибутов|'''attribute''']] || Описание пути до атрибута, по которому будет производиться группировка | | [[Платформа_3V/Справочник/Связь_атрибутов|'''attribute''']] || Описание пути до атрибута, по которому будет производиться группировка | ||
+ | |- | ||
+ | | DisplayAttribute|| Описание атрибута из которого будут браться наименования для группировочных элементов. | ||
|- | |- | ||
| groupCustomName || Пользовательское наименование группировочных элементов | | groupCustomName || Пользовательское наименование группировочных элементов | ||
Строка 91: | Строка 102: | ||
| .. Объект 4 || - || 00-4 | | .. Объект 4 || - || 00-4 | ||
|- | |- | ||
− | | '''ИП 1''' || || | + | | '''ИП 1''' || || |
|- | |- | ||
| .. Объект 1 || ИП 1 || 01-1 | | .. Объект 1 || ИП 1 || 01-1 | ||
Строка 97: | Строка 108: | ||
| .. Объект 2 || ИП 1 || 01-1 | | .. Объект 2 || ИП 1 || 01-1 | ||
|- | |- | ||
− | | '''ИП 2''' || || | + | | '''ИП 2''' || || |
|- | |- | ||
| .. Объект 3 || ИП 2 || 02-3 | | .. Объект 3 || ИП 2 || 02-3 | ||
Строка 127: | Строка 138: | ||
| .. Объект 3 || ИП 2 || 02-3 | | .. Объект 3 || ИП 2 || 02-3 | ||
|} | |} | ||
+ | |||
+ | === Атрибут, из которого будут браться наименования для группировочных элементов (DisplayAttribute) === | ||
+ | |||
+ | Настройка позволяет отображать не только наименование инвестиционного проекта, но и другие атрибуты, например, "Код". (id=21) | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "DisplayAttribute": { | ||
+ | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Номер объекта !! Инвестиционный проект !! Код объекта | ||
+ | |- | ||
+ | | .. Объект 4 || - || 00-4 | ||
+ | |- | ||
+ | | '''01''' || || | ||
+ | |- | ||
+ | | .. Объект 1 || ИП 1 || 01-1 | ||
+ | |- | ||
+ | | .. Объект 2 || ИП 1 || 01-1 | ||
+ | |- | ||
+ | | '''02''' || || | ||
+ | |- | ||
+ | | .. Объект 3 || ИП 2 || 02-3 | ||
+ | |} | ||
+ | |||
+ | DisplayAttribute задается относительно группировочного атрибута справочника, если этот группировочный атрибут является связанным или транзитивным связанным. | ||
+ | В данном случае группировочный атрибут связан со справочником "Инвестиционный проект", значит в DisplayAttribute следует указывать атрибуты именно справочника "Инвестиционный проект". | ||
=== Флаг fillOwnTransitiveForLinkedAttributes === | === Флаг fillOwnTransitiveForLinkedAttributes === | ||
Строка 139: | Строка 179: | ||
| .. Объект 4 || - || 00-4 || | | .. Объект 4 || - || 00-4 || | ||
|- | |- | ||
− | | '''ИП 1''' || || || '''01''' | + | | '''ИП 1''' || || || '''01''' |
|- | |- | ||
| .. Объект 1 || ИП 1 || 01-1 || 01 | | .. Объект 1 || ИП 1 || 01-1 || 01 | ||
Строка 145: | Строка 185: | ||
| .. Объект 2 || ИП 1 || 01-2 || 01 | | .. Объект 2 || ИП 1 || 01-2 || 01 | ||
|- | |- | ||
− | | '''ИП 2''' || || || '''02''' | + | | '''ИП 2''' || || || '''02''' |
|- | |- | ||
| .. Объект 3 || ИП 2 || 02-3 || 02 | | .. Объект 3 || ИП 2 || 02-3 || 02 | ||
|} | |} | ||
+ | |||
=== Флаг isGroupingNull (с учетом nullValueGroupName)=== | === Флаг isGroupingNull (с учетом nullValueGroupName)=== | ||
Флаг используется при необходимости группировать элементы, которые имеют пустой группировочный атрибут под отдельный элемент с названием указанным в nullValueGroupName | Флаг используется при необходимости группировать элементы, которые имеют пустой группировочный атрибут под отдельный элемент с названием указанным в nullValueGroupName | ||
Строка 167: | Строка 208: | ||
| .. Объект 2 || ИП 1 || 01-2 | | .. Объект 2 || ИП 1 || 01-2 | ||
|- | |- | ||
− | | '''ИП 2''' || | + | | '''ИП 2''' || || |
|- | |- | ||
| .. Объект 3 || ИП 2 || 02-3 | | .. Объект 3 || ИП 2 || 02-3 | ||
Строка 204: | Строка 245: | ||
| .. Объект 2 || ИП 1 || 01-2 | | .. Объект 2 || ИП 1 || 01-2 | ||
|- | |- | ||
− | | '''ИП 2''' || | + | | '''ИП 2''' || || |
|- | |- | ||
| .. Объект 3 || ИП 2 || 02-3 | | .. Объект 3 || ИП 2 || 02-3 | ||
Строка 228: | Строка 269: | ||
|- | |- | ||
| '''ИП 2''' || || | | '''ИП 2''' || || | ||
+ | |} | ||
+ | === Группировка по нескольким атрибутам === | ||
+ | Пример группировки по атрибуту "Инвестиционные проекты" справочника "Объекты строительства" и транзитивному атрибуту "Регион" (id=22) справочника "Инвестиционные объекты". По примеру оба инвестиционных проекта имеют в атрибуте "Регион" значение "Центральный федеральный округ". | ||
+ | |||
+ | Порядок указанных атрибутов в настройке "dictionaryGroupingAttributes" определяет порядок группировки справочника. | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "dictionaryGroupingAttributes": [ | ||
+ | { | ||
+ | "attribute": { | ||
+ | "innerAttribute": { | ||
+ | "id": 22, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "id": 21, | ||
+ | "discriminator": "TransitiveAttributeDefinitionDto" | ||
+ | }, | ||
+ | "groupCustomName": null | ||
+ | }, | ||
+ | { | ||
+ | "attribute": { | ||
+ | "id": 21, | ||
+ | "discriminator": "OwnAttributeDefinitionDto" | ||
+ | }, | ||
+ | "groupCustomName": null | ||
+ | } | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Номер объекта !! Инвестиционный проект !! Код объекта | ||
+ | |- | ||
+ | | .. Объект 4 || - || 00-4 | ||
+ | |- | ||
+ | | '''Центральный федеральный округ''' || || | ||
+ | |- | ||
+ | | '''.. ИП 1''' || || | ||
+ | |- | ||
+ | | .... Объект 1 || ИП 1 || 01-1 | ||
+ | |- | ||
+ | | .... Объект 2 || ИП 1 || 01-1 | ||
+ | |- | ||
+ | | '''.. ИП 2''' || || | ||
+ | |- | ||
+ | | .... Объект 3 || ИП 2 || 02-3 | ||
|} | |} |
Текущая версия на 12:00, 13 июля 2021
Разбивка на группы элементов справочника на основании от собственного или связанного атрибута
1 "groupingOptions": {
2 "destinationAttribute": {
3 "id": 2,
4 "discriminator": "OwnAttributeDefinitionDto"
5 },
6 "dictionaryGroupingAttributes": [
7 {
8 "attribute": {
9 "id": 21,
10 "discriminator": "OwnAttributeDefinitionDto"
11 },
12 "DisplayAttribute": {
13 "id": 2,
14 "discriminator": "OwnAttributeDefinitionDto"
15 },
16 "groupCustomName": null
17 }
18 ],
19 "fillOwnTransitiveForLinkedAttributes": false,
20 "isGroupingNull": false,
21 "nullValueGroupName": "Не задано",
22 "areNullValuesLast": false,
23 "areGroupingElementsLast": false
24 }
Значение | Описание |
---|---|
destinationAttribute | В каком атрибуте группируемого справочника будет формироваться наименование группировочного элемента (атрибут должен быть текстовый). По умолчанию: атрибут "Наименование" |
dictionaryGroupingAttributes | Описание пути до атрибута, по которому будет производиться группировка |
fillOwnTransitiveForLinkedAttributes | Флаг заполнения у группировочного элемента атрибута, который является транзитивным для группируемого справочника и собственным для справочника, по которому происходит группировка |
isGroupingNull | Флаг группировки элементов с пустым атрибутом, по которому происходит группировка, под отдельный элемент (true / false). По умолчанию группировка происходит под элемент "Не задано", название указывается в nullValueGroupName |
nullValueGroupName | Наименование группировочного элемента для элементов с пустым группировочным атрибутом |
areNullValuesLast | Флаг размещения последними элементов с пустым группировочным атрибутом (true / false) |
areGroupingElementsLast | Флаг размещения группировочных элементов после входящих в группу элементов (true / false) |
Содержание
- 1 Ссылка на группировочные атрибуты (dictionaryGroupingAttributes)
- 2 Примеры использования группировочных настроек
- 2.1 Атрибут для наименования группировочного элемента (destinationAttribute)
- 2.2 Атрибут, из которого будут браться наименования для группировочных элементов (DisplayAttribute)
- 2.3 Флаг fillOwnTransitiveForLinkedAttributes
- 2.4 Флаг isGroupingNull (с учетом nullValueGroupName)
- 2.5 Флаг areNullValuesLast
- 2.6 Флаг areGroupingElementsLast
- 2.7 Группировка по нескольким атрибутам
Ссылка на группировочные атрибуты (dictionaryGroupingAttributes)
Указываются атрибуты, по которым необходимо сгруппировать справочник. Может иметь один или больше группировочных атрибутов
1 "dictionaryGroupingAttributes": [
2 {
3 "attribute": {
4 "id": 21,
5 "discriminator": "OwnAttributeDefinitionDto"
6 },
7 "DisplayAttribute": {
8 "id": 2,
9 "discriminator": "OwnAttributeDefinitionDto"
10 },
11 "groupCustomName": null
12 }
13 ]
Значение | Описание |
---|---|
attribute | Описание пути до атрибута, по которому будет производиться группировка |
DisplayAttribute | Описание атрибута из которого будут браться наименования для группировочных элементов. |
groupCustomName | Пользовательское наименование группировочных элементов |
Примеры использования группировочных настроек
Для формирования связи между объектами строительства и инвестиционными проектами в справочнике "Объекты строительства" настроен связанный атрибут на справочник "Инвестиционный проект"
Исходный вид справочника "Объекты строительства":
Наименование объекта (id=2) | Инвестиционный проект (id=21) | Код объекта (id=22) |
---|---|---|
Объект 1 | ИП 1 | 01-1 |
Объект 2 | ИП 1 | 01-2 |
Объект 3 | ИП 2 | 02-3 |
Объект 4 | - | 00-4 |
По умолчанию группировка по атрибуту "Инвестиционные проекты"
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
.. Объект 4 | - | 00-4 |
ИП 1 | ||
.. Объект 1 | ИП 1 | 01-1 |
.. Объект 2 | ИП 1 | 01-1 |
ИП 2 | ||
.. Объект 3 | ИП 2 | 02-3 |
Атрибут для наименования группировочного элемента (destinationAttribute)
Настройка позволяет группировать не в атрибуте по умолчанию "Наименование", а другом текстовом атрибуте, например "Код объекта" (id=22)
1 "destinationAttribute": {
2 "id": 22,
3 "discriminator": "OwnAttributeDefinitionDto"
4 }
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
.. Объект 4 | - | 00-4 |
ИП 1 | ||
.. Объект 1 | ИП 1 | 01-1 |
.. Объект 2 | ИП 1 | 01-1 |
ИП 2 | ||
.. Объект 3 | ИП 2 | 02-3 |
Атрибут, из которого будут браться наименования для группировочных элементов (DisplayAttribute)
Настройка позволяет отображать не только наименование инвестиционного проекта, но и другие атрибуты, например, "Код". (id=21)
1 "DisplayAttribute": {
2 "id": 21,
3 "discriminator": "OwnAttributeDefinitionDto"
4 }
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
.. Объект 4 | - | 00-4 |
01 | ||
.. Объект 1 | ИП 1 | 01-1 |
.. Объект 2 | ИП 1 | 01-1 |
02 | ||
.. Объект 3 | ИП 2 | 02-3 |
DisplayAttribute задается относительно группировочного атрибута справочника, если этот группировочный атрибут является связанным или транзитивным связанным. В данном случае группировочный атрибут связан со справочником "Инвестиционный проект", значит в DisplayAttribute следует указывать атрибуты именно справочника "Инвестиционный проект".
Флаг fillOwnTransitiveForLinkedAttributes
Флаг используется при необходимости заполнить у группировочного элемента атрибут, который является транзитивным для группируемого справочника и собственным для справочника, по которому происходит группировка
Группируем справочник "Объекты строительства" по инвестиционным проектам и необходимо, чтобы атр."Код ИП" справочника "Инвестиционные проекты" заполнился как у группируемых элементов, так и у группировочного, для этого выставляем флаг
Номер объекта | Инвестиционный проект | Код объекта | Код инвест.проекта |
---|---|---|---|
.. Объект 4 | - | 00-4 | |
ИП 1 | 01 | ||
.. Объект 1 | ИП 1 | 01-1 | 01 |
.. Объект 2 | ИП 1 | 01-2 | 01 |
ИП 2 | 02 | ||
.. Объект 3 | ИП 2 | 02-3 | 02 |
Флаг isGroupingNull (с учетом nullValueGroupName)
Флаг используется при необходимости группировать элементы, которые имеют пустой группировочный атрибут под отдельный элемент с названием указанным в nullValueGroupName
nullValueGroupName не заполнен. По умолчанию "Не задано"
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
Не задано | ||
.. Объект 4 | - | 00-4 |
ИП 1 | ||
.. Объект 1 | ИП 1 | 01-1 |
.. Объект 2 | ИП 1 | 01-2 |
ИП 2 | ||
.. Объект 3 | ИП 2 | 02-3 |
nullValueGroupName: "Без ИП"
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
Без ИП | ||
.. Объект 4 | - | 00-4 |
ИП 1 | ||
.. Объект 1 | ИП 1 | 01-1 |
.. Объект 2 | ИП 1 | 01-2 |
ИП 2 | ||
.. Объект 3 | ИП 2 | 02-3 |
Флаг areNullValuesLast
Флаг используется при необходимости располагать элементы с пустым группировочным атрибутом в конце таблицы
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
ИП 1 | ||
.. Объект 1 | ИП 1 | 01-1 |
.. Объект 2 | ИП 1 | 01-2 |
ИП 2 | ||
.. Объект 3 | ИП 2 | 02-3 |
Объект 4 | - | 00-4 |
Флаг areGroupingElementsLast
Флаг используется при необходимости располагать группировочные элементы после группируемых
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
Объект 4 | - | 00-4 |
Объект 1 | ИП 1 | 01-1 |
Объект 2 | ИП 1 | 01-2 |
ИП 1 | ||
Объект 3 | ИП 2 | 02-3 |
ИП 2 |
Группировка по нескольким атрибутам
Пример группировки по атрибуту "Инвестиционные проекты" справочника "Объекты строительства" и транзитивному атрибуту "Регион" (id=22) справочника "Инвестиционные объекты". По примеру оба инвестиционных проекта имеют в атрибуте "Регион" значение "Центральный федеральный округ".
Порядок указанных атрибутов в настройке "dictionaryGroupingAttributes" определяет порядок группировки справочника.
1 "dictionaryGroupingAttributes": [
2 {
3 "attribute": {
4 "innerAttribute": {
5 "id": 22,
6 "discriminator": "OwnAttributeDefinitionDto"
7 },
8 "id": 21,
9 "discriminator": "TransitiveAttributeDefinitionDto"
10 },
11 "groupCustomName": null
12 },
13 {
14 "attribute": {
15 "id": 21,
16 "discriminator": "OwnAttributeDefinitionDto"
17 },
18 "groupCustomName": null
19 }
20 ]
Номер объекта | Инвестиционный проект | Код объекта |
---|---|---|
.. Объект 4 | - | 00-4 |
Центральный федеральный округ | ||
.. ИП 1 | ||
.... Объект 1 | ИП 1 | 01-1 |
.... Объект 2 | ИП 1 | 01-1 |
.. ИП 2 | ||
.... Объект 3 | ИП 2 | 02-3 |