Платформа 3V/Методика/Настроить параметры
По аналогии с параметрами отчета, в методике расчета можно использоваться параметры простые, типизированные и параметры на справочнике.
Содержание
Простой параметр (SimpleValueParameterDto)
Простой параметр - это параметр значение которого задается константой.
1 {
2 "defaultValue": "Значение по умолчанию",
3 "value": "Значение",
4 "isMultiselect": false,
5 "isEmptyValuePossible": false,
6 "isDisableable": false,
7 "isDisabled": false,
8 "dataControlOptions": null,
9 "id": 1,
10 "name": "Простой параметр",
11 "discriminator": "SimpleValueParameterDto"
12 }
Свойство | Описание |
---|---|
id | Идентификатор параметра |
name | Наименование параметра |
isMultiselect | Признак, что параметр может иметь множественное значение |
isEmptyValuePossible | Признак, что параметр может иметь пустое значение |
isDisableable | Признак, что параметр может быть отключён |
IsDisabled | Признак, что параметр отключен |
DataControlOptions | Настройки элемента управления (контрола) параметром DataControlOptionsDto |
value | Значение параметра, если isMultiselect == true, то в значении может быть массив значений. |
defaultValue | Значение параметра по умолчанию |
Типизированный параметр (TypedValueParameterDto)
Типизированный параметр - это параметр значение которого задается типизированной константой.
1 {
2 "dataType": "String",
3 "defaultValue": "Значение по умолчанию",
4 "value": "Значение",
5 "isMultiselect": false,
6 "isEmptyValuePossible": false,
7 "isDisableable": false,
8 "isDisabled": false,
9 "dataControlOptions": null,
10 "id": 1,
11 "name": "Типизированный параметр",
12 "discriminator": "TypedValueParameterDto"
13 }
Ключевое отличие типизированного параметра от простого заключается в строгой типизации значения, если для простого параметра не важно что в значение будет: строка, число, дата, то для типизированного важно.
Свойство | Описание |
---|---|
dataType | Тип данных значений параметра |
Остальные свойства TypedValueParameterDto такие же как в SimpleValueParameterDto за исключением dataType.
Параметр на справочнике (DictionaryParameterDto)
Параметр на справочнике - это параметр значения которого берутся из атрибута справочника.
1 {
2 "options": {
3 "groupingOptions": null,
4 "groupingMethod": "Default",
5 "sortingOptions": null,
6 "rootElement": null,
7 "virtualElements": null,
8 "displayValueOptions": null,
9 "dictionaryId": 8237,
10 "filter": null,
11 "selection": null,
12 "hierarchyId": null
13 },
14 "selectionFilter": {
15 "value": [
16 1
17 ],
18 "skipIfValueNull": false,
19 "attributeId": null,
20 "attribute": {
21 "id": 1,
22 "discriminator": "OwnAttributeDefinitionDto"
23 },
24 "conditionType": "AttributeInCollection",
25 "inversion": false,
26 "discriminator": "ValueConditionalDictionaryFilterDto"
27 },
28 "attributeValues": null,
29 "defaultValue": [],
30 "value": null,
31 "isMultiselect": false,
32 "isEmptyValuePossible": true,
33 "isDisableable": false,
34 "isDisabled": false,
35 "dataControlOptions": null,
36 "id": 2,
37 "name": "Ремонты",
38 "discriminator": "DictionaryParameterDto"
39 }
Свойство | Описание |
---|---|
options | Настройки справочника для параметра DictionaryOptionsDto |
attributeValues | Значения атрибута справочника, которые будут использоваться в качестве значений (вместо value) DictionaryAttributeParameterValueDto |
selectionFilter | Фильтр, по которому будет определятся отметка справочника в параметре. |
Свойства dictionaryId, sortingOptions, displayValueOptions являются устаревшими.
Остальные свойства DictionaryParameterDto такие же как в SimpleValueParameterDto.
Способы задания отметки для параметра на справочнике
- Value или DefaultValue
- AttributeValues (Теперь устаревшее, т.к. появился фильтр, но поддержка остается)
- SelectionFilter
Приоритет отдается SelectionFilter, затем AttributeValues и в последнюю очередь Value и DefaultValue.
При открытии отмечать все элементы
1 "selectionFilter": {
2 "value": null,
3 "skipIfValueNull": false,
4 "attributeId": null,
5 "attribute": {
6 "id": 1,
7 "discriminator": "OwnAttributeDefinitionDto"
8 },
9 "conditionType": "AllElements",
10 "inversion": false,
11 "discriminator": "ValueConditionalDictionaryFilterDto"
12 },
Вычислимый параметр
Вычислимый параметр - это параметр значение которых вычисляется по выражению.
- Вычисление значения параметра поддерживается только для SimpleValueParameterDto.
- Выражение описывается в свойстве параметра DefaultValue или Value.
- Выражение ДОЛЖНО начинаться с символа '=', например "=1+2".
- Тип данных параметра определяется по результату вычисления, поэтому нет смысла использовать TypedValueParameterDto.
Лучше вначале настроить фильтрацию справочник на параметр, заданный через конструктор, а затем переназначить через json на добавленный вычислимый параметр SimpleValueParameterDto , т.к. вычислимый SimpleValueParameterDto не очень корректно отображаются в конструкторе на текущий момент.
Пример описания параметра с вычислением даты завтрашнего дня.
1 {
2 "id": 1,
3 "name": "Завтра",
4 "IsDisabled": true,
5 "defaultValue": "=Now()+1",
6 "discriminator": "SimpleValueParameterDto"
7 }
Пример описания параметра с вычислением числа.
1 {
2 "id": 1,
3 "name": "Число",
4 "IsDisabled": true,
5 "defaultValue": "=1 + 2.3",
6 "discriminator": "SimpleValueParameterDto"
7 }
Пример описания параметра с вычислением строки.
1 {
2 "id": 1,
3 "name": "Строка",
4 "IsDisabled": true,
5 "defaultValue": "=('ab' + 'cd')",
6 "discriminator": "SimpleValueParameterDto"
7 }
Пример методики с параметром равным текущему дню
Ссылка на пример на study: https://study.3v-cloud.com/navigator/#/?viewId=883
Суть методики - записать значение атрибута календарного справочника, отфильтрованного от вычисляемого параметра, который равен текущему дню.
1 {
2 "parameters": [
3 {
4 "dataType": "DateTime",
5 "discriminator": "TypedValueParameterDto",
6 "defaultValue": [
7 "2021-11-11T00:00:00Z"
8 ],
9 "value": [
10 "2021-11-11T00:00:00Z"
11 ],
12 "isMultiselect": false,
13 "isEmptyValuePossible": true,
14 "isDisableable": false,
15 "isDisabled": false,
16 "id": 1,
17 "name": "New calendar dictionary"
18 },
19 {
20 "discriminator": "SimpleValueParameterDto",
21 "defaultValue": "=Today()",
22 "value": null,
23 "isMultiselect": false,
24 "isEmptyValuePossible": false,
25 "isDisableable": false,
26 "isDisabled": false,
27 "id": 2,
28 "name": "Сегодня"
29 }
30 ],
31 "folders": [],
32 "formulas": [
33 {
34 "expression": "[1]",
35 "operands": [
36 {
37 "sourceId": 2,
38 "aggregationType": "None",
39 "selections": [
40 {
41 "attributeMapping": [],
42 "dictionaryId": 140425,
43 "filter": {
44 "type": "And",
45 "filters": [
46 {
47 "value": [
48 6
49 ],
50 "skipIfValueNull": false,
51 "attributeId": null,
52 "attribute": {
53 "discriminator": "OwnAttributeDefinitionDto",
54 "id": 7
55 },
56 "conditionType": "AttributeEqualConstant",
57 "discriminator": "ValueConditionalDictionaryFilterDto",
58 "inversion": false
59 },
60 {
61 "value": {
62 "id": 2,
63 "name": null
64 },
65 "skipIfValueNull": false,
66 "attributeId": 5,
67 "attribute": {
68 "discriminator": "OwnAttributeDefinitionDto",
69 "id": 5
70 },
71 "conditionType": "AttributeEqualConstant",
72 "discriminator": "ParameterConditionalDictionaryFilterDto",
73 "inversion": false
74 }
75 ],
76 "discriminator": "CompoundDictionaryFilterDto",
77 "inversion": false
78 },
79 "hierarchyId": null,
80 "limit": null
81 }
82 ],
83 "dictionarySelectionTransformations": [],
84 "asArray": false,
85 "code": null,
86 "id": 1,
87 "name": "New calendar dictionary"
88 }
89 ],
90 "dataFilters": [],
91 "discriminator": "CalculationFormulaDto",
92 "enable": true,
93 "folderId": null,
94 "sourceId": 1,
95 "selections": [
96 {
97 "attributeMapping": [],
98 "dictionaryId": 16255,
99 "filter": {
100 "value": null,
101 "skipIfValueNull": false,
102 "attributeId": null,
103 "attribute": {
104 "discriminator": "OwnAttributeDefinitionDto",
105 "id": 1
106 },
107 "conditionType": "AllElements",
108 "discriminator": "ValueConditionalDictionaryFilterDto",
109 "inversion": false
110 },
111 "hierarchyId": null,
112 "limit": null
113 }
114 ],
115 "code": null,
116 "id": 1,
117 "name": "Formula1"
118 }
119 ],
120 "sources": [
121 {
122 "metaObjectId": 140424,
123 "discriminator": "IndicatorSourceDto",
124 "id": 1,
125 "name": "New indicator"
126 },
127 {
128 "attribute": {
129 "discriminator": "OwnAttributeDefinitionDto",
130 "id": 2
131 },
132 "metaObjectId": 140425,
133 "discriminator": "DictionaryAttributeSourceDto",
134 "id": 2,
135 "name": "New calendar dictionary"
136 }
137 ],
138 "maxCalculationIdleSec": null,
139 "maxOverallCalculationCoords": null,
140 "code": "New_CalculationMethod_259",
141 "id": 140423,
142 "name": "New calculation method"
143 }