Не получается вывести checkbox на странице. Для его вывода написал следующий код.
В секции attributes:

"IsStreetInFIAS": {
        name: "IsStreetInFIAS",
        dataValueType: Terrasoft.DataValueType.BOOLEAN,
        type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
        value: false
}

В секции diff:

{
        "operation": "insert",
        "parentName": "Header",
        "propertyName": "items",
        "name": "IsStreetInFIAS",
        "values": {
                "bindTo": "IsStreetInFIAS",
                "caption": {
                        bindTo: "Resources.Strings.IsStreetInFIAS_checkbox_Caption"
                },
                "layout": {"column": 1, "row": 5, "colSpan": 1},
                "controlConfig": {
                        "className": "Terrasoft.CheckBoxEdit",
                        "checkedchanged": {
                                "bindTo": "OnIsStreetInFIASChanged"
                        }
                "checked": false
        }
}

При запуске процесса вывода страницы, содержащей CheckBoxEdit, в окне консоли отладчика браузера выводится следующее сообщение об ошибке: "Свойство checked Не было определено в классе Terrasoft.controls.Label". Как мне поправить исходник, чтобы чекбокс выводился?

Нравится

7 комментариев

Евгений добрый день!!!

привожу пример как создать к примеру "Напоминания ответственному", как изображено на картинке ниже:

....
            attributes: {
                /**
                 * Напомнить ответственнному
                 */
                "UpoRemindToOwner": {
                    dataValueType: Terrasoft.DataValueType.BOOLEAN,
                    dependencies: [
                        {
                            columns: ["UpoRemindToOwner"],
                            methodName: "onRemindToOwnerChanged"
                        }
                    ]
                }
            },
....
            methods: {
                /**
                 * Обработчик события изменения поля Напомнить ответсвенному
                 * @protected
                 */
                onRemindToOwnerChanged: function() {
                    var remindToOwner = this.get("UpoRemindToOwner");
                    if (remindToOwner) {
                        var startDate = this.Terrasoft.deepClone(this.get("UpoStartDate"));
                        if (!Ext.isDate(startDate)) {
                            return;
                        }
                        startDate = this.Terrasoft.clearSeconds(startDate);
                        this.set("UpoRemindToOwnerDate", startDate);
                        this.set("UpoRemindToOwnerDateEnabled", true);
                    } else {
                        this.set("UpoRemindToOwnerDate", null);
                        this.set("UpoRemindToOwnerDateEnabled", false);
                    }
                }
            },
....
            diff: /**SCHEMA_DIFF*/[
                {
                    "operation": "insert",
                    "parentName": "GeneralInfoLeft_Remind",
                    "propertyName": "items",
                    "name": "UpoRemindToOwner",
                    "values": {
                        "bindTo": "UpoRemindToOwner",
                        "layout": { "column": 0, "row": 1, "colSpan": 12 },
                        "labelConfig": {
                            "caption": { "bindTo": "Resources.Strings.RemindToOwnerCaption" }
                        }
                    }
                },
                {
                    "operation": "insert",
                    "parentName": "GeneralInfoLeft_Remind",
                    "propertyName": "items",
                    "name": "UpoRemindToOwnerDate",
                    "values": {
                        "bindTo": "UpoRemindToOwnerDate",
                        "layout": { "column": 12, "row": 1, "colSpan": 12 },
                        "enabled": { "bindTo": "UpoRemindToOwnerDateEnabled" },
                        "labelConfig": {
                            "caption": { "bindTo": "Resources.Strings.RemindDateCaption" }
                        }
                    }
                },
            ]/**SCHEMA_DIFF*/,

если разделить на этапы:
1. В Аттрибутах создаем и описываем атрибут "UpoRemindToOwner" - это и есть CheckBox поле, система при генерации страницы и выводе на экран по типу поля сама определяет, что это CheckBox поле и выводит его на экран.
2. в Методах создаем метод "onRemindToOwnerChanged", который контролирует изменения реквизита на экране
3. Выводим на экран.

Выше привел пример кода.

Михаил, извините, а что это за контейнер GeneralInfoLeft_Remind? Какой-то контейнер, созданный самим разработчиком (в данном случае вами)?
У меня чекбокс так и не выводится ни с

"parentName": "GeneralInfoLeft_Remind"

ни с

"parentName": "Header"

Хотя ошибок ни при публикации модуля страницы, ни при запуске процесса, открывающего эту страницу, не выдаётся ни в первом, ни во втором случае.

Чекбокс появился. Я закомментировал

columns: ["UpoRemindToOwner"]

и он стал визуализироваться.

Большое спасибо за помощь, Михаил.

Евгений мой пример полностью копипастить не нужно, это пример.

"parentName": "GeneralInfoLeft_Remind"

да это мой GRID_LAYOUT. в вашем случае это может быть совсем иной GRID_LAYOUT, но не забываем следующее:
1. Прежде чем вывести информацию на экран требуется схематично, на листе пумаге, в графическом редакторе разрисовать схематично Контейнеры, Назначить им имя Классов (если потребуется верстка, то по имени класса контейнера, мы обращаемся к нему), и далее пишем код. Не забываем, что в BPMOnline используется технология Bootstrap для визуализации и отображении информации на экране.
2. Прошу отдельно изучить и ознакомиться как строятся и формируются страницы Bootstrap. Я это все вам Евгений рекомендую, чтобы вы в будущем, прежде чем писать код для начало рисовали схематично свою страницу. Понимали в каких контейнерах где что будет располагаться, понимали какие стили верстки требуется применить дополнительно, чтобы визуально было все эстетично и красиво.
3. На схематично созданной страницы, описали бы для начала какие поля будут изменяемыми, какие поля будут зависимыми. Какие события будут получены экранной формой, какие события будут переданы и какому адресату.
4. И только после этого приступать к программированию.

как я вам и говорил ранее Евгений. Чтобы мы с вами говорили на одном языке, прошу вас записаться на сайте Академия Террасофт на обучение по программированию на платформе.

По вашему сообщению. Для анализа и воспроизводства ошибки у себя на экране, прошу пожалуйста , во вложении, выслать следующим постом Листинг вашей схемы страницы редактирования. Спасибо!!!

Спасибо за помощь и поддержку, Михаил. Checkbox воспроизвёлся - отобразился на экране. Ошибок, при этом, не было. У меня сейчас такая ситуация, что приходится работать - рисовать страницы на Jscript и вместе с этим изучать этот язык, т.к. я с ним раньше никогда не сталкивался. Ещё раз благодарю за помощь.

Добрый день Евгений!!!

рекомендую в первую очередь прочесть информацию опубликованную на Академии террасофт. Вот ссылка на SDK по платформе SDK BPMOnline 7.6

Показать все комментарии

В BPMonline 7.6 Bank Sales в модуле страницы нужно сделать lookup-поле по справочнику "Страна" (Country) Я определяю lookup-поле следующим образом. В секции attributes пишу:

"Country": {
        name: "Country",
        caption: "Страна",
        dataValueType: Terrasoft.DataValueType.LOOKUP
}

В секции diff пишу:
{
        "operation": "insert",
        "parentName": "Header", // Здесь по-моему правильно.
        "propertyName": "items",
        "name": "Country",
        "values": {
                            "bindTo": "Country",
                            "layout": { "column": 1, "row": 1, "colSpan": 12 },
                            "caption": { "bindTo": "Resources.Strings.CountryFieldCaption" },
                            "contentType": Terrasoft.ContentType.ENUM,
                            "enabled": true
                      }
}

Опытному человеку такой код может показаться безграмотным. Но я до сегодняшнего дня не занимался описанием lookup-полей на javascript в модулях страниц. При запуске процесса, визуализирующего страницу, которая содержит это lookup-поле, в окне консоли отладчика браузера выводится следующая ошибка: Uncaught TypeError: Cannot set property 'resources' of undefined в строке 227 в модуле SchemaBuilderV2.js . Когда я перехожу к этому месту, то там в коде:
function(next) {
      this.getSchemaResources(schemaName, function(resources) {
             schema.resources = resources;
             next();
      }, this, isParent);
}

строка schema.resources = resources; подчёркнута красным - знак ошибки. Модуль SchemaBuilderV2.js - это, разумеется, не мой, а библиотечный - разработки Terrasoft. Мой, в котором я пытаюсь определить lookup, называется по другому. Напишите, пожалуйста, что мне нужно поправить в моём коде описания lookup-поля для того, чтобы это lookup-поле заработало?

Нравится

11 комментариев

Добрый день Евгений!!!

на странице редактирования, через Админку, вы создали Локализированную строку? в коде "Resources.Strings.CountryFieldCaption" данная строка, при выполнения биндинга, ищет Локализированную строку, и если не находит, выдет ошибку. Ключ "caption" нужно использовать если к примеру в схеме таблицы поле названо "Страна", а вы желаете его назвать по иному. в секцию "attributes" необязательно добавлять и описывать поле, если над данным полем ничего дополнительно не требуется делать, накладывать к примеру фильтры, выбирать из справочника дополнительные поля и т.д.

Евгений, вы не добавили стринг "CountryFieldCaption"

Да, добавил в самом начале перед первой публикацией модуля в раздел LocalizableStrings.

Евгений, ошибка пропала или есть до сих пор? если есть до сих пор, прошу пожалуйста во вложение прикрепить код схемы страницы редактирования. Чтобы проанализировать и сказать где могла быть допущена синтаксическая ошибка. Спасибо!!!

Ошибка не пропала. Исходник в текстовом файле ContactPersonInfoModule.txt. Модуль унаследован от Базовой схемы карточки из пакета NUI.

Скриншот открытой страницы "RIBContactPersonsInfoModule" из Админки еще скиньте. Чтобы увидеть глазами ее. Спасибо!!!

Вот она:

Евгений день добрый!!!

я просил у вас совсем другое. я просил зайти под правами Администратора "Дизайнер системы" --> "Управление конфигурацией" --> "Конфигурация", открыть на экране замещенную схему "RIBContactPersonsInfoModule", спозиционировать курсор на Локализированной строке "CountryFieldCaption" и сделать скриншот. Далее выложить на форум. Это все требуется сделать в BPMOnline 7.6.

и еще Евгений, рекомендация, чтобы мы с вами разговаривали на одинаковых языках, я прошу вас записаться на Академии террасофт и пройти обучение по программированию на Платформе. Спасибо!!!

Михаил, извините, пожалуйста. "RIBContactPersonsInfoModule" это не замещённый модуль, а один из моих прикладных модулей и в define модуля страницы, о котором мы говорим в этом посте, его название попало случайно. Сейчас я в define поменял это название на то, которое должно быть - "RIBRegistrationAddressByPassportPage" и поле "Страна" начало выводиться. НО выводится оно всё равно не так как мне нужно. Оно выводится, как поле- выпадающий список, в правой части которого присутствует значок "стрелка вниз", а мне нужно, чтобы оно выводилось как поле-выпадающий список, в правой части которого присутствует значок "лупа". Если возможно, то помогите мне разобраться с этим. Буду вам очень благодарен.

Евгений, я вам все верно описал. Если вы желаете иметь поле Выбора, а не выпадающий список, тогда удаляете  "contentType": Terrasoft.ContentType.ENUM, и будет у вас поле с возможностью открыть форму выбора.

Спасибо большое, Михаил. Получилось. Пока вопрос закрыт. Ещё раз благодарю.

Показать все комментарии

Добрый день.
Скажите, пожалуйста, как в BPMonline 7.6 Bank Sales в модуле страницы на Javascript описать:
1) Поле, представляющее выпадающий список, в правом краю которого изображён значок лупы, при щелчке по которому открывается список значений. Такое поле, как я понимаю, является полем справочного типа. Именно в моём случае, оно должно показывать содержимое справочника стран (этот справочник в системе называется, по-моему, Country - Страна).
2) Поле, представляющее выпадающий список, в правом краю которого изображена стрелочка вниз.
Дайте, пожалуйста, код, с помощью которого такие поля определяется в модуле страницы. Или ссылку на хорошие примеры.

