Mehrere Charts auf ein Dokument drucken

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von masteink.

    Mehrere Charts auf ein Dokument drucken

    Hallo,

    Wieder einmal eine Drucken Frage :)

    Ich hab in meiner Applikation mehrere Charts (in verschiedenen Tabs)
    Nun würde ich gerne mehrere Charts auf ein Dokument drucken.

    Über die Eigenschaft

    Quellcode

    1. ​Chart1.Printing.Print(True/False)
    hab ich gesehen kann ich charts direkt drucken, jedoch finde ich keine Möglichkeit das ich zB. drei auf ein Dokument drucke.
    Mit der obigen Print Methode wird jedes mal ein neues Dokument gedruckt.

    Hoffe auf Hilfe :)

    Lg

    masteink schrieb:

    charts direkt drucken
    druckt Charts direkt, dieses Vorgehen weiß nichts von anderen Charts, auch Excel kann das nicht.
    Wenn Du mehrere Charts auf ein Blatt drucken willst, musst Du dies "zu Fuß" machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hy,

    Danke für die Antwort.
    Ich stell die Frage jetzt mal anders.

    Ich habe drei Charts, diese drei möchte ich auf einmal drucken (egal ob jede Chart auf ein eigenes Blatt gedruckt wird)
    Gibt es eine Möglichkeit das dabei nur ein Print Dialog erscheint und mir die drei Dokumente dann ausdruckt?
    Ich möchte nur vermeiden, das für jede der drei Chart ein PrintDialog kommt

    Lg

    masteink schrieb:

    die drei Dokumente dann ausdruckt
    Kein Problem.
    Gugst Du hier.
    Du musst die gedruckten Zeilen zählen und beim entsprechenden Zählerstand das richtige Chart drucken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Chart1.Printing.Print(True/False)
    Such diese Methode mal im ObjectBrowser aus, und poste hier, was im ObjectBrowser dazu in der Zusammenfassung (Summary) steht.

    Wenn du das geschafft hast, sollte alles klar sein.

    Den ObjectBrowser kannste hier kennenlernen: VisualStudio richtig nutzen (Google ist nicht deine Mami)
    Hallo,

    Public Sub Print(showPrintDialog As Boolean)
    Member of System.Windows.Forms.DataVisualization.Charting.PrintingManager

    Summary:
    Prints the chart.

    Parameters:
    showPrintDialog: true to indicate that a print dialog should be shown; otherwise, false.

    Aber das hilft mit hier nicht weiter....
    Ich habe *drei* Charts, diese drei Charts will ich auf einmal drucken, sprich nur einmal den PrintDialog aufrufen für alle drei Charts.
    prima, jetzt gugge genau:

    VB.NET-Quellcode

    1. Public Sub Print(showPrintDialog As Boolean)
    Nomen est Omen!
    Was meinst du, könnte Microsoft sich dabei gedacht haben, dem Argument den Namen showPrintDialog zu geben, und es ist Boolean, also ShowDialog ja oder nein?

    Ach, bei "Parameters" stehts ja sogar, was sie sich gedacht haben.

    Also welchen Sinn hat dieser Parameter? Haste das mal ausprobiert - funzt das iwie nicht, wie ich denke, dass da dokumentiert ist, wies funzen soll? (weil probiert habich nicht)
    Hallo ErfinderDesRades,

    Ich weiß was du meinst und ja ich hab es schon ausprobiert.

    Ich hab es so gemacht:
    chart1.Printing.Print(True)
    chart2.Printing.Print(False)
    chart3.Printing.Print(False)

    Wenn ich jetzt beim Dialoag beispielsweise "Print to PDF" wähle, dann wird chart1 als PDF gespeichert, jedoch die anderen 2 an den DefaultPrinter gesendet.
    Ich finde leider nicht heraus, wie ich von chart1 die PrinterSettings abspeichere, damit ich diese dann an chart2 und chart3 weitergeben kann.

    Verstehst du jetzt eher was mein Problem ist?

    Danke für die Hilfe.

    Lg
    ah - das Prob scheint, den Default-Printer temporär umzustellen.
    Jo, weiß ich auch nicht - google mal...

    Oder du suchst was, wie man die Chart1-PrinterSettings an Chart2 dran macht. Geht warhscheinlich auch iwie (nur weiß ich auch nicht), und wäre etwas niedriger aufgehängt, als in globale System-Einstellungen einzugreifen.
    Sorry für die Verwirrung ErfinderDesRades, wollte dich nicht ärgern oder so, es ging mir nur um die PrinterSettings eigentlich.
    Was der Parameter macht usw. war mir schon bewusst ;)

    Ja jetzt funktioniert es:
    chart.Printing.Print(True)
    chart2.Printing.PrintDocument.PrinterSettings = chart.Printing.PrintDocument.PrinterSettings
    chart2.Printing.Print(False)
    chart3.Printing.PrintDocument.PrinterSettings = chart.Printing.PrintDocument.PrinterSettings
    chart3.Printing.Print(False)

    Danke nochmals für die Hilfe und sorry für meine schwache Fragenstellung :(

    Lg