Визуализация работы...

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Визуализация работы...

Сообщение DarkAngel27 »

Не кто не знает как можно в интерфейсе сделать визуализацию работы интерфейса в момент создания логической таблицы?
Чтобы было понятно при открытии данных в левом нижнем углу появляется статусная строка с процентнами открытия данных (к примеру при открытии накладных).
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

системная хрень... с прикладухи не кодицца.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

А как можно реализовать что-то подобное?
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

нууу.... берешь пасовские исходники галактики....
... далее - по тексту :D
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

Это я понял... Тогда вопрос №2. Какое событие возникает самым первым, а какое событие последним, перед отображением браузера
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

первое : cmInit
- это когда еще интерфейс не отображается на экране
последнее: cmDone - а это когда ты закрываешь интерфейс любым корректным способом (релоад компа сюда не входит)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

Я имел ввиду сообщение, которое появляется последним не при закрытии интерфейса, а при отображении браузера.
Идея следующая: выводить визуализацию в cmInit, а в другом её стопить. Если конечно это реально...
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

Если процесс длительный сам по себе, то визуалицация через StartNewVisual () ..NextVisual... StopVisual () еще более замедлит процесс инициализации.

Хотя идея здравая, только вот cmInit по сути, насколько я помню РТФМ, - единственное невизуальное событие перед отображением самой главной панели интерфейса, а равно и любого визуального элемента(будь то броуз или скрин), описанного в этой панели или без оной.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

тогда сие должно выглядеть примено так:

cmInit :
{

StartNewVisual ( vt..,vf...,'Title',0 );
// некие манипуляции
nextVisual;
// некие манипуляции
nextVisual;
// некие манипуляции
nextVisual;
// некие манипуляции
StopVisual ('',0);
}
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

Вся проблема в том что StopVisual нужно сделать в другом событии, которое возникает позже... А какое это событие я и хотел узнать
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Re: Визуализация работы...

Сообщение Max_Fin »

DarkAngel27 писал(а):Не кто не знает как можно в интерфейсе сделать визуализацию работы интерфейса в момент создания логической таблицы?
Чтобы было понятно при открытии данных в левом нижнем углу появляется статусная строка с процентнами открытия данных (к примеру при открытии накладных).
Я так понял, что у вас в каком-то объекте интерфейса есть выбор чего-либо, который является корневым для панели броузера и при выборе происходит достаточный период задержки прежде чем произойдет обновление в броузере.
Если так то, возможно, проблема заключается в оптимизации подцепок в главной логической таблице.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

"позже" возникают только визуальные события, т.е. когда Ваш браузер УЖЕ виден.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

TO Max_fin:
А что тут можно оптимизировать? Индекс в MY_TABLE есть такой f1+f2+f3. Было бы быстрее, если бы в фильтре не стояло 2 условия по nrec.
where
((
groupmc.nrec == katmc.cgroupmc
and katmc.nrec == MY_TABLE.f1
and word(Year(cur_date)) == MY_TABLE.f2
and word(Month(cur_date)) == MY_TABLE.f3
))
and katmc.isarch = word(0)
and (groupmc.nrec = comp(281474976710748)
or groupmc.nrec = comp(281474976710688))
order by katmc.name
;
TO Maverick : Спасибо за помощь
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

Поясняю - Макс правильно сказал - логическая таблица - неоптимальная. сильные тормоза возникают из-за использования фильтра на всю выборку.. отсюда и тормоза... визуализация здесь не поможет - необходимо оптимизировать лог.таблу.

для начала, расскажи словами что хочешь отобразить
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Ну вот!

Сообщение Max_Fin »

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

Код: Выделить всё


...
where 
(( 
TmpGrMC.nrec == katmc.cgroupmc 
and word(0) == katmc.isarch(noindex)
and katmc.nrec == MY_TABLE.f1 
and word(Year(cur_date)) == MY_TABLE.f2 
and word(Month(cur_date)) == MY_TABLE.f3 
)) 
order by katmc.name 
; 

...

procedure InsertTmpGr;
{
  TmpGrMC.nRec := GroupMC.nRec;
  TmpGrMC.Name := GroupMC.Name;
  TmpGrMC.Kod := GroupMC.Kod;
  ....
  insert current TmpGrMC;
}
....
HandleEvent
cmInit:
{
  if GetFirst FastFirstRow GroupMC where ((comp(281474976710748) == GroupMC.nRec)) = tsOK InsertTmpGr;
  if GetFirst FastFirstRow GroupMC where ((comp(281474976710688) == GroupMC.nRec)) = tsOK InsertTmpGr;
}
...
end; //HandleEvent
Хотя честно говоря использование реальных компов тоже не правильно, хотя бы по номеру группы лучше бы было позиционироваться
например

Код: Выделить всё

  if GetFirst FastFirstRow GroupMC where ((Word(10) == GroupMC.Kod)) = tsOK InsertTmpGr;
  if GetFirst FastFirstRow GroupMC where ((Word(20) == GroupMC.Kod)) = tsOK InsertTmpGr;
Ответить