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

Имя выходной формы.

Добавлено: 24 апр 2003, 21:09
VVS
Подскажите пожалуйста, как привязать имя файла выходной формы отчета (например накладной) к номеру накладной. Т.е. нужно чтобы каждая накладная (после печати) сохранялась под уникальным именем . Заранее спасибо за любую консультацию.

Re: Имя выходной формы.

Добавлено: 25 апр 2003, 12:43
m0p3e
Просто никак...
Сложно:
1. Модифицировать интерфейс накладных.
2. Написать свой интерфейс вызываемый из формы накладной.
3. Попробовать поработать с объектом file. Например функцией:
4.1.1. Функция CopyMoveFile (String, String, Boolean) : Boolean
Назначение
Функция копирует или перемещает (если параметр IsDel = True) файл с именем From в файл с именем To. Возвращает True при успешном выполнении операции.
Описание
function CopyMoveFile (From,To : String; IsDel : Boolean) : Boolean;
Параметры
From : String - имя копируемого или перемещаемого файла.
To : String - имя файла, в который копируется или перемещается файл From.
IsDel : Boolean - если IsDel = True, то файл перемещается, иначе - копируется.
Возвращаемое значение
Функция возвращает логическую истину True при успешном выполнении операции.
===========
3 скорее просто... :) Если получится конечно, т.к. пока не сформировалась форма, файл занят... Вообщем, пробовать надо. :)

Re: Имя выходной формы.

Добавлено: 25 апр 2003, 12:59
Den
Морзе сказал -

>Если получится конечно, т.к. пока не >сформировалась форма, файл занят

Это точно ;D

Можно попробовать выходной поток в свою структуру запихать и выводить потом...

Re: Имя выходной формы.

Добавлено: 25 апр 2003, 13:51
paul
Проверял - Работает схема 100%
Form fPrintNakl('OTCH.out','KNTRPR') with novisual;
...
...


fPrintNakl.ShowFile('Отчет');
CopyMoveFile('out\'+UserName + '\OTCH.out','C0' + DateToStr(Cur_Date,'DDMM')+'.out', false);
end.
:P

Re: Имя выходной формы.

Добавлено: 25 апр 2003, 14:27
paul
Пробовал в ARD-отчете
вставить этуже f.
из 1281 строчек исходника скопировал
1059 строчек. Видать сам себя копирует
то, что уже полжено на диск, не учитывая буфера обмена, но есть возможность в начале в писать ".f 'f.out'", а как сделать макро подстановку другого значения?

Re: Имя выходной формы.

Добавлено: 27 апр 2003, 03:56
Grom
M0P3E:
"Просто никак ..."
А если вот так :
Делаем ДВЕ формы..... В Галактике при выборе форм сначала формируем "рабочий документ" а затем "служебный"..... Надеюсь понятно ;)

Для тех кто сразу не смекнул раскроем многоточие:
Первая форма - форма требуемого документа (накладной например). В ней вставляем
.F "c:\myfile.out"
Во второй форме можно удалить практически всё, что не касается структуры формы (из выводимых полей можно оставить номер) и написать какой-нибудь текст, например для накладной:
.linkform 'tovn_03_z33' prototype is tovn
.NameInList '2. СЛУЖЕБНАЯ ФОРМА ****'
.group 'Накладные на продажу'
.fields
Номер
.endfields
.{
.begin
CopyMoveFile('c:\myfile.out', 'c:\Otchets\'+Номер+'.out', false)
end.

Накладная сохранена в файле ^.out

Н А Ж М И Т Е К Л А В И Ш У ESC
.if tovn01
.end
.if tovn02
.end
.{
.}
.{ CHECKENTER TOVNUSL
.}
.{
.}
.}
.endform

А дальше проводим "работу с пользователями" ;) и втолковываем им о НЕОБХОДИМОСТИ сразу после печати документа формировать "СЛУЖЕБНУЮ ФОРМУ"