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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
 
{{DISPLAYTITLE:Группировка элементов справочника (groupingOptions)}}
 
{{DISPLAYTITLE:Группировка элементов справочника (groupingOptions)}}
Разбивка на группы элементов справочника в зависимости от собственного или связанного атрибута
+
Разбивка на группы элементов справочника на основании от собственного или связанного атрибута
  
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
Строка 18: Строка 18:
 
         ],
 
         ],
 
         "fillOwnTransitiveForLinkedAttributes": false,
 
         "fillOwnTransitiveForLinkedAttributes": false,
         "isGroupingNull": true,
+
         "isGroupingNull": false,
         "areNullValuesLast": true,
+
         "nullValueGroupName": "Не задано",
         "areGroupingElementsLast": false,
+
         "areNullValuesLast": false,
         "nullValueGroupName": "Не задано"
+
         "areGroupingElementsLast": false
       },
+
       }
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Строка 29: Строка 29:
 
! Значение !! Описание
 
! Значение !! Описание
 
|-
 
|-
| destinationAttribute || В какой атрибут будет записываться группировочный элемент. По умолчанию: атрибут "Наименование"
+
| destinationAttribute || В каком атрибуте группируемого справочника будет формироваться наименование группировочного элемента (атрибут должен быть текстовый). По умолчанию: атрибут "Наименование"
 
|-
 
|-
 
| [[Платформа 3V/Справочник/Группировка|'''dictionaryGroupingAttributes''']] || Описание пути до атрибута, по которому будет производиться группировка
 
| [[Платформа 3V/Справочник/Группировка|'''dictionaryGroupingAttributes''']] || Описание пути до атрибута, по которому будет производиться группировка
 
|-
 
|-
| fillOwnTransitiveForLinkedAttributes || ????
+
| fillOwnTransitiveForLinkedAttributes || Флаг заполнения у группировочного элемента атрибута, который является транзитивным для группируемого справочника и собственным для справочника, по которому происходит группировка
 
|-
 
|-
| isGroupingNull || Флаг группировки элементов с пустым атрибутом, по которому происходит группировка, под отдельный элемент с названием указанным в nullValueGroupName (true / false). По умолчанию под элемент "Не задано"
+
| isGroupingNull || Флаг группировки элементов с пустым атрибутом, по которому происходит группировка, под отдельный элемент (true / false). По умолчанию группировка происходит под элемент "Не задано", название указывается в nullValueGroupName
 
|-
 
|-
 
| nullValueGroupName || Наименование группировочного элемента для элементов с пустым группировочным атрибутом
 
| nullValueGroupName || Наименование группировочного элемента для элементов с пустым группировочным атрибутом
Строка 56: Строка 56:
 
         ]
 
         ]
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Строка 65: Строка 64:
 
| groupCustomName || Пользовательское наименование группировочных элементов
 
| groupCustomName || Пользовательское наименование группировочных элементов
  
 +
|}
 +
 +
== Примеры использования группировочных настроек ==
 +
 +
Для формирования связи между объектами строительства и инвестиционными проектами в справочнике "Объекты строительства" настроен связанный атрибут на справочник "Инвестиционный проект"
 +
 +
''Исходный вид справочника "Объекты строительства":''
 +
{| class="wikitable"
 +
|-
 +
! Наименование объекта (id=2) !! Инвестиционный проект (id=21) !! Код объекта (id=22)
 +
|-
 +
| Объект 1 || ИП 1 || 01-1
 +
|-
 +
| Объект 2 || ИП 1 || 01-2
 +
|-
 +
| Объект 3 || ИП 2 || 02-3
 +
|-
 +
| Объект 4 || - || 00-4
 +
|}
 +
 +
'''По умолчанию группировка по атрибуту "Инвестиционные проекты"'''
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта
 +
|-
 +
| .. Объект 4 || - || 00-4
 +
|-
 +
| '''ИП 1''' ||  ||
 +
|-
 +
| .. Объект 1 || ИП 1 || 01-1
 +
|-
 +
| .. Объект 2 || ИП 1 || 01-1
 +
