On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 6
Зарегистрирован: 22.04.15
ссылка на сообщение  Отправлено: 29.08.15 10:06. Заголовок: Остается в памяти процесс Excel


Привет всем,
проблема такая -
вывожу отчет на Excel - появляется в памяти процесс Excel.exe,
oExcel := TOleAuto():New( "Excel.Application" )
oDocs := oExcel:Get( "WorkBooks" )
oDoc := oDocs:Add()
oList := oExcel:Get( "ActiveSheet" )
oExcel:Visible := .F.
... телодвижения ...
oExcel:Visible := .T.
Пользователь производит определенные действия и при закрытии, в памяти остается процесс Excel.exe.
То есть с каждым выводом отчета на Excel в памяти собирается куча этих процессов.

Если прописываю в конце
oExcel:Quit
то при выводе Excel подготавливается, открывается и сразу закрывается )

Требуется, чтобы при подготовке отчета на Excel, сделать активным, вывести на экран но не закрывать (чтобы Пользователь мог дальше колдовать)
но при закрытии Пользователем данного отчета - закрывался и в памяти процесс Excel.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]


администратор




Пост N: 5249
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.08.15 10:22. Заголовок: Новичок пишет: но п..


Новичок пишет:

 цитата:
но при закрытии Пользователем данного отчета - закрывался и в памяти процесс Excel.


Проверил у себя , все нормально закрывается и в памяти ни чего не остается.

PS
EXCEL 2003

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4473
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.15 11:09. Заголовок: Dima пишет: Провери..


Dima пишет:

 цитата:
Проверил у себя , все нормально закрывается и в памяти ни чего не остается.


При админских правах юзера - всё Ок, процесс закрывается.
Если у юзера нет админских прав, то бяка - не всегда получается закрыть...
У меня некоторые админы сети жаловались на это, что в конце работы на компе - куча процессов Excel.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5250
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.08.15 11:57. Заголовок: Andrey Может ты и п..


Andrey
Может ты и прав. У нас все ходят с админскими правами , вероятно поэтому и нет описанной проблемы.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 640
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.08.15 12:28. Заголовок: Думаю что админские ..


Думаю что админские права тут не при чем. Процесс создается от имени и с правами текущего пользователя и срответственно может быть убит этим пользователем.
А вот кривых сборок офиса я видел много, каких только чудес не увтдишь пока нормальный офис не поставишь.
В догонку. У меня ни у одного юзера нет админки , но процесс зависает в памяти только если при выводе произошла ошибка OLE. В остальном все ок

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 366
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 29.08.15 14:37. Заголовок: Админские права коне..


Админские права конечно непричем.Чисто алгоритм действтй. Ежели надо недопучтить
висящкго процесса Excel ну и не пускай его через OLE просто ранируй. Иначе надо отслеживать данный Excel-процесс и закрыть Ole-соединение Quit или убивать висящий процесс через WMI

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 642
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.08.15 10:02. Заголовок: Новичок пишет: oDoc..


Пользую обычно так и вроде без проблем
 
oExcel := CreateObject( "Excel.Application" )
oExcel:Workbooks:Add()
oExcel:Visible := .F.
oExcel:SET( "DisplayAlerts", .F. )
oSheet := oExcel:Get( "ActiveSheet" )
...
...
oExcel:Visible := .T.
oExcel:SET( "DisplayAlerts", .T. )


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5252
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.08.15 10:08. Заголовок: Haz пишет: oExcel:S..


Haz пишет:

 цитата:
oExcel:SET( "DisplayAlerts", .F. )


что то новенькое ;)
я так пишу oExcel:DisplayAlerts:=.f.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 643
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.08.15 10:20. Заголовок: Dima пишет: пишу oE..


Dima пишет:

 цитата:
пишу oExcel:DisplayAlerts:=.f.


это одно и то же )
В ОЛЕ есть метод Set() иногда только через него и получается

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5253
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.08.15 10:40. Заголовок: Haz Точно , я тупан..


Haz
Точно , я тупанул...

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 555
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет