Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie den Befehl "DRUCKER AUF NAMEN FESTLEGEN" verwenden, um auf einen angegebenen Drucker zu drucken.
Originalproduktversion: Visual FoxPro
Ursprüngliche KB-Nummer: 162798
Übersicht
Um anzugeben, dass ein Visual FoxPro-Bericht an einen bestimmten Drucker gesendet werden soll, ist es üblich, entweder den Windows-Standarddrucker zu ändern oder die PROMPT
Klausel für den REPORT
Befehl zu verwenden, damit der Benutzer den Drucker auswählen kann. Es ist jedoch möglich, den gewünschten Zieldrucker zu ändern, ohne eines dieser Techniken zu verwenden. In diesem Artikel werden einige Methoden zur Verwendung von SET PRINTER TO NAME [Druckername] erläutert.
Weitere Informationen
Mit dem Befehl "DRUCKER AUF NAME FESTLEGEN" kann der aktuell ausgewählte Drucker in Visual FoxPro auf einen beliebigen unter Windows installierten Drucker festgelegt werden. Die Liste der installierten Drucker kann in ein Array mit der APRINTERS()
Funktion gelesen werden, oder ein einzelner Druckername kann vom GETPRINTER()
Dialogfeld zurückgegeben werden.
Notiz
Damit dieses Verfahren funktioniert, muss das Berichtsformular im Dialogfeld "Druckereinrichtung" mit dem im Dropdownfeld "Name" ausgewählten Standarddrucker gespeichert werden. Dieses Dialogfeld wird über das Dialogfeld "Seite einrichten" im Menü "Datei" aufgerufen.
Beispiel 1
Das folgende Programm zeigt das GETPRINTER()
Dialogfeld an, um die Auswahl eines Druckers von den installierten Druckern zuzulassen. Wenn im Dialogfeld "GetPrinter " "OK" ausgewählt ist, wird ein Bericht mit dem Namen "Test" an den ausgewählten Drucker gesendet. Wenn die Schaltfläche "Abbrechen" im Dialogfeld "GetPrinter " ausgewählt ist, wird der Bericht nicht gedruckt.
* Beginning of program for Example 1
* *******************************************************
* This program assumes a report called Test which has been
* saved with the default printer in the Print Setup dialog.
*
LOCAL lcPrinter
lcPrinter = ''
lcPrinter = GETPRINTER()
IF !EMPTY(lcPrinter)
SET PRINTER TO NAME (lcPrinter)
REPORT FORM Test TO PRINTER NOCONSOLE
ELSE
WAIT WINDOW 'Print Job Cancelled' TIME 1
ENDIF
*
* End of program for Example 1
Notiz
Unter Visual FoxPro 3.0 und 3.0b unterscheidet sich das GETPRINTER()
Dialogfeld, und das Dialogfeld ermöglicht unter anderem das Ändern von Einstellungen für Hoch- und Querformat. Diese werden ignoriert, wenn der Bericht gedruckt wird.
Beispiel 2
Das folgende Programm zeigt ein benutzerdefiniertes Formular mit einer Dropdownliste an, die mit einem Array gefüllt ist, das mit APRINTERS() erstellt wurde. Wenn Sie die Befehlsschaltfläche "Bericht drucken" auswählen, wird ein Bericht namens "Test" an den ausgewählten Drucker gesendet. Wenn Sie die Schaltfläche "Abbrechen" auswählen, wird der Bericht nicht gedruckt.
* Beginning of program for Example 2
*********************************************************
* This program assumes a report called Test which has been
* saved with the default printer in the Print Setup dialog.
*
PUBLIC oform
oform=CREATEOBJECT("form1")
oform.SHOW
DEFINE CLASS form1 AS FORM
AutoCenter = .T.
Height = 158
Width = 327
Caption = "Printer Dialog"
Name = "Form1"
DIMENSION aprintarray[1]
ADD OBJECT combo1 AS COMBOBOX WITH ;
ROWSOURCETYPE = 5, ;
ROWSOURCE = "thisform.aPrintArray", ;
HEIGHT = 25, ;
LEFT = 24, ;
STYLE = 2, ;
TOP = 48, ;
WIDTH = 276, ;
NAME = "Combo1"
ADD OBJECT command1 AS COMMANDBUTTON WITH ;
TOP = 108, ;
LEFT = 48, ;
HEIGHT = 27, ;
WIDTH = 84, ;
CAPTION = "Print Report", ;
DEFAULT = .T., ;
NAME = "Command1"
ADD OBJECT command2 AS COMMANDBUTTON WITH ;
TOP = 108, ;
LEFT = 180, ;
HEIGHT = 25, ;
WIDTH = 84, ;
CANCEL = .T., ;
CAPTION = "Cancel", ;
NAME = "Command2"
PROCEDURE combo1.INIT
LOCAL lnI
FOR lnI = 1 TO APRINTERS(THISFORM.aprintarray)
* Note below that you are adding a leading space. This
* prevents a network printer in Windows NT from appearing
* disabled in the combo due the leading "\"
THISFORM.aprintarray[lnI,1] = SPACE(1) + ;
THISFORM.aprintarray[lnI,1]
ENDFOR
* Set initial value of combo
THIS.Requery()
IF '5.0' $ VERSION()
* This sets the combo initial value of the dropdown to the
* default printer - This will not work in 3.0/3.0b since
* SET('PRINTER', 2) is not available
FOR EACH a_element IN THISFORM.aprintarray
IF UPPER(SET('PRINTER',2))$UPPER(a_element)
THIS.Value = a_element
ENDIF
ENDFOR
ELSE
* If in 3.0/3.0b, set to first element in list.
THIS.Value = THISFORM.aprintarray[1]
ENDIF
ENDPROC
PROCEDURE command1.CLICK
SET PRINTER TO NAME (ALLTRIM(THISFORM.combo1.VALUE))
REPORT FORM test TO PRINTER NOCONSOLE
RELEASE THISFORM
ENDPROC
PROCEDURE command2.CLICK
RELEASE THISFORM
ENDPROC
ENDDEFINE
*
* End of program for Example 2
Referenzen
- Visual FoxPro 5.0–Hilfe
- Visual FoxPro 6.0–Hilfe