Crystal e stampa immagini da percorso fisso in vb.net

lunedì 23 febbraio 2009 - 15.02

pieroalampi Profilo | Expert

salve ho seuito il tutorial di freeteo su http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx ho trasformato il tutto in vb.net, ma non ottengo nulla, da premettere che con crystal report non ho molta dimestichezza, qualcuno ha fatto una cosa simile in modo da potermi aiutare? per il file di crystal ed il campo blod ho semplicemente trascinato il campo del database nel report, il codice è il seguente

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Data.OleDb
Imports System.IO
Imports System.Collections



Public Class FormLayout

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCarica.Click

Dim miaConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\applicazioni\database.mdb")
Dim miaDataAdapter As New OleDbDataAdapter("select * from tab", miaConn)
Dim miaTab As New DataTable("tab")
miaDataAdapter.Fill(miaTab)

'---- per comodita nel db ho messo gia la colonna immagine perche cosi' ho creato il report
'---- con la struttura giusta (cosa assolutamente necessaria per farlo elaorare al report)
'---- ma una volta creato il report corretto posso anche aggiungere in coda alle colonne
'---- che arrivano da qualsiasi sorgente quella di tipo ole nella mia datatable locale :
'---- miaTab.Columns.Add("immagine",typeof(byte[]));

'---- leggo i file immagine e poi li parcheggio nel db nella colonna ole
For Each miaDr As DataRow In miaTab.Rows
miaDr("immagine") = getFile(DirectCast(miaDr("pathimg"), String))
Next
'---- setto la sorgente del report
Dim mioReport As New ReportDocument()
mioReport.Load("G:\dati\visual studio\visual basic.net\Presenze\Presenze\LayoutCartellino.rpt")
mioReport.SetDataSource(miaTab.TableName)
CrystalReportViewer1.ReportSource = mioReport
End Sub
Private Function getFile(ByVal pFilePath As String) As Byte()
Dim mioStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
Dim mioBuffer As Byte() = New Byte(mioStream.Length - 1) {}
mioStream.Read(mioBuffer, 0, mioBuffer.Length)
Return mioBuffer
End Function
End Class

sbaglio qualcosa? il db ha qualche campo in più ma gli indirizzi nel codice puntano giusto.

Mi date una mano?

freeteo Profilo | Guru

Ciao,
ti ho risposto qui: http://www.dotnethell.it/forum/messages.aspx?ThreadID=28930 mi sembra sia lo stesso problema, giusto?

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5