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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.03.2013, 18:22   #1  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Отмена использования временной таблицы в FormDatasource
Доброго времени суток!

Можно ли при использовании временной таблицы в источнике данных формы переключаться на использование нормальной таблицы?

Вот пример кода (к сожалению не работающего как надо)

X++:
public void executeQuery()
{
    InventTable inventTableTmp;
    InventTable inventTableData;

;
    if (! InventTable_DS.cursor().isTmp())
    {
        // Используем временную таблицу
        InventTable_DS.cursor().setTmp();
        inventTableTmp.setTmp();
        select firstonly inventTableData;
        inventTableTmp.data(inventTableData);
        inventTableTmp.insert();
        InventTable_DS.cursor().setTmpData(inventTableTmp);
    }
    else
    {
        // Пытаемся использовать таблицу из БД (не работает)
        InventTable_DS.setRecord(inventTableData);
    }

    super();
}
Задумка этого примера - при нажатии F5 грид на форме попеременно должен отображать данные из временной таблицы и данные из таблицы хранимой в БД.

Практическая задача состоит в использовании временной таблицы для построения выборки данных из разных компаний. Но в то же время пользователь может сбросить выборку с помощью галочки на форме. Использование временной таблицы в таком случае жутко замедляет процесс выборки, т.к. приходится загонять во временную таблицу все стопятсот тыщ записей, хранящихся в БД.

PS: Надеюсь понятно описал проблему
Старый 02.03.2013, 18:58   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Отвечу не по существу вопроса, но по существу проблемы.

Я так понял что для отображения всех строк вы хотите связывать датасурс с постоянной таблицей, а для отображения сокращённого перечня строк со временной? Я правильно вас понял?

Я бы советовал вам всегда использовать постоянную таблицу, а для реализации фильтра присоединять вспомогательную таблицу через ExistsJoin.
Выборка произвольных записей одним запросом
связанные данные из разных компаний

Последний раз редактировалось S.Kuskov; 02.03.2013 в 19:26.
За это сообщение автора поблагодарили: A_BAS (1).
Старый 02.03.2013, 19:52   #3  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Спасибо за ответ. Хорошая идея.
Но использовать это буду только если другого выхода не будет. Поскольку очень не хочется переписывать код предшественников.
Старый 02.03.2013, 20:11   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Хоть это вроде бы и тоже самое, но на всякий случай попробуйте
X++:
InventTable_ds.QueryRun().setRecord(inventTableData);
Ещё можно попробовать передёрнуть свойство InventTable_ds.table(tableNum), по идее через него можно вообще другую таблицу в датасурс подложить - не то что другой курсор.

Ещё вопрос. А вы делаете executeQuery() после подмены или ещё как-нибудь перевыбираете данные?
Старый 02.03.2013, 21:11   #5  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Неа. Не работает. Даже если подставить другую таблицу в датасорс, курсор все равно остается временным.

Цитата:
Ещё вопрос. А вы делаете executeQuery() после подмены или ещё как-нибудь перевыбираете данные?
Метод super() вызывается после подмены.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
передача временной таблицы с клиента на сервер Eldar9x DAX: Программирование 30 27.07.2012 12:05
Join временной таблицы в запросе yahenz DAX: Программирование 12 24.04.2012 14:59
В AX2009 не вызываются методы insert/update/delete временной таблицы S.Kuskov DAX: Программирование 14 24.06.2011 19:24
Display метод временной таблицы выполняется в компании DAT S.Kuskov DAX: Программирование 4 15.04.2011 20:11
Динамическое связывание временной таблицы Paul_ST DAX: Программирование 8 25.09.2007 16:17

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

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

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