- PR -

ActiveReportの帳票作成ついて

1
投稿者投稿内容
クマ(´・ω・`)
会議室デビュー日: 2004/07/29
投稿数: 5
投稿日時: 2004-07-29 21:17
はじめまして初心者ですがよろしくお願いします。

VS.NET(C#)とActiveReportsfor.NETstandardで帳票作成をしております。

以下の条件で帳票を作成したいです。

@1ページ内に複数の表を出力
Aページによって表数が違う
B各表の項目幅・項目数が違う

1ページに出力する表の項目数・項目幅が同じ場合は、
1ページに複数の表を出力することができました。
(グループを使用して表を分けている状態です。)

でも、1つのページ内にBの条件の表が複数存在する場合
どのように制御すればよいのか解りません。

どなたかわかる方いらっしゃいましたらご教授お願いします。
前屈の達人
常連さん
会議室デビュー日: 2003/08/26
投稿数: 25
お住まい・勤務地: 大阪
投稿日時: 2004-08-09 16:43
こんにちは。

もう少し情報が欲しいのですが、お願いできますでしょうか。
ActiveReportsをインストールした時についてくるSampleに
AnnualReportというのがありますが、こういった内容でしょうか?

お役に立てるかわかりませんが
もう少し情報をよろしくお願いします。
クマ(´・ω・`)
会議室デビュー日: 2004/07/29
投稿数: 5
投稿日時: 2004-08-11 13:39
前屈の達人さん
レスありがとうございます。

ActiveReportsのSample「AnnualReport」は、
最初にページ数やレイアウトが決まっている条件での帳票表示サンプルのようなのですが。
作成したいのは以下のようにページによって表示する表数や表の項目数・項目幅が違う帳票です。

************************
====================
AA BB CC DD EEE FF
--------------------
11 22 33 44 55 66
11 22 33 44 55 66
11 22 33 44 55 66
11 22 33 44 55 66
====================
================
GGG HHH AA JJJ
----------------
11 22 33 44
11 22 33 44
11 22 33 44
11 22 33 44
11 22 33 44
================
**********1page**********

************************
====================
GGG II KKK LLL MMM
--------------------
11 22 33 44 55
11 22 33 44 55
====================
=====================
II KKK NNN OO PP QQ
---------------------
11 22 33 44 55 66
=====================
==================
RR DD EEE SS TTT
------------------
11 22 33 44 55
11 22 33 44 55
==================
**********2page**********
:
:

もう少し情報を詳細に記入します。←まだ情報が足りないようでしたらすいません;;
@表の項目数はグループIDによって決まっています。(1表1グループID)
A表示する項目は基本の項目からグループID毎に選択されているものです。
B1ページに収まる表はなるべくページ内に表示させたいです。


一応自分でグレープシティさんへ質問をして
それをもとに処理を作成してみたので下にまとめます。

*********質問***************************************************
1つのページ内に形式の違う表を
複数出力したいのですが、
ActiveReportでその様な制御は可能でしょうか?

以下の条件の帳票作成になります。
(1)1ページ内に複数の表を出力
(2)ページによって出力表数が違う
(3)各表の項目幅・項目数(形式)が違う
****************************************************************
     ↓
*********回答***************************************************
申し訳ございませんが、ご要望のような動作を実現するための直接的な
機能は、用意されておりません。
               :
               :
1.各ページ単位で作成したレポートを合成する方法
PagesコレクションのAddメソッドで、レポートの最後に任意のページを
追加することが可能です。
たとえば、レポートを各ページ単位で生成し、Addメソッドを使用して
生成後のレポートを一つに合成するような方法が考えられます。
               :
               :
2.サブレポートを使用する方法
Subreportコントロールを使用することで、レポート上に別のレポートを
埋め込んで出力することが可能です。
               :
               :
****************************************************************


回答1.だとレポート作成前にForm等でデータを取得して
レポートのページ数などをあらかじめ知っておく必要があると思うのですが
今回の処理ではできるだけレポート内で処理をしたいと考えています。
(これは個人的な希望ですが・・^^;)

回答2.をヒントにして作成してみた処理手順を記述します。
@MainActiveReport,SubActiveReportを作成
AMainActiveReportのReportStart時にSubReportコントロール配列を
1ページに表示可能な最大表数分作成しDitailに追加
BMainActiveReportのFetchDataイベントで現在ページに表示したい表数分のSubActiveReportインスタンスを
SubReportコントロール配列要素に順番に設定、表を表示させないSubReport配列要素は
new ActuveReoirt()で初期化しておく。
(1)このときSubActiveReportに表示データと表項目数等の必要データを渡す
(2)SubActiveReportのDataInitializeでFieldsコレクションに必要アイテムを追加
(3)SubActiveReportのReportStartで項目部用TextBoxをGroupHeaderに追加
データ表示用TextBoxをDetail部に追加
(4)SubActiveReportのデータを表示処理開始
CMainActiveReportのDetail_Formatで各SubReportコントロール配列要素の
Location,Height,Widtを設定



他にも方法等ありましたらご教授願いたいと思っています。
いろいろ検討してみたいです。
まとまりのない長文かもしれませんがよろしくお願いいたします。
1

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