質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

6210閲覧

ActiveReportで帳票を出力する際にパラメータとしてWhere句を与えられるか

vbNetBeginner

総合スコア19

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2016/05/10 00:25

###前提・実現したいこと
ActiveReportで帳票を出力する際にFormからパラメータ(Where句)を渡して絞り込みをしたい。

###発生している問題・エラーメッセージ
ActiveReportで帳票を作る事を目標としております。
ページデザインファイルにDB接続句とクエリを既に書き込んでありそこにパラメータとして帳票IDをWhere句として指定することで狙ったデータの出力がしたいと考えており、マニュアルを見るとパラメータの埋め込みが可能である旨の記載があります(読んでみるとインタラクティブに入力する前提のようですが)。
これをForm1で指定した帳票IDをForm2(帳票表示Form)に渡すことで実現したいのですが方法が見当たりません。

###該当のソースコード
レポートエクスプローラのDetaSource項目に
[SELECT URIAGE.DENDATE as 伝票日付(以下略) WHERE URIAGE.ID=@HOGEHOGE ]

このようにパラメータを指定してできると推測しました。

###補足情報(言語/FW/ツール等のバージョンなど)
言語:VB.net
ActiveReports 9.0J

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Form2のPropertyとして帳票IDを実装しておいて、ActiveReportsのパラメータに渡してあげる(もしくはActiveReportのレポートを生成するメソッドから帳票IDプロパティを参照する)ようにすればいかがでしょう

レポートエクスプローラからパラメータを追加する

実行時にパラメータを追加する

に詳しく書いてありますね

投稿2016/05/10 01:16

編集2016/05/10 01:25
dojikko

総合スコア3939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vbNetBeginner

2016/05/10 01:23

はい。そのようにしているつもりです。(Form2のTagには帳票IDを入れてあります) ただそのID→パラメータへの受け渡し方法が分からないのです。 現在は、あたらしくクエリを投げて逃げていますがForm1でDB接続してまたForm2で接続しているので無駄があると考えています。 私がご提案の趣旨を理解できていないようであれば申し訳ありません。
vbNetBeginner

2016/05/10 01:35

追記:レポートエクスプローラからパラメータを追加する    実行時にパラメータを追加する ここに書いてある(ReportStartイベント内に張り付けます)このコードに近いものを Form2のLoad時に実行したのですが絞り込みが出来なかったのです。 新たにイベントハンドラを書く意味合いの説明という認識が正しいのかもしれません。 少し試してみようと思います。ありがとうございます。
vbNetBeginner

2016/05/10 02:09

Dim myParam1 As New Parameter() myParam1.Key = "myParam1" myParam1.Type = Parameter.DataType.String myParam1.PromptUser = False myParam1.DefaultValue = Me.Viewer1.Tag.ToString pageDocument.Parameters.Add(myParam1) Me.Viewer1.LoadDocument(PageDocument) このようにForm2のLoad時にmyParam1をAddしようとしたのですが、 Castで引っかかってコンパイル出来ませんでした。 まだまだ勉強してみます。ありがとうございました。
dojikko

2016/05/10 02:24

> Castで引っかかってコンパイル出来ませんでした。 具体的にどういうエラーが出ているのか貼ってみてください 名前空間の解決ができてないだけとかではないですよね
vbNetBeginner

2016/05/10 02:31

pageDocument.Parameters.Add(myParam1) このフレーズで エラー 1 型 'GrapeCity.ActiveReports.SectionReportModel.Parameter' の値を 'GrapeCity.ActiveReports.Expressions.ExpressionObjectModel.Parameter' に変換できません。 と出ます。
guest

0

自己解決

カスタマーサポートさんに連絡してみたところ、Form2でクエリ(全体)を再定義する方法を
推奨されまして、現在の方法と変わりなく行うことに致しました。

ありがとうございました。

投稿2016/05/10 08:36

vbNetBeginner

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問