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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
Строка 67: Строка 67:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
 +
Еще пример описания вычислимого атрибута в json:
 +
<syntaxhighlight lang="JSON" line>
 +
 +
  {
 +
        "id": 25,
 +
        "name": "Выч. атрибут Bool",
 +
        "code": "CODE_8",
 +
        "description": "",
 +
        "dataType": "Boolean",
 +
        "type": "Calculated",
 +
        "isNullable": true,
 +
        "hasMultipleValues": false,
 +
        "isVisible": true,
 +
        "isReadOnly": false,
 +
        "formula": {
 +
          "expression": "[1] > 2",
 +
          "operands": [
 +
            {
 +
              "attribute": {
 +
                "discriminator": "OwnAttributeDefinitionDto",
 +
                "id": 1
 +
              },
 +
              "discriminator": "InvariantAttributeFormulaOperandDto",
 +
              "code": null,
 +
              "id": 1,
 +
              "name": null
 +
            }
 +
          ],
 +
          "code": null,
 +
          "id": 0,
 +
          "name": null
 +
        },
 +
        "tableName": "",
 +
        "identIndex": {
 +
          "code": null,
 +
          "isUnique": false,
 +
          "dbIndexName": null,
 +
          "fields": [],
 +
          "isNew": true
 +
        },
 +
        "referenceIndex": {
 +
          "code": null,
 +
          "isUnique": false,
 +
          "dbIndexName": null,
 +
          "fields": [],
 +
          "isNew": true
 +
        },
 +
        "defaultValue": null,
 +
        "defaultValueExpression": null,
 +
        "component": null,
 +
        "parentAttributeId": null,
 +
        "locale": null
 +
      }
 +
</syntaxhighlight >

Текущая версия на 14:11, 29 ноября 2021

Вычислимый атрибут - это атрибут, значение которого вычисляется по формуле.

Пример: При помощи вычислимого столбца можно вывести Ф.И.О. сотрудника в одном столбце, если в справочнике есть атрибуты: Фамилия, Имя, Отчество.

Для создания вычислимого атрибута необходимо: 1. Создать атрибут с типом "Вычислимый" ("type": "Calculated"); 2. Установить для атрибута режим "Только для чтения" ("isReadOnly: true"); 2. Задать для атрибута формулу вычисления (formula).

Пример:

 1 [{
 2         "id": 21,
 3         "name": "Имя",
 4         "dataType": "String"
 5     }, {
 6         "id": 22,
 7         "name": "Фамилия",
 8         "dataType": "String"
 9     }, {
10         "id": 23,
11         "name": "Отчество",
12         "dataType": "String"
13     }, {
14         "id": 24,
15         "name": "Ф.И.О",
16         "type": "Calculated",
17         "isReadOnly": true,
18         "dataType": "String",
19         "formula": {
20             "id": 1,
21             "name": "Формула вычисления Ф.И.О"
22             "code": "FIO_FORMULA",
23             "expression": "[0]+[1]+[2]",
24             "operands": [{
25                     "id": 1,
26                     "code": null,
27                     "name": null,
28                     "discriminator": "InvariantAttributeFormulaOperandDto",
29                     "attribute": {
30                         "id": 22,
31                         "discriminator": "OwnAttributeDefinitionDto"
32                     },
33                 }, {
34                     "id": 2,
35                     "code": null,
36                     "name": null,
37                     "discriminator": "InvariantAttributeFormulaOperandDto",
38                     "attribute": {
39                         "id": 21,
40                         "discriminator": "OwnAttributeDefinitionDto"
41                     }
42                 }, {
43                     "id": 3,
44                     "code": null,
45                     "name": null,
46                     "discriminator": "InvariantAttributeFormulaOperandDto",
47                     "attribute": {
48                         "id": 23,
49                         "discriminator": "OwnAttributeDefinitionDto"
50                     }
51                 }
52             ]
53         }
54     }
55 ]


Еще пример описания вычислимого атрибута в json:

 1    {
 2         "id": 25,
 3         "name": "Выч. атрибут Bool",
 4         "code": "CODE_8",
 5         "description": "",
 6         "dataType": "Boolean",
 7         "type": "Calculated",
 8         "isNullable": true,
 9         "hasMultipleValues": false,
10         "isVisible": true,
11         "isReadOnly": false,
12         "formula": {
13           "expression": "[1] > 2",
14           "operands": [
15             {
16               "attribute": {
17                 "discriminator": "OwnAttributeDefinitionDto",
18                 "id": 1
19               },
20               "discriminator": "InvariantAttributeFormulaOperandDto",
21               "code": null,
22               "id": 1,
23               "name": null
24             }
25           ],
26           "code": null,
27           "id": 0,
28           "name": null
29         },
30         "tableName": "",
31         "identIndex": {
32           "code": null,
33           "isUnique": false,
34           "dbIndexName": null,
35           "fields": [],
36           "isNew": true
37         },
38         "referenceIndex": {
39           "code": null,
40           "isUnique": false,
41           "dbIndexName": null,
42           "fields": [],
43           "isNew": true
44         },
45         "defaultValue": null,
46         "defaultValueExpression": null,
47         "component": null,
48         "parentAttributeId": null,
49         "locale": null
50       }