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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.10.2010, 18:45   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Почему в отчетах не делают progress bar-ов?
В AOT-е только 3 стандартных отчета, использующих progress bar(ax2009). Почему в отчетах не делают progress bar-ов? Предполагается, что вся логика выполняется в классе, где собственно и должен быть градусник, а отчет сам по себе быстро выводит данные, поэтому progress тут не нужен?(хотя, это далеко не всегда так)

Последний раз редактировалось IKA; 21.10.2010 в 18:59.
Старый 21.10.2010, 20:07   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Потому что для ускорения (?) ядро AX не делает запроса на число записей перед тем, как начать выводить их на экран.
Старый 21.10.2010, 21:21   #3  
ddadream is offline
ddadream
Участник
Аватар для ddadream
 
130 / 17 (1) ++
Регистрация: 30.11.2001
Адрес: moscow
Если логика в классах, то все немного сложнее чем озвучено выше.
Старый 22.10.2010, 13:07   #4  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от IKA Посмотреть сообщение
В AOT-е только 3 стандартных отчета, использующих progress bar(ax2009). Почему в отчетах не делают progress bar-ов? Предполагается, что вся логика выполняется в классе, где собственно и должен быть градусник, а отчет сам по себе быстро выводит данные, поэтому progress тут не нужен?(хотя, это далеко не всегда так)
Мне кажется тут все дело в архитектуре: чтобы создать программную обработку для Report нужно создать класс-наследник от RunBaseReport, который наследник RunBaseBatch'а:
X++:
public abstract class RunBaseReport extends RunBaseBatch
{
    SysReportRun        reportRun;
    SysQueryRun         queryRun;
    Args                callerArgs;
    ...
}
RunBaseBatch наследник от RunBase:
X++:
public abstract class RunBaseBatch extends RunBase implements Batchable
а у RunBase в classDeclaration уже есть progress:
X++:
public abstract class Runbase extends Object implements SysSaveable, SysRunable
{
    boolean                 getLastCalled;
    boolean                 inGetSaveLast;
    boolean                 inCheckClose;
    boolean                 inPrompt;
    boolean                 isSwappedFromServer;
    boolean                 dialogCanceled;
    boolean                 inPromptUnpack;

    RunBaseDialogModify     dialogModify;
    RunbaseProgress         progress;

    SysSign                 sysSign;

    #macrolib.AviFiles

#if.never
    #define.CurrentVersion(1)
    #define.version1(1)
    #localmacro.CurrentList
    #endmacro
#endif
}
Наверно разработчики стремятся не создавать каждый раз новый progressBar и новый код для него, а стремятся использовать тот, который уже есть в RunBase. Если я правильно понимаю, его неудобно вызывать из самого Report'а, поэтому его вызывают из классов Если я не прав - поправьте меня, я могу заблуждаться, но мне кажется все дело именно в этом
Старый 22.10.2010, 13:16   #5  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Дело в архитектуре, Вы правы. Пусть АОС шуршит с данными, а на клиента передаются результаты. Не думаю, что стоит добавлять синхронизацию этих процессов, чтобы побыстрее у АОСа запросить "ну что там, скоро еще"?

Хотя, если отчет на клиенте, это приемлемо... Не сильно затормозит создание отчета.

С Уважением,
Георгий
За это сообщение автора поблагодарили: kornix (1).
Старый 22.10.2010, 13:17   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL Посмотреть сообщение
Потому что для ускорения (?) ядро AX не делает запроса на число записей перед тем, как начать выводить их на экран.
готов согласиться с EVGL...
нет не только прогресс-бара, нет и общего числа страниц. (в отчете нельзя вывести "2 страница, всего 32").

отчеты - сложная штука.
и запросы внутри могут быть очень сложными и вариативными.
запрос общего числа страниц (записей) перед тем, как выводить - может привести к серьезным тормозам.

Если обратите внимание, то отчет начинает показываться пользователю сразу как построена страница. не дожидаясь завершения.

сравните с той же 1С, где перед показом отчета пользователю, платформа что-то делает внутри себя... и только после завершения генерации показывает страницы отчета.
__________________
полезное на axForum, github, vk, coub.
Старый 22.10.2010, 13:42   #7  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от mazzy Посмотреть сообщение
нет не только прогресс-бара, нет и общего числа страниц. (в отчете нельзя вывести "2 страница, всего 32").
Справедливости ради. Для отображения количества страниц можно использовать встроенный display-метод pagesTotal(). Оговорюсь только, что посчитать количество страниц заранее (до отображения отчёта на экране) с помощью него действительно нельзя. Видимо, также для повышения производительности.
Старый 22.10.2010, 14:16   #8  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Видимо, также для повышения производительности.
Не совсем. Подсчитать кол-во выводимых строчек - не сложно. А вот как они будут выведены на экран, с автораспределением по ширине (и высоте) - это другой вопрос.

