Платформа 3V/Отчет/5. Настроить представление, оформление отчета/Настроить гиперссылку: различия между версиями
Il.iashin (обсуждение | вклад) |
|||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 223: | Строка 223: | ||
}, | }, | ||
"openTarget": "NewTab", | "openTarget": "NewTab", | ||
+ | "useFirstOrDefaultOperandValue": true, | ||
"discriminator": "SimpleHyperlinkOptionsDto" | "discriminator": "SimpleHyperlinkOptionsDto" | ||
} | } | ||
Строка 236: | Строка 237: | ||
|- | |- | ||
| "openTarget" || Тип открытия ссылки (SameWindow, NewTab, FileDownload, ModalWindow) | | "openTarget" || Тип открытия ссылки (SameWindow, NewTab, FileDownload, ModalWindow) | ||
+ | |- | ||
+ | | "useFirstOrDefaultOperandValue" || Использовать ли только единичное значение операнда формулы (по умолчанию false, true). Для работы с множественным значением, надо выставить true. | ||
|} | |} | ||
Строка 250: | Строка 253: | ||
}, | }, | ||
"openTarget": "SameWindow", | "openTarget": "SameWindow", | ||
+ | "useFirstOrDefaultOperandValue": true, | ||
"discriminator": "SimpleHyperlinkOptionsDto" | "discriminator": "SimpleHyperlinkOptionsDto" | ||
} | } | ||
Строка 288: | Строка 292: | ||
}, | }, | ||
"openTarget": "FileDownload", | "openTarget": "FileDownload", | ||
+ | "useFirstOrDefaultOperandValue": true, | ||
"discriminator": "SimpleHyperlinkOptionsDto" | "discriminator": "SimpleHyperlinkOptionsDto" | ||
}, | }, | ||
Строка 294: | Строка 299: | ||
Небольшое отступление: если используете ссылку на хранилище проекта, то, обычно, на разных схемах одного и того же проекта эта ссылка отличается. Чтоб избежать необходимости каждый раз переписывать ссылку, рекомендуется использовать относительный адрес ссылки, например, '/filestorage/api/FileStorage/Db/get/' | Небольшое отступление: если используете ссылку на хранилище проекта, то, обычно, на разных схемах одного и того же проекта эта ссылка отличается. Чтоб избежать необходимости каждый раз переписывать ссылку, рекомендуется использовать относительный адрес ссылки, например, '/filestorage/api/FileStorage/Db/get/' | ||
+ | |||
+ | === Ссылка на объект репозитория как операнд === | ||
+ | |||
+ | Для использования метаобъекта в качестве операнда, можно воспользоваться следующим примером: | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">ссылка на объект репозитория как операнд формулы гиперссылки</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "hyperlinkOptions": { | ||
+ | "metaObjectSource": { | ||
+ | "formula": { | ||
+ | "expression": "if ([1] > 0, [2], null() )", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "dictionaryId": 114, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 1 | ||
+ | }, | ||
+ | "attributeId": 1, | ||
+ | "discriminator": "AttributeFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": null | ||
+ | }, | ||
+ | { | ||
+ | "metaObjectId": 117, | ||
+ | "discriminator": "MetaObjectFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 2, | ||
+ | "name": null | ||
+ | } | ||
+ | ], | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": null | ||
+ | }, | ||
+ | "discriminator": "FormulaValueSourceDto" | ||
+ | }, | ||
+ | "parameterSources": [ | ||
+ | { | ||
+ | "parameterId": 1, | ||
+ | "valueSource": { | ||
+ | "dictionaryAttribute": { | ||
+ | "dictionaryId": 114, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 1 | ||
+ | } | ||
+ | }, | ||
+ | "discriminator": "AttributeValueSourceDto" | ||
+ | } | ||
+ | } | ||
+ | ], | ||
+ | "discriminator": "MetaObjectHyperlinkOptionsDto", | ||
+ | "openTarget": "SameWindow", | ||
+ | "refreshAfterModalWindow": false | ||
+ | }, | ||
+ | </syntaxhighlight> | ||
+ | </div></div> |
Текущая версия на 13:18, 16 января 2023
В пивотах существует возможность настраивать 2 типа гиперссылок: Ссылка на объект репозитория и Ссылка на внешний источник. Гиперссылка настраивается сразу на весь столбец
Содержание
Ссылка на объект репозитория
1. Для того, чтоб в столбце пивота прописать ссылку на объект репозитория, например, на открытие карточки, необходимо в поле columnOptions добавить:
"columnOptions": {} |
---|
1 "hyperlinkOptions": {
2 "metaObjectSource": {
3 "value": 2830,
4 "discriminator": "ConstantValueSourceDto"
5 },
6 "parameterSources": [
7 {
8 "parameterId": 1,
9 "valueSource": {
10 "dictionaryAttribute": {
11 "dictionaryId": 1571,
12 "attribute": {
13 "id": 1,
14 "discriminator": "OwnAttributeDefinitionDto"
15 }
16 },
17 "discriminator": "AttributeValueSourceDto"
18 }
19 }
20 ],
21 "discriminator": "MetaObjectHyperlinkOptionsDto"
22 },
|
Поле | Описание |
---|---|
metaObjectSource | Объект репозитория metaObjectSource |
parameterSources | Параметры с которыми необходимо открыть объект репозитория |
parameterSources.parameterId | Идентификатор параметра объекта репозитория, в который передается отметка из valueSource |
parameterSources.valueSource | Операнд, за счет которого вычисляется отметка параметра, см.#Типы источников значения параметра |
Для объекта репозитория metaObjectSource можно устанавливать как постоянное значение, так и значение, вычисляемое по формуле.
Ссылка на объект репозитория в виде константы
1 "hyperlinkOptions": {
2 "metaObjectSource": {
3 "value": 2830,
4 "discriminator": "ConstantValueSourceDto"
5 },
6 "parameterSources": [
7 {
8 "parameterId": 1,
9 "valueSource": {
10 "dictionaryAttribute": {
11 "dictionaryId": 1571,
12 "attribute": {
13 "id": 1,
14 "discriminator": "OwnAttributeDefinitionDto"
15 }
16 },
17 "discriminator": "AttributeValueSourceDto"
18 }
19 }
20 ],
21 "discriminator": "MetaObjectHyperlinkOptionsDto"
22 },
Ссылка на объект репозитория в виде формулы
1 "hyperlinkOptions": {
2 "metaObjectSource": {
3 "formula": {
4 "expression": "if ([2] = '5', '4141', if ([1] = '1', '2645', '3153'))",
5 "operands": [
6 {
7 "dictionaryId": 1100,
8 "attribute": {
9 "id": 301,
10 "discriminator": "OwnAttributeDefinitionDto"
11 },
12 "attributeId": 301,
13 "code": null,
14 "id": 1,
15 "name": null,
16 "discriminator": "AttributeFormulaOperandDto"
17 },
18 {
19 "dictionaryId": 1100,
20 "attribute": {
21 "id": 100125,
22 "discriminator": "OwnAttributeDefinitionDto"
23 },
24 "attributeId": 100125,
25 "code": null,
26 "id": 2,
27 "name": null,
28 "discriminator": "AttributeFormulaOperandDto"
29 },
30 {
31 "dictionaryId": 1100,
32 "attribute": {
33 "id": 1,
34 "discriminator": "OwnAttributeDefinitionDto"
35 },
36 "attributeId": 1,
37 "code": null,
38 "id": 3,
39 "name": null,
40 "discriminator": "AttributeFormulaOperandDto"
41 }
42 ],
43 "code": null,
44 "id": 1,
45 "name": null
46 },
47 "discriminator": "FormulaValueSourceDto"
48 },
49 "parameterSources": [
50 {
51 "parameterId": 1,
52 "valueSource": {
53 "dictionaryAttribute": {
54 "dictionaryId": 1100,
55 "attribute": {
56 "id": 1,
57 "discriminator": "OwnAttributeDefinitionDto"
58 }
59 },
60 "discriminator": "AttributeValueSourceDto"
61 }
62 }
63 ],
64 "discriminator": "MetaObjectHyperlinkOptionsDto"
65 },
Типы источников значения параметра
Тип | Описание |
---|---|
AttributeValueSourceDto | Значение атрибута справочника |
CellValueSourceDto | Значение ячейки отчета |
ConstantValueSourceDto | Постоянное значение |
FormulaValueSourceDto | Значение, расчетываемое по формуле |
ParameterAttributeValueSourceDto | Значение из атрибута параметра отчета |
ParameterValueSourceDto | Значение параметра отчета |
Ссылка на внешний источник
1. Для того, чтоб в столбце пивота прописать ссылку на объект репозитория, необходимо в поле columnOptions добавить:
"columnOptions": {} |
---|
1 "hyperlinkOptions": {
2 "formula": {
3 "expression": "'http://google.ru/'"
4 },
5 "openTarget": "NewTab",
6 "discriminator": "SimpleHyperlinkOptionsDto"
7 }
|
Простая ссылка на внешний источник с данными из атрибута таблица
"columnOptions": {} |
---|
1 "hyperlinkOptions": {
2 "formula": {
3 "expression": "[1]",
4 "operands": [
5 {
6 "dictionaryId": 462,
7 "attribute": {
8 "id": 21,
9 "discriminator": "OwnAttributeDefinitionDto"
10 },
11 "attributeId": 21,
12 "code": null,
13 "id": 1,
14 "name": null,
15 "discriminator": "AttributeFormulaOperandDto"
16 }
17 ],
18 "code": null,
19 "id": 0,
20 "name": null
21 },
22 "openTarget": "NewTab",
23 "useFirstOrDefaultOperandValue": true,
24 "discriminator": "SimpleHyperlinkOptionsDto"
25 }
|
Поле | Описание |
---|---|
"formula" | Формула для формирования гиперссылки |
"openTarget" | Тип открытия ссылки (SameWindow, NewTab, FileDownload, ModalWindow) |
"useFirstOrDefaultOperandValue" | Использовать ли только единичное значение операнда формулы (по умолчанию false, true). Для работы с множественным значением, надо выставить true. |
Ссылка на веб-страницу
Для openTarget устанавливается тип ссылки - это может быть ссылка на веб-страницу, которая может открываться как в новой вкладке (NewTab), так и в текущем окне (SameWindow)
1 "hyperlinkOptions": {
2 "formula": {
3 "expression": "'http://google.ru/'"
4 },
5 "openTarget": "SameWindow",
6 "useFirstOrDefaultOperandValue": true,
7 "discriminator": "SimpleHyperlinkOptionsDto"
8 }
Ссылка на скачивание файла
Кроме этого, существует отдельный тип ссылки для скачивания файлов (FileDownload)
1 "hyperlinkOptions": {
2 "formula": {
3 "expression": "'https://3v.3v-group.net/filestorage/api/FileStorage/Db/get/' + [0]",
4 "operands": [
5 {
6 "dictionaryId": 1212,
7 "attribute": {
8 "innerAttribute": {
9 "id": 23,
10 "discriminator": "OwnAttributeDefinitionDto"
11 },
12 "id": 21,
13 "discriminator": "TransitiveAttributeDefinitionDto"
14 },
15 "attributeId": null,
16 "code": null,
17 "id": 0,
18 "name": null,
19 "discriminator": "AttributeFormulaOperandDto"
20 }
21 ],
22 "code": null,
23 "id": 0,
24 "name": null
25 },
26 "openTarget": "FileDownload",
27 "useFirstOrDefaultOperandValue": true,
28 "discriminator": "SimpleHyperlinkOptionsDto"
29 },
Небольшое отступление: если используете ссылку на хранилище проекта, то, обычно, на разных схемах одного и того же проекта эта ссылка отличается. Чтоб избежать необходимости каждый раз переписывать ссылку, рекомендуется использовать относительный адрес ссылки, например, '/filestorage/api/FileStorage/Db/get/'
Ссылка на объект репозитория как операнд
Для использования метаобъекта в качестве операнда, можно воспользоваться следующим примером:
1 "hyperlinkOptions": {
2 "metaObjectSource": {
3 "formula": {
4 "expression": "if ([1] > 0, [2], null() )",
5 "operands": [
6 {
7 "dictionaryId": 114,
8 "attribute": {
9 "discriminator": "OwnAttributeDefinitionDto",
10 "id": 1
11 },
12 "attributeId": 1,
13 "discriminator": "AttributeFormulaOperandDto",
14 "code": null,
15 "id": 1,
16 "name": null
17 },
18 {
19 "metaObjectId": 117,
20 "discriminator": "MetaObjectFormulaOperandDto",
21 "code": null,
22 "id": 2,
23 "name": null
24 }
25 ],
26 "code": null,
27 "id": 1,
28 "name": null
29 },
30 "discriminator": "FormulaValueSourceDto"
31 },
32 "parameterSources": [
33 {
34 "parameterId": 1,
35 "valueSource": {
36 "dictionaryAttribute": {
37 "dictionaryId": 114,
38 "attribute": {
39 "discriminator": "OwnAttributeDefinitionDto",
40 "id": 1
41 }
42 },
43 "discriminator": "AttributeValueSourceDto"
44 }
45 }
46 ],
47 "discriminator": "MetaObjectHyperlinkOptionsDto",
48 "openTarget": "SameWindow",
49 "refreshAfterModalWindow": false
50 },