Bilder im ReportViewer

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von cavell.

    Bilder im ReportViewer

    Hallo

    ich habe ein Formular in den per Darg and Drop Bilder einfügen werden.
    Nun möchte ich diese Bilder in einem Report haben . Damit ich diese als PDF speichern kann.

    Ich finde keinen Ansatz wie ich die eingefügten Bilder In die BilderBox (ReportViewer) bekommen
    Danke Euch
    Hier mein Code zum Einfügen

    VB.NET-Quellcode

    1. Private Sub PictureForm_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) _
    2. Handles MyBase.DragDrop
    3. ' Dateinamen werden übergeben (auch via FireFox getestet)
    4. If e.Effect = DragDropEffects.Copy AndAlso e.Data.GetDataPresent(DataFormats.FileDrop) Then
    5. Try
    6. Dim fileNames = TryCast(e.Data.GetData(DataFormats.FileDrop), String())
    7. If fileNames IsNot Nothing AndAlso fileNames.Length > 0 Then
    8. ' 1. Datei laden und der PictureBox zuweisen
    9. Using image As System.Drawing.Image = System.Drawing.Image.FromFile(fileNames(0))
    10. ' und der PictureBox zuweisen
    11. If Me.PictureBox1.Image IsNot Nothing Then
    12. Me.PictureBox1.Image.Dispose()
    13. Me.PictureBox1.Image = Nothing
    14. 'IM Feld 1 ist ein Bild -Also Bild in BOX Nr. 2
    15. Me.PictureBox2.Image = DirectCast(DirectCast(image, Bitmap).Clone(), Bitmap)
    16. End If
    17. If Me.PictureBox2.Image IsNot Nothing Then
    18. Me.PictureBox2.Image.Dispose()
    19. Me.PictureBox2.Image = Nothing
    20. Me.PictureBox2.Image = DirectCast(DirectCast(image, Bitmap).Clone(), Bitmap)
    21. End If
    22. Me.PictureBox1.Image = DirectCast(DirectCast(image, Bitmap).Clone(), Bitmap)
    23. End Using
    24. End If
    25. Catch ex As Exception
    26. MessageBox.Show("Drag Drop Fehler: " & ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
    27. End Try
    28. End If
    29. End Sub
    30. Private Sub PictureForm_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) _
    31. Handles MyBase.DragOver
    32. ' Dateinamen werden akzeptiert
    33. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    34. e.Effect = DragDropEffects.Copy
    35. End If
    36. End Sub

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

    Kannst Du bitte mal Deinen Quellcode mit dem [ VB ]-Tag formatieren, dass er so aussieht:

    VB.NET-Quellcode

    1. For i = 0 to 10
    2. Debug.WriteLine(i.ToString
    3. Next
    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!
    @cavell
    Das Einfügen externer Bilder in einen Reportviewer-Report geht normal nicht.
    Versuche die EnableExternalImages-Eigenschaft von ReportViewer.LocalReport auf True zu setzen...
    siehe hier

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

    Danke für die Antwort,

    werde es Probieren,.

    Wenn Ich Dich richtig verstehe müsste ich den Pfad der Bilder Temponär speichern und in den Report den Pfad einlesen.
    (die Bilder sollen auf jedenfall in der Form sichtbar sein, weil zu jeden Bild ein Beschreibung notwendig ist (TextBox.)
    Oder hast Du noch einem andernen Tipp.
    Wenn es sich um mehrere bis viele Bilder handelt, verwende gleich eine Datenbank, wo die Bilder mit den zugehörigen Kommentaren hinterlegt sind.
    Erstelle dann deinen Report mit der zugrundeliegenden Datenbank...
    Es gibt auch die Möglichkeit, dass du einige Bilder im Report mit dem Fenster Berichtsdaten einbettest und sie danach mit Hilfe des Assistenten in die Bildkomponente des Reports überträgst...
    Hallo,
    hatte ich schon daran gedacht , doch leider habe ich es noch nicht hinbekommen die Bilder aus der Datenbank zu holen.
    werde mich am Wochenende wieder daran setzen.

    Melde mich wieder , vielen Dank jetzt bin ich erstmal auf den richtigen Weg. :)
    @VB1963

    Also ich bekomme es Ohne Hilfe nicht hin. Bilder im Report anzuzeigen

    Über eine Datenbank
    ich kann ohne Probleme den ersten Datensatz einlesen Value = First ("...") wie kann ich den den nächsten Datensatz anzeigen lassen?
    Und wie könnte ich einen Filter einbauen . Es können Bis zu 12 Bilder vorhanden sein. Also 1- 12 Bilder. Habe ich Bild 1 :Bitte anzeigen , habe ich im Datensatz 2 ein Bild bitte anzeigen usw

    Externe Daten

    ich bekomme auch keine Externen Bilder angezeigt
    Value = "File:// D:\VB2010\Bilder.bild1.bmp" --> Funktioniert nicht :( (Me.ReportViewer1.LocalReport.EnableExternalImages = True ist eingefügt) einen anderen Hinweiß habe ich nicht gefunden

    Ich hoffe Du kannst mir helfen
    Danke
    Hi!

    Wie ich gerade lese, funktioniert das mit den externen Daten glaub ich, nur über einen Berichts- oder Webserver...

    Bei Verwendung einer DB braucht man nur den Filter bei der Bindingsource auf den gewünschten Datensatz einstellen.
    Für die Datensatzauswahl habe ich ein NumericUpDown-Steuerelement genommen.
    Ich habe dir ein kleines Sample angehängt (Bilddaten sind von der Nordwind-DB ausgeliehen)...
    Hier kann man die Bilder durchblättern und im Reportviewer anschauen und drucken...
    Dateien
    • Pictures00.zip

      (572,53 kB, 178 mal heruntergeladen, zuletzt: )
    Hi

    Danke Dir, Es hilft mir bei einem anderen Problem.
    Doch mein großes Problem ist, im Report brauche ich mehere Bilder.
    Ich finde nur den Befehl First () und Last () für das Image(Bilderbox)->Value im Report. Aber wie spreche ich ein bestimmen Datensatz an .
    Eine Idee ?
    Was meinst du jetzt?
    Willst du mehrere Bilder auf einer Reportseite haben oder wie jetzt?
    In dieser Befehlsliste gibt es nicht mehr...
    daher die Bindingsource verwenden und Filter auf aktuelles Element einstellen...

    Du kannst die Bilder auch in Tabellenform einstellen, siehe Anhang...
    Dateien
    • Pictures01.zip

      (574,19 kB, 167 mal heruntergeladen, zuletzt: )

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

    Ich habe jetzt für mich das Problem gelöst . Bilder einfügen und als PDF speichern!

    hier meine Lösung für alle

    1)ich habe eine Form wo man jedes beliebiges Bild per Drag and Drop einfügen kann. ( wenn man mehr Bilder als zwei einfügen möchte wie in meinen Fall, muss der Code oben natürlich umgeschrieben werden)
    2)Den Bildpfad werden in einen Access Datenbank geschrieben z.B C:\Bild1.bmp
    Pfad der Datei auslesen mit
    Dim Pfad As String = System.IO.Path.GetFullPath(fileNames(0))

    3) Im Report Viewer eine Tabelle einfügen. Daten in die Tabelle einfügen
    4) per Toolbox „Bild“ in die Bilder Spalte einfügen, Extern setzen und für „Value“ folgendes eingeben
    ="file://" & Fields!NameDerSpalte.Value
    Fertig!
    5) Wenn die Bilder nicht mit der Tabelle angeordnet werden sollen, dann mehre Tabellen erzeugen und den Filter Funktion nutzen (Bild1 , 2….)