"Залипание" Галактики

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

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

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

"Залипание" Галактики

Сообщение Maverick »

Коллеги, приветствую.
Обнаружил следующую проблемку с клиентским приложением Галактики, которую не знаю как побороть. В принципе она не сильно критично, но слишком напрягает, мешает и сбивает с толку. Возможно проблема не разрабовская, а админская, но решил все-таки запостить сюда.
Суть вот в чем.
1) Установлена Галактика 9.1 2х-звенка. С БД Pervasive SQL. Атлантис 5.5.21. Установлена Галка вручную (копированием EXE, настройкой путей вручную, ручной регистрацией компонент и т.п.). Ну в принципе, что есть - то есть, от этого никуда не деться: клиент работал самостоятельно.
2) Разработаны под нее ряд интерфейсов с выгрузкой в Excel определенных данных. Часть интерфейсов - запускается через присоединенки, часть - самостоятельные интерфейсы, запускаемые из Отчетов пользователя.

Так вот имеются две проблемы
Проблема РАЗ.
Сама Галактика при запуске "залипает" и всегда находится на первом плане на рабочем столе, переключение на другие приложения возможно, но они всегда находятся ПОД Галактикой. Доступ к приложению по сути можно получить только свернув Галактику.
Проблема ДВА
Разработанные интерфейсы имеют визуализацию длительных процессов (на момент поячеечной загрузки данных в Excel). В момент, когда в интерфейсе выбраны все нужные параметры, и происходит запуск собственно выгрузки с визуализацией отработки, происходит сначала "подвисание" Галки, а затем (убедился опытным путем) визуализация запускается, НО - ПОД главным окном Галактики. По сути пользователь видит "подвисшую" Галактику, не подозревая о том, что идут процессы формирования Excel-файлов. А они длительные - до 30-40 мин на формирование уходит.
С этим приходится бороться, уменьшив главное окно галки вполовину по ширине, чтобы хоть как-то видеть, что процесс не завис, а идет.
При этом попытки вывода мессаг внутри визуализации отрабатывают нормально - видны, как и нужно, на переднем плане.
Кстати, когда процесс отрабатывет и файл сформирован - Эксель загружается, но тоже "под" окном Галактики (см. первую проблему).

Если кто подскажет, как побороть, в первую очередь, ВТОРУЮ проблему - буду премного благодарен. К тому же чувствую что описанные 1 и 2 проблемки каким-то образом взаимосвязаны
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: "Залипание" Галактики

Сообщение edward_K »

1.Стартовое окно можно как то погасить в cfg. сам не делал, но наблюдал 2 варианта запуска - в одном после запуска галка пропадает до тех пор пока окно с паролем не появиться, в другом(там NT авторизация) появляется окно с заставкой и там отображаются все процессы, в том числе и по загрузке сохраненных интерфейсов. Хотя может дело в серверах
Как правило долгий запуск говорит о проблеме с ключем или с СУБД или там и там. Smb2 то вырублен? Эта рекомендация есть в доке.
2. LogStrToFile вам в помощь. С выводом даты и времени

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

var 
    TimeLog_File:string;
    TimeLog_Time:time;
Procedure TimeLog( const wStr :string ) ;
{ 
  if TimeLog_File=''
  { TimeLog_File:=GetStringParameter('Files','OutputFilesDirectory',0)
                               +'!TimeLog.log'
 
  }
  if(wStr='START' and FileExist(TimeLog_File)) DeleteFile(TimeLog_File)
  LogStrTofile(TimeLog_File,DateToStr(Cur_Date,'дата DD/MM/YYYY')+
                                   TimeToStr(Cur_Time,' тек.вр HH:MM:SS:SSS')+
                                   TimeToStr(sub_time(Cur_Time,TimeLog_Time),' - пред.этап =  HH:MM:SS:SSS')+
                                   ' '+wStr) ;
  TimeLog_Time:=Cur_Time ;
}
Очень часто проблемы возникают еще до срабатывания cmInit - это говорит либо о долгой загрузке переменных объектов, объявленных не через ObjInterface(но лучше использовать так , а не через LoadInterFace- все равно время потеряете, но потом) - возможно от каких то следует отказаться.
либо о кривом запросе - очень долго подбирает данные. Не хорошо юзать жесткие подцепки и подусловия на уровнях ниже 2(с потолка, но сталкивался что на 3 все виснет) - лучше потом в цикле это отработать. Condition это вообще зло - лучше прописать условие в (( .. and () )). Опять же следует избегать таблиц без подцепок или большого их числа - лучше написать объекты или сделать еще несколько вьюх(вроде они не будут грузиться, пока к ним не обратитесь). Сложные вычисления лучше кэшировать(мне не лень подкэшировать и обращение к справочникам во временную таблицу)
А еще лучше собрать на DSQL.
Насчет Excel - а стандартные отчеты также себя ведут или нет?
Если нет, значит вы чего то не так запускается - чем вы Excel открываете?
Я предпочитаю XlRes := xlCreateNewExcelWithTemplate(wstr, True);
У меня написан свой набор функций, так что изменить одно на другое не долго сразу для всех отчетов.

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

