Показать сообщение отдельно
Старый 17.06.2009, 16:53   #8  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
есть 2 варианта: первый и второй

первый:
1. перед печатью подменяем принтер в 78-й таблице
2. печатаем
3. восстанавливаем настройку

выглядит так
1.
IF _PrinterSelection.GET(USERID,0) THEN BEGIN
_OldPrinter := _PrinterSelection."Printer Name";
_PrinterSelection."Printer Name" := Васья;
_PrinterSelection.MODIFY();
END ELSE BEGIN
_PrinterSelection.INIT();
_PrinterSelection."User ID" := USERID;
_PrinterSelection."Report ID" := 0;
_PrinterSelection."Printer Name" := Васья;
_PrinterSelection.INSERT();
END;

2. Report.print!!!

3.
_PrinterSelection.GET(USERID,0);
IF _OldPrinter <> '' THEN BEGIN
_PrinterSelection."Printer Name" := _OldPrinter;
_PrinterSelection.MODIFY();
END ELSE
_PrinterSelection.DELETE();
_____________________________________________________________

второй:
создаем юнит NewCU со свойством SingleInstanse Трю:
там пишем:
SetPrinter(_PrinterName : Text[250])
PrinterName := _PrinterName;
и
GetPrinter() : Text[250]
EXIT(PrinterName);


дорабатываем 1 кю FindPrinter

IF NewCU.GetPrinter <> '' THEN
EXIT(NewCU.GetPrinter);

при запуске отчета из любой ф-ции делаем так:
1. NewCU.SetPrinter(Васья)
2. Report.print!!!
3. NewCU.SetPrinter('')