Не получается вывести checkbox на странице. Для его вывода написал следующий код.
В секции attributes:
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". Как мне поправить исходник, чтобы чекбокс выводился?
Нравится
Евгений добрый день!!!
привожу пример как создать к примеру "Напоминания ответственному", как изображено на картинке ниже:
.... 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