424 messaggi dal 25 marzo 2005
Ho il seguente problema urgente da risolvere:
sto creando un report con crystalreport di ASP e utilizzo 4 tabelle impostate sul dataset1 e relazionate fra di loro.
Ho impostato questo codice in chiamata del report :
Dim vselect As String
Dim conn As OleDb.OleDbConnection
Dim rpt As New StampaTrasf
'Dim rpt As New CrystalReport1
' Dim rpt As New prova2
Dim myconnection As OleDb.OleDbConnection
Dim mycommand As New OleDb.OleDbCommand
Dim myDA As New OleDb.OleDbDataAdapter
Dim myDS As New Dataset1
Dim ConnDBPres As String = connetti_dbPres()
conn = New OleDb.OleDbConnection(ConnDBPres)
mycommand.Connection = conn
mycommand.CommandText = "Select * MOVDETTE2 "
mycommand.CommandType = CommandType.Text
myDA.SelectCommand = mycommand
myDA.Fill(myDS, "TMOVDETT2")
rpt.SetDataSource(myDS)
'lancio il report per la stampa
CrystalReportViewer1.ReportSource = rpt

mi succede che finchè utilizzo una sola tabella mi funziona bene ma con più tabelle sul Dataset1 non funziona, e sembrà ovvio in quanto
credo che sia errata l'istruzione myDA.Fill(myDS, "TMOVDETT2")
che fa riferimento a una sola tabella e io dovrei passargli solo la select, vi pare ? Mi date qualche suggerimento a riguardo e cioè come impostare il codice quando si utilizzano più tabelle nel report e relazionate frazionate di loro ?
grazie
184 messaggi dal 21 febbraio 2005
non so se ho ben capito il tuo problema.
cmq io quando creo un report con crystal mi creo un file dataset(.xsd) da associare al report e ne trascino dentro i campi
poi mi creo una query che puo' andare in join con 100 tabelle ed i campi estratti devono avere lo stesso nome di quelli inseriti nel file xsd.
faccio la query butto i risultati in un dataset e lo associo al report
in questo modo funziona

spero di essere stato chiaro e utile
ciao
424 messaggi dal 25 marzo 2005
In VB 6 la select veniva creata automaticamente non appena si costruiva il report e si faceva la join fra le tabelle, esiste anche in cristal report di ASP quasta possibilità ?
Inoltre mi puoi dare un esempio di come impostato il tuo codice per l'esecuzione del report oppure nel mio caso, nel codice cosa c'è che non va ?
Grazie.
Modificato da Mirco65 il 28 settembre 2005 12.40 -
184 messaggi dal 21 febbraio 2005
io l'ho fatto solo per .net
424 messaggi dal 25 marzo 2005
Ma la query la crei nel report o gliela passi e in che modo ?
Ciao e Grazie !
184 messaggi dal 21 febbraio 2005
no io creo un file xsd dove dichiaro i campi che devono stare nel report
poi creo il report associando questo file xsd e trascinadno quindi i campi di questo file dentro al report.
poi creo una pagina dove inserisco il crystalviewer, in questa pagina faccio la query e associo il dataset con i risultati al datasource del report

report.SetDataSource(ds)

poi carico il report
report.Export()


chiaramente se nel file xsd metti i campi
pippo numeric
pluto varchar
nella query ci devono essere pippo (numeric ) e pluto (varchar)


spero di essere stao chiaro


ciao
Ivan
424 messaggi dal 25 marzo 2005
Aspetta ! forse tu sarai stato chiaro ma io no !
Seguimi e vedi se tutto è ok nei passaggi :
in effetti io sul dataset1.xsd ho impostato due tabelle relazionate (prima ne avevo una e col codice che ti ho mostrato funzionava);
successivamente in esplora campo ho inserito i campi provenienti dal dataset1 di XSD ... giusto ?
per fare una prova ne ho messi solo tre sul report di campi : due di una tabella e una di un'altra;
il problema è che con il codice impostato e che hai visto, io prima gli passavo anche il nome della tabella prima di lanciare il report, ma ora come si sviluppa la cosa se adopero due tabelle relazionate ?
Io usavo l'istruzione myDA.Fill(myDS, "TABELLA") di cui myds è definito come New Dataset1 ma ora che uso nel Dataset1 più di una tabella, come faccio ?
Ma dov'è che sbaglio ?
Grazie

P.S. per rendermi conto , posso avere gentilmente una descrizione di esempio più dettagliata della codifica cone le varie definizioni e come gli passi la select prima dell'export ? anche perchè sono alle prime armi.

Modificato da Mirco65 il 28 settembre 2005 15.50 -
Modificato da Mirco65 il 28 settembre 2005 15.52 -
184 messaggi dal 21 febbraio 2005
siamo in due ad essere alle prime armi..
perchè metti la relazione delle tabelle dentro al file xsd?
qual'è il vantaggio?
noi fa prima a fare
select a.campo, b.campo from a,b
where a.id=b.id


e mettere una sola tabella dentro al file xsd?

sbaglio?


cmq il codice è questo
ds = new dataset()
' SQLDataSetFill è un mio metodo che riempie il dataset ds
SQLDataSetFill(ds, "select * from table ")
'Aggancio il dataset al report
crpt.SetDataSource(ds)
'Aggancio il report al viewer nella webform
CrystalReportViewer1.ReportSource = crpt

crpt.export()

Modificato da ivan1981 il 28 settembre 2005 16.07 -
Modificato da ivan1981 il 28 settembre 2005 16.07 -
Modificato da ivan1981 il 28 settembre 2005 16.08 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.