|
![]() |
#1 |
Участник
|
Да я знаю, что можно вручную в коде сопоставить все поля и все. Но я хочу сделать универсально, вдруг добавятся еще поля и тд.. те получив на входе fieldId custTable, на выходе иметь fieldId vendTable
|
|
![]() |
#2 |
Участник
|
Цитата:
Цитата:
PS. Есть такой класс MappingsInfo_RU, позволяющий для указанного Map и таблицы по названию поля Map получить код соотв. поля таблицы. Единственный косяк в нем - это использование в методе findMappingTreeNode() метода infolog.getNode() вместо обычного TreeNode::findNode(). Из-за этого и соотв. TreeNode, и затем TreeNodeIterator создаются на клиенте, что приводит при использовании класса на сервере к дикому трафику, тормозам и росту отжираемой памяти (может, уже и исправили этот кусок). А так, если создать, как советовали, свой Map и затем получить с помощью указанного класса данные по двум связанным через Map таблицам, то можно пробежаться по полученным Map'ам (на этот раз - экземплярам класса-контейнера) и скопировать значения полей, не рискуя "случайно" нарваться на поле Map, для которого в одной из таблиц нет отображения. |
|
|
За это сообщение автора поблагодарили: ZVV (2), Kashesh (1). |
![]() |
#3 |
Боец
|
Цитата:
Если вдруг подозрение оправдается, то try/catch можно заменить на условие: X++: if (new dictField(_vendTable.TableId, dictTable.fieldCnt2Id(i)) && new dictField(_custTable.TableId, dictTable.fieldCnt2Id(i)) ) { _vendTable.(dictTable.fieldCnt2Id(i)) = _custTable.(dictTable.fieldCnt2Id(i)); } |
|
Теги |
map, синхронизация баз |
|
![]() |
||||
Тема | Ответов | |||
Как сделать фильтр по группе пользователей? | 12 | |||
Группа полей | 2 | |||
Заумный отчет по ОС, как сделать? | 13 | |||
Как лучше сделать? | 7 | |||
очистка полей. простой вопрос | 4 |
|