- PR -

Active Reportについて

投稿者投稿内容
もんた
常連さん
会議室デビュー日: 2005/05/19
投稿数: 20
投稿日時: 2007-07-31 06:53
VB.NET2003 の環境で
Active Report1.0 を使用しています。

以下のことをしたいのですが、帳票ツールははじめてなのでアドバイスを頂けないでしょうか?

レポートの詳細セクションに以下のように出力したいです。

aaa bbb ccc 小計
--- --- ---- ----
01 001 10 <--NULL
01 002 20 <--NULL
01 003 30 60
02 001 15 <--NULL
02 002 10 25


aaaごとのcccの合計をbbbの最終行に出したいのですが、
方法がわかりません。
よろしくお願いします。

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

もんたさんの書き込み (2007-07-31 06:53) より:

レポートの詳細セクションに以下のように出力したいです。

aaa bbb ccc 小計
--- --- ---- ----
01 001 10 <--NULL
01 002 20 <--NULL
01 003 30 60
02 001 15 <--NULL
02 002 10 25

aaaごとのcccの合計をbbbの最終行に出したいのですが、方法がわかりません。


書いてくださった図を拝見する限りでは、"bbb の最終行" に出力したいのではなく、'aaa 単位の最終行の小計列' に出力したいのではないでしょうか?

もしそうであれば 「オーバーレイ (重ねる・上におくの意)」 が使えます。グループ セクションを追加して集計結果をグループ フッタに出力し、グループ フッタをオーバーレイします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
よっし〜。
ベテラン
会議室デビュー日: 2007/04/17
投稿数: 89
お住まい・勤務地: 北のほうの国
投稿日時: 2007-07-31 11:26
オーバーレイでしょうね。

それ以外で実現するとすれば、ActiveReportでうんぬんするのではなく
ActiveReportの制御に投げ渡す前に編集すればよろしいかと。
集計ロジックをコーディングすることになりますが…。

クエリ文でもいいでしょうし(クエリ一発は難しいかな?)
DataTableを編集するのでもいいでしょう。
もんた
常連さん
会議室デビュー日: 2005/05/19
投稿数: 20
投稿日時: 2007-07-31 13:32
返信ありがとうございます。
ActiveReportのヘルプはを見ているのですが、
「グループ セクション」の追加は、どのようにするでしょうか?
右クリックで挿入で出てくるのは、グループフッタです。

後、Overlayメソッドのサンプルソースには、
/////
For i = 0 To rpt.Document.Pages.Count - 1
rpt.Document.Pages(i).Overlay(rpt2.Document.Pages(0))
Next
///
のように書いてますが、よくわりません。
(今回の場合にはFor文でまわす必要があるでしょうか?)


真にお手数すが、
簡単でいいので、サンプルのソースを教えて頂けでないでしょうか?

よろしくお願いします。





じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-07-31 14:11
引用:

もんたさんの書き込み (2007-07-31 13:32) より:

ActiveReportのヘルプはを見ているのですが、「グループ セクション」の追加は、どのようにするでしょうか? 右クリックで挿入で出てくるのは、グループフッタです。


「グループ フッタ」 で良いのではないでしょうか。

引用:

後、Overlayメソッドのサンプルソースには、
/////
For i = 0 To rpt.Document.Pages.Count - 1
rpt.Document.Pages(i).Overlay(rpt2.Document.Pages(0))
Next
///
のように書いてますが、よくわりません。
(今回の場合にはFor文でまわす必要があるでしょうか?)


実際に試行すればどのような動作をしているのか確認できます。 今回の場合に限らず、何をどこにオーバーレイするのかというコトを考えると良いでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
もんた
常連さん
会議室デビュー日: 2005/05/19
投稿数: 20
投稿日時: 2007-08-03 07:13
遅くなりましたが、できました。ありがとう御座いました。
ひとつ疑問があり、追加質問させていただきます。

GroupHeaderのプロパティにDATAFIELDのプロパティが
ありますが、一つの設定では、うまくいくのですが、
二個設定する方法がわかりません。

グループが、例えば、行番号、子番号の二個キーで
グループ変わる場合に設定方法がわかりません。

よろしくお願いします。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2007-08-03 09:12
引用:

GroupHeaderのプロパティにDATAFIELDのプロパティがありますが、一つの設定では、うまくいくのですが、二個設定する方法がわかりません。


グループを 2つ入れ子にして外側のグループのヘッダとフッタの高さを 0 にします。またはデータソース側で 2つの項目を連結しておくというのもあり。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-03 09:34
引用:

もんたさんの書き込み (2007-08-03 07:13) より:

GroupHeaderのプロパティにDATAFIELDのプロパティがありますが、一つの設定では、うまくいくのですが、二個設定する方法がわかりません。

グループが、例えば、行番号、子番号の二個キーで
グループ変わる場合に設定方法がわかりません。


ということであれば、未記入さんの前者の方法 (グループ セクションのネスト) をお勧めします。 デザイナからもキーの上位下位関係がわかりやすいです。 上位のセクションを表示したくない (マージンが必要ない) 場合は、これまた未記入さんの仰るとおりヘッダとフッタの高さを 0 にしましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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