Источник:
http://axforum.info/forums/blog.php?b=225
==============
В локализованной Dynamics Ax 2009 можно видеть разность отображения полей в зависимости от страны.
Для стран настраивается формат адреса
(Основное -> Настройка -> Формат адреса) и тип адреса
(Основное -> Настройка -> Страна/регион).
К примеру на форме Банк:
Если есть потребность при создании новой формы вывести вкладку с Адресами, то приведу список объектов для модификации:
- В Вашей таблице создаем поля для адреса. Список полей и их форматов можно скопировать с
- \Data Dictionary\Maps\AddressMap\Fields
- \Data Dictionary\Maps\AddressMap_RU\Fields
Сопоставим свою таблицу с полями в Map(ах) в Mappings.
- В методе \Classes\FormRunListener_Address_RU\addressInfo
добавим код:
X++:
case formstr(NewMyForm) : return [[#AddressGroup, tablenum(AddressMap)]];
#AddressGroup стандартный макрос (\Macros\Address_RU), типичных названий групп для списка полей адресов.
NewMyForm - ваша форма. Где есть группа \Forms\NewMyForm\Designs\Design\[Tab:Tab]\[TabPage:Address]\[Group:AddressGroup] с выставленными свойствами DataGroup = Address, AutoDataGroup = Yes.
В вашей таблице есть группы полей:- \Data Dictionary\Tables\NewMyTable\Field Groups\Address (список полей на примере Maps\AddressMap)
- \Data Dictionary\Tables\NewMyTable\Field Groups\Address_RU (список полей на примере Maps\AddressMap_RU )
- В таблице NewMyTable создаем методы
- \Data Dictionary\Tables\NewMyTable\Methods\modifiedField
X++:
public void modifiedField(fieldId _fieldId){ ; super(_fieldId); this.AddressMap::modifiedField(_fieldId); }
- \Data Dictionary\Tables\NewMyTable\Methods\validateField
X++:
public boolean validateField(fieldId fieldId){ boolean ret; ; if(!this.AddressMap::validatePostalCode(fieldId)) { return false; } ret = super(fieldId); /* if (ret) { switch (fieldId) { case (fieldnum(NewMyTable, INN)): ret = CompanyInfo::checkInn_RU(this.INN); break; } } */ return ret;}
При запуске формы ваши поля адреса сопоставятся с полями МАР(ов), что в результате позволит использовать стандартные методы lookup*, modified*, make* и т.д.
На ваше форме смена значения в поле
Страна/регион динамически изменит поля адреса.
Источник:
http://axforum.info/forums/blog.php?b=225