Re: "Залипание" Галактики

Сообщение Maverick »

Эдуард, спасибо за комменты
Теперь по порядку

1. Длительность отработки - не критичный параметр абсолютно, но я абсолютно уверен в том ,что связан в первую очередь с тем, что
- для 9.1 используется Pervasive SQL, а сам объем данных достаточно большой (специально делал клон базы с конвертацией на MS SQL - тестил свои отчеты - все выполняется в 5-10 раз быстрее)
- используеся не матричный, а поячеечный вывод (но не критично, т.к. тестил с матричным, видимого прироста в скорости не получил)
- в логической таблице интерфейса явно не прописывал, т.к. максимум что юзается - 2-3 временных таблицы, куда складываю данные + 3-4 справочника (физ.таблы), на записи которых просто через GetFirstFastRow прыгаю. Conditions не юзаю, хватает Bounds. Для открытия юзаю xlOpenWorkBook (sFileName) где sFileName - предварительно подготвленнный файл с шапкой (естественно копия, перед открытием он копируется в рабочий каталог из EXE\XLS).

2. Повторюсь, что главная проблема - это то, что визуализация происходит ПОД основным окном Галки, а сама Галка - всегда alwaysOnTop, основное окно - всегда в фокусе ((( и переключиться на визуализацию возможно только если Галка занимает часть окна и хоть кусок визуализационного окна виден и на него можно просто мышью кликнуть и вытащить на свободное место...

Дополнительно по ОС, на которой стоит Галка:
- работаю с ноута через TeamViewer c тестовой галкой, установленной на машинке с Windows Server 2008 R2 Ent SP1, 64-разрядная, 64 ГБ оперативы. Естественно сама галка и БД - физически лежат в одном месте.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: "Залипание" Галактики

Сообщение edward_K »

1. у первасива есть неприятность, когда файлы разбиваются на несколько кусков после 2 гигов и после этого начинаются тормоза. Начиная с 9.5 сие можно отключить, но аккуратно. Скорей всего придется все выгрузить в dbf, грохнуть таблицы, переключить настройки и загрузить обратно. И вроде у него есть свой конвертор - давно уже не юзаю
2. Там не менее когда то была базка в 25 гигов, и она более менее крутилась.
3. Попробуйте все таки xlCreateNewExcelWithTemplate или xlOpenNewExcel(True) + xlOpenWorkBook(wstr) - в отличии от той, создается новый экземпляр Excel и в уже открытых файлах можно продолжать работать.
4. Getfirst не самый быстрый путь. Иногда шустрее сразу набить времянку без фильтров - получается раза в 2 быстрее. И все таблы должны все таки быть с условиями во view. Была как то мелочь -убрал неипользуемый синоним StErr(а там записей пара лимонов) и фейс стал грузиться вместо 2 минут минуту(ну там еще выборка по дереву шла). Еще была история про подвисание актов - оказалось на локал выгружался весь TTNDOC - так что не пренебрегайте сим.
5. Матричный вывод дает ускорение раз в 100, при условии что не юзается сложного форматирования
6. И все таки Logstrtofile 8) - см. мою функцию.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: "Залипание" Галактики

Сообщение Maverick »

1. Собственно, заморачиваться с конвертацией БД смысла нет - клиент с Галки уходит на 1С, посему все мои интерфейсы - экспорт данных, которые будут юзать внедренцы 1С при выгрузке данных.
2. С точки зрения скорости - процесс некритичен - работает и нехай работает ;-) Заказчика это устраивает. Хотя к сведению принял советы и по Экселю и по логическим таблицам.
3. Проблема с "залипнувшей" Галкой так и не решилась. Кстати стандартные ёкселевские отчеты также выполняются с визуализацией под главным окном галки... неприятно весьма... пока как временное решение, перед собственно запуском процесса, который выгружает данные, уменьшаю размер главного окна раза в 3 и утаскиваю в правыую или левую сторону, дабы когда окно визуализации появится, его можно было вытащить на свободное место :-) Изврат конечно, но решения я пока не вижу... )))
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Мария_Ф
Местный житель
Сообщения: 1044
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Иркутская область