Нравится

3 комментария

Добрый день Евгений!!!

чтобы в LookupEdit поле настроить вид выбадающего списка требуется в "values:" добавить следующее: "contentType": Terrasoft.ContentType.ENUM," вот пример:

                {
                    "operation": "insert",
                    "parentName": "GeneralInfoLeft_OurSide",
                    "propertyName": "items",
                    "name": "UpoSupplierBillingInfo",
                    "values": {
                        "bindTo": "UpoSupplierBillingInfo",
                        "layout": { "column": 12, "row": 1, "colSpan": 12 },
                        "caption": { "bindTo": "Resources.Strings.SupplierBillingInfoCaption" },
                        "contentType": Terrasoft.ContentType.ENUM,
                        "enabled": { "bindTo": "IsLifeCycleRegistration" }
                    }
                },

Спасибо большое, Михаил. Попробую применить. Lookup (кстати в Delphi этот механизм был очень удобен) - это как я понимаю, когда справа изображён значок лупы. А вот привязка

"enabled": { "bindTo": "IsLifeCycleRegistration" }

её обязательно надо указывать? Или можно просто указать:

"enabled": true

или

"enabled": false

?

Евгений я вам привел как пример. если требуется Запретить редактирование или разрешить, указываете "enabled":. Если требуется запретить без условий, то можно указать "enabled": false. Если требуется указаний условий, тогда уже указываем ссылку на Функцию. А какие Теги (ключи) в "values" вы желаете использовать Евгений, данное решение вы уже принимаете сами. Перед описанием реквизитов страницы.

