Crystal report in visual studio 2005

venerdì 12 settembre 2008 - 13.26

Mau67 Profilo | Expert

Ho un problema con crystal report, nel senso che se richiamo un report passandogli i dati da un form riesco a visualizzare i dati all'interno, invece se passo i parametri di più tabelle non visualizzo i dati perchè?

Vi posto il codice che uso ditemi dove sbaglio grazie

Dim mioreport As New ReportDocument


If Not File.Exists(FILE_NAME) Then
MsgBox(FILE_NAME & " Stringa di connessione mancante.")
Return
End If
Dim sr As StreamReader = File.OpenText(FILE_NAME)
Dim sqlString As String
sqlString = sr.ReadLine()
Me.ToolStripStatusLabel2.Text = (sqlString) 'Questo è solo per verificare!
sr.Close()

Dim objConnection As New SqlConnection(sqlString)
Dim data As Date = Microsoft.VisualBasic.DateValue(Now)

'--- riempio la tabella
Dim tabella, tabella1, tabella2, tabella3, tabella4 As New DataTable

Dim miaDataAdapter As New SqlDataAdapter("SELECT IDUtente,CodiceFiscale, Grado, Cognome," & _
"Nome, LuogoNascita, DataNascita," & _
"Indirizzo, Residenza, CodEnte," & _
"EnteAppartenenza, IndirizzoEnte, CapEnte," & _
"LuogoEnte, IstitutoCredito, Agenzia, IndirizzoIstituto," & _
"LuogoIstituto, Cap," & _
"Prov, PaeseCoord, CinEstero, Cin," & _
"Abi, Cab, CC, ForzaArmata," & _
"Categoria, LivParCod, Sistema, Pagamento," & _
"Missione, CodMissione,InizioMissione, FineMissione, Gruppo FROM Anagrafica Where DataInserimento <= '" & Data & "' And Gruppo = '" & cboGruppo.Text & "'", objConnection)

miaDataAdapter.Fill(tabella)

miaDataAdapter.SelectCommand.CommandText = "SELECT IDGrado, Grado, ForzaArmata," & _
"Categoria, Ordine, LivParCod," & _
"GradoEcon,Importo, Irpef" & _
" FROM Gradi Order By Ordine"
miaDataAdapter.Fill(tabella1)

miaDataAdapter.SelectCommand.CommandText = "SELECT IDUtente, Dal, Al," & _
"Giorni, Mese, Anno," & _
"Motivo FROM Assenza Where Mese = '" & cboMese.Text & "' And Anno = '" & txtAnno.Text & "'"
miaDataAdapter.Fill(tabella2)

miaDataAdapter.SelectCommand.CommandText = "SELECT IDUtente, Dal, Al," & _
"Giorni, Mese, Anno," & _
"Motivo, Dovuto, Percepito, Totale, FC, CET, NETTORIT, IRPEF, NETTOMANO FROM Conguaglio Where Mese = '" & cboMese.Text & "' And Anno = '" & txtAnno.Text & "'"
miaDataAdapter.Fill(tabella3)

miaDataAdapter.SelectCommand.CommandText = "SELECT IDMissione, Missione, DescrizioneMissione," & _
"OreOmnicomprensiva, Forfettaria, Gruppo FROM Missione"
miaDataAdapter.Fill(tabella4)



'--- carico 1oggetto repotr e gli seto le tabelle sorgenti
mioreport.Load(AppDomain.CurrentDomain.BaseDirectory + "rptVariazioni.rpt")
mioreport.Database.Tables(0).SetDataSource(tabella)
mioreport.Database.Tables(1).SetDataSource(tabella1)
mioreport.Database.Tables(1).SetDataSource(tabella2)
mioreport.Database.Tables(1).SetDataSource(tabella3)
mioreport.Database.Tables(1).SetDataSource(tabella4)


CrystalReportViewer1.ReportSource = mioreport

Grazie
Mau67

freeteo Profilo | Guru

>'--- carico 1oggetto repotr e gli seto le tabelle sorgenti
>mioreport.Load(AppDomain.CurrentDomain.BaseDirectory + "rptVariazioni.rpt")
> mioreport.Database.Tables(0).SetDataSource(tabella)
> mioreport.Database.Tables(1).SetDataSource(tabella1)
> mioreport.Database.Tables(1).SetDataSource(tabella2)
> mioreport.Database.Tables(1).SetDataSource(tabella3)
> mioreport.Database.Tables(1).SetDataSource(tabella4)
qui non so se sia un errore di codice o solo di copiatura qui nel forum, ma stai settando le ultme 4 tabelle sempre nella tabella di indice "1" e non di indice corretto.
Verifica se anche nel codice del programma è così e sistemalo, perchè li resto del codice mi sembra corretto...

ciao.

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

Mau67 Profilo | Expert

Si di questo me ne sono accorto e lo corretto in questo modo

--- carico 1oggetto repotr e gli seto le tabelle sorgenti
mioreport.Load(AppDomain.CurrentDomain.BaseDirectory + "rptVariazioni.rpt")
mioreport.Database.Tables(0).SetDataSource(tabella)
mioreport.Database.Tables(1).SetDataSource(tabella1)
mioreport.Database.Tables(2).SetDataSource(tabella2)
mioreport.Database.Tables(3).SetDataSource(tabella3)
mioreport.Database.Tables(4).SetDataSource(tabella4)

Il problema è che nel report mi visualizza solo i dati relativi alla tabella anagrafica, invece i dati delle altre 4 tabelle non me li visualizza.

Ci stò sbattendo la testa e non riesco a venirne fuori.

Altre idee?

Grazie

Mau67

freeteo Profilo | Guru

ciao,
strano...ma queste altre tabelle sono in qualche sottoreport magari?
Oppure non è che le strutture delle tabelle siano diverse? Intendo che nel report hai 3 campi e caricando la datatable non sono gli stessi campi, oppure hanno un ordine diverso? Le strutture delle tabelle dei report devono essere uguali sia come tipi che come ordine di colonne...controlla se non ci sia questa incongruenza...
ciao.

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

Mau67 Profilo | Expert

Ho controllato era una tabella che gli passavo che mi creava il problema grazie di consigli Ciao
Mau67
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