|
27.01.2009, 14:50 | #1 |
Участник
|
Статьи аналитик
Добрый день. Подскажите, пожалуйста, решение такой проблемы:
В описании класса пишу: Dimension dimension; Создаю диалог: public Object dialog() { DialogRunbase dialog = super(); DialogField dialogBKNumber; ; dialog.addGroup("Фильтры"); dialogBKNumber = dialog.addField(typeid(Dimension),"Статья БК","Выбор статьи БК"); dialogBKNumber.value(dimension); return dialog; } В результате получаю на форме семь полей аналитик, а мне нужно только одно поле. Проблема в том, что Dimesion - это массив из семи аналитик. Как мне указать, что мне нужна конкретно 7-я аналитика в качестве типа dimension? Вариант Dimension[7] dimesion; не работает. Спасибо. |
|
27.01.2009, 14:58 | #2 |
Axapta
|
Создать для нужной аналитики свой ЕДТ-наследние от SysDim и прописать соответствющий релейшн к таблице Dimensions. В диалог подставлять этот ЕДТ.
X++: DepartmentId extends SysDim
DepartmentId == Dimensions.Num
0 = Dimensions.Code |
|
|
За это сообщение автора поблагодарили: Silphidae (1). |
27.01.2009, 14:58 | #3 |
Участник
|
нужно создать расшитенный тип со ссылкой на аналитику кот вам нужна или используйте функцию extendedTypeName2Id_RU
з.ы упс попередили)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
|
За это сообщение автора поблагодарили: Silphidae (1). |
27.01.2009, 15:16 | #4 |
Участник
|
вариант без создания отдельных EDT
Посмотрите тему финансовые аналитики в диалог
Там в обсуждении был пример job'а в котором программно скрывались 'ненужные' поля финансовых аналитик в диалоге: X++: static void jobDimensionFields(Args _args) { Dialog dialog ; DialogField dialogFieldDimension; FormStringControl formStringControl ; Counter idx ; ; dialog = new Dialog() ; dialogFieldDimension = dialog.addField(typeId(Dimension)); for( idx=2; idx<=Dimensions::numOfDimensions(); idx++ ) { formStringControl = dialogFieldDimension.fieldControl(idx) ; formStringControl.visible( false ) ; } dialog.run() ; } |
|
|
За это сообщение автора поблагодарили: Silphidae (1). |
27.01.2009, 15:55 | #5 |
Участник
|
Спасибо всем за помощь.
Извиняюсь, но мне непонятно, что значит строка в связях: 0 == Dimensions.DimensionCode Почему 0? Объясните, пожалуйста. Последний раз редактировалось Silphidae; 27.01.2009 в 16:41. |
|
27.01.2009, 16:57 | #6 |
Участник
|
Цитата:
Цитата:
Сообщение от oip
...
DepartmentId == Dimensions.Num 0 = Dimensions.Code В данном случае создана доп.связь (ограничение) типа 'Поле ссылки фиксировано' по таблице Dimensions с ограничением по полю Dimensions.DimensionCode = "Подразделение" Если Вам необходим какой-либо другой вид аналитики, то смотрите числовое значение этого кода в enum SysDimension (например SysDimension::SomeValue = 10) и подставляете в связь вместо 0. Последний раз редактировалось petergunn; 27.01.2009 в 17:22. Причина: орфография |
|
27.01.2009, 17:13 | #7 |
Участник
|
Цитата:
Сообщение от petergunn
В основе поля таблицы Dimensions.DimensionCode лежит перечисление (base enum) SysDimension в котором 0 = SysDimension:: Department
Создана доп.связь (ограничение) типа 'Поле ссылки фиксировано' по таблице Dimensions с ограничением по полю Dimensions.DimensionCode = "Подразделение" |
|
Теги |
edt, extended data type, dimensions |
|
|