Report fattura

mercoledì 05 dicembre 2007 - 13.16

tyson69 Profilo | Newbie

Ciao a tutti stò uscendo pazzo da questo problema: Come inserisco un logo in un report se non ho modo di dargli dei percorsi?
Vi ringrazio in anticipo ed auguro a tutti una buona giornata!



freeteo Profilo | Guru

ciao,
devi crearti un campo blob da portare dentro al report.
Dopodiche' applichi quanto detto in questo articolo:
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx
(scaricati anche l'esempio che ti aiuta a capire meglio il codice)

solo che tu lo fai su un solo record, il cui valore del campo blob sara' messo come intestazione del tuo report...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

tyson69 Profilo | Newbie

Ciao e grazie per la risposta, ma non era quello che intendevo...
Ho comunque risolto inserendo un campo image embedded ed aggiungendo un'immagine incorporata al report.

Se qualcuno volesse la procedura + dettagliata sono a disposizione.

Grazie e ciao!

Ghitano Profilo | Newbie

IO UTILIZZO CR XI
come faccio a visualizzare il logo tramite path?

Ghitano BitBoys

freeteo Profilo | Guru

ciao Ghitano,
ti ho gia' risposto qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=22067
teniamo valido quello.

Grazie.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

Ghitano Profilo | Newbie

mi pare di aver capito che con CR XI questo problema è stato risolto?
io ho CR XI

Ghitano BitBoys

Ghitano Profilo | Newbie

CR XI - VB 2005
non so se si tratti di un bug
ma non riesco a visualizzare un file gif nel report da percorso fisso, se prendo un file jpg o bmp mi viene visualizzato correttamente

daccordo freeteo, ho visualizzato la benedetta immagine da percorso fisso
ho utilizzato un dataset con il campo blob
poi ho aggiunto al dataset una tabella per inserire i campi del report nella sezione dettagli:
"E' possibile che non riesca a far vedere contemporaneamente due tabelle nello stesso report?"
o mi fa vedere l'immagine o mi fa vedere i dati!!!
es:

Dim MioDataset As New DataSet
Dim dr As DataRow
Dim dt2 As DataTable = New DatasetProva.Ordine_TabacchiDataTable

dr = dt2.NewRow

dr(0) = 1
dr(1) = "Ciao"
dr(2) = "Prova di articolo"
dr(3) = 2.15
dr(4) = 3
dr(5) = 10

dt2.Rows.Add(dr)
MioDataset.Tables.Add(dt2)


' Questo mi serve per creare una datatable con i dati della sezione dettaglio


Dim dt As New DataTable
Dim drow As DataRow
dt.Columns.Add("Image", System.Type.GetType("System.Byte[]"))
drow = dt.NewRow
Dim fs As FileStream
' define te binary reader to read the bytes of image
Dim br As BinaryReader
' check the existance of image
'dim img as String = AppPath & "Immagini\" & Dedalo.SetUte.Default.Logo.ToString.Trim
Dim img As String = "C:\Labor\Immagini\" & "imgtmp.bmp"
Dim imgpath As String = img
If File.Exists(imgpath) Then
' open image in file stream
fs = New FileStream(imgpath, FileMode.Open)
Else ' if phot does not exist show the nophoto.jpg file
fs = New FileStream(imgpath, FileMode.Open)
End If
' initialise the binary reader from file streamobject
br = New BinaryReader(fs)
' define the byte array of filelength
Dim imgbyte(fs.Length) As Byte
' read the bytes from the binary reader
imgbyte = br.ReadBytes(Convert.ToInt32((fs.Length)))
drow(0) = imgbyte ' add the image in bytearray
dt.Rows.Add(drow) ' add row into the datatable
br.Close() ' close the binary reader
fs.Close() ' close the file stream
MioDataset.Tables.Add(dt)

' Ho inserito nel dataset la tabella con l'immagine

Dim rptobj As New CrystalReport2
rptobj.SetDataSource(Miodataset)

carico nel report l'intero dataset

FormReport.CrystalReportViewer1.ReportSource = rptobj 'set the report source
FormReport.Show()

ho mi fa vedere i records o mi fa vedere il logo
come faccio per visualizzare entrambi senza rischiare un esaurimento nervoso?

devo utilizzare i subreports?
in che modo carico in un subreport a runtime una datatable?

se vado nella sezione "Esperto Database" Nella schermata di progettazione report
all'atto in cui carico due tabelle (immagine e dati) nel dataset mi da questo messaggio di avviso:
"La presente configurazione di collegamento Contiene punti di partenza multipli.
Si avvisa che questo generalmente non è supportato"

come fare?





Ghitano BitBoys

freeteo Profilo | Guru

ciao,
ti ho allegato un esempio.

Come vedrai, è stato aggiunto un campo blob alla tabella clienti, dove solo alla prima riga viene impostato il logo (che scegli tu dalla form), e viene impostato solo la prima riga della tabella con quel campo "immagine" caricato con i Byte del file immagine.
Cosi' nel report, quando visualizza l'immagine nel ReportHeader viene visualizzato il primo record e fa la funzione del logo del report.

Io ho sempre usato questo trucchetto, non molto "elegante", ma efficace almeno fino alla versione XI, dove è stato aggiunto un campo particolare dove gli puoi dire il path dell'immagine...

ciao.

Matteo Raumer
[MCAD .net]
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