Freigeben über


Verwenden Sie den Befehl 'DRUCKER AUF NAMEN FESTLEGEN', um an einen angegebenen Drucker in Visual FoxPro zu drucken.

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