Платформа 3V/Отчет/5. Настроить представление, оформление отчета/Настроить гиперссылку
В пивотах существует возможность настраивать 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" | Параметры с которыми необходимо открыть объект репозитория |
Для объекта репозитория 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 },
Ссылка на внешний источник
1. Для того, чтоб в столбце пивота прописать ссылку на объект репозитория, необходимо в поле columnOptions добавить:
"columnOptions": {} |
---|
1 "hyperlinkOptions": {
2 "formula": {
3 "expression": "'http://google.ru/'"
4 },
5 "openTarget": "NewTab",
6 "discriminator": "SimpleHyperlinkOptionsDto"
7 }
|
Поле | Описание |
---|---|
"formula" | Формула для формирования гиперссылки |
"openTarget" | Тип открытия ссылки (SameWindow, NewTab, FileDownload) |
Ссылка на веб-страницу
Для openTarget устанавливается тип ссылки - это может быть ссылка на веб-страницу, которая может открываться как в новой вкладке (NewTab), так и в текущем окне (SameWindow)
1 "hyperlinkOptions": {
2 "formula": {
3 "expression": "'http://google.ru/'"
4 },
5 "openTarget": "SameWindow",
6 "discriminator": "SimpleHyperlinkOptionsDto"
7 }
Ссылка на скачивание файла
Кроме этого, существует отдельный тип ссылки для скачивания файлов (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 "discriminator": "SimpleHyperlinkOptionsDto"
28 },
Небольшое отступление: если используете ссылку на хранилище проекта, то, обычно, на разных схемах одного и того же проекта эта ссылка отличается. Чтоб избежать необходимости каждый раз переписывать ссылку, рекомендуется использовать относительный адрес ссылки, например, '/filestorage/api/FileStorage/Db/get/'