Платформа 3V/Справочник/Задание атрибутов в справочнике/Вычислимые атрибуты
Перейти к навигации
Перейти к поиску
Вычислимый атрибут - это атрибут, значение которого вычисляется по формуле.
Пример: При помощи вычислимого столбца можно вывести Ф.И.О. сотрудника в одном столбце, если в справочнике есть атрибуты: Фамилия, Имя, Отчество.
Для создания вычислимого атрибута необходимо: 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 }