Показать все комментарии

В BPMonline 7.6, в каждой записи детали, замещающей BaseCommunicationDetail, справа от поля ввода средства связи (например поля ввода телефонного номера или адреса e-mail) нужно выводить галочку (checkbox) с подписью "Основной". Не получается. При попытке добавить запись в деталь "Средства связи" на странице "Юр. лицо", в консоли отладчика браузера выводится сообщение об ошибке; "Uncaught TypeError: Cannot read property 'changeMethod' of undefined" в модуле all-combined.js в строке 291. Я посмотрел по этому исходнику, там внутри функции setControlPropertyValue проверяется if(a.config.changeMethod) и на этом месте ошибка. Ниже привожу код, который я добавил в функцию getItemViewConfig() для вывода checkbox'а в модуле, замещающем BaseCommunicationDetail из пакета NUI. Замещающий модуль имеет то же имя - BaseCommunicationDetail и находится в пакете Custom.

var checkboxConfig = {
        className: "Terrasoft.CheckBoxEdit",
        classes: {wrapClass: ["communication-lookup-img-user-class", "detail-edit-user-class"]},
        value: {
                        bindTo: "RIBIsBase",
                        bindConfig: {converter: "updateLinkUrl"}
        },
        href: {
                        bindTo: "Link"
        },
        linkclick: {bindTo: "onLinkClick"}
};