|-
 +
| '''ИП 2''' ||  ||
 +
|-
 +
| .. Объект 3 || ИП 2 || 02-3
 +
|}
 +
 +
=== Атрибут для наименования группировочного элемента (destinationAttribute) ===
 +
 +
'''По атрибуту "Код объекта" (id=22)'''
 +
<syntaxhighlight lang="JSON" line>
 +
        "destinationAttribute": {
 +
          "id": 22,
 +
          "discriminator": "OwnAttributeDefinitionDto"
 +
        }
 +
</syntaxhighlight>
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта
 +
|-
 +
| .. Объект 4 || - || 00-4
 +
|-
 +
|  ||  || '''ИП 1'''
 +
|-
 +
| .. Объект 1 || ИП 1 || 01-1
 +
|-
 +
| .. Объект 2 || ИП 1 || 01-1
 +
|-
 +
|  ||  || '''ИП 2'''
 +
|-
 +
| .. Объект 3 || ИП 2 || 02-3
 +
|}
 +
 +
=== Флаг fillOwnTransitiveForLinkedAttributes ===
 +
Флаг используется при необходимости заполнить у группировочного элемента атрибут, который является транзитивным для группируемого справочника и собственным для справочника, по которому происходит группировка
 +
 +
Группируем справочник "Объекты строительства" по инвестиционным проектам и необходимо, чтобы атр."Код ИП" справочника "Инвестиционные проекты" заполнился как у группируемых элементов, так и у группировочного, для этого выставляем флаг
 +
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта !! Код инвест.проекта
 +
|-
 +
| .. Объект 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 не заполнен. По умолчанию "Не задано"
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта
 +
|-
 +
| '''Не задано''' ||  ||
 +
|-
 +
| .. Объект 4 || - || 00-4
 +
|-
 +
| '''ИП 1''' ||  || 
 +
|-
 +
| .. Объект 1 || ИП 1 || 01-1
 +
|-
 +
| .. Объект 2 || ИП 1 || 01-2
 +
|-
 +
| '''ИП 2''' || 
 +
|-
 +
| .. Объект 3 || ИП 2 || 02-3
 +
|}
 +
 +
nullValueGroupName: "Без ИП"
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта
 +
|-
 +
| '''Без ИП''' ||  ||
 +
|-
 +
| .. Объект 4 || - || 00-4
 +
|-
 +
| '''ИП 1''' ||  || 
 +
|-
 +
| .. Объект 1 || ИП 1 || 01-1
 +
|-
 +
| .. Объект 2 || ИП 1 || 01-2
 +
|-
 +
| '''ИП 2''' ||  ||
 +
|-
 +
| .. Объект 3 || ИП 2 || 02-3
 +
|}
 +
=== Флаг areNullValuesLast ===
 +
Флаг используется при необходимости располагать элементы с пустым группировочным атрибутом в конце таблицы
 +
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта
 +
|-
 +
| '''ИП 1''' ||  || 
 +
|-
 +
| .. Объект 1 || ИП 1 || 01-1
 +
|-
 +
| .. Объект 2 || ИП 1 || 01-2
 +
|-
 +
| '''ИП 2''' || 
 +
|-
 +
| .. Объект 3 || ИП 2 || 02-3
 +
|-
 +
| Объект 4 || - || 00-4
 +
|}
 +
=== Флаг areGroupingElementsLast ===
 +
Флаг используется при необходимости располагать группировочные элементы после группируемых
 +
 +
{| class="wikitable"
 +
|-
 +
! Номер объекта !! Инвестиционный проект !! Код объекта
 +
|-
 +
| Объект 4 || - || 00-4
 +
|-
 +
| Объект 1 || ИП 1 || 01-1
 +
|-
 +
| Объект 2 || ИП 1 || 01-2
 +
|-
 +
| '''ИП 1''' ||  || 
 +
|-
 +
| Объект 3 || ИП 2 || 02-3
 +
|-
 +
| '''ИП 2''' ||  || 
 
|}
 
|}

Версия 07:05, 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