Kopfzeile der Druckvorschau

  • VB.NET

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

    Kopfzeile der Druckvorschau

    Hallo Freunde,
    in meinem Programm erstelle ich von einem Datagritview eine Druckvorschau. Beim erstellen, soll ein vorgefertigter Text in die Kopfzeile der Seite, geschrieben werden.

    Nur leider habe ich keinen Plan, wie ich das Anstellen soll.

    Der Text soll dann natürlich auch auf dem Ausdruck sein. Ich würde mich freuen, wenn mir jmd weiterhelfen könnte

    VB.NET-Quellcode

    1. e.Graphics.DrawString("Kopfzeile", Me.Font, Brushes.Black, 30, 30)
    oder so ähnlich (anderer Font).
    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).
    VB-Fragen über PN / Konversation werden ignoriert!

    KassiKraemerly schrieb:

    etwas über die Tabelle schreiben
    Das ist mir völlig klar.
    Da musst Du selbstverständlich die Start-Höhe Deiner Tabelle entsprechend nach unten versetzen (ein posititiver y-Offset).
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Hey Leute,
    danke VB1963.
    Also ich benutze nun den Reportviewer.

    Nun habe ich aber das Problem, dass ich mehrere Reports habe, es aber nicht schaffe, sie dynamisch an den Reportviewer zu binden.

    Beim Ausführen wird nur der ausgewählte Report angezeigt. Sobald ich aber zu einem anderen wechseln will kommt eine Fehlermeldung("Fehler bei der lokalen Berichtsverarbeitung. Die Berichtsdefinition des Berichtes 'November' wurde nicht angegeben. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.").

    Hat jmd eine Idee?
    Fehler bei der lokalen Berichtsverarbeitung. Die Berichtsdefinition des Berichtes 'November' wurde nicht angegeben. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    Ohne Code und angegebener Fehlerzeile ist es sehr schwierig, dir da zu helfen...
    Ich würde einmal so vermuten, dass der Report (?.rdlc) gar nicht angegeben wurde...
    Überprüfe das einmal mit dem Debugger...

    VB.NET-Quellcode

    1. ReportViewer1.Reset() ReportViewer1.LocalReport.ReportEmbeddedResource = "Fahrauftrag.November.rldc" ReportViewer1.LocalReport.DataSources.Clear() Me.ReportViewer1.RefreshReport()

    Wie gesagt, ich will in den Viewer, zur Laufzeit, einen anderen Report(.rdlc) anzeigen lassen. Bekomme es aber einfach nicht hin. Fehler ist ja bekannt


    Edit by Manschula: Unnötiges Vollzitat entfernt

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Manschula“ ()

    Wieso löscht du die Datasources :?:
    Die Datasources musst du angeben :!:

    VB.NET-Quellcode

    1. Dim rds As ReportDataSource = New ReportDataSource()
    2. rds.Name = NameDerBerichtsdatenQuelle
    3. rds.Value = BindingSourceX
    4. ReportViewer1.LocalReport.DataSources.Add(rds)

    Wird der Report gefunden und liegen deine Reports im Verzeichnis deiner Anwendung?
    Da solltest du auch noch schauen bzw. debuggen...

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

    Hab es jetzt auf folgenden Code abgeändert:



    VB.NET-Quellcode

    1. Me.Tbl_NovemberTableAdapter.Fill(Me.FahrauftragDataSet2.tbl_November)Dim RDS As ReportDataSource = New ReportDataSource()
    2. RDS.Name = "TblNovemberBindingSource" RDS.Value = "Fahrauftrag.November.rdlc" Me.ReportViewer1.LocalReport.DataSources.Add(RDS)Me.ReportViewer1.RefreshReport()



    Nun kommt kein fehler mehr, aber der andere Report wird nicht geladen
    Du hast die .Name und .Value-Eigenschaften verwechselt angegeben...
    Den Namen der Berichtsdatenquelle erfährst du wie folgt:
    den Bericht öffnen und mit Strg+Alt+D die Berichtsdaten aufrufen und dort kannst du den Namen abschauen...
    (siehe angehängtes Bild)

    Und noch etwas: VB Tag richtig benutzen
    man kann deine Codeschnippsel schlecht lesen...
    Bilder
    • ReportBerichtsDatenQuelle.JPG

      32,76 kB, 452×266, 106 mal angesehen
    Ich Depp bekomm es einfach nicht auf die Reihe.

    Also entweder, ich steh voll aufm Schlauch, oder ich bin einfach nur Unfähig. Vllt auch beides. Mein Code schaut jetzt wie folgt aus.


    Me.Tbl_NovemberTableAdapter.Fill(Me.FahrauftragDataSet2.tbl_November)
    Dim RDS As ReportDataSource = New ReportDataSource()
    RDS.Name = "FahrauftragDataSet2.tbl_November"
    RDS.Value = "November.rdlc"
    Me.ReportViewer1.LocalReport.DataSources.Add(RDS)
    Me.ReportViewer1.RefreshReport()
    Bei RDS.Value hast du deinen Report zugewiesen, aber hier musst du eine Instanz der Berichtsdatenquelle zuweisen!
    Das kann in diesem Fall eine Datatable oder Bindingsource sein...
    (schaue hier...)
    so sollte es gehen...
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Me.Tbl_NovemberTableAdapter.Fill(Me.FahrauftragDataSet2.tbl_November)
    2. Dim RDS As ReportDataSource = New ReportDataSource()
    3. RDS.Name = "???"' siehe genau bei Post #12
    4. RDS.Value = Me.FahrauftragDataSet2.tbl_November
    5. Me.ReportViewer1.LocalReport.DataSources.Add(RDS)
    6. Me.ReportViewer1.RefreshReport()

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