Страница 1 из 1
					
				Печать нескольких отчетов из одного
				Добавлено: 06 фев 2006, 13:04
				 Anton Bobrov
				Клиенту нужно сделать такую штуку: оператор вызывает мой отчет распечатки накладной, а он в свою очередь стандартные отчеты накладной и счета-фактуры. То есть он вызывает отчет один раз, а выходных документов формируется два. Клиент мотивирует это тем, что его операторы частенько забывают распечатать одну из бумажек.
Я хотел это сделать при помощи функции RunForm, но она ругается, что формы не найдены, может подскажете, как ее использовать. И вообще в правильном ли контексте я ее применяю.
Второй вариант -- это конечно сохранить все данные в нужных переменных и массивах, но как представлю, я на FCOMе ничего еще не ваял, руки сразу опускаются. Посоветуйте, плиз, решение.
			 
			
					
				
				Добавлено: 06 фев 2006, 15:04
				 Ajax
				Форма становится доступной после объявления ее в разделе form интерфейса.
Раздел form следует после описания логической таблицы и параметров интерфейса. (с) доки 
form имя_формы_в_ интерфейсе('имя_файла_отчета.OUT','имя_формы-прототипа');
имя_формы_в_интерфейсе И имя_формы-прототипа делай одинаковыми для удобства.
Запускай в программе:
RunForm('имя формы', параметр1, параметр2, ...параметрN);
.form имя_формы(Var параметр1 : тип (н-р Date); параметр2 : тип;... параметрN:тип)
...
.endform
			 
			
					
				
				Добавлено: 06 фев 2006, 15:40
				 Anton Bobrov
				Имя формы прототипа это именно прототип или линк-форма?
			 
			
					
				
				Добавлено: 06 фев 2006, 15:41
				 Anton Bobrov
				Я так понимаю, мне нужно и фейс будет соответствующим образом организовать, чтоб он нужные данные в отчет скидывал или нет?
			 
			
					
				
				Добавлено: 07 фев 2006, 00:21
				 Ajax
				Функция RunForm (string) : PForm
Назначение
Процедура вызова формы загружает автономную форму в оперативную память.
Окно выбора форм не вызывается.
Процедура ищет формы во всех подключенных ресурсах.
Короче, про интерфейсы вам наверно не надо, а вы скомилировали свои файлы с формами в ресурс?
в файле проекта пропиши путь на файл с формой 
#make "c:\.....\test.rtf"
			 
			
					
				
				Добавлено: 07 фев 2006, 06:23
				 Anton Bobrov
				В том то и прикол, что нужно уже готовые формы запускать. Они уже есть компиленные в других ресурсниках.
			 
			
					
				
				Добавлено: 07 фев 2006, 07:07
				 Ajax
				ну тогда наверно надо подключить все эти ресурсы (..хотя так и сделали наверно.. 

 )
 
			
					
				
				Добавлено: 07 фев 2006, 10:11
				 Max_Fin
				если в пределах одного прототипа вполне можно реализовать.
если нет, то кто за вас поток будет создавать в форму?
			 
			
					
				
				Добавлено: 07 фев 2006, 10:52
				 Anton Bobrov
				Все вызываемые формы из одного прототипа. "TOVN".
			 
			
					
				
				Добавлено: 07 фев 2006, 12:44
				 Max_Fin
				тогда 
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
   Накладная № @@@@@@@@ от @@@@@@@@
.}
Сделано для примера, поэтому реализация может и сильно отличаться.
Главное как мне кажеться идея ведь  

 
			
					
				
				Добавлено: 07 фев 2006, 12:50
				 Anton Bobrov
				Спасибо. Примерно так уже и делаю. FCOM рулит. Завтра с утра к клиенту 

Хотелось просто покрасивее что-ли сделать 

 
			
					
				
				Добавлено: 07 фев 2006, 12:52
				 Max_Fin
				А так вообще клиенты не правы, их забывчивость не отговорка