|
15.10.2008, 08:56 | #1 |
Участник
|
Есть ли в Axapta ф-ия схожая с TRANSFERFIELDS из Nav?
Доброго времени суток, уважаемые знатоки Ax. Подскажите беженцу с MBS Navision.
Вопрос следущий: Есть ли в MorphX функция подобная C/All'овской TRANSFERFIELDS()? И если есть, используется ли она при разноске? Не могу найти ответ. Для сведения, в Nav она делала перенос сразу нескольких значений полей из одной таблицы в другую. Для переноса важно было, что бы необходимые для переноса поля имели один ID и Name соответственно в обоих таблицах. Использовалась при учете. |
|
15.10.2008, 09:16 | #2 |
NavAx
|
buf2buf()
ЗЫ. Если надо инициализировать курсор из курсора того же типа (такая же таблица), то можно Table1.data(Table2). Последний раз редактировалось raz; 15.10.2008 в 09:19. |
|
15.10.2008, 09:48 | #3 |
Участник
|
Спасибо, но это немного не то.
Таблицы разные. Например: LedgerJournalTrans и LedgerTrans. Эти таблицы имеют схожие наборы полей, участвующие в процедуре разноски. Но в LJT и в LT было добавлено поле. После разноски значение из созданного поля в LJT должно попадать в LT. Отвечает за разноску класс LedgerJournalCheckPost. А вот в каком методе происходит перенос данных из LJT в JT я, к сожалению, не нашел. И поэтому вспомнил про указанную в вопросе функцию из Nav. |
|
15.10.2008, 09:59 | #4 |
Участник
|
Цитата:
И уже у мапа вызывать функцию data().
__________________
Функциональное тестирование сайтов |
|
15.10.2008, 10:18 | #5 |
NavAx
|
Цитата:
Сообщение от bobski
Спасибо, но это немного не то.
Таблицы разные. Например: LedgerJournalTrans и LedgerTrans. Эти таблицы имеют схожие наборы полей, участвующие в процедуре разноски. Но в LJT и в LT было добавлено поле. После разноски значение из созданного поля в LJT должно попадать в LT. Отвечает за разноску класс LedgerJournalCheckPost. А вот в каком методе происходит перенос данных из LJT в JT я, к сожалению, не нашел. И поэтому вспомнил про указанную в вопросе функцию из Nav. Но если вернуться к вопросу переноса полей, то в аксапте обычно создают метод типа initFromTable1 на таблице Table2, и вызывают его Table2.initFromTable1(Table1). Или можно сделать свой buf2buf типа: X++: static void myBuf2Buf( Common _from, Common _to ) { DictTable dictTable = new DictTable(_from.tableId); fieldId fieldId = dictTable.fieldNext(0); fieldId fieldIdto; fieldName fieldName; while (fieldId && ! isSysId(fieldId)) { fieldName = fieldId2name(_from.TableId, fieldId); fieldIdto = fieldname2Id(_to.TableId, fieldName); if (fieldIdto && typeof(_to.(fieldIdto)) == typeof(_from.(fieldId))) _to.(fieldIdto) = _from.(fieldId); fieldId = dictTable.fieldNext(fieldId); } } |
|
|
За это сообщение автора поблагодарили: kashperuk (3). |
15.10.2008, 10:41 | #6 |
Участник
|
Идею понял, спасибо за скорые ответы.
|
|
04.05.2010, 14:05 | #7 |
Участник
|
Не пользуйтесь этой идеей - это то, что mazzy называет "программистским подходом". Из моего скромного опыта, в долгосрочной перспективе эта идея несет куда больше проблем, чем удобств. Дело в том, что:
|
|
|
За это сообщение автора поблагодарили: Zabr (1). |
Теги |
законченный пример, как правильно, программно |
|
|