Immagini Dinamiche su Crystal Report

venerdì 31 maggio 2013 - 14.03
Tag Elenco Tags  VB.NET  |  .NET 4.0

grisu70 Profilo | Newbie

Ciao a tutti,
sono un programmatore fai da te in .net ... e quindi vi chiedo già di portare pazienza.
Ho fatto un programma in VB 2012 con Crystal report 13.05.
Il report dovrebbe mostrare un logo che l'utente sceglie dal file system prima di eseguire il report stesso.
Ho cercato nei vari forum e ma il mio problema rimane.

Nel report ho inserito un oggetto OLE e nel tab immagini ho provato nella formula "Posizione grafica" ho provato a mettere (naturalmente in tempi diversi) prima un parametro e poi un formula, che passo in VB prima di eseguire il report.
Entrambi mi danno un risultato strano :
La prima volta che lancio il report, l'oggetto ole non mostra il contenuto del file.
Se chiudo il form del report e lo rieseguo, a volte mi compare il logo , a volte no.
Inoltre alla chiusure del report, faccio un dispose dell'oggetto report, dell'oggetto reportviewer e del form che lo contiene.
Come e' possibile ?
Cosa sbaglio ?


Se invece da Visualstudio in progettazione del report, compilo il parametro o la formula, e scelgo anteprima, il file viene visualizzato correttamente.

E' un bug ? o devo fare qualcosa di particolare nel codice di VS ?
Come prova, nel corpo del report, ho inserito sia la stampa del parametro , che la stampa della variabile, e queste mostrano sempre e correttamente il percorso del file che devono stampare anche quando l'immagine non viene visualizzata.



Questo il codice che ho utilizzato per il parametro :

frmreport.CrView.ReportSource = frmreport.CrReport

Dim paramFields As New CrystalDecisions.Shared.ParameterFields()
Dim paramField As New CrystalDecisions.Shared.ParameterField()
Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue()
Dim paramField2 As New CrystalDecisions.Shared.ParameterField()
Dim discreteVal2 As New CrystalDecisions.Shared.ParameterDiscreteValue()
paramField.ParameterFieldName = "PercorsoLogo"
Dim str As String = LogoPath
discreteVal.Value = str
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
frmreport.CrView.ParameterFieldInfo = paramFields
frmreport.CrView.ReuseParameterValuesOnRefresh = True


Mentre quando ho provato ad utilizzare la formula ho utilizzato :
frmreport.CrReport.DataDefinition.FormulaFields("URLVB").Text = Chr(34) & LogoPath & Chr(34)


dove frmreport.crview e' il report viewer
e rfrmerport.crreport e' l'oggetto report

Grazie in anticipo
Fabrizio



[AGGIORNAMENTO]

Problema risolto....
il problema accade solo sulla macchina di sviluppo e non sui client dove installo l'applicazione

Fabrizio

freeteo Profilo | Guru

Ciao grisu70,
grazie per aver postato la soluzione.

Se hai un po' di tempo, dai un'occhiata anche a questo tricks nato per versioni precedenti di crystal ma cmq applicabile anche alla tua:
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx


Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

joeputrisino Profilo | Junior Member

Ciao ne abbiamo già parlato su una altro post.

http://www.dotnethell.it/forum/messages.aspx?ThreadID=42260

Penso che questo tu lo possa chiudere con un accetta!!! Qui c'è!!! L'altro era già chiuso!!!




Maurizio Maccarrone
New Phonia Ltd
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5