Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Добрый день всем.

Прошу помощи-совета.

Создаю и открываю xls файл из формы frm1.
При этом в качестве шаблона есть готовый файл на диске C. Проверяю, если есть файл, затем проверяю, есть ли нужная директория на диске D , если нет, то создаю. Копирую файл из C на D, заполняю, открываю. Все работает.

Но после этой процедуры возникает глюк - при вызове других форм без закрытия frm1 в пределах самой frm1 появляется текст, видимо выполняемой в где-то в этот момент программы, как если бы был SET TALK ON. Проверял, установка сохраняется, OFF.

Если форму перегрузить, глюк уходит безвозвратно. Если не задействовать выгрузку в Excel - глюк не возникает.

Модератор: Вложение удалено.


Сообщение было отредактировано: 17 июн 20, 22:06
16 июн 20, 22:05    [22152006]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
PaulWist
Member

Откуда:
Сообщений: 2300
DmitryKn
Копирую файл из C на D, заполняю, открываю. Но после этой процедуры возникает глюк


В "этой процедуры" комментируешь методом дихотомии строчки кода, смотришь когда возник "глюк", затем убираешь команду, типа DISPLAY TABLES/LIST TABLES.
17 июн 20, 08:47    [22152134]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
PaulWist
DmitryKn
Копирую файл из C на D, заполняю, открываю. Но после этой процедуры возникает глюк


В "этой процедуры" комментируешь методом дихотомии строчки кода, смотришь когда возник "глюк", затем убираешь команду, типа DISPLAY TABLES/LIST TABLES.


Очень не уверен, что мои действия имеют отношение к дихотомии, и что я правильно понимаю этот термин, я даже не знаю, как правильно ударение ставить в этом слове...

