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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.10.2008, 17:20   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Глянул в проект. По-моему всё-таки попахивает UNION, так как:
X++:
qbdCustTransDebit.addRange(fieldnum(CustTrans, AmountCur)).value('>0');

qbdCustTransCredit.addRange(fieldnum(CustTrans, AmountCur)).value('<0');
и RecId, получается, будут разные... Так что, видимо, совет про RecId не очень катит и надо смотреть в сторону LedgerTrans. Вообще, не очень понятен смысл манипуляций. Как можно говорить про Дебит и Кредит, если LedgerTrans нигде не упоминается?
Старый 09.10.2008, 18:04   #2  
breakpoint is offline
breakpoint
Участник
 
77 / 10 (1) +
Регистрация: 05.03.2008
имеется ввиду то что должны МЫ и НАМ, да и неважно как называется на самом деле...
Старый 09.10.2008, 20:11   #3  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Если как Gustav предложил не получиться, можно
1) Добавить на форму третий датасорс.
2) Снять результат с первого и воторого датасорса закинуть во временную таблицу.
В качестве временной таблицы использовать табл переменную CustTrans только перед этим поставить setTmp()
3) Поставить кодом CustTrans.setTmp();
CustTrans.setTmpData(локал перем);
Только редактировать в этой форме ничего не сможем и если кнопки будете на этой форме делать не расчитывайте на recId или см здесь Временная таблица.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 10.10.2008, 08:34   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от miklenew Посмотреть сообщение
2) Снять результат с первого и воторого датасорса закинуть во временную таблицу.
Только не надо забывать - что "закидывание" CustTrans-а во временную табличку конкретно просадит производительность (закидывание будет выполняться долго - например минуты 2-3. Если такое закидывание будет при открытии формы - Вас это устроит?) - причем со временем работы базы - будет все хуже и хуже (записей будет больше).
Вы ж во временную табличку пихаете все записи (а значит их выбираете и вставляете) - а их сколько там? 500 тыс, 1 млн?
А для вывода на экран выбираются только визуально видимые записи+15 вверх+15 вниз записей (точные цифры не помню - может не 15, а 30 - но порядок тот же). Причем - это кол-во не зависит от общего кол-ва записей в таблице.

Так что - лучше в этой задаче не связываться со временными таблицами, а добить выборку из постоянных. Ну или отказаться от реализации задачи в том виде - в котором изначально хотелось.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 10.10.2008 в 08:39.
Старый 10.10.2008, 09:23   #5  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Вы ж во временную табличку пихаете все записи (а значит их выбираете и вставляете) - а их сколько там? 500 тыс, 1 млн?
А для вывода на экран выбираются только визуально видимые записи+15 вверх+15 вниз записей (точные цифры не помню - может не 15, а 30 - но порядок тот же). Причем - это кол-во не зависит от общего кол-ва записей в таблице.
Брать данные с queryRun. И будут браться отфильтрованные.
X++:
void clicked()
{
    QueryRun queryRun;
    Table1   TableLoc;
;
    super();
    queryRun = Table1_ds.queryRun();
    TableLoc = queryRun.getNo(1);
    info(TableLoc.Field1);
    while (queryRun.next())
    {
        TableLoc = queryRun.getNo(1);
        info(TableLoc.Field1);
    }
}
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 10.10.2008, 09:40   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от miklenew Посмотреть сообщение
Брать данные с queryRun. И будут браться отфильтрованные.
Да, но насколько я понимаю - данные хотя и будут отфильтрованы - но все равно (конечно в зависимости от фильтра) - их будет на порядок больше - чем визуально видно на экране - так?
__________________
Возможно сделать все. Вопрос времени
Старый 10.10.2008, 09:49   #7  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Да, но насколько я понимаю - данные хотя и будут отфильтрованы - но все равно (конечно в зависимости от фильтра) - их будет на порядок больше - чем визуально видно на экране - так?
Не уловил. Почему их будет на экране меньше, чем после снятия QueryRun?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 10.10.2008, 15:01   #8  
breakpoint is offline
breakpoint
Участник
 
77 / 10 (1) +
Регистрация: 05.03.2008
Красивое решение нашлось при помощи Views и двух строк кода
Всем спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ax2009 RU4 RHRMOrderTrans_ds.AllowEdit(false) и validationWrite Dimitori DAX: Программирование 2 08.04.2011 11:35
kamalblogs: Creating Edit methods for DS that don’t allow editing in Dynamics ax Blog bot DAX Blogs 8 03.01.2011 10:48
Вопрос по InventJournalTrans_ds.getNext() propeller DAX: Программирование 11 14.02.2009 16:31
использование create() ds sassas DAX: Программирование 5 11.11.2004 15:22
DS по временной таблице странно обновлляется ArturK DAX: Программирование 2 29.07.2004 19:27

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

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

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