Печать нескольких отчетов из одного
Модераторы: m0p3e, edward_K, Модераторы
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 16 ноя 2005, 06:54
- Откуда: Владивосток
- Контактная информация:
Печать нескольких отчетов из одного
Клиенту нужно сделать такую штуку: оператор вызывает мой отчет распечатки накладной, а он в свою очередь стандартные отчеты накладной и счета-фактуры. То есть он вызывает отчет один раз, а выходных документов формируется два. Клиент мотивирует это тем, что его операторы частенько забывают распечатать одну из бумажек.
Я хотел это сделать при помощи функции RunForm, но она ругается, что формы не найдены, может подскажете, как ее использовать. И вообще в правильном ли контексте я ее применяю.
Второй вариант -- это конечно сохранить все данные в нужных переменных и массивах, но как представлю, я на FCOMе ничего еще не ваял, руки сразу опускаются. Посоветуйте, плиз, решение.
Я хотел это сделать при помощи функции RunForm, но она ругается, что формы не найдены, может подскажете, как ее использовать. И вообще в правильном ли контексте я ее применяю.
Второй вариант -- это конечно сохранить все данные в нужных переменных и массивах, но как представлю, я на FCOMе ничего еще не ваял, руки сразу опускаются. Посоветуйте, плиз, решение.
Форма становится доступной после объявления ее в разделе form интерфейса.
Раздел form следует после описания логической таблицы и параметров интерфейса. (с) доки
form имя_формы_в_ интерфейсе('имя_файла_отчета.OUT','имя_формы-прототипа');
имя_формы_в_интерфейсе И имя_формы-прототипа делай одинаковыми для удобства.
Запускай в программе:
RunForm('имя формы', параметр1, параметр2, ...параметрN);
.form имя_формы(Var параметр1 : тип (н-р Date); параметр2 : тип;... параметрN:тип)
...
.endform
Раздел form следует после описания логической таблицы и параметров интерфейса. (с) доки
form имя_формы_в_ интерфейсе('имя_файла_отчета.OUT','имя_формы-прототипа');
имя_формы_в_интерфейсе И имя_формы-прототипа делай одинаковыми для удобства.
Запускай в программе:
RunForm('имя формы', параметр1, параметр2, ...параметрN);
.form имя_формы(Var параметр1 : тип (н-р Date); параметр2 : тип;... параметрN:тип)
...
.endform
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 16 ноя 2005, 06:54
- Откуда: Владивосток
- Контактная информация:
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 16 ноя 2005, 06:54
- Откуда: Владивосток
- Контактная информация:
Функция RunForm (string) : PForm
Назначение
Процедура вызова формы загружает автономную форму в оперативную память.
Окно выбора форм не вызывается.
Процедура ищет формы во всех подключенных ресурсах.
Короче, про интерфейсы вам наверно не надо, а вы скомилировали свои файлы с формами в ресурс?
в файле проекта пропиши путь на файл с формой
#make "c:\.....\test.rtf"
Назначение
Процедура вызова формы загружает автономную форму в оперативную память.
Окно выбора форм не вызывается.
Процедура ищет формы во всех подключенных ресурсах.
Короче, про интерфейсы вам наверно не надо, а вы скомилировали свои файлы с формами в ресурс?
в файле проекта пропиши путь на файл с формой
#make "c:\.....\test.rtf"
Последний раз редактировалось Ajax 07 фев 2006, 07:01, всего редактировалось 1 раз.
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 16 ноя 2005, 06:54
- Откуда: Владивосток
- Контактная информация:
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 16 ноя 2005, 06:54
- Откуда: Владивосток
- Контактная информация:
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
тогда
1) при печати твоей накладной
свали все данные во временные таблицы (либо таблицы в памяти)
2) сделай проход по твоим таблицам и выводи
3) ставь где надо разрыв страницы
к примеру
Сделано для примера, поэтому реализация может и сильно отличаться.
Главное как мне кажеться идея ведь
1) при печати твоей накладной
свали все данные во временные таблицы (либо таблицы в памяти)
2) сделай проход по твоим таблицам и выводи
3) ставь где надо разрыв страницы
к примеру
Код: Выделить всё
.create view vSopr
from TmpGrN
where
((
Word(777) == TmpGrN.wList
));
.Feieds
NSopr
DSopr
.EndFields
.begin
vSopr.delete all TmpGrN;
end.
.{
Накладная № @@@@@@@@ от @@@@@@@@
.begin
vSopr.ClearBuffer(#TmpGrN);
vSopr.TmpGrN.wList := Word(777);
vSopr.TmpGrN.SS[1] := NSopr;
vSopr.TmpGrN.DS[1] := DSopr;
vSopr.insert current TmpGrN;
end.
.}
!здесь символ разрыва страницы
!и начало другой накладной
.{table 'vSopr.TmpGrN'
.Feieds
vSopr.TmpGrN.SS[1]
vSopr.TmpGrN.DS[1]
.EndFields
Накладная № @@@@@@@@ от @@@@@@@@
.}
Главное как мне кажеться идея ведь
Жду выхода Вселенная 2.12!
-
- Новичок
- Сообщения: 22
- Зарегистрирован: 16 ноя 2005, 06:54
- Откуда: Владивосток
- Контактная информация: