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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.07.2007, 10:53   #1  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Количество строк на форме
День добрый. Вопрос от новичка: как узнать сколько строк в данный момент отображается на форме? или как сделать столбец "номер строки"?
Старый 25.07.2007, 10:56   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Можно попробовать вот так:
X++:
SysQuery::countTotal(<dataSourceName>_qr);
Старый 25.07.2007, 11:17   #3  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
А можно немного поподробнее, я же говорю - новичок.
Старый 25.07.2007, 11:23   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
К примеру, если Вы работаете с формой InventTable, то источник (первый) называется InventTable

тогда количество строк, которые отображаются в каждый момент времени, можно посмотреть так: (код этот можно добавить на кнопку какую-то, к примеру - метод clicked)
X++:
box::info(int2str(SysQuery::countTotal(InventTable_ds.queryRun());
Также посмотрите вот эту ссылку
Старый 25.07.2007, 11:43   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от greench Посмотреть сообщение
День добрый. Вопрос от новичка: как узнать сколько строк в данный момент отображается на форме? или как сделать столбец "номер строки"?
Вопрос гораздо сложнее, чем вам кажется.
Для отображения в форме Аксапта НЕ читает ВСЕ записи. Она читает только те, что помещаются в буфер. При необходимости читает дополнительные. Это происходит автоматически.

Поэтому есть два ответа:
1. если под "отображается на форме" вы имеете в виду сколько строк загружено в буфер Аксапты, то надо рыть куда-то в низкоуровневое кодирование.
2. если под "отображается на форме" вы имеете в виду сколько строк в таблице, то можно сделать как говорит kashperuk, а можно и по-другому. Но в любом случае это будет дополнительный и достаточно тяжелый запрос, который значительно снизит производительность системы.

Чтобы "сделать столбец номер строки" вы должны ответить для себя на несколько вопросов:
1. какие номера будут отображаться, если на записи наложить фильтр? Номера должны остаться такими же, как и до фильтрации или изменятся?
2. что будет происходить с номерами если изменить сортировку? (чтобы изменить сортировку, нажмите на любой заголовок столбца)
3. что будет происходить с номерами, если в середину будет вставлена запись? а при другой сортировке/фильтре?
4. Что будет происходить с номерами, если в середине запись будет удалена?

Представьте, что у вас нет Аксапты. Есть только бумага и карандаш.
Как только вы найдете ответ на бумаге, сразу станет ясно, что надо делать в Аксапте

Цитата:
Сообщение от kashperuk Посмотреть сообщение
Можно попробовать вот так:
X++:
SysQuery::countTotal(<dataSourceName>_qr);
Попробовать то можно.
Только он насмерть забьет этими запросами систему.
Может не стоит советовать такие вещи новичкам?
Или хотя бы объяснять к чему это приведет.
__________________
полезное на axForum, github, vk, coub.
Старый 25.07.2007, 11:46   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да не очень уж он и тяжеловесный, разве что если его на ну очень большие таблицы применять.

там же если один источник, вызвыается CountPrim, насколько я помню, а в нем делается count(recId) - а это довольно легкий запрос.
Старый 25.07.2007, 11:50   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
очень большие таблицы применять.
там же если один источник
count(recId)
1. Почему ты решил, что у человека маленькая таблица?
2. Почему ты решил, что у человека один источник?
3. Почему ты решил, что у человека версионник? Вдруг у него какой-нибудь SQL2000 с блокировками на чтение?

И обрати внимание, в конечном итоге человек хотел сделать нумерацию строк.
__________________
полезное на axForum, github, vk, coub.
Старый 25.07.2007, 12:00   #8  
greench is offline
greench
Участник
Oracle
 
425 / 74 (3) ++++
Регистрация: 12.07.2007
Адрес: Киев
Спасибо за ответ. Подошел вариант с countLoops, так как к таблице джойнится еще одна. TotalCount выдавал отрицательный результат.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Количество строк в Query Владимир Максимов DAX: Программирование 19 11.08.2014 18:27
Как не выводить заголовки в форме, если нет строк? DreamCreator DAX: Программирование 9 29.05.2008 15:10
Предельное количество строк в Report Владимир Максимов DAX: Программирование 1 22.12.2005 15:02
Количество строк на страницу Berkoff DAX: Программирование 2 26.10.2004 10:30
Как подсчитать количество строк в отчете ATimTim DAX: Программирование 2 21.09.2004 13:44

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:19.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.