- PR -

ActiveReportの宣言について

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-02 10:13
引用:

イオンさんの書き込み (2006-03-02 09:59) より:

その通りです!
どんなレポートでも格納できるActiveReportの受け皿が欲しいのです。
レイトバインディグについて詳しく教えて頂けないでしょうか?
objectか何かで宣言だけしておいて、
ActiveReportのオブジェクト名から関連付ける事ができるということですか?


どちらにしても、インスタンスは必要になります。
型のコンパイル解決を図れる New [型] 構文は使えませんので、
CreateObject 関数を使うことになると思います。

ただ、試したことがないので、動くかどうかは保証できません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
とみー
会議室デビュー日: 2004/10/05
投稿数: 2
投稿日時: 2006-03-02 10:46
はじめまして。
私も以前ActiveReportsでレポート名を動的に渡せないかと試した事があります。
確か、下記のコードで動いたと思います。

Dim asm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
Dim t As Type
Dim obj As Object
Dim rpt As DataDynamics.ActiveReports.ActiveReport

t = asm.GetType(asm.GetName().Name + "." + レポート名)
obj = t.InvokeMember(Nothing, System.Reflection.BindingFlags.CreateInstance, Nothing, Nothing, Nothing)
rpt = CType(obj, DataDynamics.ActiveReports.ActiveReport)

rpt.DataSource = データソースの設定
rpt.PageSettings.PaperWidth = ページ幅の設定
rpt.Run()
イオン
ベテラン
会議室デビュー日: 2005/10/18
投稿数: 81
投稿日時: 2006-03-02 11:14
レスありがとうございます。

トミーさんに教えて頂いた例は.netかと思うのですが、
VB6でもうまくできないかと試してみましたがだめでした。

CreateObjectを使用して試してもみたのですが、やはりうまくいきませんでした。

やはり無理なのでしょうか・・
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-02 11:23
引用:

とみーさんの書き込み (2006-03-02 10:46) より:

私も以前ActiveReportsでレポート名を動的に渡せないかと試した事があります。
確か、下記のコードで動いたと思います。


それは、VB7 以降ですよね。

よくよく考えてみたら、今のままの構成では CreateObject してもダメですね。(多分)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2006-03-02 11:48
DDActiveReport2.ActiveReport 型のインスタンスを作成して、LoadLayout でレポートファイルを読み込めばいいんじゃないの?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-02 12:15
引用:

未記入さんの書き込み (2006-03-02 11:48) より:

DDActiveReport2.ActiveReport 型のインスタンスを作成して、LoadLayout でレポートファイルを読み込めばいいんじゃないの?


今手元にないので確認ができないのですが、内部レポートも可能なんでしたっけ?

コード:

    Dim rpt As ActiveReport
    Set rpt = New ActiveReport

    Call rpt.LoadLayout(App.Path & "\HogeHoge.rpx")


内部レポートでも可能であれば、仰るように LoadLayout メソッドで一発解決ですね。

# 内部レポートで帳票 (型) があったりなかったりという構成が、そもそもまずい気がしますが、
# 型が存在しないとコンパイル エラーになるというのは、内部レポートのことだと思っています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
イオン
ベテラン
会議室デビュー日: 2005/10/18
投稿数: 81
投稿日時: 2006-03-03 09:37
やはりVB6ではオブジェクト名で制御と言うのは難しそうですね。
レスありがとうございました!!

スキルアップ/キャリアアップ(JOB@IT)