SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

5分でわかるActiveReports帳票

5分でわかるActiveReports帳票(2013年度版)-グループ化、集計処理、レイアウト

ActiveReports for .NET 7.0Jで作るサンプル帳票(3)

  • X ポスト
  • このエントリーをはてなブックマークに追加

改ページとレイアウトの制御

 ここからは、改ページとレイアウトに関する設定を紹介します。

(1)KeepTogetherプロパティ

 最初にKeepTogetherプロパティについて説明します。ページヘッダ/フッタ以外のセクション(Detailセクション、グループヘッダ/フッタセクションなど)にはKeepTogetherプロパティが用意されています。

 この値をTrueに設定すると、基本的にセクションがページをまたがらないように表示します。つまり、ページの下端にスペースが残っていたとしても、そのスペースがセクション全体を表示するには足りない場合、セクションごと次のページに送られます。

 このプロパティは、デフォルトではFalseに設定されておりますが「セクションの途中で改ページされたくない」場合には、Trueに変更してください

(2)CanGrow/CanShrinkプロパティ

 セクションやTextBoxコントロールに用意されているプロパティであり、高さの自動変更を許可するかしないかを設定します。

 例えば、高さが1行分、横幅が5文字分しか表示できない大きさのTextBoxコントロールに15文字の文字列を設定した場合、そのコントロールのCanGrowプロパティがTrueに設定されているとコントロールの高さが3行分に自動的に伸長します(Falseに設定されている場合、5文字分だけ表示され、残りの10文字は無視されます)。

 また、セクションにもCanGrowプロパティは用意されています。セクションのCanGrowプロパティがTrueに設定されていれば、そのセクション上のTextBoxコントロールの自動伸長にあわせて、セクションの高さも自動的に伸長します。

 一方、CanShrinkプロパティはCanGrowプロパティとは逆に、高さを自動縮小するかどうかを決定するプロパティです。このプロパティをTrueに設定している場合、その文字列の高さにあわせてTextBoxコントロールの高さを自動的に縮小させます。CanGrowプロパティと同様にセクションとTextBoxコントロールの両方に用意されています。

 デフォルトではCanGrow=True、CanShrink=Falseとなっています。セクションの高さを一定に保ちたい場合はどちらもFalseに設定してください。またそのとき、そのセクション上に配置されているすべてのTextBoxコントロールのCanGrow/CanShrinkプロパティもFalseに設定してください。

(3)NewPageプロパティ

 セクションの前か後で改ページを行うことを指定します。ページヘッダ/フッタ以外のセクションに用意されており、「None」「Before」「After」「BeforeAfter」が設定できます。

  • None:改ページ制御を行いません。(デフォルト)
  • Before:セクションの直前で改ページを行います。
  • After:セクションの直後で改ページを行います。
  • BeforeAfter:セクションの直前と直後で改ページを行います。

 例えば、グループごとに改ページしたい場合には、グループヘッダのNewPageプロパティにBeforeを設定するか、グループフッタのNewPageプロパティにAfterを設定してください。

 次のRepeatStyleプロパティとUnderlayNextプロパティは、グループヘッダ専用のプロパティです。

(4)RepeatStyleプロパティ

 通常、グループヘッダはグループの最初に一度だけ表示されます。RepeatStyleプロパティは、グループが複数のページやカラムにまたがって出力される場合に、ページやカラムの先頭に、同じグループヘッダを繰り返し表示するかどうかを決定するプロパティです。

 例えば、レポートデータソースから取得したグループ単位のデータを、各ページの見出しとして表示したい場合などにこのプロパティを使用して、グループヘッダを毎ページに表示させます(ページヘッダ上にデータソース内の値を直接表示することが、推奨されないためです)。

  • None:グループヘッダの繰り返し表示を行いません。
  • OnPage:改ページごとにグループヘッダを表示します。
  • OnColumn:改カラム(後述)ごとにグループヘッダを表示します。
  • All:改ページ、および改カラムごとにグループヘッダを表示します。
  • OnPageIncludeNoDetail:改ページごとにグループヘッダを表示します。OnPageとの違いは、そのページに出力されているセクションがグループフッタのみである場合にも表示されるということです。OnPageに設定した場合、そのページに表示されているセクションがグループフッタのみである時には、そのグループヘッダが表示されることはありません。

(5)UnderlayNextプロパティ

 グループヘッダと、次のセクションを重ねて表示することを指定します。グループヘッダにあるコントロールと、Detailセクションにあるコントロールを高さが同じ位置に表示できます。

 例えば、前出の「注文表」では、内側のグループヘッダのUnderlayNextをTrueに設定しています。このように設定することで、内側のグループヘッダに配置されている「注文番号」と1行目のDetailセクションの「商品名」を横に並べて表示することを可能としています。

(6)RepeatToFillプロパティ

 Detailセクションにのみ用意されているプロパティです。

 セクションレポートの場合、ページ内に表示するべきデータが尽きると、それ以降の部分は基本的に空白になります。しかし、「表示するデータがなくても、ページの下までDetailセクションを空欄のまま表示したい」場合がございます。こうした要求仕様に応えるために用意されたのがRepeatToFillプロパティです。

 このプロパティをTrueに設定すると、Detailセクションの「罫線」(Lineコントロール、Shapeコントロールや、TextBoxコントロールの枠線など)だけをページ一杯になるまで繰り返し表示します。

 ただし、このプロパティには、グループヘッダ/フッタを複数定義している場合には使用できないなど、いくつかの制限事項があります。詳細については、製品ヘルプの[クラスライブラリリファレンス]-[GrapeCity.ActiveReports.v7 アセンブリ]-[GrapeCity.ActiveReports.SectionReportModel名前空間]-[Detailクラス]-[RepeatToFillプロパティ]をご覧ください。

 ここでは、NewPage、RepeatStyle、UnderlayNext、RepeatToFillプロパティを使用したレポートを作成します。商品を種類ごとにグループに分け、グループごとにページ分けしています。実際の設定内容については、公開しているサンプルに含まれている「LayoutReport.vb(cs)」をご覧ください。

(7)ShrinkToFitプロパティ

 TextBoxやLabelコントロールに用意されているプロパティであり、レポート実行時にコントロール内に収まりきらない文字列を縮小するかどうかを指定します。

 前述の「(2)CanGrow/CanShrinkプロパティ」は、出力する文字列にあわせてコントロールの高さを自動的に調整するプロパティであるのに対し、ShrinkToFitプロパティは、コントロールの高さは変えずに、フォントサイズを調整します。

 コントロールのShrinkToFitプロパティをTrueに設定した場合、そのコントロールに収まりきらない長さの文字列が設定されても、コントロール内に全ての文字列が収まるように、自動的にフォント サイズを縮小します。

 なお、ShrinkToFitプロパティをTrueに設定した場合、CanGrowプロパティの設定は無視されます。

レイアウトの機能を使用したレポートのデザイン画面
レイアウトの機能を使用したレポートのデザイン画面
レイアウトの機能を使用したレポート
レイアウトの機能を使用したレポート

次のページ
カラム出力

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
5分でわかるActiveReports帳票連載記事一覧

もっと読む

この記事の著者

グレープシティ株式会社 ActiveReportsチーム(グレープシティカブシキガイシャ アクティブレポートチーム)

 宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。 ActiveReportsは、帳票開発に必要なあらゆる機能を備えた当社を代表するコンポーネントの1つ。1998年の発売以来、日本だけでなく全世界で多数の帳票開発者に使用されています。製品開発は同チームが中心になり、「日本仕様」の厳しい要望を実現することを目指しています。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7434 2015/07/23 16:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング