VB.NETからクリスタルレポートを呼び出す時にパラメータを設定するには?

解決


passe  2004-07-26 18:46:21  No: 115044  IP: [192.*.*.*]

始めまして、クリスタルレポートを勉強中の初心者passeと申します。
初歩的な質問かもしれませんが、早速質問をさせて頂きます。

<使用環境>
・WindowsXP
・Crystal Report10
・VB.NET(Framework1.0)

VB.NETからストアドを参照しているクリスタルレポートを表示させようと考えております。
ストアドにパラメータを渡したいのでクリスタルレポートにはパラメータフィールドを作成しています。
パラメータの設定方法をネットやヘルプで検索して以下のコードを試してみたのですが、
パラメータを設定するウィンドウが表示されてしまいます・・・
VB.NETからパラメータをどういうふうに設定したらいいのでしょうか?

  -----------------------------------------------------------------------------------------------------------------
  ※Form上にCrystalDecisions.Windows.Forms.CrystalReportViewerをcrvReport1という名前で作成しています

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
          Dim paramFields As New CrystalDecisions.Shared.ParameterFields()
          Dim paramField As New CrystalDecisions.Shared.ParameterField()
          Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue()
          Dim rangeVal As New CrystalDecisions.Shared.ParameterRangeValue()
  
          paramField.ParameterFieldName = "@is_DenpyouNo"
          discreteVal.Value = "1"
          paramField.CurrentValues.Add(discreteVal)
          paramFields.Add(paramField)

          crvReport1.ReportSource = "C:\rptIchiran.rpt"
          crvReport1.ParameterFieldInfo = paramFields
          crvReport1.RefreshReport()
        End Sub
  -----------------------------------------------------------------------------------------------------------------

どうかご伝授・ご指摘のほどよろしくお願い致します。

編集 削除
passe  2004-07-28 08:54:13  No: 115045  IP: [192.*.*.*]

自己レスです。
無事解決致しました。
調べていただいた方はありがとうございます。

解決したコードを掲載いたします。
何か間違いやもっといい方法がありましたらご指摘願います。

   -----------------------------------------------------------------------------------------------
    Private Sub cmdPre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPre.Click
        Dim repoDoc As New CrystalDecisions.CrystalReports.Engine.ReportDocument()
        Dim paramFieldDefinitiongs As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions
        Dim paramFieldDefinitiong As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition
        Dim paravalue As CrystalDecisions.Shared.ParameterValues
        Dim paraDuscrete As CrystalDecisions.Shared.ParameterDiscreteValue

    'レポートをloadする
        repoDoc.Load("C:\Report.rpt")
        paramFieldDefinitiongs = repoDoc.DataDefinition.ParameterFields
        paramFieldDefinitiong = paramFieldDefinitiongs.Item("パラメータフィールド名")
        paravalue = paramFieldDefinitiong.CurrentValues

        '離散値のパラメータを取得および設定するためのプロパティがあります。
        paraDuscrete = New CrystalDecisions.Shared.ParameterDiscreteValue()
        'パラメータの値を取得または設定します
        paraDuscrete.Value = txtRepoDenno.Text

        'ParameterValueオブジェクトをコレクションに追加します。
        paravalue.Add(paraDuscrete)

        'レポートの特定のパラメータ フィールドに適用します。
        paramFieldDefinitiong.ApplyCurrentValues(paravalue)

        'レポートのバインド
        ReportView.ReportSource = repoDoc

    End Sub
   -----------------------------------------------------------------------------------------------

編集 削除