Druckvorschau neu einladen

  • VB.NET
  • .NET (FX) 3.0–3.5

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

    Druckvorschau neu einladen

    Hallo,

    ich hab ein bisschen mit den druckfunktionen rumgespielt.
    Ich habe eine Druckvorschau und die zeigt Daten aus einer Datenbank an.
    es werden immer nur ein paar Datensätze angezeigt(Verkaufte Artikel zu einem Kassenbon)

    das geht auch aber nur einmal.
    wie kann ich denn die Druckvorschau neu einladen, bzw. die nächsten Daten in die Druckvorschau laden?

    VB.NET-Quellcode

    1. Private Sub DruckVorschau()
    2. Dim PrintDoc As New PrintDocument
    3. AddHandler PrintDoc.PrintPage, AddressOf Me.Printtext
    4. PrintDoc.PrinterSettings.PrinterName = "Microsoft XPS Document Writer"
    5. PrintPreviewDialog1.Document = PrintDoc
    6. PrintPreviewControl1.Document = PrintPreviewDialog1.Document
    7. PrintPreviewControl1.AutoZoom = True
    8. End Sub
    9. Private Sub Printtext(ByVal sender As Object, ByVal e As PrintPageEventArgs)
    10. Dim ArtikelString As String = vbCrLf & vbCrLf
    11. e.Graphics.DrawString(Form1.FirmenName, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 1, 10)
    12. e.Graphics.DrawString(Form1.Strasse, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 1, 30)
    13. e.Graphics.DrawString(Form1.PLZ, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 1, 50)
    14. e.Graphics.DrawString(Form1.Stadt, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 1, 70)
    15. e.Graphics.DrawString(Form1.Steuernummer & vbCrLf, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 1, 90)
    16. BonDatenEinlesen(MenueBonNummer, Form1.MyBuchdatum)
    17. For i = 0 To ArtikelArray.Count - 1
    18. ArtikelString += ArtikelArray(i)
    19. ArtikelString += vbCrLf
    20. ArtikelString += vbCrLf
    21. Next
    22. e.Graphics.DrawString(ArtikelString, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 1, 110)
    23. End Sub
    Setz nen Haltepunkt und schau dir an was da zur Laufzeit passiert. Schau insbesondere was in ArtikelArray drin steht.

    Zudem solltest du diesen Thread durcharbeiten: Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Deswegen: Form1.Stadt und ähnlichem
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Anmerkung: Du erstellst in Zeile#2 immer ein neues Dokument und verknüpfst es mit Printtext. Dadurch entstehen immer neue Dokumente, die Du aber weder irgendwo wieder vernichtest noch sie wieder von DruckVorschau mittels RemoveHandler entkoppelst. Erstell doch formularweit nur ein einziges PrintDokument und wiederverwende es.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Jou.
    @frifri Arbeite mehr mit dem Designer, weniger mit selbst instanziierten Controls.
    Schmeiß Deine PrintDoc-Instanz raus.
    Zieh Dir ein PrintDocument im Designer auf das Form und doppelklicke drauf, da wird das Print-Event als Prozedur angelegt, weise die Properties im Designer zu.
    Ein PrintPreviewControl1 brauchst Du nicht, denn es ist im PrintPreviewDialog1 enthalten.
    ====
    Gugst Du Drucken mehrseitiger Dokumente
    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!

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