Отправляет email-рассылки с помощью сервиса Sendsay

Navision - советы и секреты

  Все выпуски  

UPDATE в диалогах Navision.


Добрый день!

Сегодня в выпуске маленький полезных трикс, связанный с построением интерфейса в Navision. Итак:

Быстрый UPDATE в диалогах

Одно из железных правил проектирования интерфейсов – пользователь не должен чувствовать себя покинутым. Он может нажать кнопку, подождать 5 секунд (максимум!), но если не видит реакцию системы – начинается паника. Для этих случаев в Navision есть диалоги, спец.окошки для вывода текущего состояния системы. В них можно выводить счетчики, проценты, прогресс-бары – все, что угодно.

Есть одно НО. Dialog.UPDATE работает очень медленно :-) Одна и та же функция с включенным и выключенным диалогом может отличаться по быстродействию в разы, особенно если нужно обрабатывать тысячи или десятки тысяч операций.

Есть ли золотая середина? Да, конечно :)
Для пользователя будет достаточным, если обновлять окошко диалога хотя бы раз в секунду. А мы сохраним при этом быстродействие:

intCurrent := 0;
intTotal := 1000000;
d.OPEN('@1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\', intProgress);
timeProgress := TIME;

REPEAT
  // Прогресс-бар
  intCurrent += 1;
  IF timeProgress < TIME - 1000 THEN BEGIN // Отрабатываем каждую секунду
    timeProgress := TIME;
    intProgress := ROUND(intCurrent / intTotal * 10000, 1);
    d.UPDATE;
  END;
  // Еще какая-то обработка
UNTIL intCurrent = intTotal;
Кстати, переменную Dialog лучше объявлять локальной (если возможно). Иначе, при возникновении ошибки – а у кого их не бывает – диалог останется висеть на экране.

И напоследок :-) Спрашивают буквально следующее:

 «У меня форма с главным меню (или диалогом выбора базы, или еще чем-нибудь) уехала за экран, и я не могу ее оттуда достать. Что мне делать???»
Некоторые советуют удалять FIN.ZUP, но это не наш метод. Надо всего лишь нажать волшебную комбинацию Alt + "-" (минус!), и на экране появится меню дочернего окна. Выбираете в нем опцию «Переместить» и гоните его стрелками, куда душе угодно.
Для родительского окна – комбинация Alt+ПРОБЕЛ.

На сегодня все. До свидания :-)


P.S. Хотите поделиться своими знаниями? Всегда Welcome! Любые статьи, Q & A, FAQ, советы - все опубликуем, обязательно укажем автора и дадим линк на сайт :-)

С наилучшими пожеланиями,
Андрей Стрельников.

Группа «Технологии как Искусство».
Разработки в сфере Navision. Скоростные оптимизации, системная интеграция.
e-mail: mailbox@naviart.ru
www: http://naviart.ru

-------
Что такое главное?


В избранное