Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

[gelöst] Wie kann ich aus dem Code heraus eine PrintDialog für einen RDLC-Report anzeigen?
Suspekta
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

[gelöst] Wie kann ich aus dem Code heraus eine PrintDialog für einen RDLC-Report anzeigen?

beantworten | zitieren | melden

Hallo Forum,

gibt es eine Möglichkeit aus dem Code heraus eine PrintDialog für einen RDLC-Report anzuzeigen?

Ich habe einen Report in einem ReportViewer (BerichtViewer) der wird auch normal angezeigt also bis hier her alles gut. Ich kann den Report auch als PDF-Datei aus dem Code heraus exportieren auch das funktioniert.

Nur wenn ich nach dem PDF-Export den PrintDialog aufrufe kommt die Meldung:
Fehler
System.InvalidOperationException: "Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig."

hier der Code:


  public static void Einfach_Drucken(DataTable table, string berichtdatei, Form parentform, bool mit_pdf, string pdf_name)
        {
            ReportDataSource dts = new ReportDataSource();
            dts.Name = "DataSet1";
            dts.Value = table;

            BerichtViewer rv_form = new BerichtViewer();
            rv_form.MdiParent = parentform;
            rv_form.Dock = DockStyle.Fill;
            rv_form.RV_Berichte.ProcessingMode = ProcessingMode.Local;
            rv_form.RV_Berichte.LocalReport.DataSources.Add(dts);
            rv_form.RV_Berichte.LocalReport.ReportPath = @".\Reports\" + berichtdatei;


            //Erzeugen einer PDF-Datei
            if (mit_pdf == true)
            {
                byte[] Bytes = rv_form.RV_Berichte.LocalReport.Render(format: "PDF", deviceInfo: "");

                using (FileStream stream = new FileStream(pdf_name, FileMode.Create))
                {
                    stream.Write(Bytes, 0, Bytes.Length);
                }
            }

            rv_form.RV_Berichte.RefreshReport();

            rv_form.RV_Berichte.PrintDialog();

        }

Ich wäre für Hilfe sehr dankbar...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Suspekta am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15510
Herkunft: BW

beantworten | zitieren | melden

IIRC wenn Du nach der Exception (vor allem der englischen) suchst, dann solltest Du eigentlich recht schnell den Hinweis bekommen, dass Du den Dialog zur falschen Zeit / zu früh aufrufst.
Der Dialog steht erst zu Verfügung, wenn das Rendern fertig ist; dafür gibt es eben den RenderingComplete Event.

Das beachtet Dein Code überhaupt nicht.
private Nachricht | Beiträge des Benutzers
Suspekta
myCSharp.de - Member



Dabei seit:
Beiträge: 12

Themenstarter:

beantworten | zitieren | melden

Ahhhh ... danke für den Hinweis!
Jetzt klappt alles
Danke
private Nachricht | Beiträge des Benutzers