2015-06-25 21 views
5

Veri kaynağı olarak DSN kullandığımda düzgün çalışan kristal raporu var. Sorun şu an veri kümesini kullanıyorum. Veri kümesi ihtiyacım olan tüm tabloyu içerir ve saklı yordamı kullanarak veritabanından veri ile dolduruyorum. Ancak, bu şekilde, bir hata atıyor: "Missing Parameters".
Adım 1:Veri kümesini kullanırken kristal raporunu düzgün bir şekilde bağlayamazsınız, eksik parametreler gösteriliyor

Ben aşağıda yapıyorum oluşturma Dataset1.xsd ve tüm o veritabanından tables gerekli takmadan data connections kullanarak.
Adım 2: data source verilmesi ile rapor database expert 3 Adım
Dataset1.xsd edilmiştir: veri setindeki saklı prosedürü kullanarak veri doldurma ve sonra Dataset 1 örneğine veri kümesinden veri Dataset1 örneği oluşturma ve birleştirme.

Kodum veritabanından veri alıp sonra Dataset1 örneğine o birleştirme ve kristal raporuna kaynak olarak aşağıda olduğu gibi bu verilmesine:

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 

Ama çalışmıyor, ne ben eksik. Aynı DSN kullanarak iyi çalışıyor. Parametreler sorun değil ve aynı şekilde başka bir şekilde çalışıyor.
Not: Daha sonra resmin altında

veri kaynağı olarak DataSet1 gösterir optimize edebilir, ben kodunun üzerindeki biliyorum bellek optimize değil, ama şimdilik benim endişe nasılsa o iş yapmaktır
enter image description here

+0

Ur ebeveynleri kaçırıyorum sanırım :) – killer

+0

Ne !! Ben seni anlamıyorum – user1923238

+0

bu quedeion bizim ev görevimizdir? – killer

cevap

0

İki olasılıklar - parametrelerin nereye atıldığını kaçırıyorsunuz? SP_Web_GetReportTables saklı yordamında ise, MyCommand üzerinde bu sproc için herhangi bir parametre eklemiyorsunuz. Raporun kendisinde ise, raporun yan tarafındaki Saha Gezgini'nin altında olup olmadığını kontrol edin ve orada tanımlanmış herhangi bir parametreniz olup olmadığını görün, DSN'yi kullanmaktan kaldınız. Şu anda bir veri kümesini doğrudan ilettiğiniz için, herhangi bir parametreyi geçmeniz gerekmez. Son olarak, bu Crystal Report Viewer'ı kullanıyorsa, ReportSource'u ayarlamak yalnızca bunu görüntülemeli, DataBind'in ne için çalıştığından emin değilim. sen.

0

Yeni bir veri kaynağı oluşturup eskisini silerseniz, CR bu veri kaynağının sorgu parametrelerine ilişkin parametrelerinizi de siler. Veri kaynağını değiştirmek daha iyi.