Сохранение печатной формы в файл с переменным именем
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Сохранение печатной формы в файл с переменным именем
Добрый день.
Можно ли сделать так, чтобы при формировании печатной формы в Галактике (допустим накладной на отпуск) одновременно производилась запись данной формы в файл (желательно 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 по указанному пути есть, копирование происходит правильно.
Как можно освободить файл, создаваемый при печати, для того чтобы была возможность его скопировать?
Можно ли сделать так, чтобы при формировании печатной формы в Галактике (допустим накладной на отпуск) одновременно производилась запись данной формы в файл (желательно 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 по указанному пути есть, копирование происходит правильно.
Как можно освободить файл, создаваемый при печати, для того чтобы была возможность его скопировать?
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Сохранение печатной формы в файл с переменным именем
Думаю никак освободить, как Вы выражаетесь нельзя.
Но если файл rtf, то автоматически загрузится ворд. В ворде можно написать макрос на событие открытия файла и определить если имя файла как у прототипа то записать файл под динамически сформированным именем. Само имя можно вывести из Галактики прямо в форму, в первую строку файла, взять ее в макросе в качестве имени файла, перед сохранением удалить эту строку.
Но если файл rtf, то автоматически загрузится ворд. В ворде можно написать макрос на событие открытия файла и определить если имя файла как у прототипа то записать файл под динамически сформированным именем. Само имя можно вывести из Галактики прямо в форму, в первую строку файла, взять ее в макросе в качестве имени файла, перед сохранением удалить эту строку.
Последний раз редактировалось ecasoft 04 апр 2012, 13:18, всего редактировалось 1 раз.
Re: Сохранение печатной формы в файл с переменным именем
Если это паранойя с текущими данными документа то не проще в ваш файл грузить именно их а не копию печатной формы?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Сохранение печатной формы в файл с переменным именем
Либо excel либо сразу пишите в нужный файл
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Сохранение печатной формы в файл с переменным именем
Всем спасибо за ответы! Предложение ecasoft-а показалось дельным. Вот только правильно ли я понял: мы, например, в первую строку файла записываем динамически сформированное имя, а затем этим значением подменяем имя файла. Вот только в макросах я не силен (как открыть или переименовать файл - это я еще смогу, а как вытащить строку с динамически сформированным именем и по ней назвать файл - это для меня загадка ). Буду признателен за помощь.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Сохранение печатной формы в файл с переменным именем
Давненько не программировал на visual basic, и сразу не напишу правильный код.
Изниняюсь, может найдете спеца там у себя по программированию на этом языке? Сам последний раз писал года два назад - сами понимаете, навскидку не напишу. Размер текста на самом деле не более 10-15 строк.
Изниняюсь, может найдете спеца там у себя по программированию на этом языке? Сам последний раз писал года два назад - сами понимаете, навскидку не напишу. Размер текста на самом деле не более 10-15 строк.
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Сохранение печатной формы в файл с переменным именем
ecasoft, спасибо за отзыв! У нас программист в командировке, поэтому VB осваиваю сам, и вроде бы что-то получается. Есть несколько косяков, которые пока не могу обойти. Если у вас будет свободное время, можете ли вы набросать идейки или часть кода в VB, а к тому времени может у меня что-то получится. Спасибо за понимание.
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: Сохранение печатной формы в файл с переменным именем
не нужен вам ни какой VB ... тем более я как то не вижу решения вашей проблемы в рамках VB - файл то все равно будет открыт
Пишите отчет в excel без открытия файла, после чего и випа переименовываете его и открывайте ..
либо если бизнес текст обрубайте основной вывод .f "NUL" пишите в свой файл .. уж как называть его ваше дело
Пишите отчет в excel без открытия файла, после чего и випа переименовываете его и открывайте ..
либо если бизнес текст обрубайте основной вывод .f "NUL" пишите в свой файл .. уж как называть его ваше дело
Время ведет!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Сохранение печатной формы в файл с переменным именем
В принципе можно писать и в rtf как в текстовый файл - там не очень сложно. Но в Excel самый короткий и простой путь.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Сохранение печатной формы в файл с переменным именем
я имел ввиду функцию автозапуска WORDа
Последний раз редактировалось ecasoft 06 апр 2012, 10:42, всего редактировалось 1 раз.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Сохранение печатной формы в файл с переменным именем
P S функцию, нужно записать в окне программ VBA - в Worde нажимаете Alt-F11 - и дереве Normal.dot - ThisDocument в окно справа записываете код. Программа вызывается каждый раз при открытии любого файла в Ворде. Чтобы программа не портила другие файлы придумайте сложное имя файла присоединенной формы!
Последний раз редактировалось ecasoft 06 апр 2012, 10:43, всего редактировалось 2 раза.
-
- Постоянный обитатель
- Сообщения: 127
- Зарегистрирован: 06 июл 2007, 18:25
- Контактная информация:
Re: Сохранение печатной формы в файл с переменным именем
Большое спасибо!!!
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Решение: Сохранение печатной формы в файл с переменным имене
Вспомнил, что можно же просто записать макрос. Все же голова начинает чего-то там поднимать из глубин
В результате дописал и проверил - все работает отлично. Кстати, полезная вещь может и самому когда пригодится, а то вечно забываешь закрывать Ворд и Галактика ругается, что файл занят. На досуге допишу для себя, чтобы она сама находила по тексту, что это за документ (накладная или счет фактура или еще что, брала номер и дату и под таким именем формировала сразу после входа сохраняла файл. Тогда его получается не надо будет закрывать и можно сразу еще другой отчет формировать.
В результате дописал и проверил - все работает отлично. Кстати, полезная вещь может и самому когда пригодится, а то вечно забываешь закрывать Ворд и Галактика ругается, что файл занят. На досуге допишу для себя, чтобы она сама находила по тексту, что это за документ (накладная или счет фактура или еще что, брала номер и дату и под таким именем формировала сразу после входа сохраняла файл. Тогда его получается не надо будет закрывать и можно сразу еще другой отчет формировать.
Последний раз редактировалось ecasoft 06 апр 2012, 10:44, всего редактировалось 1 раз.
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: Решение: Сохранение печатной формы в файл с переменным и
не проверял, но если работает Человечищеecasoft писал(а):Вспомнил, что можно же просто записать макрос. Все же голова начинает чего-то там поднимать из глубин
Время ведет!