Как закрыть WORD после передачи в него данных?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Как закрыть WORD после передачи в него данных?

Сообщение RaFaeL »

Единственная известная мне проблема работы с графикой при использовании image2pdf это отсутствие поддержки прозрачных вложенных картинок, они становятся непрозрачными. Про другие сам послушал бы )
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Как закрыть WORD после передачи в него данных?

Сообщение finsoftrz »

Ну, фик его знает, у меня эта библиотека в целом работает. Некоторые формы имеют искажения, проверять надо. Надо еще учесть, что используется только для первичных бланков - всяких накладных и т.п. Для отчетов стадартно xls. Про кларионовский репорт именно для отчетов я давно уже писал, что это совсем уж древний подход из 90-х, когда все печаталось на бумаге. Я от него отказался почти 20 лет назад.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Как закрыть WORD после передачи в него данных?

Сообщение Губин Игорь »

Игорь Столяров писал(а): 25 Март 2022, 19:54 Можно сохранять из Microsoft Word документ в PDF - см. табличку с доступными форматами в прошлом ответе.
Глюк там, СЭР, при обработке вставленных и в текст и отмасштабированных картинках... УВЫ...
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Как закрыть WORD после передачи в него данных?

Сообщение Игорь Столяров »

Губин Игорь писал(а): 26 Март 2022, 14:43 Глюк там, СЭР, при обработке вставленных и в текст и отмасштабированных картинках
Никогда такого не видел ... может быть зависит от версии офисного пакета ?
С другой стороны я экспортирую вставленные 1:1 WMF листы REPORT, без масштабирования ...
C графикой в REPORT проблем нет.

Если у Вас есть проблемный DOCX для теста - сбросьте, проверю экспорт в PDF.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Как закрыть WORD после передачи в него данных?

Сообщение Губин Игорь »

Игорь Столяров писал(а): 26 Март 2022, 15:12 икогда такого не видел ... может быть зависит от версии офисного пакета ?
У нас на разных пакетах и компьютерах. При печати, если файл создавался через стандартные драйвера мелкомягких, картинки как-то странно себя ведут - приходится использовать "печатать как изображение", иначе картинки (сплошь png - иконки в описание) начинают вести себя как на испорченном телевизоре. А есть одна картинка, скан офисной печати, которую, вообще, обрезает.

Простите, долго генерить примеры.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Как закрыть WORD после передачи в него данных?

Сообщение Игорь Столяров »

Губин Игорь писал(а): 26 Март 2022, 15:22 Простите, долго генерить примеры.
Не проблема, мне оно не надо ...
Я сталкивался с проблемой отображения PNG в REPORT, когда графику делали в шаровом редакторе GIMP.
Его любят почему-то вебдизайнеры, но он работает с какими-то хипстерскими понятиями формата PNG ...
Тупо пересохраняли графику PNG в штатном Windows PaintBrush и проблемы нет. :)
За теми кто отстал - не возвращаться. (С) Кодекс
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Как закрыть WORD после передачи в него данных?

Сообщение mpn2 »

SergioRaguzini писал(а): 25 Март 2022, 19:22 Есть еще одна, непонятная для меня ситуация при работе с Word, когда после экспорта отчета в файл MsWord и дальнейшим PROP:Deactivate, в Диспетчере задач Windows остается работающим в фоне процесс winword.exe хотя окно Word закрыто и внешне вроде бы это ничему не мешает.
Мешает!
Именно про это и был мой вопрос! Надо корректно закрыть WORD, он должен уйти из процессов в Диспетчере задач.
При всем моем уважении к вам (ко всем) как к "продвинутым" программистам - ничего не меняется, а именно:
как и 20 лет назад слишком далеки вы от народа.... у вас у всех крутые компы с "последними наворотами" и вы думаете что и у всех остальных так же. А оно не так, особенно в органах местной муниципальной власти - там у людей компы 2000-2004 года рождения (и покупать людям что то новое никто не торопиться). И когда тот же WORD висит в процессах по 20-30 раз то виснет все (в самый неподходящий момент).
Это первое!
Второе! Пока никто из вас ничем конкретным мне не помог .... я перепробовал все, что вы тут предложили .... но WORD остается висеть в прцесах в Диспетчере задач.
Аватара пользователя
ingasoftplus
Ветеран
Сообщения: 425
Зарегистрирован: 26 Декабрь 2006, 17:07
Откуда: Оттуда :)
Благодарил (а): 90 раз
Поблагодарили: 5 раз

Как закрыть WORD после передачи в него данных?

Сообщение ingasoftplus »

