Drucken des Inhalts eines Datagridview / Dataset über mehrere Seiten in VB Net

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

Es gibt 63 Antworten in diesem Thema. Der letzte Beitrag () ist von silverbob76GE.

    silverbob76GE schrieb:

    For each
    geht da nicht, Du musst mit For arbeiten, nach dem letzten Seitenwechsel (oder 0) beginnen und dann abbrechen, wenn die Seite voll ist und Dir den Index der zuletzt gedruckten Zeile merken.
    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!
    Ich greife das Thema hier noch mal auf. Ist zwar ne Weile her, aber eventuell hilfts dem ein oder anderen.

    Das durchlaufen einer DataTable mit einer "For Each"-Schleife für drucken mehrseitiger Dokumente hat für mich nicht funktioniert, da eine mitzählende Variable fehlt die angibt in welchem Datensatz man sich befindet.
    Der Index des zuletzt gedruckten Datensatzes ist nicht bekannt und wird nicht an die nächste Seite weitergegeben. Die nächste Seite fängt also nicht mit dem fortlaufenden Datensatz an
    Das war notwendig, damit der Druck fortlaufend ist.

    Die Schleife "For i = index to DataTable.rows.count -1" ermöglicht zwar das durchlaufen des DataTable, aber wenn man mit dem doppelten DIrecCast typisiert auf die DataTable zugreift, landet man immer wieder mit "current" in der gleichen Zeile.
    Daher habe ich am Ende der Schleife

    VB.NET-Quellcode

    1. BindingSource.MoveNext


    eingebunden. Man muss allerdings im BeginPrint Event

    VB.NET-Quellcode

    1. BindingSouce.MoveFirst()


    ergänzen, da man sonst bei erneuten Drucken immer nur den letzten Datensatz druckt.

    silverbob76GE schrieb:

    Das durchlaufen einer DataTable mit einer "For Each"-Schleife für drucken mehrseitiger Dokumente hat für mich nicht funktioniert,
    Da hast Du ja genau das bestätigt, was ich bereits vor 2 (zwei) Jahren geschrieben habe:

    RodFromGermany schrieb:

    geht da nicht, Du musst mit For arbeiten,
    Das sieht mir doch etrwas nach Beratungsresistenz aus. Sorry.
    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!
    ??? Du gehst gerade von falschen Annahmen aus.

    Wieso Beratungsresistenz? Bin dankbar für jede Hilfe, die ich in diesem Forum bekomme. Aber vielleicht sollte man nicht immer so schnell mit dem verurteilen sein.
    Das war mir damals schon bewusst, siehe Post 60. Dein Tip hat das damals nur bestätigt, danke dafür. Hat auch gefunzt. :)
    Allerdings musste ich untypisiert auf die Daten zugreifen, damit ich die Schleife mit einer Variablen durchlaufen konnte.

    Hatte nun an einem anderen Projekt das gleiche Problem, bin aber heute viel weiter als vor zwei Jahren. Dieses Problem konnte ich nun lösen. Dachte, das es vielleicht anderen NEWBS helfen könnte.