Страница 1 из 1

Потеря фокуса при формировании Excel отчетов

Добавлено: 27 фев 2015, 14:29
Masygreen
Win7, Gal 9.1
Столкнулся с такой проблемой, с некоторого времени, при формировании Excel отчета (пользовательские отчеты), не переходит фокус на окно Excel и пользователь думает что отчет завис.
Т.е, допустим в отчете есть интерфейс в нем заполняем параметры и нажимаем кнопку сформировать, дальше ни чего не трогаем. Где-то сзади галактики откроется поле привычное о замене уже сформированного отчета в котором надо нажать да/нет и тогда откроется сам ecel, но проблема в том что это окно позади галактики ...(((
чтобы такое сделать .. пробовал параметры xlDisplayAlerts но успеха не добился, было бы вообще замечательно если бы файл все время затирался без вопроса. но как этого добиться не знать.. хелп??

Re: Потеря фокуса при формировании Excel отчетов

Добавлено: 27 фев 2015, 14:43
RAJAH

Re: Потеря фокуса при формировании Excel отчетов

Добавлено: 02 мар 2015, 19:43
Maverick
Masygreen писал(а): было бы вообще замечательно если бы файл все время затирался без вопроса. но как этого добиться не знать.. хелп??
А кто мешает сначала делать DeleteFile, а потом формировать c нуля новый?

Re: Потеря фокуса при формировании Excel отчетов

Добавлено: 03 мар 2015, 08:48
Masygreen
Maverick писал(а):
Masygreen писал(а): было бы вообще замечательно если бы файл все время затирался без вопроса. но как этого добиться не знать.. хелп??
А кто мешает сначала делать DeleteFile, а потом формировать c нуля новый?
вариант )

Re: Потеря фокуса при формировании Excel отчетов

Добавлено: 03 мар 2015, 10:25
edward_K
я в своем наборе функций зацикливаю deletefile до 20 итераций - дабы если файл уже открыт сформировать в новый.

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

  if FileExist(aFileName)
  { 
  
    if not DeleteFile(aFileName)
    { do 
      { akolfile:=akolfile+1 ;
        if akolfile>20 then
        { akolfile:=0 ;
          breakl 
        }
        aFileName1:=substr(aFileName,1,pos('.',aFileName)-1)+'d'+string(akolfile)+'.xls';
        if FileExist(aFileName1)
        { DeleteFile(aFileName1)
        }
      } while fileexist(aFileName1)
      if akolfile=0
      { message('Ошибка при удалении файла '+chr(13)+wnmfile+
        chr(13)+'возможно он открыт другой программой') ;
        exit ;
      }
      else aFileName:=aFileName1 ;  
    }
  }