С Уважением,
Георгий
Старый 22.10.2010, 14:25   #9  
PavelX is offline
PavelX
MCTS
MCBMSS
 
46 / 97 (4) ++++
Регистрация: 08.09.2006
Адрес: Красноярск
Цитата:
Сообщение от mazzy Посмотреть сообщение
Если обратите внимание, то отчет начинает показываться пользователю сразу как построена страница. не дожидаясь завершения.
К сожалению по всей видимости так было только до АХ2009 (о которой говорит автор). В 2009 отчет целиком сперва строится а потом по вызову метода print() выводится на экран или принтер... И на момент отображения число страниц уже известно.

Например отчет CustTransList (Customer transactions) в AX2009 строится секунд 30 на демо данных пока не отобразится на экране, зато отобразившись он сразу позволяет перейти на последнюю 195-ю страницу.

Последний раз редактировалось PavelX; 22.10.2010 в 14:28. Причина: добавил пример
За это сообщение автора поблагодарили: mazzy (10).
Старый 22.10.2010, 14:27   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от PavelX Посмотреть сообщение
К сожалению по всей видимости так было только до АХ2009 (о которой говорит автор). В 2009 отчет целиком сперва строится а потом по вызову метода print() выводится на экран или принтер... И на момент отображения число страниц уже известно.
о, блин... точно!
испортили Аксапточку...

тогда Progress Bar нужен.
__________________
полезное на axForum, github, vk, coub.
Старый 22.10.2010, 15:12   #11  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Progress Bug...
Старый 22.10.2010, 16:06   #12  
AX2011
Гость
 
n/a
Цитата:
Сообщение от mazzy Посмотреть сообщение
о, блин... точно!
испортили Аксапточку...

тогда Progress Bar нужен.
хочу напомнить, что в версии AX2011 больше нет встроенных отчетов (все отчеты только через Reporting services)
так что глядите вперед и не тратьте много время на архаизмы
За это сообщение автора поблагодарили: mazzy (2).
Старый 22.10.2010, 16:19   #13  
Bober is offline
Bober
Участник
 
311 / 104 (4) +++++
Регистрация: 29.05.2007
Цитата:
Сообщение от AX2011 Посмотреть сообщение
так что глядите вперед и не тратьте много время на архаизмы
Это вы кому адресуете? Вот я клиент. У меня DAX 4.0. Сильно модифицированная система (потому что в стандартной системе по этому виду бизнеса ни черта не сделано). По этой причине в ближайшие годы менять версию системы не планируется. Вы мне тоже советуете на тратить время на архаизмы (то есть на мою систему) ? В чем конкретно состоит ваш совет - менять отлаженную 4.0 на непонятно как работающую 2011 ? или в чем?
Старый 22.10.2010, 16:20   #14  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от AX2011 Посмотреть сообщение
хочу напомнить, что в версии AX2011 больше нет встроенных отчетов (все отчеты только через Reporting services)
так что глядите вперед и не тратьте много время на архаизмы
Вообще нет?
Старый 22.10.2010, 16:25   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AX2011 Посмотреть сообщение
хочу напомнить, что в версии AX2011 больше нет встроенных отчетов (все отчеты только через Reporting services)
так что глядите вперед и не тратьте много время на архаизмы
но там и прогресс-бара нет.
только бесконечный индикатор (аналог StartLengthlyOperation)
__________________
полезное на axForum, github, vk, coub.
Старый 22.10.2010, 16:37   #16  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Lemming Посмотреть сообщение
Вообще нет?
Дык это...
в следующей версии, "6.0" (или 201Х) т.н. "страндартных" отчетов не будет. ВСЕ отчеты будут построены на RS
За это сообщение автора поблагодарили: Lemming (1).
Старый 22.10.2010, 16:45   #17  
AX2011
Гость
 
n/a
Цитата:
Сообщение от Bober Посмотреть сообщение
Это вы кому адресуете? Вот я клиент. У меня DAX 4.0. Сильно модифицированная система (потому что в стандартной системе по этому виду бизнеса ни черта не сделано). По этой причине в ближайшие годы менять версию системы не планируется. Вы мне тоже советуете на тратить время на архаизмы (то есть на мою систему) ? В чем конкретно состоит ваш совет - менять отлаженную 4.0 на непонятно как работающую 2011 ? или в чем?
Вы не заметили ключевого слова "много"
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Batch tasks show no operation progress Blog bot DAX Blogs 0 22.09.2010 23:05
axaptapedia: Progress Bar Blog bot DAX Blogs 0 21.07.2008 03:39
axaptapedia: Progress Bar Blog bot DAX Blogs 0 27.06.2008 11:05
axaptapedia: Configuration in title bar Blog bot DAX Blogs 1 08.03.2007 19:57
Как правильно работать с Progress bar? malex DAX: Программирование 2 19.09.2004 23:23

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

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

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