Этот код я ввёл сразу после кода для отображения элемента TextEdit, который представляет поле для ввода средства связи. Ниже привожу строки кода, включающего эти элементы в конфигурацию, Эти строки завершают тело функции getItemViewConfig().
config.items.push(typeButtonConfig, editConfig, checkboxConfig, iconTypeButtonConfig);
itemConfig.config = config;
this.set("itemViewConfig", config);
На заметку: Когда я переносил зависимости замещаемого модуля в замещающий, то зависимость "Средства связи контакта" в замещаемом модуле была из пакета Base, а в замещающем - из пакета Base эта зависимость не подцепилась и пришлось взять её из пакета NUI. Других отличий нет.
Что нужно сделать, для того, чтобы checkbox выводился как описано выше ?

С уважением.

Нравится

6 комментариев

Добрый день Евгений!!!

я еще вчера хотел вам отписать в вашем предыдущем посте. Но раз вы уже создали новый, пишу здесь. Ранее вы говорили что поле CheckBox вы желаете использовать для понимания какой телефон основной а какой нет, какой емайл основной а какой нет. Я так и не начал воплощать в жизнь вашу идею, так как при разработки и использовании системы в первую очередь нужно по максимому использовать стандартный функционал системы, а вот если уже невозможно обойтись стандартными средствами, вести разработку. Вашу идею на детали "Средства связи контрагента или контакта" можно воплотить расширив список типов "Тип средства связи", схема таблицы "CommunicationType", по умолчанию уже есть тип "Основной телефон" предлагаю вам добавить к примеру тип "Основной e-mail" и уже если вам нужно через Запрос получить основной телефон контрагента то вы с легкостью это сделаете. Так как "Тип средства связи" пользователь редактировать не может и следовательно это константные величины.

