Создания детали с полями (BPM 7.0)

Добрый день !!!
У меня возникла проблема с созданием детали с полями:
1. Первое я не могу добавить зависимости(Dependency) (Конфигурация - Добавить - Схема модели представление детали с полями)
2. Не могу понять как строится представление детали (где описываются контролы и так далее), смотрел на схемы: NUI.AnniversaryDetail.js, NUI.AddressDetail.js, хотелось бы описание что за что атрибут/метод отвечает и что делает если можно

Нравится

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

Добрый день, Сергей.

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

7.0.1.328
Почти разобрался, щас еще разбираюсь.
1. Не добавлялась так как вначале представление не было создано, после создание зависимости и так далие добавляются.
2. Половину разобрал осталась вторая
Я бы хотел что бы можна было добавлять групу контролов но не в столбец, а в строку и еще как можна добавить простой лейбл ?

И еще одно к детали можно применять бизнес правила ?
Не работает, но на атрибуте работает это правило, проверял

{
	name: 'accountInternetActivityDetail',
	schemaName: 'AccountInternetActivityDetail',
	type: Terrasoft.ViewModelSchemaItem.DETAIL,
	filterPath: 'Account',
	filterValuePath: 'Id',
	caption: 'Work',//resources.localizableStrings.accountInternetActivityDetail,
	visible: true,
	collapsed: false,
	leftWidth: '60%',
	rightWidth: '40%',
	wrapContainerClass: 'control-group-container',
	rules: [
	      {
		ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
		property: BusinessRuleModule.enums.Property.VISIBLE,
		conditions: [
		    {
		       leftExpression: {
			  type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
			  attribute: 'LocationDisposal'
		       },
		       comparisonType: Terrasoft.ComparisonType.EQUAL,
		       rightExpression: {
		            type: BusinessRuleModule.enums.ValueType.CONSTANT,
			    value: '965b0ead-4809-4a21-9151-907174066a0f'
		        }
		}
	     ]
	   }
	]
}

Сергей, лейбл пока вывести нельзя. Недавно этот функционал был добавлен и будет доступен в сборках ~7.0.1.500+.
Касательно остального, сейчас уточняем у разработки.

"Maxim Gritsenko" написал:

Сергей, лейбл пока вывести нельзя. Недавно этот функционал был добавлен и будет доступен в сборках ~7.0.1.500+.

Касательно остального, сейчас уточняем у разработки.


А можно это как-то сделать своими силами ? типа добавить HTML тег или чтото в этом роде ?

Доброе утро, Сергей.

Я попробовал из контекста функции отрендерить лейбл через Ext в контейнер:

Ext.create('Terrasoft.controls.Label', {
renderTo: Ext.get('autoGeneratedLeftContainer'),
caption: "ABVGD"
});

Получилось так:

Нашел такие свойства у Terrasoft.controls.Label:

: String
Свойство обеспечивает более короткую альтернативу для создания объектов, чем при использовании полного имени класса. ...

caption : String
Текстовая надпись внутри элемента ...

classes : ObjectVIRTUAL
Объект для спецификации CSS-классов компонента указанных в шаблоне. ...

destroyed : Boolean
Флаг уничтожения объекта. ...

enabled : Boolean
Признак указывает на то что компонент включен ...

font : String
Шрифт элемента ...

hasListeners : ObjectREADONLY
This object holds a key for any event that has a listener. ...

html : String
Строка готовой HTML-разметки для вставки в DOM. ...

inputId : String
Id элемента к которому привязан label ...

instanceId : String
Идентификатор экземпляра ...

isComponent : String
Признак, указывающий на то, что данный объект является компонентом. ...

isObservable : Boolean
true in this class to identify an object as an instantiated Observable, or subclass thereof. ...

markerValue : String
Значение маркерного dom-атрибута data-item-marker. ...

renderTo : ObjectVIRTUAL
Указывает ссылку на Ext.Element в который будет рендериться элемент управления. ...

rendered : BooleanREADONLY
Признак, который указывает на то, что комонент отрендерен. ...

rendering : BooleanREADONLY
Признак, который указывает на то, что комонент находится в фазе рендеринга. ...

styles : ObjectVIRTUAL
Объект для спецификации inline-стилей компонента указанных в шаблоне. ...

tabIndex : Number
Индекс фокуса ...

tag : String
Строка дополнительных параметров компонента. ...

tplData : ObjectVIRTUAL
Объект содержащий параметры для шаблона элемента управления. ...

visible : Boolean
Признак указывает на видимость элемента управления. ...

width : String/Number
Ширина элемента, если установлено число тогда ширина будет вычисляться в пикселях, если установлена строка - то согла...

wordWrap : Boolean
Разрыв строки, по умолчанию true (включен) ...

Правильно ли я понимаю:
Метод Ext.create, создает контрол и вставляет его куда я захочу ? а функцыя Ext.get('autoGeneratedLeftContainer') возвращает нам елемент куда мы его будем вставлять ? Как мне взять узнать имя куда его вставлять ? Так как я пробую имена своих груп мне возвращает undefined. Я этот метод вызываю где, в userCode? или гдето в другом месте ?
И как обстоят дела с бизнес правилами к детали и групам ? и построения контролов в ряд а не в столбец ? Видел подобное в карточке Счета к "напомнить ответственному"но если сменить имя контрола оно уже не будет строить в ряд... я так полагаю это гдето выше персится и меняется

Да, все верно.
Можно добавлять кнопки, лейблы и т.д.
Имена контролов куда рендерить можно узнать в консоли, через инспектор объектов:

"Олейник Дмитрий" написал:

Да, все верно.

Можно добавлять кнопки, лейблы и т.д.

Имена контролов куда рендерить можно узнать в консоли, через инспектор объектов:

Прикрепленный файлРазмер

1.png
226.26 кб

С уважением,

Олейник Дмитрий

Эксперт 3-й линии поддержки


а как программно взять ? например если он каким то чудом изменился ?
и что на счет бизнес правилами к детали и групам ? и построения контролов в ряд а не в столбец ?

Добрый день.

Программно по Id, других идентификаторов у элементов нет.
Специалисты департамента разработки говорят, что выстраивать контролы в ряд без доработки нельзя.
Также, параметр rules в деталях не обрабатывается.

"Maxim Gritsenko" написал:Добрый день.

Программно по Id, других идентификаторов у элементов нет.
Специалисты департамента разработки говорят, что выстраивать контролы в ряд без доработки нельзя.
Также, параметр rules в деталях не обрабатывается.


что нужно дорабатывать ? Страницу генерации ? или css классы ? если нужно css классы то как их добавить ?

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

"Maxim Gritsenko" написал:

Сергей, перенаправляю вопрос разработчикам.

В поддержке не реализовывали, необходимой информацией не владеем.

В ближайшее время постараемся предоставить ответ от департамента разработки.


Ок, спасибо. Надеюсь ответ долго не заставит себя ждать =)

Добрый день.

Специалисты департамента разработки предлагают следующее решение:
Можно задавать обтекание для контейнера используя свойство styles:

styles: {
wrapStyles: {
'float': 'left'
}
},

Чтобы использовать эту возможность нам нужно сгенерировать представление, в котором мы будем что-то менять. Для этого нужно использовать функцию getCustomItemView.
При помощи определения этой функции в своей детали мы можем отдать полный конфиг представления для элемента детали. Использование этой функции можно посмотреть в детали средств связи.

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