ReportViewer Drucken ohne Dialog

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    ReportViewer Drucken ohne Dialog

    Hallo,

    ich suche heute schon den ganzen Tag nach einer Möglichkeit, einen Ausdruck zu starten ohne den Printdialog.

    Ich halte mich immer an diese Anleitung: ReportViewer-Tutorial für Anfänger

    Wo ich einfach aber nicht schlau werde, ist das mit dem Direkt druck.

    Ich habe auf meiner Form nen Button (Drucken), der Drucker ist auf in einem Parameter gespeichert (der Drucker ist auch vorhanden) und die Menge an Kopien kommt auch aus nem Parameter - Werte werden auch Gültigkeit geprüft!.

    So mein Code beim Button Drucken:

    VB.NET-Quellcode

    1. ' Button
    2. ' Drucken --------------------------------------------
    3. Dim _printersettings As New Printing.PrinterSettings()
    4. _printersettings.Copies = _PrnCopies
    5. _printersettings.PrinterName = _PrnPrintername
    6. ReportViewer1.PrintDialog(_printersettings)



    Dann kommt aber immer das Printdialog. Wie kann ich das abschalten, so dass er direkt druckt?

    Vielleicht kann mich einer auf die richtige Spur bringen, wäre super !

    Vielen Dank vorab, Gruß Michl

    michl75 schrieb:

    Dann kommt aber immer das Printdialog. Wie kann ich das abschalten, so dass er direkt druckt?

    So muss die Print-Methode beim aktuell ausgewählten Standarddrucker funktionieren...

    VB.NET-Quellcode

    1. Dim DeinReport As New LocalReport
    2. DeinReport.ReportEmbeddedResource = "DeinProjektName.DeinReportName.rdlc"
    3. DeinReport.DisplayName = "DeinReportName"
    4. 'diverse Reportparameter für LocalReport angeben
    5. DeinReport.SetParameters(New ReportParameter("DeinReportParameter", "Value"))
    6. 'usw...
    7. '
    8. 'benötigte DataSources für LocalReport angeben
    9. DeinReport.DataSources.Add(New ReportDataSource("DeinReportName", DeineBindingSource))
    10. 'usw...
    11. '
    12. 'Aufruf der Druckmethode ohne Dialog
    13. Dim prt = DirectPrinting.getInstance 'hier wird die Singleton-Klasse DirectPrinting instanziiert
    14. Dim response = prt.DirectPrint(DeinReport, False) 'so wird die Methode DirectPrint ohne Speichern angewendet

    Es wird aber immer nur 1 Kopie gedruckt! (Die .Copies-Eigenschaft könnte man aber leicht in die DirectPrinting-Klasse implementieren...)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()

    Hallo VB1963,

    ich hab es eben übernommen, eigentlich gleich wie in meinen anderen Druckausgaben auch - ReportViewer mit Setparameter, Databindung usw. Nur das "Ende" ist anders.
    Nach dem ich die DirectPrinting meinem Projekt hinzugefügt habe und mit Copies angepasst habe ... kam genau das raus was ich gesucht habe!

    Vielen DANK! ! !

    Gruß
    Michl

    Nachtrag: Hab jetzt alle Printausgaben in unserem Programm umgestellt! Funktioniert super!! Habe es noch erweitert mit andere Ausgabenamen bei Speichern, Drucken wird direkt gesteuert über in DB vorgegebene Drucker usw.

    Nochmals vielen Dank !!!!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „michl75“ ()