Re: "Залипание" Галактики

Сообщение Мария_Ф »

А "залипание" на любом компе происходит? Может кто-то побаловался и установил такую программку?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: "Залипание" Галактики

Сообщение edward_K »

Поиграйтесь с
System.VisualType
Windows.FastVisual - вроде было нечто подобное на 712 - пришлось в False поставить.
И ниже от VisualBarLength
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: "Залипание" Галактики

Сообщение Maverick »

2 Мария
Протестить на других компах пока возможности нет - я удаленно разрабатываю, доступ к Галке имею только через TeamVewer. Грешил сначала на него, но другие приложения из-под него работают штатно, даже Support - нормально уходят в фон и на другой уровень...
Как передам разработку внедренцам - они уже непосредственно с рабочих мест и понаблюдают.
Шаловливых программок никаких не стоит
2 Эдуард
Игрался этими параметрами. Не помогло. Они отвечают как раз за саму визуализацию - отображать ее вообще или нет, устанавливают на уровне ядра шаг перерисовки и т.п.
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
LaaLaa

Re: "Залипание" Галактики

Сообщение LaaLaa »

В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: "Залипание" Галактики

Сообщение Maverick »

LaaLaa писал(а):В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
Миш, пробовал - это первым делом поюзал ))).
Ситуация одинакова что с включенным, что с выключенным пунктом - единственное отличие, что сам тулбар ведет себя либо "всегда в фокусе", либо как обычно - уходит на задний план при перекрытии окном др. приложения
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
sth73
Постоянный гость
Сообщения: 52
Зарегистрирован: 29 ноя 2005, 19:47

Re: "Залипание" Галактики

Сообщение sth73 »

регулярно наблюдаю аналогичное поведение визуализации в support'е при расчете прав пользователя. Проявляется не всегда, а примерно в 70% случаев. Не смог понять от чего это зависит. Есть смутное подозрение (но не уверенность), что такая беда с визуализацией появилась после перехода на 5.5.21, на 5.5.20 не припоминаю ничего такого.
субд оракл, win7 x64.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: "Залипание" Галактики

Сообщение Maverick »

Ну у меня саппорт себя нормально ведет, правда там стоит 5.5.14 или 17 (точно не помню), но точно не 21. А в Галке часть компонент точно собрана на 5.5.21 и как раз у Галки проблемка с визуализацие и проявляется...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
LaaLaa

Re: "Залипание" Галактики

Сообщение LaaLaa »

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

Re: "Залипание" Галактики

Сообщение Maverick »

LaaLaa писал(а):
Да не в том тулбаре. Не тот который с кнопками модулей. А тот который в сновном окне галакьтики. Там правой копкой мышки есть пункт " По верх всех окон"
Оппа... "а слона то я и не заметил". Честно говоря, даже не знал что и там такая кнопа есть... Как-то не обращал внимания на это...
Миш, спасибо, попробую завтра с утреца поюзать ее...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: "Залипание" Галактики

Сообщение Алексей »

LaaLaa писал(а):В тулбаре галактики нажать правой кнопкой мышки и выключить пунк "По верх всех окон"
Проверял этот параметр - выключен.

Тоже очень часто Галактика после запуска решает что она "главная" и выскакивает поверх остальных окон. Как это отключить, не знаем.

Второй вопрос: в сформированном отчёте FastReport жмём контрл Ф - вводим строчку - ничего не находим и окно, с сообщением что "Текст не найден" наоборот не появляется посреди экрана... хотя внизу в линейке задач вижу, что окно есть, жму мышкой - вот оно. При чём иногда окно появляется как надо, сразу сверху! Закономерности поведения так и не выяснили, что дико раздражает, особенно если пользователи в Терминальных режимах работают... некоторые на перезагрузку уходят, т.к. не могут найти это окно :)
Ответить