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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2020, 09:27   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от oleggy Посмотреть сообщение
Т.к. oprProgressServer (класс SysOperationProgressServer) не имеет наследника SysOperationProgressBase у которого getCount_RU есть.
Я прав? Или для сервера такой функционал тоже нужен - getCount.
я обычно делаю просто getCount без суффикса.
(и вообще считаю, что префиксы-суффиксы - зло. раз, два)

код метода SysOperationProgressServer.getCount
X++:
public int64 getCount(int _idx = 1)
{
    if ( Bypass )
        return 0;


    select ProgressTotal from progress where progress.RecId == progressRecIds[_idx];

    return progress.ProgressCount;

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

выше я говорил, что некоторые на проектах запрещают использовать ProgressBar вообще.
конечно же не для того, чтобы усложить жизнь пользователей
а именно из-за того, что натыкаются на это бутылочное горлышко.
в основном проблема возникает, когда программист отлаживает RunBaseBatch на клиенте с прогрессбаром, а потом этот же класс безо всяких модификаций начинает выполняться в пакетнике.

есть разные подходы для решения проблемы с прогресс-баром на сервере.
что-то сделано и в Аксапте - обратите внимание, как забавно работает процент выполненных работ в пакетных заданиях

Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 49
Размер:	142.6 Кб
ID:	12966

Цитата:
Сообщение от oleggy Посмотреть сообщение
Изменил код с учетом добавленного метода getCount и стало по другому (!):
...
4 шаг не показывает. Похоже тут ничего поделать нельзя.
можно. поставьте update(true) и задержку после цикла, но до выхода из тестового джоба.
просто окно прогресса закрывается раньше, чем пользователь успевает заметить.

Хинт в том, что винда тоже отрисовывает окошки не сразу. Там тоже свой delay есть.


Цитата:
Сообщение от Perc Посмотреть сообщение
Если не получается написать метод который вам посоветовал mazzy в пункте 5, то вам проще что-нить убрать - или setText или полоску движка.
или добавить метод, который обновляет и счетчик, и текст. после чего вызывает update один раз.

Цитата:
Сообщение от Perc Посмотреть сообщение
Я, в случае если хочу в прогрессе уведомить о начале этапа многоэтапной обработки(ну предположим обработка по месяцам) - не стесняюсь, пишу update(true). Если у вас такой же случай, то тоже пишите. А если итераций сотни+, то никто не заметить в движке возможную мелкую несогласованность)
да, или делать multi-прогресс-бар.
см. форму Tutorial_Progress

Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 45
Размер:	97.9 Кб
ID:	12967

Цитата:
Сообщение от oleggy Посмотреть сообщение
Приведите прошу еще код getCount из класса oprProgressServer. Он тоже самописный. Мне интересно.
привел.
чтобы сделать его самостоятельно, посмотрите на серверный setCount
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
How to make your ProgressBar progress on server Blog bot DAX Blogs 0 27.12.2013 02:15
Некорректное отображение прокрутки в lookup random DAX: Программирование 2 15.04.2013 16:55
mazzy: Комфортный ProgressBar в DAX 2009 Blog bot DAX Blogs 5 04.09.2012 16:36
Отображение связи n:n на форме mazzy DAX: Программирование 22 16.03.2011 16:19
mazzy: Комфортный ProgressBar Blog bot DAX Blogs 12 05.02.2009 19:54

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

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

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