не придумывайте сейчас сложных путей, идите по легкому пути.

Здравствуйте, Михаил.
Спасибо за ценный комментарий.

Нет, Михаил, извините, но мне нужно чтобы был именно checkbox. Пока можно даже отложить в сторону код, реализующий его функционал. Мне очень важен код, реализующий его вывод на экран в том виде, который я описал вам вчера. Для меня это, можно сказать, вопрос жизни и смерти. Если можете, то помогите, пожалуйста.

P.S. И я делаю его на замещённой детали "Базовая схема детали средств связи", а не на детали "Средства связи контрагента и контакта". И, кстати, где можно посмотреть определение класса CheckBoxEdit?

Форумчане, помогите, пожалуйста!

"Бузин Евгений" написал:И, кстати, где можно посмотреть определение класса CheckBoxEdit?

Путь для конфигурации BPMOnline - OnSite (мой пример)
C:\BPMOnlineOmniChannel7_6_0.Site\Terrasoft.WebApp\Resources\ui\Terrasoft\controls\checkboxedit

По вашей просьбе. Хорошо Евгений раз обещал помогу вам. создам для вас Замещенную деталь. Как сделаю выложу в тему.

Благодарю, Михаил. Буду ждать.

Показать все комментарии

Скажите, пожалуйста, как добавить в деталь ContactCommunicationDetailV2 поле логического типа ? Что для этого нужно написать в этом её модуле ?

Нравится

11 комментариев

Добрый день Евгений!!!

подскажите пожалуйста а какую цель вы преследуете добавляя на деталь "Средства связи контакта" логическое поле. На данной детали же хранятся телефоны, емайлы и не только. Зачем там Булевские поля? Или же задача немного некорректно поставлена. Если есть возможность схематически, хоть в "Паинте" нарисуйте, что в результате вы желаете достичь. Я вам посоветую как это сделать.

Михаил, я прошу прощения - надо добавить логическое поле не в ContactCommunicationDetailV2, а в BaseCommunicationDetail из пакета NUI, заместив его своим клиентским модулем. Я уже заместил объект AccountCommunication из пакета Base (и добавил в замещающий объект логическое поле) и теперь разбираю листинг детали BaseCommunicationDetail в часности функцию getItemViewConfig(), формирующую конфигурацию представления элемента средства связи. Мне нужно будет, как я понимаю, заместить BaseCommunicationDetail своим клиентским модулем детали и в замещающем - добавить это логическое поле. А где (в каком месте исходника) и как (с точки зрения мнемоники Javascript) ? Это логическое поле должно визуализироваться в записи детали (в UI) в виде галочки (чекбокса).

Евгений день добрый!!!

подскажите пожалуйста в детали средства связи вы данный функционал хотите реализовать, что ниже на картинке?

