printPanel()

Выводит панель на печать.

Краткое описание

int printPanel(string modulName, string panelName, string spec, int options);

Параметры

ПараметрыОписание
modulNameМодуль, в котором находится панель для вывода на печать
panelNameПанель для вывода на печать
specПо умолчанию = «» и подразумевает вывод на печать дочерних панелей (выводится на печать в виде снимка экрана), «panelOnly» = выводит на печать панель, без дочерних панелей (без снимков экрана дочерних панелей).
ПараметрыС помощью параметра options можно определять доступные варианты вывода на печать.
Доступны следующие константы (значения):

PPO_NO_DIALOGS (0) — не открывает диалоговые окна

PPO_ALL_DIALOGS (1) — открывает все диалоговые окна [по умолчанию]

PPO_PRINTER_DIALOG (2) — открывается только диалоговое окно вывода на печать

PPO_BACKGROUND_DIALOG (4) — открывается только диалоговое окно фоновых опций

PPO_NO_BORDER (8) — не допускает печать границы вокруг панели

Диалоговое окно фоновых опций используется для определения необходимости изменения фонового цвета на белый цвет или отсутствия такой необходимости.

Возвращаемое значение

Функция «printPanel()» возвращает 0 или, в случае ошибок, -1.

Описание

Функция «printPanel()» выводит на печать панель «panelName» в модуле «modulName».

Печать

В случае необходимости вывода панели на печать открывается окно настроек принтера. Окно настроек принтера открывается по умолчанию. В параметре опций можно задавать открытие всех окон или только окна принтера/окна определения фонового цвета.

Приведенные ниже примеры демонстрируют то, как вывести панель на печать с помощью либо атрибутов внутренней точки данных, или с помощью параметра для открытия окна настроек принтера.

Соответствующие элементы точки данных внутренней точки данных _Ui:

Элемент точки данных в узле точки данных _Ui_X.Print («X» означает номер интерфейса пользователя)Тип данныхОписание
.PrinterNamestringИмя принтера или файла.В фоновом режиме или без вывода диалогового окна печати; вывод на печать также можно направить в локальный файл. Поддерживаемый формат: PDF (*.pdf) и Postscript (*.ps).

Синтаксис:»file:///path/file.pdf»;
 Примеры:Linux: «file:///tmp/file.pdf»;Windows: «file:///C:/Temp/file.ps»;
.LandscapeboolКнижный или альбомный
.Backgroundbooloff = в качестве фона при выводе панели на печать используется белый цвет.
.ScalefloatКоэффициент масштабирования
.FitToPageboolВозможность масштабирования вне зависимости от установок по умолчанию принтера.
ПРИМЕР
В следующем примере доступные принтеры сначала опрашиваются с помощью функции «getPrinterNames()». Панель будет выведена на печать с помощью доступного принтера. Настройки принтера устанавливаются посредством внутренней точки данных пользовательского интерфейса.

Вместо «dpSet()» необходимо использовать «dpSetWait()», так как в противном случае интерфейс пользователя может не получить новую ссылку, в случае нового вызова «printPanel()» и из точки данных будут взяты старые/предыдущие значения.
main()
{
dyn_string name, share;
getPrinterNames(name, share);
 
/* Функция опроса имен доступных принтеров */
DebugN(name);
DebugN(share); /*Использует принтер, сохраненный в этой переменной */
 
int PDruck;
 
/* Установка настроек принтера. Заданы настройки точки данных пользовательского интерфейса под номером 4. Панель выводится на печать третьим доступным принтером. Альбомный формат не используется, цвет фона — белый, масштабирование не применяется */
 
dpSetWait(«_Ui_4.Print.PrinterName:_original.._value», share[3], «_Ui_4.Print.Landscape», FALSE, «_Ui_4.Print.Background», FALSE, «_Ui_4.Print.Scale», 0, «_Ui_4.Print.FitToPage», FALSE);
 
string modulName = myModuleName(); /* Используется текущий модуль*/
string panelName = «print_panel»; /* На печать выводится панель под именем «print_panel» */
int options = PPO_NO_DIALOGS; //Диалоговые окна не используются
PDruck = printPanel(modulName,panelName,»panelOnly», options); /* На печать выводится панель «print_panel» в текущем модуле, окно настройки печати не демонстрируется */
DebugN(«Function successful if value=0»,PDruck );
}
Следующий пример демонстрирует то, как выводится на печать панель с помощью окна настроек принтера. На печать выводится панель под именем «print_panel» из текущего модуля.

main() 
{
int panelDr;
string panelName = «print_panel»;
string modulName = myModuleName();
int options = PPO_PRINTER_DIALOG; //открывает окно настроек принтера
panelDr = printPanel (modulName,panelName,»panelOnly», ShowDialog);
DebugN(«Function successful «, panelDr, modulName, panelName,options);
}

ЗначокПРИМЕР
Следующий пример выводит на печать текущую панель в текущем модуле с помощью принтера по умолчанию без специальных опций.
main() {printPanel(myModuleName(), myPanelName());
}

ЗначокПРИМЕР
Вывод на печать панели из иерархии панелей (с «naviModule», «mainModule» и «infoModule»).
#uses «pt.ctl»   

main()
{
int ModuleNumber;
string modName;
string curr_mode = myModuleName();
 
pt_moduleNumber(curr_mode,ModuleNumber);
 
modName = pt_buildModuleName(«mainModule», ModuleNumber);
 
string panelName = rootPanel(pt_buildModuleName(«mainModule», ModuleNumber));
 
printPanel(modName,panelName);
}

Используется для объекта

Видеосистема

Доступность

Интерфейс пользователя

См. также

printRootPanel()Reporting with Panels (Silent print)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *