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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.10.2008, 21:40   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,340 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Такой код я бы лучше заменил вызовом
X++:
        tmpLedgerTable.data(ledgerTable);
        tmpLedgerTable.insert();
Результат будет тот же, но сэкономит процессорное время.
В отличии от метода buf2buf - метод data имеет две особенности, о которых нужно помнить при его использовании:
1. При необходимости программно скопировать запись в постоянной таблице - данный метод просто спозиционирует переменную таблицы на ту же запись - т.е следующая конструкция только "откопирует" курсор, при этом RecId не будет равен нулю (что логично, но не всегда удобно):
X++:
    LedgerTable fromLedgerTable, toLedgerTable;
    ;
    select fromLedgerTable;
    toLedgerTable.data(fromLedgerTable);
2. Метод data (в отличии от buf2buf) копирует все системные поля. Но если поля modified* и RecId все равно перезапишутся при вызове метода insert(), то остальные поля к примеру create* и dataAreaId не перезапишутся. Таким образом следующий код приведет к созданию записи не в той компании:
X++:
    LedgerTable fromLedgerTable, toLedgerTable;
    ;
    changecompany ('dax')
    {
        select fromLedgerTable;
        changecompany ('nav')
        {
            toLedgerTable.data(fromLedgerTable);
            toLedgerTable.insert(); // Будет создана запись в компании dax
        }
    }
не говоря уже о том, что данные в полях create* будут некорректными. Тот же эффект будет наблюдаться и при использовании временных таблиц.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 29.10.2008 в 21:53.
За это сообщение автора поблагодарили: ZVV (1), Logger (5), mayk (1), AP-1055D (1).
Старый 20.04.2009, 00:01   #2  
Turganov Artem is offline
Turganov Artem
Участник
 
2 / 10 (1) +
Регистрация: 28.07.2003
Пришлось реализовать задачу с временной таблицей в Map.
В контейнер и Map можно сохранить только Record. Копия строки в таблице, но не само строку (обновить ее нельзя, если извлечь из Маp, сначала ее надо найти в таблице).
Без обертки не как, кроме класса можно использовать класс формы.
Пакуем очевидно класс - обертку.

Лично пришлось решать как обычно не стандартную задачу. На каждом этапе сложно алгоритма нужно было сохранять промежуточную таблицу. Создаю класс с временной таблице - пишу на каждом этапе. На выходе меню со списком этапов. Кнопка по текущему курсору открывает форму с нужны экземпляром сохраненной темповой таблицы со контентом из Map.
Теги
map, временная таблица, клиент-сервер

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Динамическое связывание временной таблицы Paul_ST DAX: Программирование 8 25.09.2007 16:17
данные из временной таблицы в отчете алька DAX: Программирование 4 19.04.2007 17:47
Проблема с очисткой временной таблицы v.fedorov DAX: Программирование 13 26.10.2006 23:02
Формирование отчета на основе временной таблицы neys DAX: Программирование 8 26.05.2006 15:23
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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