Так.... Михаил, разрешите некоторое время... Сейчас попробую уточнить.

Нужно в каждой записи детали: средство связи и справа от него рядом галочка. Т.е., например: поле ввода номера телефона и рядом справа - галочка. А подпись у галочки - "Основной". Помогите, пожалуйста.

Добрый день Евгений!!!

вот как вы желаете. Вопрос чтобы вам помочь, реализовать у себя, и поделиться куском кода. К примеру представим в каждом добавляемом поле Будь то "Телефон", "Email" и т.д. появилась данная галочка. Вопрос нажав на нее что должно происходить, какое поведение вы закладываете в данные галочки? Что должно происходить на экране, что должно происходить в Базе данных. Уточните пожалуйста, тогда еще раз повторюсь. Реализую у себя и поделюсь куском кода. Может и мне в моих проектах будет полезно :smile:

Минуту....

Она должна отмечать основное средство связи с контактным лицом. Ведь не зря её подпись - "Основной". Т.е., если выведено несколько средств связи, например, Телефон домашний и Телефон мобильный, то установить её можно только для одного из них. Т.е., она (в установленном состоянии) указывает основное средство связи из имеющихся у данного контактного лица. И галочка - не внутри поля номера телефона или e-mail, а рядом с ним справа от него. А в БД, по сути, соответствующее её логическое поле в записи при её установке изменяет значение с false на true, а при сбросе - обратно.

Михаил, помогите, пожалуйста.

Понятно Евгений. Сделаю завтра поделюсь подробным описанием и куском кода.

Хорошо, спасибо. Я пока создал модуль, замещающий BaseCommunicationDetail.

Показать все комментарии

В модуле страницы на BPMonline 7.6, который унаследован от модуля Базовая схема карточки, переопределил функцию commandLineVisible из модуля MainHeaderModule следующим образом:

сommandLineVisible: function() {
        var isCommandLineVisible = false;
        this.set("IsCommandLineVisible", isCommandLineVisible);
        this.reloadCommandModule();
}
Но не работает. Окно командной строки с надписью "Что я могу для вас сделать GO" продолжает оставаться на экране. Что я делаю неправильно ?

Нравится

11 комментариев

Добрый день Евгений!!!

я вам еще в предыдущем посте писал, что разбираться нужно с модулем MainHeaderModule, и следовательно замещать требуется модуль MainHeaderModule, а в замещенном модуле перегружать и править функцию сommandLineVisible, вот так нужно поступать. Только не забываем, что при замещение модулей в системе требуется в новый модуль переносить вручную верстку, зависимости, описание сообщений, и в замещенный модуль копируем полностью текст, находим требуемую функцию и правим. Подругому не у вас не получиться.
поэтому в карточке что зависит от базовой схемы карточки ничего перегружать (из функций) не нужно.

Н-да. Что так, что так - канительно. А метку "Страница N из M" как можно перетащить на свою страницу? Или она тоже в MainHeaderModule ?

"Бузин Евгений" написал: А метку "Страница N из M" как можно перетащить на свою страницу?

Евгений поясните пожалуйста где вы видели данную метку. что-то у себя я такого не нахожу. В каком разделе, на какой странице редактирования или детали. Где данный функционал вами обнаружен? может мне уже пора обновляться :smile: Спасибо!!!

Случайно опубликовал 2 раза свое сообщение. Жду от вас Евгений пояснений. Спасибо!!!

Здравствуйте, Михаил. У меня в задании - сделать страничку. И в её правом верхнем углу должна быть метка "Страница N из M". Значение N должно соответственно изменяться от странице к странице. Подобная страница (с такой меткой) была создана у нас в BPMonline 7.2. Но поскольку правила написания кода страницы на Javascript в 7.2 и в 7.6 различаются, то просто скопировать - не получится.

Добрый день Евгений!!!

