Die Funktion WinOpen()
bietet dem Entwickler neben dem Laden selbst definierter Dialoge, auch einen Zugriff auf die Windows-Standarddialoge (Common Dialog Control) wie Öffnen, Speichern, Drucken etc. Im folgenden Artikel gehe ich darauf ein, wie der Dialog Drucken in CONZEPT 16 verarbeitet werden kann.
Um den Anwender den Drucken-Dialog zur Verfügung stellen zu können, muss dieser über die Funktion WinOpen()
mit der Option _WinComPrint
geladen werden.
In diesem Dialog hat der Anwender die Möglichkeit, bestimmte Einstellungen für die anschließende Druckausgabe vorzunehmen. Zu den Einstellungen zählen zum Beispiel der Bereich der zu druckenden Seiten oder die Anzahl der Kopien.
Die Einstellungen des Fensters lassen sich nicht nur ermitteln, sondern können bereits beim Laden des Dialogs mit Werten vorbelegt werden. Nach dem Schließen des Dialogfelds werden die Daten allerdings nicht an den Drucker gesendet. Damit die Druckausgabe die Daten des Dialogs berücksichtigen kann, müssen die Werte auch bei dem CONZEPT 16-Druckjob-Objekt PpvComPrint
gesetzt werden.
Nachfolgendes Beispiel zeigt die prozedurale Verarbeitung des Drucken-Dialogs:
// Öffnen Standard-Drucker
tDevice # PrtDeviceOpen('',_PrtDeviceSystem);
// Laden Dialog "Drucken"
tComPrt # WinOpen(_WinComPrint,0,tDevice);
tComPrt->wpMinInt # tMinInt;
tComPrt->wpMaxInt # tMaxInt;
// Drucken der Seiten 2 bis 3
tComPrt->wpPageFrom # 2;
tComPrt->wpPageTo # 3;
// Setzen Radio-Button "Seiten von..bis"
tComPrt->wpFlags # _WinComPrintPageRange;
if (tComPrt->WinDialogRun() = _WinIdOk)
{
// Druckjob öffnen
tJob # PrtJobOpen('',_Sys->spPathMyDocuments
+ '\MyPrintJob.job',_PrtJobOpenRead);
if (tJob > 0)
{
// Objekt "PpvComPrint" ermitteln
tJobPrt # tJob->WinSearch('PpvComPrint');
if (tJobPrt > 0)
{
// Einstellungen des Drucken-Dialogs übernehmen
tJobPrt->wpMinInt # tComPrt->wpMinInt;
tJobPrt->wpMaxInt # tComPrt->wpMaxInt;
tJobPrt->wpPageFrom # tComPrt->wppageFrom;
tJobPrt->wppageTo # tComPrt->wppageTo;
tJobPrt->wpFlags # tComPrt->wpFlags;
}
}
// Druckausgabe starten
tJob->PrtJobClose(_PrtJobPrint,tDevice);
}
2 Antworten
@Th.Eichele
Die vorgenommenen Einstellungen bleiben erhalten und werden bei der Druckausgabe berücksichtigt.
Was ist mit den Eigenschaften, die man über den "Eigenschaften"-Button einstellt ? (z.B. beidseitiger Druck)
Gehen die verloren oder werden sie automatisch übernommen ?