На форуме есть много разных примеров, но ни один из них не заработал на нашей версии. Нужно, чтобы деталь представляла собой таблицу, колонки которой - это колонки объекта, к которому привязана деталь, а каждая строка - это объекты, связанные через деталь с редактируемой страницей (допустим, деталь счета на странице контактов, где каждая строка - это счет текущего контакта). Нужно, чтобы при нажатии на плюс возле названия детали, добавлялась строка, которую пользователь может заполнить. Сейчас при нажатии плюса открывается страница редактирования детали, а нужно, чтобы деталь редактировалась напрямую в Grid'e.
Financial Services, v7.15
Нравится
опишите то как вы добавляете от создания объекта до создания детали, включая примеры кода
Dima Avdoshin,
Я создал объект, привязал его к детали, добавил деталь на страницу. В схему детали добавил следующий код:
define("Schema5Detail", ["ConfigurationGrid", "ConfigurationGridGenerator", "ConfigurationGridUtilities"], function() {
return {
entitySchemaName: "BankAccount",
attributes: {
"IsEditable": {
dataValueType: Terrasoft.DataValueType.BOOLEAN,
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
value: true
}
},
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[
{
"operation": "merge",
"name": "DataGrid",
"values": {
"className": "Terrasoft.ConfigurationGrid",
"generator": "ConfigurationGridGenerator.generatePartial",
"generateControlsConfig": { "bindTo": "generatActiveRowControlsConfig" },
"changeRow": { "bindTo": "changeRow" },
"unSelectRow": { "bindTo": "unSelectRow" },
"onGridClick": { "bindTo": "onGridClick" },
"activeRowActions": [
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "save",
"markerValue": "save",
"imageConfig": { "bindTo": "Resources.Images.SaveIcon" }
},
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "cancel",
"markerValue": "cancel",
"imageConfig": { "bindTo": "Resources.Images.CancelIcon" }
},
// {
// "className": "Terrasoft.Button",
// "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
// "tag": "remove",
// "markerValue": "remove",
// "imageConfig": { "bindTo": "Resources.Images.RemoveIcon" }
// },
{
"className": "Terrasoft.Button", // последняя кнопка в коде
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "card",
"markerValue": "card",
"imageConfig": { "bindTo": "Resources.Images.RemoveIcon" }
},
],
"initActiveRowKeyMap": { "bindTo": "initActiveRowKeyMap" },
"activeRowAction": { "bindTo": "onActiveRowAction" },
"multiSelect": false
}
}
]/**SCHEMA_DIFF*/,
methods: {},
mixins: {
ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities"
}
};
});
Но я не знаю, как определить, какие именно значения отобразить в гриде. Объект довольно большой, я хочу отобразить только необходимые поля с возможностью отображения карточки по нажатию на последнюю кнопку в коде. Не заполнив в реестре все необходимые поля, нельзя открыть карточку. Или я могу как-то сыгнорировать эту проверку?
Возьмите прекрасное дополнение с Marketplace и используйте готовые шаблоны https://marketplace.terrasoft.ru/template/templates-developing-custom-d…
Владимир Соколов,
большое спасибо, но, увы, это дополнение поддерживается только начиная с 7.16, а у меня установлена 7.15.
Нельзя как-то в коде настроить, в каком порядке отображать колонки объекта на гриде?
Гусейн Гулиев,
Вам проще будет обновиться до новой версии :-)
Гусейн Гулиев пишет:
это дополнение поддерживается только начиная с 7.16, а у меня установлена 7.15.
что-то мне подсказывает, что это дополнение просто появилось, когда была версия 7.16, и никто его на ранних не тестировал.
Ну, и даже с этим дополнением иногда нужно перекомпилировать и очистить Redis, чтобы заработало, как надо
Я отредактировал отображаемые колонки детали и сохранил для всех пользователей, но пользователи, открывшие страницу детали хоть раз до изменения, не увидели изменений, пришлось удалить деталь и добавить заново
Добрый день.
Вы можете посмотреть как это реализовано в базовой логике на странице редактирования заказа, деталь Продукты. При нажатии "три точки" -> добавить у нас добавляется строка, которую можно редактировать.