я конечно уже 7.2 подзабыл, но принцип программирования, он не сильно претерпел изменений. Если вам реально нужна помощь, сбросьте информацию какую конфигурацию 7.2 вы использовали, где в 7.2 была данная метка, и где в 7.6 вы желаете реализовать данный функционал. Я вам помогу или советом или кусок кода сброшу. Но если честно я немного плохо представляю, чем на практике полезна данная метка "Страница N из M".

Есть несколько контактных лиц и информация о каждом из них - на отдельной странице.

Добрый день Евгений!!!

немного конечно я так и не понял, что вы желаете. Я сегодня разверну 7.2 посмотрю о чем вы говорите. Но если вас не затруднит, не могли бы вы сбросить скриншот как бы вы желали в 7.6 это видеть. Пусть даже скриншот будет из 7.2. Спасибо!!!

Михаил, я прикрепил файл. В нём картинка.

Все теперь понял про, что идет речь. Это у вас были реализованы "мастер создания контактных лиц". Теперь чтобы мы могли далее говорить на одном языке. Уточните пожалуйста текущую версию 7.6, т.е название и билд. Я ознакомлюсь с данной конфигурацией. А после уже задам вопрос, где и что конкретно вы желаете реализовать. Я думаю по сравнению с 7.2 функционал в 7.6 сильно изменился.

Название: BPMonline Bank Sales, а какой билд - не знаю.

Показать все комментарии

Здравствуйте.
Пишу модуль страницы на Javascript в BPMonline 7.6. В качестве родительской страницы установлена "Базовая схема карточки". У меня следующие проблемы:
1) Что нужно написать в модуле, чтобы добавить на страницу работающую метку "Страница N из M" ?
2) Что нужно написать в модуле, чтобы удалить с страницы окно "Что я могу для вас сделать? GO" ?
3) Что нужно написать в модуле, чтобы удалить с страницы маленькие круглые сервисные кнопки: "Дизайнер системы", "Справка", "Профиль", "Лента", "Уведомления", "Уведомления ленты" ?
4) Что нужно сделать для того, чтобы надпись к полю на странице находилась не слева от соответствующего ей поля, а сверху него ?
Заранее благодарю.
С уважением.

Нравится

4 комментария

Добрый день Евгений!!!

Чтобы решить все ваши проблемы вам требуется не использовать "Базовую схему карточки", а написать свой Модуль, разместить в данном модуле все требуемые поля, описать их логику работы. Пример можете подглядеть в сервисе "GoogleIntegrationSettingsModule". Это полностью рабочая страница созданная с нуля, где используется своя схема верстки, где используется свой алгоритм поведения полей.
Если вы желаете изменить стандартную логику поведения работы страниц, то вам придется править не только схему "BasePageV2" но и много других схем. Так как страницы в системе Генерируются, Поля в системе генерируются, и за каждое действие в системе отвечает свой Generator.
Этот путь гораздо сложнее и дольше, я бы написал с нуля свой Модуль страницы.

А всё-таки, если пойти по пути изменения стандартной логики, то что нужно сделать, чтобы удалить из страницы: окно "Что я могу для вас сделать? GO" и круглые сервисные кнопки ?

Евгений за формирование, отображение или скрытие отвечает сервис MainHeaderModule. вам требуется в нем разобраться как происходит генерация и построение "viewModel" и вам все будет понятно. если не получиться разобраться пишите подскажу какие функции переопределить и поправить. но это будет жесткое скрытие "Командной строки" и "Сервисных кнопок". Если именно это нужно, то еще раз повторюсь смотреть нужно сервис MainHeaderModule

Да, Михаил, мне нужно именно это (жёсткое сокрытие) и я сейчас как раз смотрю исходник этого модуля. Если будут затруднения, то буду задавать вопросы в этом посте. Ещё раз большое спасибо.

Показать все комментарии

Здравствуйте.
При разработке в BPMonline 7.6, хочу разместить на странице, которая унаследована от Базовая схема карточки (BasePageV2) из пакета NUI, кнопку. Внутри секции diff:[{}] модуля моей страницы поместил описание этой кнопки:

