Выводит панель на печать. |
Краткое описание
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» означает номер интерфейса пользователя) | Тип данных | Описание |
.PrinterName | string | Имя принтера или файла.В фоновом режиме или без вывода диалогового окна печати; вывод на печать также можно направить в локальный файл. Поддерживаемый формат: PDF (*.pdf) и Postscript (*.ps). Синтаксис:»file:///path/file.pdf»; Примеры:Linux: «file:///tmp/file.pdf»;Windows: «file:///C:/Temp/file.ps»; |
.Landscape | bool | Книжный или альбомный |
.Background | bool | off = в качестве фона при выводе панели на печать используется белый цвет. |
.Scale | float | Коэффициент масштабирования |
.FitToPage | bool | Возможность масштабирования вне зависимости от установок по умолчанию принтера. |
ПРИМЕР В следующем примере доступные принтеры сначала опрашиваются с помощью функции «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); } |
Используется для объекта
Видеосистема |
Доступность
Интерфейс пользователя |
См. также