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

неожиданный конец формы

Добавлено: 04 авг 2017, 16:46
ded_gambit
делаю печатную форму на основании прототипа ISPBUY, в потоке выводится несколько уровней детализации
Вывожу данные через Excel_Lib,
прохожу через все циклы
после вывода всех значений нужно закрыть сессию xlKillExcel, вставляю перед .endform xlKillExcel, но команда не отрабатывается.
Вот конец формы

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

end.
эта строка выводится
.} //конец цикла по уровню
.begin
  xlKillExcel;
  message('this is the end'); //это сообщение не выводится
end.
.endform        
такое ощущение, что форма закрывается раньше, чем .endform
Вопрос: как (где) закрыть сессию excel?

Re: неожиданный конец формы

Добавлено: 04 авг 2017, 18:22
Irina_
Здравствуйте. Я несколько раз делала отчеты на основе прототипа с выводом в Excel (с использованием Excel_Lib). В присоединенной форме заполняла таблицу в памяти, а вот вывод ТП в Excel оформляла процедурой. Ее вызов:
.begin
OutToExcel;
end.
.endform
В конце этой процедуры ставила xlKillExcel. И проблем не было.

Re: неожиданный конец формы

Добавлено: 05 авг 2017, 00:23
edward_K
Неожиданный конец формы - это существующая ошибка компиляции, не соотв. вашей проблеме.
У вас скорей всего, проблема а том, что программиcт не поставил putevent(febreak)

Re: неожиданный конец формы

Добавлено: 09 авг 2017, 12:54
ded_gambit
Irina_ писал(а):Здравствуйте. Я несколько раз делала отчеты на основе прототипа с выводом в Excel (с использованием Excel_Lib). В присоединенной форме заполняла таблицу в памяти, а вот вывод ТП в Excel оформляла процедурой. Ее вызов:
.begin
OutToExcel;
end.
.endform
В конце этой процедуры ставила xlKillExcel. И проблем не было.
так в том и загвоздка - где ставить эту процедуру? данные из потока передаются, передаются, а потом хоп - и все закончилось. Не дойдя до .endform
Можно, конечно, сделать например выгрузку в dbf с последующей загрузкой через odbc источник или оформить форму как slk, но как-то это мне кажется некрасиво.

Re: неожиданный конец формы

Добавлено: 10 авг 2017, 02:39
edward_K
1. Для начала приведите наименование прототипа и интерфейс печати(в настройке форм есть)
2. Если есть возможность, озвучте свою проблему вТП вместе с пунктом 1.
3. Как вариант может быть получиться докомпиляция интерфейса печати. Если программист не сделал PutEvent(febreak) для выхода из цикла вам остаетсятся только slk.