{
                        // Метаданные для добавления кнопки [Назад], по нажатию на которую
                        // выполнется переход на предыдущую операцию:
                                // Указать на то, что выполняется операция добавления элемента на страницу.
                                "operation": "insert",
                                // Указать имя системного контейнера на странице, в который будет добавлена кнопка.
                                "parentName": "LeftContainer",
                                // Указать, что кнопка добавляется в коллекцию элементов управления в контейнере,
                                // имя которого указано в parentName.
                                "propertyName": "items",
                                // Мета-имя добавляемой кнопки.
                                "name": "BackButton",
                                // Дополнительные свойства кнопки:
                                "values": {
                                        // Тип добавляемого элемента - кнопка.
                                        "itemType": Terrasoft.ViewItemType.BUTTON,
                                        // Привязка заголовка кнопки к локализуемой строке схемы.
                                        "caption": " Back",//{ bindTo: "Resources.Strings.BackButtonCaption"},
                                        // Привязка метода-обработчика нажатия кнопки.
                                        "click": { bindTo: "OnBackButtonClick"},
                                        // Настройка расположения кнопки на странице.
                                        "layout": { "column": 1, "row": 0, "colSpan": 1}//,
                                        //"visible": true
                                }
                        }
Обработчик кнопки определён в секции methods: в модуле страницы. Модуль моей страницы компилируется без ошибок. После компиляции модуля выполняю компиляцию бизнес-процесса, который содержит элемент "Преднастроечная страница" к которому подключён мой модуль. Для запуска этого БП с моей страницей пробовал использовать браузеры: FireFox, GoogleChrome, IE. Все элементы на странице нормально визуализируются, кроме упомянутой выше кнопки. В консольном окне отладчика браузера нет никаких сообщений об ошибке. Вроде всё нормально, а кнопка не отображается. В окне Elements отладчика GoogleChrome - кнопки нет, а все остальные элементы страницы - есть. Исходник модуля моей страницы смотрел человек, хорошо знающий Javascript, и только руками разводил: "должна отображаться - всё написано правильно", а её нет. Может быть кто скажет - в чём причина?

Нравится

2 комментария

Добрый день Евгений!!!

можно скриншот вашей страницы как сейчас у вас визуализируется кнопка на экране. и схематически нарисуйте как вы хотите, а я вам подскажу что делать. и так же прошу скинуть полностью листинг модуля, где у вас не работает данная кнопка. посмотрим и на код.

Спасибо, Михаил.
Я вчера вечером сам решил этот вопрос. Я изменил имя у кнопки с BackButton на RetButton и она стала отображаться на странице. Ещё раз спасибо большое за поддержку.

Показать все комментарии

Доброго времени суток всем.
Дайте, пожалуйста, ссылку на примеры (или ещё лучше - руководства) по написанию, на Javascript, модуля закладки и модуля детейла, на руководство о том, как связать модуль закладки с модулем страницы, на которой эта закладка должна быть расположена. И, если это будут всего лишь примеры, а не руководства, то чтобы были пояснения - комментарии там что ли. Но, опять же, желательно, чтобы эти комментарии были понятны для "чайника".

Нравится

4 комментария

Какая версия и какой продукт Вас интересует?

BPMonline 7.6 Bank Sales

Евгений,

Вам необходимо ознакомиться с информацией в SDK:
http://academy.terrasoft.ru/documents/?product=SDK&ver=7.6.0

И обратиться в партнерский департамент для прохождения обучения по конфигурированию и разработке.

Спасибо. Обращаюсь к SDK по ходу работы, когда есть время - много делать приходится.

Показать все комментарии

Когда в модуле страницы нужно добавить кнопку, то нужно написать следующую строку кода на Javascript:
"operation": "insert"
Напишите мне, пожалуйста, перечень всех значений, которые можно использовать с "operation" или дайте ссылку на их описание. Мне нужен их полный перечень.
Заранее благодарен.

Нравится

2 комментария