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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.06.2007, 17:39   #1  
m_ax is offline
m_ax
Участник
 
4 / 10 (1) +
Регистрация: 18.06.2007
Заполнение DataSource из постоянной и временной таблиц
Всем добрый день!
Подскажите, пожалуйста, можно ли заполнять DataSource сначала на основании постоянной таблицы, а затем на временной? У меня следующая ситуация. Перекрыт метод executeQuery() на этом DataSource, и в зависимости от значения галки заполнение происходит из постоянной таблицы или временной (это та же постоянная таблица, преобразованная во временную). По-умолчанию галки нет.

X++:
if(!ActualDateCheck.value())
    {
        dataSource = this.query().dataSourceNo(1);
        dataSource.clearRanges();
        LanguageRange = dataSource.addRange(fieldnum(my_BankAccounts, LanguageId));
        ArchiveRange  = dataSource.addRange(fieldnum(my_BankAccounts, IsArchive));
        DeleteRange   = dataSource.addRange(fieldnum(my_BankAccounts, IsDelete));
        LanguageRange.Value(queryvalue(my_Languages::Ru));
        ArchiveRange.value(queryvalue(NoYes::No));
        DeleteRange.value(queryvalue(NoYes::No));
    }
    else
    {
        my_BankAccounts.setTmp();
        tmpTable.setTmp();
        my_BankAccounts.setTmpData(tmpTable);
        while select BankId, maxOf(RecId) from bankAccounts_vw group by BankId where
            bankAccounts_vw.createdDate <= ActualDate.dateValue()
        {
            select bankAccounts_Real where bankAccounts_Real.RecId == bankAccounts_vw.RecId;
            my_BankAccounts.data(bankAccounts_Real);
            my_BankAccounts.insert();
        }
    }
    super();
При открытии формы, выполняется первая часть условия. На форме выводятся данные из таблицы в соответствии с заданными Range-ми. Затем мы проставляем галку и вводим дату, в modified() поля даты вызываем executeQuery(), выполняется вторая часть условия. Но данные на форме не меняются.
Подскажите, что нужно сделать, чтобы данные перерисовывались в соответствии со вторым запросом?

Последний раз редактировалось m_ax; 18.06.2007 в 17:42. Причина: Поправил форматирование
Старый 18.06.2007, 23:03   #2  
vladz is offline
vladz
Участник
 
14 / 14 (1) ++
Регистрация: 26.01.2006
Ваш код внутри else с заполнением временной таблицы каждый раз при изменении галки выглядит тяжело.

Одна идея, сделать outer join основной таблицы и предварительно заполненной по Вашему условию временной таблицы. А в зависимости от галки менять только условия выборки из query, показывая строки из той или иной таблицы.

Другая идея, создать идентичные визуальные отображения (гриды и user-контролы со свойством Auto-declaration = YES) для двух разных datasource (на основную и временную таблицу) на той же форме, и как пользователь меняет галку - менять свойство visible соответственной группы контролов.
Старый 21.06.2007, 13:08   #3  
m_ax is offline
m_ax
Участник
 
4 / 10 (1) +
Регистрация: 18.06.2007
Re: Заполнение DataSource из постоянной и временной таблиц
vladz, большое спасибо за ответ!
Учту Ваше замечание по поводу тяжести кода
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
OZKA's DAX Journal: Join между временной и постоянной таблицей через QueryRun. Blog bot DAX Blogs 12 14.01.2009 17:34
Обновление таблицы в DataSource при ее изменении Андре DAX: База знаний и проекты 7 22.04.2008 13:16
Два DataSource на одну временную таблицу mou DAX: Программирование 4 22.03.2008 11:00
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Связи таблиц в datasource отчета Пагер Маяковский DAX: Программирование 1 02.07.2005 09:43

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

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

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