- PR -

Activereport グループヘッダに合計値を求める

投稿者投稿内容
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-02-27 09:54
こんにちは。
いつもお世話になります。
他の質問と並行しての質問で申し訳ないです。

Activereports for.NET 3.0J Professinal トライアル版で、
帳票を作成中です。

グループごとの金額合計と、消費税をグループヘッダに表示する必要があります。
階層は、

PageHeader
GroupHeader1
Detail
GroupFooter1
PageFooter

となります。
金額合計は、

SummaryFunc    Sum
SummaryGroup    GroupHeader1
SummaryRunning  None
SummaryType    SubTotal
DataField        Kingaku

としており、グループヘッダにきちんと合計が表示されています。

しかし消費税は、この求めた金額合計から計算
Detail1件ごとに金額を取り出し、1件の税額を計算し、
その合計を求めたいのです。

現在は、Detail内に非表示のダミーのテキストボックスを作成し、
金額合計と同じ方法で税額合計を求めています。

何か他に良い方法はないかと思い質問してみました。
レスポンスを考えても適切ではないような気がしまして…

どうぞよろしくお願いします。
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-02-27 10:04
ごめんなさい。
文章に間違いがありました。

引用:
しかし消費税は、この求めた金額合計から計算
Detail1件ごとに金額を取り出し、1件の税額を計算し、
その合計を求めたいのです。



ではなく、

しかし消費税は、この求めた金額合計から計算
Detail1件ごとに金額を取り出し、1件の税額を計算し、
その合計を求めたいのです。

でした。
すみませんが、よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-02-28 10:51
引用:

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

現在は、Detail内に非表示のダミーのテキストボックスを作成し、
金額合計と同じ方法で税額合計を求めています。

何か他に良い方法はないかと思い質問してみました。
レスポンスを考えても適切ではないような気がしまして…


ActiveReports 側で対応するにしてもダミーの TextBox は必要ないと思いますが、サマリ機能を利用したいから存在しているのでしょうね。 でしたら ActiveReports 側で対応するより最初からデータとして持っていた方が良いと思います。

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

ありがとうございます。
やはりデータとして値を持つしかなさそうですね。

引用:
じゃんぬねっとさんの書き込み(2008-02-28 10:51) より:
ActiveReports 側で対応するにしてもダミーの TextBox は必要ないと思いますが、サマリ機能を利用したいから存在しているのでしょうね。



実は以前、コード上で値を持つ方法も試してみたのですが、
同じグループで2ページに渡った場合に、1ページ目に消費税の合計値を
表示できなくなる不具合が出てしまったので、
仕方なしにダミーでの方法を思いつきました。

実装方法が悪いのでしょうが、今回はこの方法でいきたいと思います。
ありがとうございました。
Tesla
常連さん
会議室デビュー日: 2007/03/13
投稿数: 30
投稿日時: 2008-02-28 20:45
コード:
DataField = Kingaku * 0.05


ではどうでしょうか?
(試せる環境がないので外しているかもしれません)
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-03-04 10:30
Teslaさん>>

ありがとうございます。
お返事遅れて申し訳ないです。

GroupHeader1 中の消費税のテキストボックスで、DataFieldプロパティを

SummaryFunc    Sum
SummaryGroup    GroupHeader1
SummaryRunning  None
SummaryType    SubTotal
DataField        = Kingaku * 0.05

としてみましたが、うまくいきませんでした。
このような集計の場合、コード上で

Fields.Add("= Kingaku * 0.05")

などと、アンバウンドフィールドを追加する必要があるのでしょうか。
いろいろ試してはみたのですが…
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2008-03-04 12:57
NAL-6295です。

元になるデータソースがDataTableであるならば、Expression列を追加して、Expressionプロパティに金額×0.05と書いておけばよいかもしれません。
リコピン
常連さん
会議室デビュー日: 2008/02/13
投稿数: 21
投稿日時: 2008-03-04 15:49
NAL-6295さん>>

書き込みありがとうございます。

引用:

NAL-6295さんの書き込み 2008-03-04 12:57 
Expression列を追加して、



とは、DBではなく、レイアウトに追加ですよね?
現在は Oracle 10g から DataSet を用いて取得しています。
見当違いな書き込みならすみません…


あと、私が 2008-02-27 10:04 に
引用:


しかし消費税は、この求めた金額合計から計算
Detail1件ごとに金額を取り出し、1件の税額を計算し、
その合計を求めたいのです。



と書きましたが修正できていませんでしたね。すみません。
正しくは、

しかし消費税は、この求めた金額合計を用いるのではなく、
Detail1件ごとに金額を取り出し、1件の税額を計算し、
その合計を求めたいのです。

でした。何度もすみません。

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