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

Clarion, Clarion 7

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

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

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

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

finsoftrz писал(а): 28 Март 2022, 20:46 Давайте лучше про позитивчики.
Сегодня у нас в Пятёре возле кассы поставили тележку с сахером и кассир
тролила всех покупателей: Сахарку пакетик по акции не желаете взять ? :)
За теми кто отстал - не возвращаться. (С) Кодекс
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

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

Сообщение mpn2 »

Вот я сделал маленький тест. Если у кого есть время посмотрите.
я конечно прекрасно понимаю, что все написанное мной - написано через жопу и если есть предложения то буду рад!
Проблема вот в чем:
Если передать данные в WORD и WORD закрыть - то проблем нет.
Но 99% пользователей так не работают: они открывают WORD и WORD весит пол дня.
Так вот:
Если передать данные в WORD и WORD НЕ закрывать - а потом передать данные в WORD еще раз - то начинается полная "хрень".
Вот эту "хрень" надо как-то обмануть!
Вложения
Test.RAR
(62.01 КБ) 136 скачиваний
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

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

Сообщение mpn2 »

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

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

Сообщение RaFaeL »

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

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

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

mpn2 писал(а): 29 Март 2022, 11:14 Если передать данные в WORD и WORD закрыть - то проблем нет.
В чём мы Вас и убеждаем несколько дней ... по Вашему первому вопросу.
У меня пример не открывается - т.к. нет шаблонов. Пример - это PRJ + CLW
RaFaeL писал(а): 29 Март 2022, 12:12 Почему бы просто сначала не скопировать шаблон в файл с новым именем функцией copy, а уже затем его открыть в Word?
Абсолютно верно. Именно так и обрабатываются шаблоны отчётов.
За теми кто отстал - не возвращаться. (С) Кодекс
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

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

Сообщение mpn2 »

Игорь Столяров писал(а): 29 Март 2022, 12:16 Абсолютно верно. Именно так и обрабатываются шаблоны отчётов.
Да я это тоже понимаю на бытовом уровне, а как это сделать?
Вот я пишу:

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

  feqOLE{'Documents.Open("'& clip(Loc:WordFileName) &'")'}                                      ! Открываем шаблон документа
  feqOLE{'Application.ActiveDocument.SaveAs2("'& Clip(Loc:SaveFileName) &'")'}        ! сохранили документ под другим именем

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

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

Сообщение RaFaeL »

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

copy(Loc:WordFileName,Loc:SaveFileName)
feqOLE{'Documents.Open("'& clip(Loc:SaveFileName) &'")'}
do Find_Replace
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

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

Сообщение mpn2 »

RaFaeL писал(а): 29 Март 2022, 19:56 copy(Loc:WordFileName,Loc:SaveFileName)
feqOLE{'Documents.Open("'& clip(Loc:SaveFileName) &'")'}
do Find_Replace
Вот! уже хорошо уже не ругается.

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

   feqOLE{'Documents.Open("'& clip(Loc:WordFileName) &'")'}                            ! Открываем шаблон документа
   copy(Loc:WordFileName,Loc:SaveFileName)
   feqOLE{'Documents.Open("'& clip(Loc:SaveFileName) &'")'}
НО! WORD открывается 2 раза и файл где будет результат и шаблон ..... и если шаблон "только для чтения", то файл-результат тоже открывается "только для чтения".
Было бы хорошо, если бы WORD с шаблоном закрывался, а файл-результат был бы НЕ "только для чтения".
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

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

Сообщение gromov »

А нахрена окрывать шаблон ? Чисто штоб открыть ? RaFael привел рабочий код. Делается копия шаблона. Эта копия открывается и она будет НЕ "только для чтения".
mpn2
Бывалый
Сообщения: 62
Зарегистрирован: 24 Февраль 2015, 17:15

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

Сообщение mpn2 »

gromov писал(а): 29 Март 2022, 20:42 А нахрена окрывать шаблон ? Чисто штоб открыть ? RaFael привел рабочий код. Делается копия шаблона. Эта копия открывается и она будет НЕ "только для чтения".
Пардон! Я думал шаблон надо открыть!

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

 copy(Loc:WordFileName,Loc:SaveFileName)
   feqOLE{'Documents.Open("'& clip(Loc:SaveFileName) &'")'}
Да вот так работает корректно! Спасибо!
Открыл WORD 30 раз ---- ничего не виснет! Спасибо!
Я еще кнопочку сделал:

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

Run('pskill WINWORD.exe',1)  ! Закрываем Word 
Вообще стало ХОРОШО!
:)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

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

Почему-то вспомнил анекдот, как молодожёны ходили по кабинетам в поликлинике ...
Но расказывать - не буду ! :)
За теми кто отстал - не возвращаться. (С) Кодекс
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

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

Сообщение gromov »

А чо так ? Стесняетесь ? :D
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

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

Сообщение gromov »

Я WordControl убиваю так:
Loop 3 times
Destroy(WordControl) ! уничтожили OLE-контрол
end
Работает.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

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

gromov писал(а): 29 Март 2022, 21:02 А чо так ? Стесняетесь ?
Та не. Я за здоровую атмосферу.
Хотя, в данном случае, именно ответ с хренами дал результат ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

mpn2 писал(а): 28 Март 2022, 15:41
Игорь Столяров писал(а): 28 Март 2022, 14:18 Я извиняюсь, а можно спросить, с какой версией офисного пакета Вы работаете ?
Не могу вспомнить даже, когда была такая картинка в диспетчере, с WINWORD.EXE и т.д. ...
Word14
- - - - - - - -
А что это? Спецсборка наших умельцев?
We are hard at work… for you. :)
Ответить