AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.05.2004, 14:44   #1  
Mechanizm is offline
Mechanizm
Участник
 
54 / 10 (1) +
Регистрация: 01.03.2004
Адрес: Санкт-Петербург
? Как скопировать запись?
Имеется некая таблица XXX. Надо создать в X++'е копию некой текущей записи, и затем заапдейтить в ней несколько полей.

Логично написать:

XXX.Field1 = XXX.Field1;
XXX.Field2 = XXX.Field2;
XXX.Field3 = XXX.Field3;
XXX.insert();
ну и потом прописать апдейт, какой потребуется, уже по новой записи

Но проблема в том, что в этой таблице 90 полей, и выписывать такой код анриал.

Можно сделать это как-нибудь по-другому? Причём именно средствами X++'а.
Хорошо бы пройтись чем-то по коллекции всех полей, имеющихся у данной таблицы. С помощью tablenum, fieldnum можно прочитать названия (только названия) полей, а как их запихать в какие-то операторы присвоения вроде XXX.FieldX = XXX.FieldX ?
Старый 18.05.2004, 15:06   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Не совсем то, но может натолкнет на мысли:

PHP код:
CustTable ct1ct2

ttsbegin
ct1=CustTable::find("1"); 
ct2.clear(); 
ct2 ct1.data(); 
ct2.custaccount="2"
ct2.insert(); 
ttscommit
Старый 18.05.2004, 15:21   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Global::buf2buf()
Старый 18.05.2004, 15:47   #4  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
XXX.data(YYY);
Старый 18.05.2004, 15:49   #5  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Пример из "родного" кода:

PHP код:
server static void copy(
    
Common _from,
    
Common _to
    
)
{
    
DocuRef docuRef;
    
DocuRef newDocuRef;

    
ttsBegin;

    while 
select docuRef
        index RefIdx
        where docuRef
.refCompanyId  == _from.dataAreaId &&
              
docuRef.refTableId    == _from.tableId    &&
              
docuRef.refRecId      == _from.recId
    
{
        
newDocuRef.data(docuRef);
        
newDocuRef.refCompanyId  _to.dataAreaId;
        
newDocuRef.refTableId    _to.tableId;
        
newDocuRef.refRecId      _to.recId;
        
newDocuRef.insert();
    }

    
ttsCommit;


 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не корректно сохраняет запись в inventTable Starling DAX: Программирование 8 31.03.2008 15:30
Очень просто: создать новую запись в таблице Hobo DAX: Программирование 20 11.07.2006 13:02
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04
Исчезает запись в плане счетов zarik DAX: Прочие вопросы 6 03.05.2005 10:32
Ошибка "Запись удалена другим пользователем" ArturK DAX: Программирование 6 02.02.2005 15:55

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:05.