- PR -

Crystal Reportでのページヘッダの制御の仕方

投稿者投稿内容
DOLPHIN
会議室デビュー日: 2006/09/14
投稿数: 11
投稿日時: 2006-09-15 12:01
年月のグループを持っている帳票で、ページヘッダにそのグループ単位で金額の合計をしています。
その金額の合計結果をページヘッダに表示していますが、グループでブレークした最初のページにのみ印字する仕様です。
このような動作をさせるには、どのような方法があるのでしょうか。
ご教授、よろしくお願いします。

環境:
Win/XP Pro
VisualStudio2003
言語:VB.NET

[ メッセージ編集済み 編集者: DOLPHIN 編集日時 2006-09-15 12:59 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-15 15:29
引用:

DOLPHINさんの書き込み (2006-09-15 12:01) より:

年月のグループを持っている帳票で、ページヘッダにそのグループ単位で金額の合計をしています。
その金額の合計結果をページヘッダに表示していますが、グループでブレークした最初のページにのみ印字する仕様です。


集計結果を 'フッタ' ではなく 'ヘッダ' に出力しているのですか。
集計方法はどのような手段をとられていますか?

引用:

このような動作をさせるには、どのような方法があるのでしょうか。


式フィールドに、Shared か Global なブール変数を定義して、
グループ フッタ時にフラグを立てておけば、集計結果を出力するタイミングが図れると思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
DOLPHIN
会議室デビュー日: 2006/09/14
投稿数: 11
投稿日時: 2006-09-15 16:45
返信ありがとうございます。

引用:

集計結果を 'フッタ' ではなく 'ヘッダ' に出力しているのですか。
集計方法はどのような手段をとられていますか?


ヘッダです。
集計の方法とは、Sum関数です。←これで回答になっているでしょうか?すみません。
引用:

式フィールドに、Shared か Global なブール変数を定義して、
グループ フッタ時にフラグを立てておけば、集計結果を出力するタイミングが図れると思います。


これまで出来たところが、申し上げる通りにフラグを立てるところまで出来ましたが、
そのフラグのクリアするコードをどこに書けばよいかわかっていません。
今回がクリレポ初挑戦のため、ほとんど手探り状態です。
クリレポでのフラグの制御をやったことがなく、もし可能であれば具体例を提示していただけると助かります。

よろしくお願いします。

[ メッセージ編集済み 編集者: DOLPHIN 編集日時 2006-09-15 17:10 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-15 17:12
引用:

DOLPHINさんの書き込み (2006-09-15 16:45) より:

集計の方法とは、Sum関数です。←これで回答になっているでしょうか?すみません。


Crystal 構文の SUM 関数でしょうか?

引用:

クリレポでのフラグの制御をやったことがなく、可能であれば具体例を提示していただけないでしょうか。


データソースに関する情報がないため、ピンポイントには説明できませんので、やり方だけ書いておきます。

ページ フッタに金額の合計を出力する式フィールドを配置します。
単純に出力する場合の式の中身は、{TableName.SumMoney} です。

ただし、今回は出力条件を設けなければならないので、レポート ヘッダに、
Shared なフラグ変数を Boolean 型で定義し、True で初期化します。

よって、ページ ヘッダの式は、フラグが True の時に、
{TableName.SumMoney} が出力されるような式になります。

グループが終了するまで、次ページ以降は出力されないようにするには、
{TableName.SumMoney} が出力された直後のタイミングで、フラグを False にします。
そうすれば、True になるまで出力されません。

あとは、グループの終了時に、フラグを True に戻せば、次のグループの先頭で出力されるようになります。

引用:

(式の中身についても)


今回のような場合は、式の中身がすべてなのですけどね。(=^-^)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
DOLPHIN
会議室デビュー日: 2006/09/14
投稿数: 11
投稿日時: 2006-09-15 17:41
じゃんぬねっとさん、返答ありがとうございます。
質問の要領が悪くてお手数おかけします。

引用:

Crystal 構文の SUM 関数でしょうか?


Sum ({金額}, {年月}, "monthly")
こうなっています。

引用:

データソースに関する情報がないため、ピンポイントには説明できませんので、やり方だけ書いておきます。


とてもわかりやすい説明ありがとうございます。
しかし、私がもっと知らない事があります。

引用:

よって、ページ ヘッダの式は、フラグが True の時に、
{TableName.SumMoney} が出力されるような式になります。


そのページ ヘッダの式をどこに書くべきなのかですか。
例えば「X-2」ボタンが複数存在します。
ずばりどこのボタンになるか仰って頂けますでしょうか。(^^;

引用:

グループが終了するまで、次ページ以降は出力されないようにするには、
{TableName.SumMoney} が出力された直後のタイミングで、フラグを False にします。
そうすれば、True になるまで出力されません。


フラグを False にする「X-2」ボタンがどれになるか教えて頂けますでしょうか。

引用:

あとは、グループの終了時に、フラグを True に戻せば、次のグループの先頭で出力されるようになります。


こちらも同じように、どのボタンになるか教えてください。

引用:

今回のような場合は、式の中身がすべてなのですけどね。(=^-^)


式をどこに書いてよいかがわかっていません…すみません。お手数ですが、再度ご教授頂きたいと存じます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-15 18:11
引用:

DOLPHINさんの書き込み (2006-09-15 17:41) より:

例えば「X-2」ボタンが複数存在します。
ずばりどこのボタンになるか仰って頂けますでしょうか。(^^;
(snip)
フラグを False にする「X-2」ボタンがどれになるか教えて頂けますでしょうか。
(snip)
こちらも同じように、どのボタンになるか教えてください。


私は、"式フィールドに" と述べております。
[X-2] なるボタンは、セクションのプロパティにある条件式のことだと思いますが、全く関係ないです。

引用:

式をどこに書いてよいかがわかっていません…すみません。お手数ですが、再度ご教授頂きたいと存じます。


答えは変わらず 「式フィールドに書いてください」 になります。
これ以上噛み砕けないです、ごめんなさい。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
DOLPHIN
会議室デビュー日: 2006/09/14
投稿数: 11
投稿日時: 2006-09-15 18:48
引用:

答えは変わらず 「式フィールドに書いてください」 になります。
これ以上噛み砕けないです、ごめんなさい。



回答と噛合わず、本当に失礼致しました。

正直申し上げますと、まだ理解することは出来ておりません。

私は今までセクションの出力を制御するものだと思い込んでいました。
しかし、じゃんるねっとさんの回答としては、式フィールで可能と仰っています。
その方法から推測すると、フラグを判断して空文字を返すか、その集計値を返すかの方法なると理解したのですが。
その通りでしょうか?

もしその場合でしたら、今回の仕様は実現不可能となります。
その理由は、値以外に罫線が含まれるからです。
この場合、罫線の表示/非表示の制御を行えばいいのでしょうか?
私が思いついた方法は、セクションの出力制御が出来れば簡単だと思いましたので、その線で回答いただけると想像しておりました。

本当にお手数なのですが、私が考えている事が間違っていたらご指摘願えないでしょうか。
よろしくお願いします。

[ メッセージ編集済み 編集者: DOLPHIN 編集日時 2006-09-15 18:50 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-15 18:54
引用:

DOLPHINさんの書き込み (2006-09-15 18:48) より:

その方法から推測すると、フラグを判断して空文字を返すか、その集計値を返すかの方法なると理解したのですが。
その通りでしょうか?


式フィールドへの出力に対してであれば、そのとおりになります。

引用:

もしその場合でしたら、今回の仕様は実現不可能となります。
その理由は、値以外に罫線が含まれるからです。
この場合、罫線の表示/非表示の制御を行えばいいのでしょうか?


これはこれで、セクションのプロパティ側の式で実現できると思います。
理由としましては、セクションは分割することができるからです。

どのような手法でやられるかはお任せします。

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

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