12.10.2005, 16:20 | #1 |
Участник
|
Как узнать Alignment у элемента в Grid'е
При отображении грида на форме я вижу что какие-то поля имеют левое выравнивание, какие-то - правое. А обратившись программно к свойству alignment() элементов грида получаю - Auto. Как добраться до реального выравнивания, с которым элементы отображаются?
__________________
Дмитрий |
|
12.10.2005, 16:34 | #2 |
Moderator
|
Надо обращаться к свойствам EDT полей таблицы.
__________________
Андрей. |
|
12.10.2005, 16:42 | #3 |
Участник
|
А у EDT как программно узнать Alignment?
И как быть в случае display-методов?
__________________
Дмитрий |
|
12.10.2005, 17:28 | #4 |
Moderator
|
Для получения id типа: SysDictField.extendedTypeId() или SysMethodInfo.returnId(), далее new SysDictType(_id_).stringRight();
__________________
Андрей. |
|
|
За это сообщение автора поблагодарили: jeky (1). |
13.10.2005, 08:43 | #5 |
Участник
|
SysMethodInfo.returnId() возвращает 0 у меня почему-то.
А функция DictType.stringRight() - это Adjustment.
__________________
Дмитрий |
|
13.10.2005, 10:25 | #6 |
Участник
|
Вот. Пример для типов, полей таблиц, статических и обычных методов.
Только для многих EDT выравнивание установлено в AUTO
__________________
Axapta v.3.0 sp5 kr2 |
|
13.10.2005, 11:05 | #7 |
Moderator
|
Спасибо, AndyD! Я тоже хотел уже предложить через TreeNode лезть, но ты опередил
Кстати, неплохо бы предусмотреть рекурсивную проверку этого свойства у типов-родителей... А выравнивание Auto для строк, если не ошибаюсь, обозначает левое.
__________________
Андрей. |
|
13.10.2005, 11:16 | #8 |
Участник
|
Да, рекурсивную проверку я вставил. И если тип String и свойство Alignment выставлено в Auto даже у самого-самого родителя, то выравнивание беру из свойства Adjustment. Вот у этого свойства всего два положения Left и Right. Всё заработало чётко.
__________________
Дмитрий |
|
13.10.2005, 11:20 | #9 |
Участник
|
По-моему Adjustment брать неправильно. Я думаю, что для AUTO надо смотреть BaseType и в зависимости от него выбирать выравнивание - для String - Left, для Int - Right и т.д. Хотя может быть есть средства выяснить выравнивание для BaseType?
__________________
Axapta v.3.0 sp5 kr2 |
|
13.10.2005, 11:30 | #10 |
Участник
|
Если у расширенного типа string свойство Alignment не выставлять, а Adjustment выставить в Right, то значения будут выравниваться по правому краю, проверено.
__________________
Дмитрий |
|
13.10.2005, 11:35 | #11 |
Moderator
|
Логично, правый adjustment обозначает физическое выравнивание строк, с добавлением пробелов слева.
http://axapta.mazzy.ru/lib/adjustment/
__________________
Андрей. |
|