Формат адресов. AddressMap_RU
Запись от Poleax размещена 08.02.2011 в 11:35
В локализованной Dynamics Ax 2009 можно видеть разность отображения полей в зависимости от страны.
Для стран настраивается формат адреса(Основное -> Настройка -> Формат адреса) и тип адреса (Основное -> Настройка -> Страна/регион).
К примеру на форме Банк:
Если есть потребность при создании новой формы вывести вкладку с Адресами, то приведу список объектов для модификации:
При запуске формы ваши поля адреса сопоставятся с полями МАР(ов), что в результате позволит использовать стандартные методы lookup*, modified*, make* и т.д.
На ваше форме смена значения в поле Страна/регион динамически изменит поля адреса.
Для стран настраивается формат адреса(Основное -> Настройка -> Формат адреса) и тип адреса (Основное -> Настройка -> Страна/регион).
К примеру на форме Банк:
Если есть потребность при создании новой формы вывести вкладку с Адресами, то приведу список объектов для модификации:
- В Вашей таблице создаем поля для адреса. Список полей и их форматов можно скопировать с
- \Data Dictionary\Maps\AddressMap\Fields
- \Data Dictionary\Maps\AddressMap_RU\Fields
- В методе \Classes\FormRunListener_Address_RU\addressInfo
добавим код:
#AddressGroup стандартный макрос (\Macros\Address_RU), типичных названий групп для списка полей адресов.X++:case formstr(NewMyForm) : return [[#AddressGroup, tablenum(AddressMap)]];
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; }
- \Data Dictionary\Tables\NewMyTable\Methods\modifiedField
При запуске формы ваши поля адреса сопоставятся с полями МАР(ов), что в результате позволит использовать стандартные методы lookup*, modified*, make* и т.д.
На ваше форме смена значения в поле Страна/регион динамически изменит поля адреса.
Всего комментариев 0