3

Crystalレポート(クロスタブ)を作成しました。私はデータセットを使用していません。代わりに、Crystal Report のウィザードを使用して、データベース スキーマからプロシージャを呼び出しました (指定されたプロバイダーは、オラクル用の Microsoft OLEDB プロバイダーであり、その後、DB 資格情報 (つまり、スキーマ、ユーザー名、パスワード) を指定し、手順を選択し、レポートに表示する列を選択しました)。

レポートを生成するためにフロントエンドから渡す必要がある 5 つのパラメーターがあります。Crystal レポートのプレビューを表示しているときに、パラメータを指定すると、レポートが正常に機能します。

ここで、フロント エンド (vb.net) からこれら 5 つのパラメーターを渡して、CrystalReportViewer にレポートを表示したいと考えています。aspx.vb ファイルに書き込むコードを提案してください。(PS:-他のフォーラムを調べていくつかのコードを見つけましたが、それらのすべてが何らかのエラーを出していたので、私の要件に固有のコードを取得できるように投稿しています)。

前もって感謝します..

4

2 に答える 2

5

レポートが機能するようになりました...以下のコードを書きました:

    Dim RptDocument As New ReportDocument

    RptDocument.Load(Server.MapPath("rpt\Report.rpt"))

    RptDocument.SetParameterValue("param1", Session("param1"))
    RptDocument.SetParameterValue("param2", ddlparam2.SelectedValue)
    RptDocument.SetParameterValue("param3", param3.text)
    RptDocument.SetParameterValue("param4", param4.text)
    RptDocument.SetParameterValue("param5", param5.text)

    'Set login info
    Dim myLogin As CrystalDecisions.Shared.TableLogOnInfo

    Dim myTable As Table
    For Each myTable In RptDocument.Database.Tables
        myLogin = myTable.LogOnInfo
        myLogin.ConnectionInfo.ServerName = "server name"
        myLogin.ConnectionInfo.DatabaseName = ""
        myLogin.ConnectionInfo.UserID = "userid"
        myLogin.ConnectionInfo.Password = "pwd"
        myTable.ApplyLogOnInfo(myLogin)
        myTable.Location = myTable.Location

    CrystalReportViewer1.ReportSource = RptDocument

システムDNSを作成し、Oracle.DataAccess.dll参照とクラスファイル(connectooracle.vbクラスファイルと同じ機能を持つが名前が異なる)に追加する必要があり、global.asaxで接続を設定してそのクラス接続を参照し、 Imports Oracle.DataAccess.Client代わりに使用する必要がありましたof Imports System.Data.OracleClient(あいまいさを避けるため)...

これはどういうわけかそれを機能させ、そのための他の解決策があるかもしれません..:)

(For ref:- Adding  myLogin.ConnectionInfo.IntegratedSecurity = True  gave me this error--
Logon failed. Error in File C:\DOCUME~1\Username\LOCALS~1\Temp\Report {1AG3DD86-141D-43YA-B6A2-AEDF3459AE49}.rpt: Unable to connect: incorrect log on parameters.)
于 2012-07-06T04:07:50.717 に答える