IMPORTARE VALORE DI UNA TEXTBOX SUL REPORT

lunedì 25 aprile 2011 - 21.33
Tag Elenco Tags  VB.NET

Mercante Profilo | Newbie

Ciaoo !!!
Premetto che non conosco CrystalReport ma avrei la neccessita' di passare un valore di una textbox inserita nel frm2 al crystalreportview inserito nel frm3.

con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\star.mdb"
con.Open()
sql = "SELECT * FROM giornaliero"
ds = New DataSet("giornaliero")

da = New OleDb.OleDbDataAdapter(Sql, con)
da.Fill(ds, "giornaliero")

bs = New BindingSource()
bs.DataSource = ds
bs.DataMember = "giornaliero"
con.Close()



rpt.Load(Application.StartupPath & "\CrystalReport1.rpt")
rpt.SetDataSource(ds)
CrystalReportViewer1.ReportSource = rpt

in questo modo visualizzo il report come voglio io.... ma non so proprio da dove iniziare per poter importare il valore della mia textbox inserita nel frm2

spero di essere stato chiaro e ringrazio tutti coloro che mi daranno un aiuto

freeteo Profilo | Guru

Ciao,
per passare un dato ad un report ti basta usare un campo formula nel report stesso, metterlo dove vuoi che venga visualizzato, e poi passare il valore a questo da codice, in questo modo:

report.DataDefinition.FormulaFields["nome"].Text = "'ciao ciao'";

attenzione al fatto che se passi un valore stringa devi metterlo tra apici singoli.

Ciao.

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

Mercante Profilo | Newbie

Grazie della tua risposta sei gentilisiimo.

quindi nome sarebbe il nome del campo formula?
e "ciao ciao" sarebbe la mia textbox nel form2 ?

grazie ancora

mi da' un errore :
L'accesso alla proprieta' deve assegnare un valore alla proprieta' o utilizzare quello corrente

totti240282 Profilo | Guru

Ma invece di un campo formula un parametro non sarebbe meglio ???.
C'è solo un capitano !!!!!!

Mercante Profilo | Newbie

ciao totti mi faresti un esempio di come passare il valore della mia textbox tramite un parametro

grazie

freeteo Profilo | Guru

Ciao totti,
usare un parametro è praticamente la stessa cosa, solo che se non gli passi un valore il report ti va in errore richiedendo il parametro, mentre la formula se non gliela passi per qualche motivo ti gira lo stesso (vedi il campo vuoto).

Mercante:
Ma hai aggiunto il campo formula nel report dal designer? il "ciao ciao" era un esempio di stringa da passare, nel tuo caso sarebbe da recuperare il valore via codice e passarlo al report (sempre circondato dagli apici singoli ricordati perchè è come scrivessi dentro nell'editor del report il valore di quella formula)

Ciao.

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

Mercante Profilo | Newbie

si continua a darmi lo stesso errore

io uso visual studio 2010 e CrystalReport 13 se puo' essere di aiuto

o probabilmente sbaglio a posizionare il tuo esempio bhoooooooooo !!!!! ho appena iniziato con crystalReport

cmq grazie ancora

freeteo Profilo | Guru

Puoi postare il codice?
Magari se hai un progetto d'esempio da allegare ancora meglio così provo a modificare direttamente il codice...

Ciao.

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

Mercante Profilo | Newbie

allora se uso questa sintassi : rpt.DataDefinition.FormulaFields("totale").Text = ' "ciao ciao' " . Nella formula totale esce ciao ciao

Mentre se uso : rpt.DataDefinition.FormulaFields("totale").Text = Frm2.TextBox1.Text . Mi chiede un valore per il parametro

ma io devo inserirci il valore della textbox del frm2 .

cmq adesso il campo formula visualizza un valore ma non quello che voglio io con il report di vb6 era cosi semplice

freeteo Profilo | Guru

Ciao,
come ti dicevo prima, devi metterci gli apici singoli perchè è come stessi scrivendo dentro all'editor delle formule.
Quindi diventa:
rpt.DataDefinition.FormulaFields("totale").Text = "'" & Frm2.TextBox1.Text & "'"

Ciao.

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

Mercante Profilo | Newbie

Grazieeeeeeeeeee adesso funziona tutto quindi il codice completo diventa:

Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load

con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\star.mdb"
con.Open()
sql = "SELECT * FROM giornaliero"
ds = New DataSet("giornaliero")
da = New OleDb.OleDbDataAdapter(Sql, con)
da.Fill(ds, "giornaliero")
bs = New BindingSource() 'qui si crea la BindingSource...
bs.DataSource = ds
bs.DataMember = "giornaliero" '...che si collega al dataset che contiene la nostra tabella
con.Close()

rpt.Load(Application.StartupPath & "\CrystalReport1.rpt")
rpt.DataDefinition.FormulaFields("totale").Text = "'" & Frm2.TextBox1.Text & "'"
rpt.SetDataSource(ds)
CrystalReportViewer1.ReportSource = rpt

End Sub

Sei stato troppo gentile e paziente

freeteo Profilo | Guru

> Grazieeeeeeeeeee adesso funziona tutto quindi il codice
>Sei stato troppo gentile e paziente
Di niente figurati, siamo qui per questo.
Accetta la risposta così chiudiamo il thread come "risolto".


Ciao.

Matteo Raumer
[MCAD .net, 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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5