![]() |
#1 |
Axapta Retail User
|
![]()
Есть некий Map. Одно поле map-а для одной таблицы привязано через mapping к ее реальному полю, а для другой таблицы нет (просто нет такого реального поля). В коде идет обращение к полю Map-а и, соответсвенно, хочется как то проверить а есть ли у этого поля Map-а привязка... Как это лучше сделать?
P.S. С Новым годом! ![]() |
|
![]() |
#2 |
Участник
|
Может посмотрите, как это реализовано для русского формата адреса.
(там используется класс \Classes\MapToAddressField_RU для построения Map (уже класса, а не карты соответствия) с перечнем полей, для которых есть mapping. |
|
![]() |
#3 |
Участник
|
В классе Global есть метод mappingExists_RU. В российском DIS слое
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Sergey Petrov (1), plumbum (1). |
![]() |
#4 |
Участник
|
Тоже верно
![]() И намного проще |
|
![]() |
#5 |
Axapta Retail User
|
Спасиба!
![]() |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Можно
X++: // If '_mapField' and '_tableField' are empty: true if the '_mapId' map have a mapping for table '_tableId' // If '_mapField' is not empty: true if the '_mapId' map have a mapping for it's field '_mapField' for table '_tableId' // If '_tableField' is not empty: true if the '_mapId' map have a mapping for table's field '_tableField' for table '_tableId' // If '_mapField' and '_tableField' are not empty: true if '_mapField' is a mapping for '_tableField' on map '_mapId' for table '_tableId' static public boolean mappingExists_RU(tableId _mapId, tableId _tableId, fieldId _mapField = 0, fieldId _tableField = 0) { boolean ok; Map map = MappingsInfo_RU::createMapWithFieldId( _tableId, _mapId); identifiername fieldName; ; if (! map.empty()) { if (_mapField || _tableField) { if (_mapField && _tableField) { fieldName = fieldid2name(_mapId, _mapField); if (map.exists(fieldName) && (map.lookup(fieldName) == _tableField)) { ok = true; } } else if (_mapField) { if (map.keySet().in(fieldid2name(_mapId, _mapField))) { ok = true; } } else if (_tableField) { if (map.valueSet().in(_tableField)) { ok = true; } } } else { ok = true; } } return ok; } |
|
|
За это сообщение автора поблагодарили: Hyper (1). |
![]() |
#8 |
Участник
|
Спасибо за мгновенный ответ.
Мне почему-то представлялось, что существует гораздо более красивый и простой способ проверки наличия привязки поля map к таблице... |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|