У нас тупо работает схема (на примере екселя, но для ворда тоже пойдет):

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

 
            ! Close all Open MS XLS Instances
    
            case message('Are you sure you want to close all Microsoft Excel Instances?','SYSTEM MESSAGE',ICON:Question,'&Yes|&No',2)
            of 1
                run('pskill excel.exe',1)
                message('All Microsoft Excel Instances closed','SYSTEM MESSAGE')
            of 2                                          
    
            end
где pskill = https://docs.microsoft.com/en-us/sysint ... ads/pskill
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Как закрыть WORD после передачи в него данных?

Сообщение Игорь Столяров »

mpn2 писал(а): 28 Март 2022, 11:27 я перепробовал все, что вы тут предложили
Не обладая даром телепатии - не могу прокомментировать этот наезд ... :)
Попробуйте пожалуйста без самодеятельности выполнить точно вот такой код:

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

  WordControl{'Application.ActiveDocument.Close'}  ! У Вас есть код до этого места
  WordControl{'Application.Quit'}
  WordControl{Prop:ReportException} = False

  Loop 5 times
    WordControl{PROP:Deactivate}
  end

  Loop 5 times
     Destroy(WordControl) ! уничтожили OLE-контрол
  end
За теми кто отстал - не возвращаться. (С) Кодекс
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Как закрыть WORD после передачи в него данных?

Сообщение mpn2 »

ingasoftplus писал(а): 28 Март 2022, 11:39 run('pskill excel.exe',1)
run('pskill WINWORD.exe',1)
Спасибо! Все отрабатывает как надо!
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Как закрыть WORD после передачи в него данных?

Сообщение mpn2 »

Игорь Столяров писал(а): 28 Март 2022, 12:33 Попробуйте пожалуйста без самодеятельности выполнить точно вот такой код:
WordControl{'Application.ActiveDocument.Close'}
..........
У меня компелятор не знает что такое: "WordControl"
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Как закрыть WORD после передачи в него данных?

Сообщение Игорь Столяров »

mpn2 писал(а): 28 Март 2022, 12:51компелятор
Это название объекта Microsoft Word.
В Вашем примере используется красивое и понятное имя объекта: feqOLE
Просто замените пожалуйста "WordControl" на "feqOLE" ...
За теми кто отстал - не возвращаться. (С) Кодекс
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Как закрыть WORD после передачи в него данных?

Сообщение mpn2 »

Игорь Столяров писал(а): 28 Март 2022, 13:00 Просто замените пожалуйста "WordControl" на "feqOLE" ...

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

!==============================================================================================================================
 if CONF:Close_File then                                                      ! Закроем документ если надо
       !feqOLE{'Documents.Close()'}                                              ! Закрываем документ
       !run('pskill WINWORD.exe',1)
    feqOLE{'Application.ActiveDocument.Close'}  ! У Вас есть код до этого места
    feqOLE{'Application.Quit'}
    feqOLE{Prop:ReportException} = False

    Loop 5 times
      feqOLE{PROP:Deactivate}
    end

    Loop 5 times
       Destroy(feqOLE) ! уничтожили OLE-контрол
    end

 end
!==============================================================================================================================
Получаем вот так:
https://wampi.ru/image/RJ6huNy
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

Как закрыть WORD после передачи в него данных?

Сообщение mpn2 »

ingasoftplus писал(а): 28 Март 2022, 11:39 У нас тупо работает схема (на примере екселя, но для ворда тоже пойдет):
То как вы посоветовали работает нормально спасибо.... вопрос в догонку:
Меня тут упрекнули, что я сохраняю фай как *.doc

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

Loc:SaveFileName = Clip(CONF:Path_Save_WORD) &'вх.'& Clip(UCH:Number) &'.doc'  ! Каталог для хранения файлов  + имя
согласен!
А как сделать так, чтобы расширение в имени файла корректно сформировалось само?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Как закрыть WORD после передачи в него данных?

Сообщение Дед Пахом »

mpn2 писал(а): 28 Март 2022, 13:10 Loop 5 times
Destroy(feqOLE) ! уничтожили OLE-контрол
end
Без цикла тоже можно:

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

Destroy(feqOLE) ! уничтожили OLE-контрол
Destroy(feqOLE) ! уничтожили уже уничтоженный OLE-контрол
Destroy(feqOLE) ! уничтожили уже дважды уничтоженный OLE-контрол
Destroy(feqOLE) ! уничтожили уже трижды уничтоженный OLE-контрол
Destroy(feqOLE) ! уничтожили уже четырежды уничтоженный OLE-контрол, прямо зомби апокалипсис
С уважением, ДП
Ответить