Описание релизов/Йорик: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «=Новая функциональность= ===Справочники=== # Поддержка атрибутов типа ''DateTime'', ''String'' и ''guid''...») |
|||
Строка 1: | Строка 1: | ||
=Новая функциональность= | =Новая функциональность= | ||
− | + | Новые функции или значительные изменения в уже существующих. | |
− | + | ==Справочники== | |
+ | *Поддержка атрибутов типа ''Дата(DateTime)'', ''Текстовый(String)'' и ''GUID'' в качестве первичного ключа(идентификатора) справочника. Поддержка только чтения, без изменения элементов. | ||
− | + | '''ВАЖНО!''' Если в справочнике есть атрибут с типом ''"родитель"'', то ему необходимо обязательно указывать тип данных такой же как у идентификатора! | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | ==Формы== |
− | #Экспорт в xlsx | + | *У отчетов закреплена шапка при открытии формы (карточки) в модальном окне <br clear="both" />[[Файл:При открытии в модальном окне пивота, необходимо уметь закреплять шапку пивота.gif|1000px|слева]]<br clear="both" /> |
− | + | ||
− | + | ||
+ | *В конфигурационном файле веб-приложения задается настройка ''"trimValues": true'' при необходимости для всех элементов управления с типом ''"bs-input"'', ''"bs-textarea"'' карточек обрезать лишний пробел и enter в начале и конце. По умолчанию настройка не применяется | ||
+ | |||
+ | |||
+ | *Компонент для отображения в форме изображения по URL <br clear="both" />[[Файл:Добавить компонент Изображение для карточки.jpg|1000px|слева]]<br clear="both" /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 1.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON элемента управления в клиентской форме:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "key": "111", | ||
+ | "type": "bs-img", | ||
+ | "defaultValue": "http://placekitten.com/200/300", | ||
+ | "templateOptions": { | ||
+ | "widthSize": 2000, | ||
+ | "heightSize": 1000 | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | *Компонент для отображения виджетов сторонних сайтов, которые встраиваются как html-код<br clear="both" />[[Файл:Добавить компонент HTML код.jpg|1000px]]<br clear="both" /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 1.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON элемента управления в клиентской форме:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "key": "111", | ||
+ | "type": "bs-html", | ||
+ | "defaultValue": "<!-- TradingView Widget BEGIN --> | ||
+ | \r\n<div class=\"tradingview-widget-container\">\r\n | ||
+ | <div id=\"tradingview_1d030\"></div>\r\n | ||
+ | <div class=\"tradingview-widget-copyright\"> | ||
+ | <a href=\"https://ru.tradingview.com/symbols/NASDAQ-AAPL/ | ||
+ | \" rel=\"noopener\" target=\"_blank\"> | ||
+ | <span class=\"blue-text\"> | ||
+ | График AAPL</span></a> от TradingView</div>\r\n | ||
+ | <script type=\"text/javascript\" | ||
+ | src=\"https://s3.tradingview.com/tv.js\"> | ||
+ | </script>\r\n | ||
+ | <script type=\"text/javascript\">\r\n | ||
+ | new TradingView.widget(\r\n | ||
+ | {\r\n \"width\": 980,\r\n | ||
+ | \"height\": 610,\r\n | ||
+ | \"symbol\": \"NASDAQ:AAPL\", | ||
+ | \r\n \"interval\": \"D\",\r\n | ||
+ | \"timezone\": \"Etc/UTC\",\r\n | ||
+ | \"theme\": \"light\",\r\n | ||
+ | \"style\": \"1\",\r\n | ||
+ | \"locale\": \"ru\",\r\n | ||
+ | \"toolbar_bg\": \"#f1f3f6\",\r\n | ||
+ | \"enable_publishing\": false,\r\n | ||
+ | \"allow_symbol_change\": true,\r\n | ||
+ | \"container_id\": \"tradingview_1d030\"\r\n} | ||
+ | \r\n ); | ||
+ | \r\n </script>\r\n</div>\r\n<! | ||
+ | -- TradingView Widget END -->" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | |||
+ | *Для унификации действий карточки реализовано два отдельных действия (ранее настраивались в клиентской карточке): | ||
+ | **открытие метаобъектов (карточек) | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 2.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "metaObjectId": 34778, | ||
+ | "parameters": [ | ||
+ | { | ||
+ | "id": 1, | ||
+ | "expressionId": null, | ||
+ | "value": [ | ||
+ | 1 | ||
+ | ], | ||
+ | "hasMultipleValues": true, | ||
+ | "dataType": "Integer" | ||
+ | } | ||
+ | ], | ||
+ | "id": 300, | ||
+ | "comment": null, | ||
+ | "openMode": "CurrentTab", | ||
+ | "modalResult": [ | ||
+ | { | ||
+ | "mainCardDataSourceId": 101, | ||
+ | "linkedCardDataSourceId": 100 | ||
+ | } | ||
+ | ], | ||
+ | "discriminator": "OpenMetaObjectAction" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | **открытие ссылок с возможностью задать параметры | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 2.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | |||
+ | { | ||
+ | "baseUrl": "https://3v.3v-group.net/navigator/#/home", | ||
+ | "parameters": [ | ||
+ | { | ||
+ | "name": "objectId", | ||
+ | "expressionId": null, | ||
+ | "value": [ | ||
+ | 34778 | ||
+ | ], | ||
+ | "hasMultipleValues": false, | ||
+ | "dataType": "Integer", | ||
+ | "isBodyParameter": false | ||
+ | } | ||
+ | ], | ||
+ | "openTarget": "NewTab", | ||
+ | "id": 400, | ||
+ | "comment": null, | ||
+ | "discriminator": "HyperLinkAction" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | *Для унификации действий карточки реализовано выполнение экпорта отчета с помощью действия (ранее настраивалось через ''reportTemplates'') | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 1.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "id": 1, | ||
+ | "ReportNameSettings": { | ||
+ | "discriminator": "FixedTextSettingsDto", | ||
+ | "value": "ReportName" | ||
+ | }, | ||
+ | "sheets": [ | ||
+ | { | ||
+ | "SheetNameSettings": { | ||
+ | "discriminator": "FixedTextSettingsDto", | ||
+ | "value": "Sheet1" | ||
+ | }, | ||
+ | "pivotDataSourceId": 1 | ||
+ | }, | ||
+ | { | ||
+ | "SheetNameSettings": { | ||
+ | "discriminator": "FixedTextSettingsDto", | ||
+ | "value": "Sheet2" | ||
+ | }, | ||
+ | "pivotDataSourceId": 2 | ||
+ | } | ||
+ | ], | ||
+ | "placeEachPivotToSeparateFile": false, | ||
+ | "placeEachPivotToSeparateSheet": true, | ||
+ | "commonSheetNameSettings": { | ||
+ | "discriminator": "FixedTextSettingsDto", | ||
+ | "value": "Common" | ||
+ | }, | ||
+ | "printerSettings": { | ||
+ | "verticalCentered": true, | ||
+ | "horizontalCentered": true, | ||
+ | "showGridLines": false, | ||
+ | "showHeaders": false, | ||
+ | "pageOrder": "DownThenOver", | ||
+ | "orientation": "Landscape", | ||
+ | "paperSize": "A4", | ||
+ | "pinTopElementsOnPage": true, | ||
+ | "scale": 50, | ||
+ | "autoFitDataColumnSettings": null, | ||
+ | "fitToPageSettings": { | ||
+ | "fitToPage": false, | ||
+ | "fitToHeight": 1, | ||
+ | "fitToWidth": 1 | ||
+ | }, | ||
+ | "marginSettings": { | ||
+ | "footerMargin": 1, | ||
+ | "headerMargin": 1, | ||
+ | "bottomMargin": 1, | ||
+ | "topMargin": 1, | ||
+ | "rightMargin": 1, | ||
+ | "leftMargin": 1 | ||
+ | } | ||
+ | }, | ||
+ | "discriminator": "CardInstanceExportAction" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | *Реализована технический функционал на использование любых объектов репозитория в качестве источника серверной карточки | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 1.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "id": 1, | ||
+ | "metaObjectId": 36300, | ||
+ | "discriminator": "MetaObjectDataSource" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | *В конфигурационный файл вынесено свойство ''"CardsInstanceLifeIdleSec"'', с помощью которого можно управлять временем жизни формы (карточки) на сервере | ||
+ | |||
+ | ==Отчеты== | ||
+ | *Экспорт в xlsx | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto; margin-left: 1.5%;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON:</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"><syntaxhighlight lang="JSON" line> | ||
+ | "WrapText": false, // настройка включения/отключения переноса текста в ячейках по словам | ||
+ | "AutoFitDataColumnSettings": { | ||
+ | "Enable": true, // настройка включения/отключения | ||
+ | // автоматического выставления ширины колонок | ||
+ | "MinColumnWidth": 10, | ||
+ | "MaxColumnWidth": 100 | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | *При формировании ссылки на объект репозитория ''(MetaObjectHyperlinkOptionsDto)'' в отчете для вычисления передаваемого параметра с помощью ячейки отчета ''(CellValueSourceDto)'' ранее передавалось только то значение, которое отображалось в самой ячейке. | ||
+ | |||
+ | |||
+ | *Реализована возможность, при которой расчетная агрегация на родительских элементах в показателе при использовании автофильтра на выбор элементов в столбце «Наименование» с включенным флагом ''«Показывать родителей»'' не учитывает элементы, которые не отображены в боковике. <br clear="both" /> [[Файл:В настройки агрегации показателя добавить признак пересчета после применения автофильтра 1.jpg|500px]] <br clear="both" />[[Файл:В настройки агрегации показателя добавить признак пересчета после применения автофильтра 2.jpg|500px|слева]]<br clear="both" />Для этого добавьте флаг ''"RecalcAggregationsOnAutoFilter": true'' в показатель, который находится в столбцах отчета и пересчет агрегации будет происходить каждый раз после применения автофильтра.<br clear="both" />[[Файл:В настройки агрегации показателя добавить признак пересчета после применения автофильтра 3.jpg|500px]]<br clear="both" /> | ||
+ | |||
+ | ==Обновления== | ||
+ | *Два метода для получения связанных объектов (с возможностью получать рекурсивно все связанные объекты) (сервис Updates): ''/api/MetaObjectReferences/GetMetaObjectReferences'' - для получения связей по 1 объекту, ''/api/MetaObjectReferences/GetMetaObjectsReferences'' - для получения связей по нескольким объектам. В дальнейшем будет использоваться для формирования обновлений | ||
+ | ==Навигатор== | ||
+ | *Два метода для получения прав для одного или нескольких объектов репозитория: ''/api/SubjectsPermissions/GetSubjectPermissionsByMetaObjectId'' - для получения прав по 1 объекту, ''/api/SubjectsDictionaryPermissions/GetSubjectsDictionaryPermissionsByDictionaryIds''- для получения прав по нескольким объектам | ||
+ | |||
+ | |||
+ | *По кнопке «Связанные объекты…» появилась возможность выбрать сразу все объекты, на которые ссылается текущий объект, и раздать на них одинаковые права. Также использование кнопки «Связанные объекты…» возможно не только для раздачи прав, но и для копирования и управления объектами репозитория | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=Конструкторы= | =Конструкторы= | ||
#Оптимизированы запросы больших справочников в конструкторе | #Оптимизированы запросы больших справочников в конструкторе |
Версия 10:26, 13 августа 2021
Содержание
Новая функциональность
Новые функции или значительные изменения в уже существующих.
Справочники
- Поддержка атрибутов типа Дата(DateTime), Текстовый(String) и GUID в качестве первичного ключа(идентификатора) справочника. Поддержка только чтения, без изменения элементов.
ВАЖНО! Если в справочнике есть атрибут с типом "родитель", то ему необходимо обязательно указывать тип данных такой же как у идентификатора!
Формы
- У отчетов закреплена шапка при открытии формы (карточки) в модальном окне
- В конфигурационном файле веб-приложения задается настройка "trimValues": true при необходимости для всех элементов управления с типом "bs-input", "bs-textarea" карточек обрезать лишний пробел и enter в начале и конце. По умолчанию настройка не применяется
- Компонент для отображения в форме изображения по URL
JSON элемента управления в клиентской форме:
1 {
2 "key": "111",
3 "type": "bs-img",
4 "defaultValue": "http://placekitten.com/200/300",
5 "templateOptions": {
6 "widthSize": 2000,
7 "heightSize": 1000
8 }
9 }
JSON элемента управления в клиентской форме:
1 {
2 "key": "111",
3 "type": "bs-html",
4 "defaultValue": "<!-- TradingView Widget BEGIN -->
5 \r\n<div class=\"tradingview-widget-container\">\r\n
6 <div id=\"tradingview_1d030\"></div>\r\n
7 <div class=\"tradingview-widget-copyright\">
8 <a href=\"https://ru.tradingview.com/symbols/NASDAQ-AAPL/
9 \" rel=\"noopener\" target=\"_blank\">
10 <span class=\"blue-text\">
11 График AAPL</span></a> от TradingView</div>\r\n
12 <script type=\"text/javascript\"
13 src=\"https://s3.tradingview.com/tv.js\">
14 </script>\r\n
15 <script type=\"text/javascript\">\r\n
16 new TradingView.widget(\r\n
17 {\r\n \"width\": 980,\r\n
18 \"height\": 610,\r\n
19 \"symbol\": \"NASDAQ:AAPL\",
20 \r\n \"interval\": \"D\",\r\n
21 \"timezone\": \"Etc/UTC\",\r\n
22 \"theme\": \"light\",\r\n
23 \"style\": \"1\",\r\n
24 \"locale\": \"ru\",\r\n
25 \"toolbar_bg\": \"#f1f3f6\",\r\n
26 \"enable_publishing\": false,\r\n
27 \"allow_symbol_change\": true,\r\n
28 \"container_id\": \"tradingview_1d030\"\r\n}
29 \r\n );
30 \r\n </script>\r\n</div>\r\n<!
31 -- TradingView Widget END -->"
32 }
- Для унификации действий карточки реализовано два отдельных действия (ранее настраивались в клиентской карточке):
- открытие метаобъектов (карточек)
JSON:
1 {
2 "metaObjectId": 34778,
3 "parameters": [
4 {
5 "id": 1,
6 "expressionId": null,
7 "value": [
8 1
9 ],
10 "hasMultipleValues": true,
11 "dataType": "Integer"
12 }
13 ],
14 "id": 300,
15 "comment": null,
16 "openMode": "CurrentTab",
17 "modalResult": [
18 {
19 "mainCardDataSourceId": 101,
20 "linkedCardDataSourceId": 100
21 }
22 ],
23 "discriminator": "OpenMetaObjectAction"
24 }
- открытие ссылок с возможностью задать параметры
JSON:
1 {
2 "baseUrl": "https://3v.3v-group.net/navigator/#/home",
3 "parameters": [
4 {
5 "name": "objectId",
6 "expressionId": null,
7 "value": [
8 34778
9 ],
10 "hasMultipleValues": false,
11 "dataType": "Integer",
12 "isBodyParameter": false
13 }
14 ],
15 "openTarget": "NewTab",
16 "id": 400,
17 "comment": null,
18 "discriminator": "HyperLinkAction"
19 }
- Для унификации действий карточки реализовано выполнение экпорта отчета с помощью действия (ранее настраивалось через reportTemplates)
JSON:
1 {
2 "id": 1,
3 "ReportNameSettings": {
4 "discriminator": "FixedTextSettingsDto",
5 "value": "ReportName"
6 },
7 "sheets": [
8 {
9 "SheetNameSettings": {
10 "discriminator": "FixedTextSettingsDto",
11 "value": "Sheet1"
12 },
13 "pivotDataSourceId": 1
14 },
15 {
16 "SheetNameSettings": {
17 "discriminator": "FixedTextSettingsDto",
18 "value": "Sheet2"
19 },
20 "pivotDataSourceId": 2
21 }
22 ],
23 "placeEachPivotToSeparateFile": false,
24 "placeEachPivotToSeparateSheet": true,
25 "commonSheetNameSettings": {
26 "discriminator": "FixedTextSettingsDto",
27 "value": "Common"
28 },
29 "printerSettings": {
30 "verticalCentered": true,
31 "horizontalCentered": true,
32 "showGridLines": false,
33 "showHeaders": false,
34 "pageOrder": "DownThenOver",
35 "orientation": "Landscape",
36 "paperSize": "A4",
37 "pinTopElementsOnPage": true,
38 "scale": 50,
39 "autoFitDataColumnSettings": null,
40 "fitToPageSettings": {
41 "fitToPage": false,
42 "fitToHeight": 1,
43 "fitToWidth": 1
44 },
45 "marginSettings": {
46 "footerMargin": 1,
47 "headerMargin": 1,
48 "bottomMargin": 1,
49 "topMargin": 1,
50 "rightMargin": 1,
51 "leftMargin": 1
52 }
53 },
54 "discriminator": "CardInstanceExportAction"
55 }
- Реализована технический функционал на использование любых объектов репозитория в качестве источника серверной карточки
JSON:
1 {
2 "id": 1,
3 "metaObjectId": 36300,
4 "discriminator": "MetaObjectDataSource"
5 }
- В конфигурационный файл вынесено свойство "CardsInstanceLifeIdleSec", с помощью которого можно управлять временем жизни формы (карточки) на сервере
Отчеты
- Экспорт в xlsx
JSON:
1 "WrapText": false, // настройка включения/отключения переноса текста в ячейках по словам
2 "AutoFitDataColumnSettings": {
3 "Enable": true, // настройка включения/отключения
4 // автоматического выставления ширины колонок
5 "MinColumnWidth": 10,
6 "MaxColumnWidth": 100
7 }
- При формировании ссылки на объект репозитория (MetaObjectHyperlinkOptionsDto) в отчете для вычисления передаваемого параметра с помощью ячейки отчета (CellValueSourceDto) ранее передавалось только то значение, которое отображалось в самой ячейке.
- Реализована возможность, при которой расчетная агрегация на родительских элементах в показателе при использовании автофильтра на выбор элементов в столбце «Наименование» с включенным флагом «Показывать родителей» не учитывает элементы, которые не отображены в боковике.
Для этого добавьте флаг "RecalcAggregationsOnAutoFilter": true в показатель, который находится в столбцах отчета и пересчет агрегации будет происходить каждый раз после применения автофильтра.
Обновления
- Два метода для получения связанных объектов (с возможностью получать рекурсивно все связанные объекты) (сервис Updates): /api/MetaObjectReferences/GetMetaObjectReferences - для получения связей по 1 объекту, /api/MetaObjectReferences/GetMetaObjectsReferences - для получения связей по нескольким объектам. В дальнейшем будет использоваться для формирования обновлений
Навигатор
- Два метода для получения прав для одного или нескольких объектов репозитория: /api/SubjectsPermissions/GetSubjectPermissionsByMetaObjectId - для получения прав по 1 объекту, /api/SubjectsDictionaryPermissions/GetSubjectsDictionaryPermissionsByDictionaryIds- для получения прав по нескольким объектам
- По кнопке «Связанные объекты…» появилась возможность выбрать сразу все объекты, на которые ссылается текущий объект, и раздать на них одинаковые права. Также использование кнопки «Связанные объекты…» возможно не только для раздачи прав, но и для копирования и управления объектами репозитория
Конструкторы
- Оптимизированы запросы больших справочников в конструкторе
- Конструктор отчетов: при изменении порядка столбцов с помощью стрелочек этот элемент не фокусировался, сейчас реализовано, чтобы элемент, который переносишь, было видно
- Конструктор отчетов: появилась кнопка на "свернуть все"/"развернуть все" для более удобной навигации по столбцам отчета
Оптимизация
- По умолчанию при открытии показателя, у которого есть справочник календаря в измерениях, по нему будет выбираться первый доступный элемент
- Оптимизация скорости построения карточки за счет отложенной загрузки отчетов, у которых нет зависимых источников, при использовании согласования. Ранее данная логика была реализована только в формах, в которых не было согласования. Отложенная загрузка – запрос на построение отчета, не дожидаясь ответа о завершении построения
- При ситуации, когда в справочнике более 10’000 элементов и не задан лимит строк, автоматически выставится лимит в 10’000 отображаемых элементов. Если же в отчете уже выставлен лимит, но отобразится то количество элементов, которое указанно непосредственно в лимите.