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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 40: Строка 40:
 
! Поле !! Описание
 
! Поле !! Описание
 
|-
 
|-
"metaObjectSource"|| Объект репозитория '''metaObjectSource '''
+
|  metaObjectSource|| Объект репозитория '''metaObjectSource '''
 
|-
 
|-
"parameterSources" || Параметры с которыми необходимо открыть объект репозитория
+
|  parameterSources || Параметры с которыми необходимо открыть объект репозитория
 +
|-
 +
|  parameterSources.parameterId || Идентификатор параметра объекта репозитория, в который передается отметка из valueSource
 +
|-
 +
|  parameterSources.valueSource || Операнд, за счет которого вычисляется отметка параметра, см. #типы источников отметки параметра
 
|}
 
|}
  
Строка 152: Строка 156:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
 +
 +
 +
=== Типы источников значения параметра ===
 +
{| class="wikitable"
 +
|-
 +
! Тип !! Описание
 +
|-
 +
|  [[Платформа_3V/Отчет/Источники_в_столбцах/Гиперссылка/На значении атрибута справочника|'''AttributeValueSourceDto''']]|| Значение атрибута справочника
 +
|-
 +
|  [[Платформа_3V/Отчет/Источники_в_столбцах/Гиперссылка/На значении ячейки отчета|'''CellValueSourceDto ''']]|| Значение ячейки отчета
 +
|-
 +
| [[Платформа_3V/Отчет/Источники_в_столбцах/Гиперссылка/На постоянном значении|'''ConstantValueSourceDto''']]|| Постоянное значение
 +
|-
 +
|  [[Платформа_3V/Отчет/Источники_в_столбцах/Гиперссылка/На формуле|'''FormulaValueSourceDto''']] || Значение, расчетываемое по формуле
 +
|-
 +
| [[Платформа_3V/Отчет/Источники_в_столбцах/Гиперссылка/На атрибуте параметра отчета|'''ParameterAttributeValueSourceDto''']]  || Значение из атрибута параметра отчета
 +
|-
 +
|  [[Платформа_3V/Отчет/Источники_в_столбцах/Гиперссылка/На значении параметра отчета|'''ParameterValueSourceDto''']] || Значение параметра отчета
 +
|}
  
 
== Ссылка на внешний источник ==
 
== Ссылка на внешний источник ==

Версия 10:37, 7 мая 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 Параметры с которыми необходимо открыть объект репозитория
parameterSources.parameterId Идентификатор параметра объекта репозитория, в который передается отметка из valueSource
parameterSources.valueSource Операнд, за счет которого вычисляется отметка параметра, см. #типы источников отметки параметра

Для объекта репозитория 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           },


Типы источников значения параметра

Тип Описание
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           }
Поле Описание
"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/'