Платформа 3V/Отчет/5. Настроить представление, оформление отчета/Настроить гиперссылку: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
(Новая страница: «В пивотах существует возможность настраивать 2 типа гиперссылок: Ссылка на объект репоз...»)
 
Строка 3: Строка 3:
 
== Ссылка на объект репозитория ==
 
== Ссылка на объект репозитория ==
  
1. Для того, чтоб в столбце пивота прописать ссылку на объект репозитория, необходимо в поле columnOptions добавить:  
+
1. Для того, чтоб в столбце пивота прописать ссылку на объект репозитория, например, на открытие карточки, необходимо в поле columnOptions добавить:  
  
 
{| class="wikitable"
 
{| class="wikitable"

Версия 05:57, 28 апреля 2021

В пивотах существует возможность настраивать 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 можно устанавливать как постоянное значение, так и значение, вычисляемое по формуле.

Ссылка на объект репозитория в виде константы

Json постоянной ссылки на объект репозитория
 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           },

Ссылка на объект репозитория в виде формулы

Json cсылки на объект репозитория, которая меняется в зависимости от атрибута справочника
 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)

json cсылки на веб-страницу
1       "hyperlinkOptions": {
2             "formula": {
3               "expression": "'http://google.ru/'"
4             },
5             "openTarget": "SameWindow",
6             "discriminator": "SimpleHyperlinkOptionsDto"
7           }

Ссылка на скачивание файла

Кроме этого, существует отдельный тип ссылки для скачивания файлов (FileDownload)

json cсылки на скачивание файла
 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/'