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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
VVS
Сообщения: 1
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение VVS »

Подскажите пожалуйста, как привязать имя файла выходной формы отчета (например накладной) к номеру накладной. Т.е. нужно чтобы каждая накладная (после печати) сохранялась под уникальным именем . Заранее спасибо за любую консультацию.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

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

Сообщение 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 скорее просто... :) Если получится конечно, т.к. пока не сформировалась форма, файл занят... Вообщем, пробовать надо. :)
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Морзе сказал -

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

Это точно ;D

Можно попробовать выходной поток в свою структуру запихать и выводить потом...
paul
Посетитель
Сообщения: 37
Зарегистрирован: 29 мар 2005, 17:49
Откуда: урал -

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

Сообщение 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
paul
Посетитель
Сообщения: 37
Зарегистрирован: 29 мар 2005, 17:49
Откуда: урал -

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

Сообщение paul »

Пробовал в ARD-отчете
вставить этуже f.
из 1281 строчек исходника скопировал
1059 строчек. Видать сам себя копирует
то, что уже полжено на диск, не учитывая буфера обмена, но есть возможность в начале в писать ".f 'f.out'", а как сделать макро подстановку другого значения?
Grom
Местный житель
Сообщения: 276
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Северо-Запад Много

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

Сообщение 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

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