В ActivtiyPageV2 для элемента StartDate определён генератор "TimezoneGenerator.generateTimezoneButton"

 

{
 "operation": "insert",
 "parentName": "Header",
 "propertyName": "items",
 "name": "StartDate",
 "values": {
  "bindTo": "StartDate",
  "name": "StartDate",
  "generator": "TimezoneGenerator.generateTimezoneButton",
  "layout": {"column": 0, "row": 1, "colSpan": 12}
 }
},



Определил, что данное свойство не должно быть строкой или функцией (см. ViewGeneratorV2 методы hasItemCustomGenerator и generateItem).

НО если устанавливаю значение например 0 или null для для свойства generator,

то получаю ошибку: 

Свойство generator не было определено в классе Terrasoft.controls.Label

 

Как в замещающей схеме отключить свойство generator для данного элемента?

Нравится

1 комментарий

В EmailTemplatePageV2 это свойство — именно функция:

{
	"operation": "insert",
	"parentName": "TemplateContaner",
	"propertyName": "items",
	"name": "Body",
	"values": {
		"generator": function() {
			return {
				"className": "Terrasoft.IframeControl",
				"id": "preview-content-iframe",
				"iframeContent": {"bindTo": "BodyToDisplay"}
			};
		}
	}
}

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

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

Здравствуйте. Была необходимость в добавлении дополнительного поля поиска в LookupPage. 

Изображение удалено.На данный момент решил задачу путем замещения модуля LookupPageViewGenerator и изменения в нем метода getFilteringControlsConfig

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

Вопрос: можно ли как-то заместить или расширить этот модуль не копируя весь код, чтобы просто изменить тот метод, который мне нужен? Если да, то как потом его использовать на странице, например "Обращения"?

Нравится

2 комментария
Лучший ответ

Посмотрите здесь уже обсуждалась подобная тема.

Если Вам нужно использовать окно подобного вида не везде, то Вы можете реализовать свое кастомное окно и вызывать его в методе openLookup.

Кастомное окно можно реализовать не как замещенное, а как наследник от LookupPageViewGenerator и переопределить нужные методы.

Также мне не совсем понятно, если Вы действительно замещали LookupPageViewGenerator, то зачем тогда копировали весь код, ведь могли переопределить только нужные методы?

 

Посмотрите здесь уже обсуждалась подобная тема.

Если Вам нужно использовать окно подобного вида не везде, то Вы можете реализовать свое кастомное окно и вызывать его в методе openLookup.

Кастомное окно можно реализовать не как замещенное, а как наследник от LookupPageViewGenerator и переопределить нужные методы.

Также мне не совсем понятно, если Вы действительно замещали LookupPageViewGenerator, то зачем тогда копировали весь код, ведь могли переопределить только нужные методы?

 

Лучше клиентские модули не замещать

В 7.13.1 добавлен запрет на создание и установку новых замещающих клиентских модулей.

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

В вашем случае лучше унаследовать свой модуль от LookupPageViewGenerator создать свою страницу справочника скопировав LookupPage со всеми зависимястями заменив LookupPageViewGenerator на свой вариант

И дальше на странице Обращения в атрибутах указать lookupListConfig параметр lookupPageName:

"EmployeesNumber": {

                        dataValueType: Terrasoft.DataValueType.LOOKUP,

                        lookupListConfig: {

                            orders: [{columnPath: "Position"}],                            lookupPageName: ВашаСтраницаLookupPage 

                        }

                    },

 

Таким образом ваш вариант будет вызыватся лишь там где вы в атрибутах явно зададите lookupPageName что вы и хотели!

 

 

 

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

Здравствуйте.

Посоветуйте, пожалуйста, решение.
Смотрел тему в форме https://community.terrasoft.ua/forum/topic/10239 , но там стандартная деталь.

Данные для грида получаю через веб-сервис.

Задача состоит в том, что нужно в колонке статус вывести изображение в зависимости от значения(Погашен, Не погашен).

Вот конфигурация грида:
function getPaymentScheduleGridConfig() {
return {
id: 'payment-schedule-grid',
className: 'Terrasoft.Grid',
type: 'listed',
primaryColumnName: 'Id',
isEmpty: {
bindTo: 'gridPaymentEmpty'
},
isLoading: {
bindTo: 'gridPaymentLoading'
},
collection: {
bindTo: 'paymentScheduleGridData'
},
captionsConfig: [
{
cols: 2,
name: '№'
},
{
cols: 3,
name: 'Дата'
},
{
cols: 4,
name: 'Сумма платежа'
},
{
cols: 4,
name: 'Сумма процентов'
},
{
cols: 4,
name: 'Основной долг'
},
{
cols: 5,
name: 'Остаток задолженности'
},
{
cols: 2,
name: 'Статус'
}
],
columnsConfig: [
[
{
cols: 2,
key: [
{
name: {
bindTo: 'PeriodNumber'
}
}
]
},
{
cols: 3,
key: [
{
name: {
bindTo: 'Date'
}
}
]
},
{
cols: 4,
key: [
{
name: {
bindTo: 'Sum'
}
}
]
},
{
cols: 4,
key: [
{
name: {
bindTo: 'PercentSum'
}
}
]
},
{
cols: 4,
key: [
{
name: {
bindTo: 'DebtSum'
}
}
]
},
{
cols: 5,
key: [
{
name: {
bindTo: 'DebtBalanceSum'
}
}
]
},
{
cols: 2,
key: [
{
name: {
bindTo: 'Status'
}
}
]
}
]
]
};
}

Нравится

1 комментарий

Здравствуйте, Shamil!
Не совсем понятно, в чем, собственно, проблема. Прошу описать, что у Вас не получается.
Если вопрос в том, как выводить картинку в зависимости от статуса, то для решения данной задачи нужно добавить поле с картинкой, которое заполнять соответсвкующей картинкой при сохранении объекта в процессе объекта или в отдельном БП.

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