вобщем, как сумел - сделал остановку с помощью return после каждого куска кода, эмпирически выяснил, что глюк возникает после создания объекта Excel, действия с файлом не вредят ((

	LOCAL loExcel, loBook, loSheet
	TRY
		loExcel = GETOBJECT(,"Excel.Application")
	CATCH
		loExcel = CREATEOBJECT("Excel.Application")
	ENDTRY


что и как мне посмотреть? Только прошу давать совет очень лапидарно, как для очень не сильно образованного человека.

Сообщение было отредактировано: 17 июн 20, 09:54
17 июн 20, 09:54    [22152167]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Глюк появляется только при создании объекта loExcel, если сам Excel открыт, то глюк не происходит.

Т.е. вот именно после этой строки

loExcel = CREATEOBJECT("Excel.Application")
17 июн 20, 10:20    [22152180]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
PaulWist
Member

Откуда:
Сообщений: 2300
DmitryKn
Глюк появляется только при создании объекта loExcel, если сам Excel открыт, то глюк не происходит.

Т.е. вот именно после этой строки

loExcel = CREATEOBJECT("Excel.Application")


1. Пробуй создать Excel и следующей строчкой выйти из него.

2. Проверь что бы был SET STATUS BAR ON.

PS остаётся гадать на кофейной гуще :(

Сообщение было отредактировано: 17 июн 20, 12:11
17 июн 20, 12:05    [22152254]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
PaulWist,

set status bar был off, установка в on глюк убрала, огромное спасибо !
правда строка внизу появилась, но это не так страшно.
Но как set status bar тут оказывает влияние? Судя по описанию он включает-выключает строку внизу экрана только лишь..

И еще два мелких вопроса по ходу:

1. Если в коде после создания loExcel я его не закрываю loExcel.Quit() или как-то еще, а само закрытие именно документа Excel эквивалентно loExcel.Quit() и все ссылки закрывает? Или надо "убирать" в коде?

2. Как удалить приложенную в верхнем посте картинку?

И еще раз большое спасибо за помощь )
17 июн 20, 13:14    [22152307]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
PaulWist
Member

Откуда:
Сообщений: 2300
DmitryKn
PaulWist,

set status bar был off, установка в on глюк убрала, огромное спасибо !
правда строка внизу появилась, но это не так страшно.
Но как set status bar тут оказывает влияние? Судя по описанию он включает-выключает строку внизу экрана только лишь..



1. Смотри ответ ВладимирМ Где поставить SET TALK OFF?

DmitryKn
PaulWist,

И еще два мелких вопроса по ходу:

1. Если в коде после создания loExcel я его не закрываю loExcel.Quit() или как-то еще, а само закрытие именно документа Excel эквивалентно loExcel.Quit() и все ссылки закрывает? Или надо "убирать" в коде?

2. Как удалить приложенную в верхнем посте картинку?

И еще раз большое спасибо за помощь )


1. Всё зависит от версии Экселя, посмотри в процессах висит ли Эксель. По феншую надо закрывать свой экземпляр Экселя явно.

2. Речь про аттач? Нажми изменить снизу поста.

Сообщение было отредактировано: 17 июн 20, 19:23
17 июн 20, 19:24    [22152659]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
PaulWist,

Еще одно спасибо за хорошую ссылку на разъяснения ВладимираМ. С указанными настройками

set talk off
set talk window

тоже глюк не рождается, так и оставил.

Exel закрывать лучше руками, нигде ничего не висит.

Жить стало немного легче, спасибо PaulWist
17 июн 20, 20:17    [22152671]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Однако проблема окончательно не решена.

Остается эффект, если после выгрузки в Excel отправляю документ (любой) на печать. После закрытия диалогового окна принтера и самой печати, на модальной форме печати местами проявляются куски отчета, т.е. именно после печати.

Если выгрузки в ехель не было - печатает мгновенно и без каких-либо проблем.

На печать отправляется так:
исходная форма frm1 - do from frmPrint with this
в форме frmPrint готовлю данные для печати, затем печать:

report form invoice to printer prompt

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

После выгрузки и открытия ехельного файла ссылки на объект почистил:
release loSheet, loBook, loExcel

не помогло (

Сообщение было отредактировано: 22 июн 20, 21:32
22 июн 20, 21:28    [22155475]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
PaulWist
Member

Откуда:
Сообщений: 2300
SET-ы остаются без изменения?
22 июн 20, 21:49    [22155487]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
PaulWist,

да,

set talk off
set status bar on

set talk window - наверное, без изменений.
22 июн 20, 22:24    [22155511]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Причем интересный момент:

После сделанных ранее настроек появляются только элементы отчета и только на форме, из которой печать, при этом в одной области, там у меня как раз три кнопки расположены. Заметил, что после того как фокус на них мышью попадает, "знаки" исчезают.

В коде после выполнения всего добавил последовательно SetFocus на каждую из кнопок и refresh формы - знаки не появляются, или , вернее, я этого не вижу.

refresh формы без фокуса не работает.

Может такое быть, чтобы модальная форма теряла как-то фокус?
22 июн 20, 22:35    [22155524]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
PaulWist
Member

Откуда:
Сообщений: 2300
DmitryKn,


report form invoice to printer prompt NOCONSOLE
23 июн 20, 01:16    [22155607]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
PaulWist
DmitryKn,


report form invoice to printer prompt NOCONSOLE


Добрый день, PaulWist.

с утра поставил, вроде помогло. Весь рабочий день багов-глюков не наблюдалось.

Итого, общее решение:

в load формы:

set talk off
set talk window

set status bar off - оставил как есть, после set talk ... уже никак не влиял, проверено, а строка внизу экрана глаз не радовала.

печать :

report form frm1 to printer prompt NOCONSOLE

Будем надеяться, проблема решена.

Спасибо огромное, PaulWist!

Сообщение было отредактировано: 23 июн 20, 17:37
23 июн 20, 17:39    [22156178]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Добрый день всем!

Столкнулся с такой проблемой:
создаю отчет в exel :
LOCAL loExcel, loBook, loShape

TRY
    loExcel = GETOBJECT(,"Excel.Application") && открыт руками Exel , все работает
CATCH
    loExcel = CREATEOBJECT("Excel.Application") 
ENDTRY

loBook = loExcel.Workbooks.Open(m.lcFileName) && возникает глюк
loSheet = loBook.Sheets(1)
loBook.Sheets(1).name = ALLTRIM(lcName)


дальше заполняю, открываю и т.п.

Все работает в рабочей сети и дома на локальной. Установил на еще один комп на работе локально и вот возникает глюк.
Если Exel открыт руками, то все хорошо. Если нет, т.е. выполняется loExcel = CREATEOBJECT("Excel.Application"), то на следующей строке ошибка "Ошибка OLE, код 0х80010105: The server threw an exception."

Как это лечится?

Сообщение было отредактировано: 28 окт 21, 13:14
28 окт 21, 13:08    [22389349]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
Dima T
Member

Откуда:
Сообщений: 16063
Эксель лицензионный? На ломаных экселях бывает после запуска вылазит окошко что нет ключа (или типа того) и твой код его не может закрыть, а если руками открыли и это окошко закрыли, то все нормально будет.
28 окт 21, 13:13    [22389353]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Dima T,

exel окошек не выдает и на имеющуюся лицензию не жалуется.

Выше я имел ввиду, что если просто открыто приложение exel, без какой-либо определенной книги, то все работает. Глюк только когда создается объект. Причем на других машинах этого нет.

Сообщение было отредактировано: 28 окт 21, 13:20
28 окт 21, 13:15    [22389357]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1595
DmitryKn
Как это лечится?
Переходом на генерацию файлов без использования самого Excel. Дешево и практично. Ссылки на соответствующие инструменты в соседней теме.
28 окт 21, 13:19    [22389359]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Sergey Sizov,

ссылки видел, спасибо.
Но хотелось бы в том виде, который есть, если можно )
28 окт 21, 13:34    [22389368]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
DmitryKn
Member

Откуда:
Сообщений: 308
Порылся по сети, подсказали такое решение - удалить надстройку Foxit PDF .
Удалил - помогло!
28 окт 21, 13:53    [22389376]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы после выгрузки в Excel  [new]
Redrik
Member

Откуда:
Сообщений: 825
Сорри, что не в тему - не ну смог удержаться!!! )))

1) "...дихотомии... я даже не знаю, как правильно ударение ставить в этом слове"
2) "...прошу давать совет очень лапидарно..."

т.е. там мы даже за ударение не знаем, зато тут знаем слово "лапидарно"?!

P.S. Просьба не ругаться за оффтоп... Это чисто, чтоб поржать! Очень иногда полезно!
28 окт 21, 14:22    [22389390]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить