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

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 7:45
talgat55
с6.3 ABС MS SQL Для вывода отчетов пользую класс abxl не помню кто делал.
выгружаю в Excel закрываю его а в процессах так и остается - сколько отчетов столько excel висит
( .kill пользую- не помогает )
???

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 9:59
Yufil
Сейчас для любого окна с OLE строго обязательно перед закрытием юзаю

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

OCXUngregisterEventProc(?OLE) ! Если OCX
?OLE{Prop:Deactivate}
Destroy(?OLE) 
Но Ёксель давно не пользую, обхожусь List & Label :)

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 10:13
RaFaeL
Есть как минимум несколько вариантов выгрузки в excel без OLE

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 12:03
kreator
Надо смотреть, что в этом классе abxl. Он сам по идее должен всё делать. Может оказаться, что он не совместим с современным Excel.
Yufil писал(а): 07 Июль 2017, 9:59 Сейчас для любого окна с OLE строго обязательно перед закрытием юзаю
Код: Выделить всёOCXUngregisterEventProc(?OLE) ! Если OCX
?OLE{Prop:Deactivate}
Destroy(?OLE)

Но Ёксель давно не пользую, обхожусь List & Label
Это правильно, только, если не использовать сторонних классов.
RaFaeL писал(а): 07 Июль 2017, 10:13 Есть как минимум несколько вариантов выгрузки в excel без OLE
Ну да, как минимум класс abxl устарел.
Немножко в сторону. Хорошо без OLE, согласен, может быть. Совсем недавно делал очень сложную диаграмму (заказчик просит в Экселе), плюс тут же нужный данные, промежуточные итоги с использованием Экселевских функций типа "Нормальное распределение". Делаю так. Данные выгружаю без OLE. Потом открываю файл через OLE и фигачу диаграмму и всё остальное. При этом по образцу делаю макрос и тупо переношу строчки этого макроса в текст Клариона (ну не тупо, с преобразованием). Вот как средства, формирующие файл Экселя, строят диаграммы? Как строит диаграммы L&L? Переносит в Эксель растровый рисунок?

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 12:29
finsoftrz
Я вывожу данные в xls файл прямой записью, а графики затем строю через генерацию vbscript специальным классом. На выбор, excel или calc. Дальше инфа из блога для пользователей по автоматическим ночным рассылкам.
============================================================
В ночных рассылках появились графики. Это запланированный функционал. Интерес представляет новая технология для вывода графиков в электронные таблицы. Ее смысл в стандартизации, позволяющей формировать графики всего несколькими строчками кода. Теперь обычные табличные отчеты могут легко дополняться представлениями в виде графиков.
В общих чертах, используется следующий алгоритм. На основании выборки из базы данных, сделанной для табличного отчета, в специальный интерфейсный класс заносится список графиков с их сериями и значениями. Затем метод этого класса одним вызовом выводит все графики во временный xls-файл. При этом вывод значений для графиков происходит прямой записью в xls-файл на специальную служебную закладку, а для последующего построения графиков вызывается Excel или Calc через com-интерфейс. Поэтому работает очень быстро. Каждый график располагается на отдельной закладке. Полученный временный файл может быть либо открыт для пользователя, либо все его закладки автоматически скопированы в основной xls-файл с табличными отчетами. В последнем случае пользователю выводится один итоговый файл, включающий табличные отчеты и графики.

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 12:34
finsoftrz
А по сабжу уже много раз обсуждали. Была рекомендация выгружать excel три раза подряд, тогда выгружается...

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 12:34
Yufil
Диаграммы в List & Label поддерживаются, но не использовал очень давно (точнее, использовал ровно один раз в прошлом веке), выводил в PDF. Что будет при выводе в Excel - не знаю, смотреть надо. Весьма вероятно, что будет только картинка...
(Проверил, действительно картинка ... )
Можно попробовать https://mega.co.nz/#!t5JQHThI!3Vldj49d4 ... F3oK91lh_o - там небольшая программа на Кларионе

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 12:40
talgat55
finsoftrz писал(а): 07 Июль 2017, 12:34А по сабжу уже много раз обсуждали. Была рекомендация выгружать excel три раза подряд, тогда выгружается...
А как выгружать ?

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 12:55
finsoftrz
Поищите в архивах рассылок. Мялин по этому поводу писал. Я не пользуюсь, а голова стала забывать ненужную информацию. Иногда и нужную... :-)

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 13:40
talgat55
Спасибо - нашел

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 14:32
kreator
finsoftrz писал(а): 07 Июль 2017, 12:29 Я вывожу данные в xls файл прямой записью, а графики затем строю через генерацию vbscript специальным классом. На выбор, excel или calc. Дальше инфа из блога для пользователей по автоматическим ночным рассылкам.
Всё равно же Excel нужен.

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 14:34
kreator
talgat55 писал(а): 07 Июль 2017, 13:40 Спасибо - нашел
Недавно обсуждали. Я выкладывал пример через xml. Дёшево и сердито.

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 14:37
Дед Пахом
Вот она самая тема для FAQ.

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 15:00
Admin
Название темы и решение давайте - вставлю в FAQ

C6.3 как убить Excel в процессах

Добавлено: 07 Июль 2017, 15:17
kreator
Здесь куча вариантов. Какой FAQ? Для ФАКа нужны устоявшиеся решения.
Кстати, для ФАКа есть тема. Как выгрузить в очередь произвольный SQL-запрос. Часто задают. Варианты - viewtopic.php?p=25999#p25999. Опять же - формат даты в SQL.