- PR -

Activereports グループ最終レコード下の罫線

投稿者投稿内容
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-02-13 17:50
こんにちは。
いつもお世話になっております。

Activereports for.NET 3.0J Professinal トライアル版で、
グループごとの罫線で悩んでおります。
出力後のイメージは、

日付   コード     商品        
―――――――――――――――――――――― 
02/13   123     A
               -------------------
               B
               -------------------
               C
――――――――――――――――――――――
02/13   124      D
               -------------------
 ・
 ・
 ・
としたいのですが、
現状では、

日付   コード     商品      
―――――――――――――――――――――― @ここまでPHによって表示
02/13   123     A
               -------------------   細かい点線
               B
               -------------------
               C
               -------------------   ※AここまでDetailで表示
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ BGF
02/13   124     D
               -------------------

 ・
 ・
 ・

と、※印の罫線が余計で、BGFと隣接してしまいます。
グループ中の最終レコードだけは、※印の罫線を表示したくないのです。
※印の罫線が無くなる(非表示も可)か、BGFと完全に重なるか
にしたいのですが、解決できません。

現在、VB.net上でDataReaderを使い、データを取得しています。
細かい点線をDetail内でレコードの上部に配置するなど、
いろいろ試してみましたがダメでした。

分かりにくい質問かも知れませんが、よろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-02-13 19:23
罫線の位置を下ではなく上にし、改ページ後の最初のレコードだけ DataDynamics.ActiveReports.Line クラスのインスタンスにある Visible プロパティを False にすればイメージどおりになるのではないでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-02-13 19:24
コツを教えてあげよう。

(1) ページヘッダの下部に罫線を引かず、グループヘッダの上部に罫線を引く。

(2) 罫線は常に上に引くように心がける。(たまに例外もあるけどね。)

(3) UnderlayNext (次セクションの重ね合わせ) を上手に使う。

(4) 余白のためにグループフッタを使わない。

このレポートちゃんとグループセクション作ってますか?階層としては、ページヘッダセクション、日付グループセクション、コードグループセクション、ディテールセクションとなっていると思います。

(手順1) ページセクションの下部に罫線を引かない。

(手順2) 日付グループセクションの左側に日付を配置する。UnderlayNext を設定して次セクションを重ねるようにする。

(手順3) コードグループセクションにコードを配置する。コードグループセクションの上部に罫線を引く。罫線は右端まで引いてもいいし、商品の手前で止めてもいい。(手順2) でセクションを重ねるようにしているので、日付とコードは同じ行に表示される。コードグループセクションも UnderlayNext を設定する。

(手順4) ディテールセクションに商品を配置する。ディテールセクションの上部に罫線を引く。罫線は商品の表示から右端まで。(手順3) でセクションを重ねるようにしているので、ディテールの 1行目はコードグループセクションと重なる。

(手順4) 日付グループフッタ、コードグループフッタの高さは 0 にしとく。合計を表示するんだったら、グループフッタを使ってもいいけどね。余白確保のためにグループフッタを使うと、罫線を使って細かいレイアウトしようとするときに、つじつまが合わなくなることが多い。なるべく余白はヘッダのほうに含めて。
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-02-13 19:33
補足。

商品B, 商品C の行にある日付、コードをどうやって非表示にしていますか?
私が説明した上記の方法でレポートを作成すると、日付とコードの重複表示抑制と同じ結果になるので便利ですよ。というか UnderlayNext ってそのための機能なんですけどね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-02-13 19:35
自己フォローです。

引用:

じゃんぬねっとさんの書き込み (2008-02-13 19:23) より:

罫線の位置を下ではなく上にし、改ページ後の最初のレコードだけ DataDynamics.ActiveReports.Line クラスのインスタンスにある Visible プロパティを False にすればイメージどおりになるのではないでしょうか。


思いきって間違えてしまいました。 "改ページ後の最初のレコード" ではなく新しいグループ (図でいえば (3) 部) 突入後のレコードですね。

# あとは私が読み違いをしてなければ良いのですが... やや心配です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-02-14 09:43
早速のご返答ありがとうございます。

罫線は基本、上に引くものなのですね!
それだけでも大収穫です!!
グループフッタを使わないというのも驚きです。

"日付"、"コード"の重複非表示は、
じゃんぬねっとさんの仰るとおり、の方法で
グループ中の最初のレコードだけ visible を True にし、
それ以外は False にして実装しています。

UnderlayNextよりも、のちのち融通が利くかと思いまして、
勉強も兼ねて今はこちらを利用しています。
詳しく説明してくださったのに申し訳ないです…

ただ、ひょっとして、UnderlayNextを使わないと別のグループセクションの
線同士をくっつけられないのでしょうか。

とりあえず教えて頂いた方法で試してみます!






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

リコピンさんの書き込み (2008-02-14 09:43) より:

罫線は基本、上に引くものなのですね!
それだけでも大収穫です!!


そうでもないと思います。 明細単位での罫線なら通常は下に引くものだと思います。

引用:

"日付"、"コード"の重複非表示は、
じゃんぬねっとさんの仰るとおり、の方法で
グループ中の最初のレコードだけ visible を True にし、
それ以外は False にして実装しています。
UnderlayNextよりも、のちのち融通が利くかと思いまして、


私が書かせて頂いたのはあくまで罫線についてであって、日付やコードにまで及んではいません。 日付やコードが連続する場合の非表示は未記入さんの仰った方法が真っ当だと思います。(未記入さんはこのあたりまで先読みされていたのでしょう)

引用:

ただ、ひょっとして、UnderlayNextを使わないと別のグループセクションの
線同士をくっつけられないのでしょうか。


そうとは限りませんが、デザイン時の重ね合わせ程度では領域で上書きされるわけではなく線が上書きされるイメージになりますのでやめた方が良いです。 プリンタ ドライバにも強く依存しますので、100% 水平線がオーバレイ (上に乗る) するとも限りません。 UnderlayNext の場合はアンダーレイ (下に潜る) なのでたぶん問題ないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-02-14 11:50
じゃんぬねっとさん>

そうですか。
かなり早とちりしていたみたいでお恥ずかしいです。
勉強になります。ありがとうございます。

さて、未記入さんの方法を試してみましたが、
いくつかうまくいかない点が出てきました。
結果は、


日付   コード     商品        
―――――――――――――――――――――― 
02/13   123     A
               -------------------
               B
               -------------------
               C
     ――――――――――――――――――
       124      D
               
 ・
 ・
 ・

と日付グループヘッダに配置した太い罫線とテキストが、
UnderlayNextにより非表示になってしまいます。

ですので、太い罫線をすべてコードのヘッダに配置したところ、

日付   コード     商品        
―――――――――――――――――――――― 
02/13   123     A
               -------------------
               B
               -------------------
               C
―――――――――――――――――――――――
       124      D
               
 ・
 ・
 ・

と、太い罫線は左端まで伸びました。

しかし、まだ日付が表示されていないので、
一番最初のレコードのvisibleをTrueにする方法を試しましたが、
結果は変わりませんでした。
UnderlayNextをFalseにすれば水平線が引けないし、困っています…

また、グループの途中で改ページが行われた際、
ページ中の最終行の下に点線の罫線が表れなかったり、
改ページ後、ページヘッダの下(レコードの上)に太い罫線が表れなかったりと、
意図した通りにはなりませんでした。

RepeatStyleなども試しましたが、どうにもうまくいきません。
下手な説明で申し訳ないのですが、どうすればよいのでしょうか…

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