Платформа 3V/Справочник/Группировка: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 229: Строка 229:
 
|-
 
|-
 
| '''ИП 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
 
|}
 
|}

Версия 07:47, 6 апреля 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             "groupCustomName": null
13           }
14         ],
15         "fillOwnTransitiveForLinkedAttributes": false,
16         "isGroupingNull": false,
17         "nullValueGroupName": "Не задано",
18         "areNullValuesLast": false,
19         "areGroupingElementsLast": false
20       }
Значение Описание
destinationAttribute В каком атрибуте группируемого справочника будет формироваться наименование группировочного элемента (атрибут должен быть текстовый). По умолчанию: атрибут "Наименование"
dictionaryGroupingAttributes Описание пути до атрибута, по которому будет производиться группировка
fillOwnTransitiveForLinkedAttributes Флаг заполнения у группировочного элемента атрибута, который является транзитивным для группируемого справочника и собственным для справочника, по которому происходит группировка
isGroupingNull Флаг группировки элементов с пустым атрибутом, по которому происходит группировка, под отдельный элемент (true / false). По умолчанию группировка происходит под элемент "Не задано", название указывается в nullValueGroupName
nullValueGroupName Наименование группировочного элемента для элементов с пустым группировочным атрибутом
areNullValuesLast Флаг размещения последними элементов с пустым группировочным атрибутом (true / false)
areGroupingElementsLast Флаг размещения группировочных элементов после входящих в группу элементов (true / false)

Ссылка на группировочные атрибуты (dictionaryGroupingAttributes)

Указываются атрибуты, по которым необходимо сгруппировать справочник. Может иметь один или больше группировочных атрибутов

1         "dictionaryGroupingAttributes": [
2           {
3             "attribute": {
4               "id": 21,
5               "discriminator": "OwnAttributeDefinitionDto"
6             },
7             "groupCustomName": null
8           }
9         ]
Значение Описание
attribute Описание пути до атрибута, по которому будет производиться группировка
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

Флаг 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