始めまして、クリスタルレポートを勉強中の初心者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
-----------------------------------------------------------------------------------------------------------------
どうかご伝授・ご指摘のほどよろしくお願い致します。
自己レスです。
無事解決致しました。
調べていただいた方はありがとうございます。
解決したコードを掲載いたします。
何か間違いやもっといい方法がありましたらご指摘願います。
-----------------------------------------------------------------------------------------------
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
-----------------------------------------------------------------------------------------------