質問

プロジェクト実行ファイル(.exe)の横にいくつかのレポート(.rpx)があるLagacyプロジェクト(VB6)があります。ユーザーが.exeファイルを実行すると、.rpxファイルを指定されたユーザーマシンのローカルフォルダーにダウンロードし、「loadlayout」ステートメントを使用して、すべての.rpxレポートファイル形式をタイプの変数にします。それ。

さて、私の質問は次のとおりです。上記のメインレポートにサブレポートを埋め込む必要があります。サブレポートファイルはVBプロジェクトにあります いいえ exeファイルの隣。メインレポートとサブレポートとの関係を作成し、メインレポートが使用するデータに基づいてサブレポートに記録セットを送信するにはどうすればよいですか?

ありがとうございました

役に立ちましたか?

解決

親レポートをロードした後、サブレポートを変数にロードし、親レポートを実行する前にサブレポートコントロールのオブジェクトプロパティをその変数に設定する必要があります。例えば:

' Load parent report:
Dim rptParent As New ActiveReport
rptParent.LoadLayout App.Path & "\myParentReport.rpx"

' Load the subreport:
Dim rptSubreport As New ActiveReport
rptSubreport.LoadLayout App.Path & "\mySubReport.rpx"

' * Initialize the subreport control by passing the actual report to run as a subreport:
Set rptParentReport.Sections("Detail").Controls("MySubreportControl").Object = rptSubreport

' Preview the parent report in the viewer:
ARViewer21.ReportSource = rptParent

これで、サブレポートファイル名をハードコードできない場合(mySubReport.rpx 上記の私の例では)またはサブレポート制御名(MySubreportControl 上記の私の例では、親レポートのすべてのコントロールをループするルーチンを作成し、各サブレポートコントロールを見つけることができます。次に、サブレポートのファイルの名前をレポート名またはサブレポートコントロールのタグプロパティに保存してください。次に、コード内のサブレポートコントロールを使用してサブレポートファイルを動的/リンクできます。あなたがそれについて具体的な助けが必要な場合は、あなたの質問をコメントとして返信してください。

また、activeReportsドキュメントのcomバージョンはオンラインで入手できます ここ (記録)それが有用かもしれない場合。

Scott Willeke
GrapeCity
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top