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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2006, 08:58   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Пример перебора выделенных записей:

PHP код:
void clicked()
{
    
dem_t1  t;
    ;
    print 
dem_t1_ds.anyMarked();
    
dem_t1_ds.getFirst(1);
    print 
t.id;

    while (
t)
    {
       
dem_t1_ds.getNext();
       print 
t.id;
    }
    
pause;


У самого Grid’а и у всех конролов, которые хотят оставаться доступными при множественном выборе, необходимо установить свойство MultiSelect = true.

На форме грид и кнопка. Выбираем на гриде несколько строк и жмем на кнопку. Единичка в GetFirst как раз и заставляет брать выделенные записи.


Под свой случай думаю подгоните.
За это сообщение автора поблагодарили: Hans (1).
Старый 23.06.2006, 09:20   #2  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Дело в том, что мне нужно получить количество записей не по кнопке. Каждый раз при выборе очередной записи внизу формы должен изменяться текст. Пробовала перекрыть active(), leave() источника данных формы (в нем писала примерно такой код как был приведен выше), но форма начинает подвисать и не позволяет маркировать записи вообще.
Старый 23.06.2006, 10:31   #3  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от Mila
Дело в том, что мне нужно получить количество записей не по кнопке. Каждый раз при выборе очередной записи внизу формы должен изменяться текст. Пробовала перекрыть active(), leave() источника данных формы (в нем писала примерно такой код как был приведен выше), но форма начинает подвисать и не позволяет маркировать записи вообще.
Для подсчета я так понимаю вы перебираете записи на форме- понятно, что начинаются проблемы - попробуйте сделать копию активного query и использовать ее, примерно так

// Выводит итоговую сумму в форме - только по выделенным записям
display AmountCur totalSettleAmountCurPaymentJour()
{
VendInvoice4PaymJour_RU inv4PaymJour;
AmountCur totalAmountCur;
Query query;
QueryRun queryRun;
;

query = new Query(Invoice4PaymJour_ds.queryRun().query() ? Invoice4PaymJour_ds.queryRun().query() : Invoice4PaymJour_ds.query());

queryRun = new QueryRun(query);

while(queryRun.next())
{
inv4PaymJour = queryRun.get(tablenum(VendInvoice4PaymJour_RU));
totalAmountCur += this.SettleAmountCurPaymentJour(inv4PaymJour);
}
return totalAmountCur;
}

PS - точнее - выводит только отфильтрованные записи - можно сократить постановку задачи до такого допущения - как именно выделенные посчитать - вопрос..

Последний раз редактировалось MironovI; 23.06.2006 в 10:42.
Старый 23.06.2006, 10:39   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от MironovI
попробуйте сделать копию активного query и использовать ее
Тоже подход.

Только используйте ее на серверной стороне, а не на клиенте.
И ни в коем случае не вставляйте эту конструкцию в display-метод
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2006, 10:50   #5  
MironovI is offline
MironovI
Участник
 
724 / 77 (4) ++++
Регистрация: 30.05.2005
Цитата:
Сообщение от mazzy
Тоже подход.

Только используйте ее на серверной стороне, а не на клиенте.
И ни в коем случае не вставляйте эту конструкцию в display-метод
Да, немного неоптимизировано - саму выборку можно кинуть в статический серверный метод, а вызов - в ExecuteQuery основного датасорса.
Старый 23.06.2006, 10:54   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от MironovI
а вызов - в ExecuteQuery основного датасорса.
Почему только executeQuery?

Попробуйте представить возможные ситуации.
Еще может быть незаписанный record...
Еще может быть измененный другим пользователем record...
А еще может быть измененная другим приложением запись на уровне СУБД...

Вы никогда не задумывались о том, что журналы ГК - единственное место, где видны итоги по строчкам, а также единственное место, где запрещен повторный вход в журнал?...
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Странное количество в строке журнала инвентаризации pitersky DAX: Функционал 7 16.01.2009 16:46
как отдельно учитывать фактическое и финансовое количество? romulis DAX: Функционал 4 08.02.2007 15:01
Количество вакансий в штатном расписании. NJD DAX: Функционал 3 20.09.2006 15:48
Нужно подсчитать количество записей во всех таблицах Аксапты? Hidden DAX: Программирование 7 11.11.2005 15:20
Закупка. Количество введенное в таблицу PurchLine не отображается в накладной ATimTim DAX: Программирование 15 21.06.2004 10:11

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

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

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