0

CrystalReport9とVB.Netの使用

レポートはストアドプロシージャを介して実行されています。データをストアドプロシージャに渡したいのですが。

どうやってするの?

VB6では、私はこのようにしました。

Report.ReportFileName = REPPATH & "\Detail.rpt"
Report.StoredProcParam(0) = Did
Report.StoredProcParam(1) = Deed
Report.Action = 1

vb.netでそれを行う方法は?

4

1 に答える 1

2

次のようなものが機能するはずだと思います:

SetDataSource には 4 つのオーバーライドがあり、すべて IEnumerable のようなオブジェクトをパラメーターとして受け取ります。しかし、これはVS 2010のCR 13で行われました... CR 9のようなものを見つけていただければ幸いです。

    Dim report As New CrystalReport1
    Dim sqla = New SqlDataAdapter()
    sqla.SelectCommand.Connection = New SqlConnection(sConnectionString)
    sqla.SelectCommand = New SqlCommand("EXEC storedProcName @a, @b, @c")
    sqla.SelectCommand.Parameters.Add("@a", paramA)
    sqla.SelectCommand.Parameters.Add("@a", paramB)
    sqla.SelectCommand.Parameters.Add("@a", paramC)

    report.SetDataSource(sqla)
    //'If you do not have parameters, you may use :
    report.SetDataSource(New SqlDataAdapter("EXEC storedProcName ", sConnectionString))

    report.Refresh()

EDIT : sqla.SelectCommand.Parameters.Add("@a", paramA) CR13 バージョンでは減価償却されます。sqla.SelectCommand.Parameters.AddWithValue("@a", paramA)が代わりに使用されます。

于 2012-10-22T14:43:04.103 に答える