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

Сохранение печатной формы в файл с переменным именем

Добавлено: 21 мар 2012, 18:42
Serg7907
Добрый день.
Можно ли сделать так, чтобы при формировании печатной формы в Галактике (допустим накладной на отпуск) одновременно производилась запись данной формы в файл (желательно rtf)? Причем имя данного файла должно формироваться по опеределнному алгоритму (сейчас имя файла соответствует названию прототипа), туда должна попадать информация по дате и номеру документа.

В конце формы стандартной накладной при компиляции использую такую конструкцию:

.f "w:\other\!vit\GAL8.10\myfile2.out"
.begin
CopyMoveFile('W:\Other\!VIT\GAL8.10\myfile2.out','out\'+UserName + ¬номер + DateToStr(Cur_Date,'DDMM')+'.out', false)
end.
.endform

Файл myfile2.out создается при печати нормально, форма в нем есть.
Файл '+UserName + ¬номер + DateToStr(Cur_Date,'DDMM')+'.out' тоже создается, название файла формируется как надо. Однако данные туда не копируются и файл остается пустым.
По-видимому это связано с тем, что файл myfile2.out в момент копирования занят. Так как если использовать

.f "w:\other\!vit\GAL8.10\myfile2.out"
.begin
CopyMoveFile('W:\Other\!VIT\GAL8.10\myfile3.out','out\'+UserName + ¬номер + DateToStr(Cur_Date,'DDMM')+'.out', false)
end.
.endform
И файл myfile3.out по указанному пути есть, копирование происходит правильно.

Как можно освободить файл, создаваемый при печати, для того чтобы была возможность его скопировать?

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 21 мар 2012, 19:14
ecasoft
Думаю никак освободить, как Вы выражаетесь нельзя.

Но если файл rtf, то автоматически загрузится ворд. В ворде можно написать макрос на событие открытия файла и определить если имя файла как у прототипа то записать файл под динамически сформированным именем. Само имя можно вывести из Галактики прямо в форму, в первую строку файла, взять ее в макросе в качестве имени файла, перед сохранением удалить эту строку.

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 21 мар 2012, 20:22
oiko
Если это паранойя с текущими данными документа то не проще в ваш файл грузить именно их а не копию печатной формы?

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 23 мар 2012, 13:09
edward_K
Либо excel либо сразу пишите в нужный файл

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 26 мар 2012, 17:57
Serg7907
Всем спасибо за ответы! Предложение ecasoft-а показалось дельным. Вот только правильно ли я понял: мы, например, в первую строку файла записываем динамически сформированное имя, а затем этим значением подменяем имя файла. Вот только в макросах я не силен (как открыть или переименовать файл - это я еще смогу, а как вытащить строку с динамически сформированным именем и по ней назвать файл - это для меня загадка :-? ). Буду признателен за помощь.

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 27 мар 2012, 22:46
ecasoft
Давненько не программировал на visual basic, и сразу не напишу правильный код. :oops:
Изниняюсь, может найдете спеца там у себя по программированию на этом языке? Сам последний раз писал года два назад - сами понимаете, навскидку не напишу. Размер текста на самом деле не более 10-15 строк.

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 28 мар 2012, 17:58
Serg7907
ecasoft, спасибо за отзыв! У нас программист в командировке, поэтому VB осваиваю сам, и вроде бы что-то получается. Есть несколько косяков, которые пока не могу обойти. Если у вас будет свободное время, можете ли вы набросать идейки или часть кода в VB, а к тому времени может у меня что-то получится. Спасибо за понимание.

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 28 мар 2012, 18:11
Masygreen
не нужен вам ни какой VB ... тем более я как то не вижу решения вашей проблемы в рамках VB - файл то все равно будет открыт :)
Пишите отчет в excel без открытия файла, после чего и випа переименовываете его и открывайте ..
либо если бизнес текст обрубайте основной вывод .f "NUL" пишите в свой файл .. уж как называть его ваше дело

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 29 мар 2012, 10:13
edward_K
В принципе можно писать и в rtf как в текстовый файл - там не очень сложно. Но в Excel самый короткий и простой путь.

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 03 апр 2012, 20:51
ecasoft
я имел ввиду функцию автозапуска WORDа

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 03 апр 2012, 21:27
ecasoft
P S функцию, нужно записать в окне программ VBA - в Worde нажимаете Alt-F11 - и дереве Normal.dot - ThisDocument в окно справа записываете код. Программа вызывается каждый раз при открытии любого файла в Ворде. Чтобы программа не портила другие файлы придумайте сложное имя файла присоединенной формы!

Re: Сохранение печатной формы в файл с переменным именем

Добавлено: 04 апр 2012, 11:19
Serg7907
Большое спасибо!!! :grin:

Решение: Сохранение печатной формы в файл с переменным имене

Добавлено: 04 апр 2012, 23:03
ecasoft
Вспомнил, что можно же просто записать макрос. Все же голова начинает чего-то там поднимать из глубин :lol:
В результате дописал и проверил - все работает отлично. Кстати, полезная вещь может и самому когда пригодится, а то вечно забываешь закрывать Ворд и Галактика ругается, что файл занят. На досуге допишу для себя, чтобы она сама находила по тексту, что это за документ (накладная или счет фактура или еще что, брала номер и дату и под таким именем формировала сразу после входа сохраняла файл. Тогда его получается не надо будет закрывать и можно сразу еще другой отчет формировать.

Re: Решение: Сохранение печатной формы в файл с переменным и

Добавлено: 05 апр 2012, 11:39
Masygreen
ecasoft писал(а):Вспомнил, что можно же просто записать макрос. Все же голова начинает чего-то там поднимать из глубин
не проверял, но если работает Человечище :)