Ho un report di cristallo che funziona correttamente quando uso DSN
come origine dati. Il problema è che sto usando il set di dati ora. Il set di dati contiene tutta la tabella di cui ho bisogno e lo sto compilando con i dati del database utilizzando la procedura memorizzata. Ma, in questo modo, viene generato un errore: "Missing Parameters
".Non è possibile associare correttamente il report Crystal quando si utilizza il set di dati, mostrando i parametri mancanti
che sto facendo, come di seguito:
Fase 1: Creazione Dataset1.xsd
e con l'inserimento di tutti i necessari data connections
tables
dal database in esso.
Fase 2: Dare data source
per segnalare utilizzando database expert
come Dataset1.xsd
Fase 3: Inserimento dei dati utilizzando stored procedure nel set di dati e quindi la creazione di un'istanza di Dataset1
e la fusione dei dati provenienti da set di dati da Dataset 1
esempio.
Il mio codice per recuperare i dati dal database e quindi unire che per Dataset1
istanza e dare che come sorgente di rapporto di cristallo è il seguente:
Private Sub ReportByDataset(ByVal rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument)
'new code
Dim myConnection As New SqlClient.SqlConnection()
'myConnection.ConnectionString = "server= (local)\NetSDK;database=pubs;Trusted_Connection=yes"
Dim ds As New DataSet1
myConnection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("HighriseContractingWebConnectionString").ConnectionString
myConnection.Open()
Dim MyCommand As New SqlClient.SqlCommand()
MyCommand.Connection = myConnection
MyCommand.CommandText = "SP_Web_GetReportTables"
MyCommand.CommandType = CommandType.StoredProcedure
Dim MyDA As New SqlClient.SqlDataAdapter()
MyDA.SelectCommand = MyCommand
Dim myDS As New DataSet
MyDA.Fill(myDS)
myConnection.Close()
ds.Tables("RABill_RPT").Merge(myDS.Tables(0), MissingSchemaAction.Ignore)
myDS.Tables(0).Reset()
ds.Tables("RA_bills").Merge(myDS.Tables(1), MissingSchemaAction.Ignore)
ds.Tables("Work_Completion").Merge(myDS.Tables(2), MissingSchemaAction.Ignore)
ds.Tables("contractor").Merge(myDS.Tables(3), MissingSchemaAction.Ignore)
ds.Tables("WO_Header").Merge(myDS.Tables(4), MissingSchemaAction.Ignore)
ds.Tables("Project").Merge(myDS.Tables(5), MissingSchemaAction.Ignore)
ds.Tables("contractor_1").Merge(myDS.Tables(6), MissingSchemaAction.Ignore)
ds.Tables("Users").Merge(myDS.Tables(7), MissingSchemaAction.Ignore)
ds.Tables("Users_Approved").Merge(myDS.Tables(8), MissingSchemaAction.Ignore)
ds.Tables("voucher").Merge(myDS.Tables(9), MissingSchemaAction.Ignore)
ds.Tables("Employee_Approve").Merge(myDS.Tables(10), MissingSchemaAction.Ignore)
ds.Tables("Employee").Merge(myDS.Tables(11), MissingSchemaAction.Ignore)
ds.Tables("Account").Merge(myDS.Tables(12), MissingSchemaAction.Ignore)
ds.Tables("TDS").Merge(myDS.Tables(13), MissingSchemaAction.Ignore)
ds.Tables("WO_Detail").Merge(myDS.Tables(14), MissingSchemaAction.Ignore)
ds.Tables("V_WO_BlockTaskNo").Merge(myDS.Tables(15), MissingSchemaAction.Ignore)
ds.Tables("TASK").Merge(myDS.Tables(16), MissingSchemaAction.Ignore)
ds.Tables("Cont_Voucher").Merge(myDS.Tables(17), MissingSchemaAction.Ignore)
ds.Tables("Cont_Voucher_1").Merge(myDS.Tables(17), MissingSchemaAction.Ignore)
ds.Tables("Cont_Voucher_2").Merge(myDS.Tables(17), MissingSchemaAction.Ignore)
ds.Tables("Company").Merge(myDS.Tables(18), MissingSchemaAction.Ignore)
''new code ends
rptDoc.SetDataSource(ds)
CRReport.HasCrystalLogo = False
CRReport.HasToggleGroupTreeButton = False
CRReport.ReportSource = rptDoc
CRReport.DataBind()
End Sub
Ma non funziona, quello che mi manca. Lo stesso funziona bene usando DSN
Non è un problema di parametri e lo stesso funziona bene in altro modo.
Nota: Lo so sopra codice non è ottimizzata della memoria, ma la mia preoccupazione per ora è quello di rendere in qualche modo funzionare, posso poi ottimizzarlo
seguito immagine mostra Dataset1 come origine dati
Ur manca i tuoi genitori suppongo :) – killer
Cosa !! Non ti capisco. – user1923238
questa domanda è il nostro compito di casa? – killer