Показать сообщение отдельно
Старый 08.09.2017, 10:34   #2  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Есть некоторые отличия между ComboBox и Lookup. В первом случае у вас будет выпадающий список из статических значений, определённых в перечислимом типе Base Enum (даже если это EDT, он может наследоваться от Base Enum). В другом случае значения берутся из связанной таблицы. Обычно на типе создают отношение, но, начиная с 2012 аксапты, от этого отходят и делают отношения прямо на таблице.
Цитата:
Сообщение от vizir Посмотреть сообщение
Вопрос 1: где задается количество полей, которые будут выводиться в комбо боксе? Я пробовал перенастраивать отношение на другие поля, но пара одно лишнее поле стабильно все равно выводится в результате.
В таблице Table1 найдите узел Field Groups > AutoLookup. Накидайте туда столько полей, сколько необходимо. Все они появятся в выпадающем lookup-списке.
Цитата:
Сообщение от vizir Посмотреть сообщение
Вопрос 2: каким чудом axapta понимает что нужно создать именно ComboBox или TextField по EDT? Это какое то неписанное правило? И где можно это правило почитать, если оно написано? Как это гуглить?
У EDT иногда нужно смотреть иерархию, чтобы определить, что у какого-то предка есть отношение к какой-нибудь таблице. Либо он наследуется от Base enum. Например, EDT NoYesId наследуется от NoYes.
Цитата:
Сообщение от vizir Посмотреть сообщение
Вопрос 3: я создал обработчик события на этот CobmoBox путем написанного вручную метода с названием типа Fld1_1_modified(). Я не переопределял этот метод, нигде не было никаких намеков что именно так обрабатываются события. Как я должен был догадаться что именно так обрабатывается событие вновь созданного элемента формы?
Каждый контрол имеет свое имя. Если они создаются автоматически, то они называются Fld1_1, Fld1_2 и т.д. Контролу можно дать своё имя, но в старых версиях даже это было невозможно. Поэтому создав метод Fld1_1_modified() можно перекрывать событие modified() данного контрола. Такую возможность сделали именно из-за необходимости перекрывать события для контролов в диалогах, где они создаются автоматически.

P.S. Для начала почитайте про lookup в книге Еременко-Шашкова, начиная со стр. 196, там страничек 5. Даже где-то была ссылка на электронную версию.
__________________
// no comments
За это сообщение автора поблагодарили: S.Kuskov (2).