Stampa dati da due viste prese dal db

mercoledì 07 settembre 2011 - 10.38
Tag Elenco Tags  C#  |  VB.NET  |  Visual Studio 2010  |  SQL Server 2008 R2  |  Crystal Reports 8.5  |  Crystal Reports 10.0  |  Crystal Reports XI  |  Crystal Reports 2008

victordotnet Profilo | Newbie

Salve in pratica ho seguito questa guida
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx

dove sono riuscito finalmente a risolvere il problema della visualizzazione del report per poi procedere alla stampa del documento relativo al progetto che sto costruendo. Il mio prob è che ho dei dati presi da due viste separate e quando avvio il report mi stampa solo i dati relativi alla prima vista come faccio a farmi stampare anche quelli dell'altra vista? Spero di essere stato chiaro e spero mi diate una mano....grazie mille a risentirci

freeteo Profilo | Guru

Ciao,
cosa intendi da 2 viste separate? Sono collegate l'una con l'altra, oppure vuoi che siano "unite"?
In quest'ultimo caso ti basta fare la query sql:
SELECT ... FROM vista1 UNION SELECT ... FROM vista2

Ciao.

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

victordotnet Profilo | Newbie

ciao e grazie per la risposta. No le due viste non sono unite ne le voglio unire sono separate ma si riferiscono ai dati di un intero documento e quando eseguo il report mi stampa soltanto i dati relativa alla prima vista ma non alla seconda....:(

freeteo Profilo | Guru

Ok, ma hai 2 tabelle nel report? Gli passi i dati delle viste rispettive ad entrambe via codice?
Magari posta un esempio di codice che usi che magari riesco a capire meglio nel dettaglio...
Grazie.

Ciao.

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

victordotnet Profilo | Newbie

Allora gli passo due viste ( in pratica sarebbe meglio una sola vista così da evitare ogni problema ma sarebbe un pò dispendioso ora) beh mo ti passo il codice dentro al report, la stampa del report è di una Fattura
_______________________________________________________
'mi prelevo i dati dall'intere vista cioè viewdocumenti
Dim command As New SqlCommand("select * from viewdocumenti where iddocumento=" & idrecordtestata & " order by iddocumento", SQLCon) 'seleziono tutte le righe della tabella
reader = command.ExecuteReader() 'leggo tutte le righe della tabella per le quali il codice è quello selezionato

mydatatable.Load(reader) 'copio le righe lette e memorizzate in reader nella nuova tabella

Dim command2 As New SqlCommand("select * from viewdocumentidettaglio where iddetricevuta=" & idrecordriga & " order by iddetricevuta", SQLCon)
reader2 = command2.ExecuteReader()
mydatatable.Load(reader2)

PERCORSO = Application.StartupPath
strWhere = "{viewdocumenti.iddocumento} = " & idrecordtestata
strwhere2 = "{viewdocumentidettaglio.iddetricevuta} = " & idrecordriga

mReport.Load("stampadocumenti.rpt")
mReport.RecordSelectionFormula = strWhere
mReport.RecordSelectionFormula = strwhere2
For Each tbCurrent In mReport.Database.Tables
tliCurrent = tbCurrent.LogOnInfo
MsgBox(tliCurrent.TableName, MsgBoxStyle.Information)
With tliCurrent.ConnectionInfo
.ServerName = MDIParent1.iphostsql
.UserID = MDIParent1.loginsql
.Password = MDIParent1.passwsql
.DatabaseName = MDIParent1.dbname
End With

If Not tbCurrent.TestConnectivity Then
MsgBox("errore di connesione", MsgBoxStyle.Information)
End If

tbCurrent.SetDataSource(mydatatable)
tbCurrent.ApplyLogOnInfo(tliCurrent)

Next tbCurrent

Stampaelencodoc.CrystalReportViewer1.ReportSource = mReport
Stampaelencodoc.CrystalReportViewer1.Refresh()
Stampaelencodoc.Show()
____________________________________________________________________

spero di essere chiaro....a risentirci...grazie

freeteo Profilo | Guru

>mReport.RecordSelectionFormula = strWhere
>mReport.RecordSelectionFormula = strwhere2
questo pezzo di codice non mi è chiaro, come mai imposti 2 volte la RecordSelectionFormula, e soprattutto, la imposti di fatto solo al valore della strWhere2 dato che è l'ultima assegnazione?

Ciao.

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

victordotnet Profilo | Newbie

In pratica tra le tante prove pensavo si prendeva in pasto entrambe le viste in questo modo, ma non ho risolto nulla quindi l'ho commentato...:( devo porti n'altro esempio?

freeteo Profilo | Guru

>In pratica tra le tante prove pensavo si prendeva in pasto entrambe
>le viste in questo modo,
no, quel filtro viene applicato successivamente alla query sql, dal report, e può tornare utile per un facile switch tra le viste di dati.
Il fatto è che cmq devi passare al report tutti i dati (non filtrati quindi) e poi usare la selectionformula per filtrarli...ecco il funzionamento di quella proprietà


>ma non ho risolto nulla quindi l'ho
>commentato...:( devo porti n'altro esempio?
ma tu cosa passi al report?
Magari se puoi posta un esempio con il report e i dati che gli passi, un progettino d'esempio insomma, con dati "fittizi" chiaramente, se riesci è sicuramente più facile indagare sul motivo per cui non ti si presentano i dati che vorresti...

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