Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
SetDataSource in vb.net
lunedì 23 luglio 2007 - 15.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Tatiana
Profilo
| Newbie
15
messaggi | Data Invio:
lun 23 lug 2007 - 15:38
Buongiorno a tutti.
Sto sviluppando un progetto con vb2005 e crystal report XI. Ho messo nella mia form una datagridview che viene associata ad una tabella creata in memoria (non presente nel database) con un'istruzione di SELECT di una o più tabelle. Il tutto funziona perfettamente ma ora mi trovo a voler stampare i risultati trovati. Ho Cercato un po' ingiro e ho trovato l'istruzione SETDATASOURCE tra le funzioni di Crystal report viewer. Ho creato un report utilizzando i file TTX e ho passato nome del report, nome del file e tabella al mio report richiamato da vb2005 ma mi da un errore sulla memoria.
Dove sbaglio?
Grazie
Tatiana
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 24 lug 2007 - 19:17
ciao,
puoi postare 1po di codice? cosi' capisco meglio...
cmq sia, intanto ti posso anticipare che se usi il metodo "setDataSource" gli puoi passare un datatable contente le varie colonne e le righe, questo almeno per il grosso dei vari tipi di connessioni disponibili.
Non ho esperienza con TTX, potrebbero esserci dei problemi ma magari intanto vediamo di escludere eventuali errori di codice...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Tatiana
Profilo
| Newbie
15
messaggi | Data Invio:
mer 25 lug 2007 - 07:32
Ecco un po' di codice. Ora cerco di spiegarvi bene come funziona:
In questa prima parte mi creo una tabella che lego ad una datagridview tramite un bindingSource. sQuery è la variabile testo che contiene la mia SELECT
Me.dgvTrovati.AutoGenerateColumns = True
bsDati.DataSource = GetData(sQuery)
TabeSta = bsDati.DataSource
Me.dgvTrovati.DataSource = bsDati
Private Shared Function GetData(ByVal oledbComando As String) As DataTable
Dim Conne As New OleDbConnection(My.Settings.csMangiOr2007)
Dim Comando As New OleDbCommand(oledbComando, Conne)
Dim taTrovati As OleDbDataAdapter = New OleDbDataAdapter()
taTrovati.SelectCommand = Comando
Dim Tabella As New DataTable
Tabella.Locale = System.Globalization.CultureInfo.InvariantCulture
taTrovati.Fill(Tabella)
TabeSta=tabella
Return Tabella
End Function
Una volta creata la tabella (con il dbug sono riuscita a vedere che la variabile TabeSta che è quella che passo alla form di Stampa tramete una property contiene un certo numero di colonne e di righe) richiamo una mia form di stampa dalla quale ho estrapolato un po' del codice (spero che si capisca)
' FSta11.NomeRep = CartReport & "\CercaAli.rpt"
' FSta11.FileRep(1) = CartReport & "\RicercaAli.ttx"
Come nome della connessione gli passo un file TTX (creato con Crydtal report Xi) che contiene i campi di esempio che mi servono per creare il mio report
Dim App As CRAXDRT.Application
Dim Rep1 As CRAXDRT.Report
App = New CRAXDRT.Application
Rep1 = App.OpenReport(NomeReport)
'rinfrescare i dati
Rep1.DiscardSavedData()
If strFileRep(1).IndexOf("ttx") = 0 Then
For CicloI = 1 To Rep1.Database.Tables.Count
DBTable = Rep1.Database.Tables(CicloI)
Erase sParametri
'CPProperties = DBTable.ConnectionProperties
'CPProperties.DeleteAll()
sParametri = Split(strFileRep(CicloI), ";")
iMaxP = UBound(sParametri)
Next CicloI
Else
Rep1.Database.SetDataSource(nTabe)
End If
In questo estrapolato di codice controllo se si tratta di un report che contiene un file ttx o di un report che legge i dati direttamente dal database. La parte relativa al database non l'ho trascritta tutta e comunque funziona perfettamente. Se invece devo passare al mio report una tabella che non c'è sul database uso l'istruzione setdatasource(ntabe) dove ntabe è la tabella che arriva nel modo correto alla form di stampa ma quando eseguo il programma esso si ferma sull'istruzione setdatasource dandomi un errore di MEMORIA
Crystal11.ReportSource = Rep1
Crystal11.ViewReport()
Questo è il codice e spero di avervi spiegato bene il funzionamento e cosa interessa fare a me.
Grazie
Tatiana
Torna su
Stanze Forum
Elenco Threads
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 !