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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.05.2006, 12:22   #1  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
проблема с SysOperationProgress::newMultiBar
Получилось ли у кого нибудь побороть проблему с SysOperationProgress::newMultiBar. Для тех кто не знает в чем дело рассказываю: при создании окна прогресса с 2 или больше строчками окно в процентах 90 случаев отображается с одним контролом progressbar
Старый 31.05.2006, 12:31   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Все нормально отображается. Просто для того, чтобы отобразился ProgressBar необходимо указать итоговое значение конца прогресса ДО открытия самого ProgressBar. Т.е. задать SetTotal() ДО вызова update() прямо или косвенно через setInc() или setCount()

Вот пример, написанный в AXAPTA 2.5

Чтобы процесс был виден поставил задержку sleep(1)

PHP код:
#AviFiles
static void MVB_SysOperationProgress(Args _args)
{

    
SysOperationProgress    operationProgress;

    
str             stringSQL;
    
int             ijprogressTotalprogressTotal0;

    ;

    
operationProgress = new SysOperationProgress(2);
    
operationProgress.setCaption("Тест");
    
operationProgress.setAnimation(#AviTransfer);

    
operationProgress.setText("Расчет общего количества строк",1);
    
operationProgress.update();

    
progressTotal0 10;
    
operationProgress.setTotal(progressTotal0,1);
    
progressTotal 1000;
    
operationProgress.setTotal(progressTotal,2);
//    operationProgress.update(true);

    
operationProgress.setCaption("Пример в нескольки линеек");
    
operationProgress.setText("Подготовка к расчету...");
    
operationProgress.update(true);

    for (
j=1j<=progressTotal0;j++)
    {
        
operationProgress.setText(strfmt("Всего строк %1. Осталось %2"progressTotal0progressTotal0-j),1);
        
operationProgress.setCount(j,1);
        for (
i=1;i<=progressTotal;i++)
        {
            
operationProgress.setText(strfmt("Всего строк %1. Осталось %2"progressTotalprogressTotal-i),2);
            
operationProgress.setCount(i,2);
            
sleep(1);
        }
    }

    
operationProgress.kill();


Старый 31.05.2006, 12:59   #3  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Цитата:
Сообщение от Владимир Максимов
Все нормально отображается. Просто для того, чтобы отобразился ProgressBar необходимо указать итоговое значение конца прогресса ДО открытия самого ProgressBar. Т.е. задать SetTotal() ДО вызова update() прямо или косвенно через setInc() или setCount()

Вот пример, написанный в AXAPTA 2.5

Чтобы процесс был виден поставил задержку sleep(1)

PHP код:
#AviFiles
static void MVB_SysOperationProgress(Args _args)
{

    
SysOperationProgress    operationProgress;

    
str             stringSQL;
    
int             ijprogressTotalprogressTotal0;

    ;

    
operationProgress = new SysOperationProgress(2);
    
operationProgress.setCaption("Тест");
    
operationProgress.setAnimation(#AviTransfer);

    
operationProgress.setText("Расчет общего количества строк",1);
    
operationProgress.update();

    
progressTotal0 10;
    
operationProgress.setTotal(progressTotal0,1);
    
progressTotal 1000;
    
operationProgress.setTotal(progressTotal,2);
//    operationProgress.update(true);

    
operationProgress.setCaption("Пример в нескольки линеек");
    
operationProgress.setText("Подготовка к расчету...");
    
operationProgress.update(true);

    for (
j=1j<=progressTotal0;j++)
    {
        
operationProgress.setText(strfmt("Всего строк %1. Осталось %2"progressTotal0progressTotal0-j),1);
        
operationProgress.setCount(j,1);
        for (
i=1;i<=progressTotal;i++)
        {
            
operationProgress.setText(strfmt("Всего строк %1. Осталось %2"progressTotalprogressTotal-i),2);
            
operationProgress.setCount(i,2);
            
sleep(1);
        }
    }

    
operationProgress.kill();


этот код в третьей версии вообче создает окошко без прогресс баров
Старый 31.05.2006, 13:19   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Уберите первый update()
__________________
Axapta v.3.0 sp5 kr2
Старый 31.05.2006, 14:02   #5  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
Все равно какойто процент запуской формы остается без второго прогрессбара...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
Проблема с инициализацией экземпляра объекта Jox DAX: Программирование 2 11.01.2006 12:55
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20
Проблема с Х++, глазами Ява-девелопера blacky DAX: Программирование 3 26.11.2002 11:50
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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