過去の桐井戸端BBS (桐ver.9)
25901 レポートのタイルオブジェクトでデータ集計されたものの結果のみを表示したい zzz 2004/04/16-16:42
はじめまして。
最近このサイトを知って,過去のBBSなどを見たのですが,答えがでなかったので質問させてください。

レポートのタイルオブジェクトで,データ集計されたものの結果のみを表示したいのです。
例えば,
A社 商品1  100円
   商品2  500円
   商品3 1000円 
B社 商品1  200円
   商品2  300円

のときに,これをタイルオブジェクトを使って,
各社ごとに,商品数と,合計金額を表示したいのですが。
(各個別データの表示はしなくてよい)
 
わかりにくいかもしれませんが,よろしくお願いいたします。

25906 Re:レポートのタイルオブジェクトで・・・ 悲しげ 2004/04/16-20:57
記事番号25901へのコメント
どもっ、zzzさん
多分、一発では行かないと思うので、私なら次のような方法を取りそうです。

1)行集計する。各項目毎の集計関数は
   #項目値 #件数  #合計
   A社   商品1 100(円)
   ・・・・・・
2)集計行のみ表示すると
   A社 3(件) 1600(円)
   B社 2(件)  500(円)
 となるので、これを別表たる印刷用作業表に(上書き)書き出す。
3)この別表をレポートのタイルオブジェクトの対象表にする。

25912 Re:レポートのタイルオブジェクトで・・・ 佐田 守弘 2004/04/18-10:19
記事番号25901へのコメント
zzzさん
始めに質問の内容を確認させて頂きます。
@タイルオブジェクトでないとだめなのか
このデータは、形の上でタイルオブジェクトになじみません。
印刷する事は不可能ではないでしょうが、大変に面倒です。
n列×2行で良いのでしたら、伝票形式で印刷し、紙をひっくり返して
反対側に印刷する方が、結果として簡単かも知れません。
A商品1は、全社で共通なのか、会社毎に別なのか
同じか異なるかでやり方が変わります。
質問文からはこれが読み取れませんので、ひとまずは別の表品名であると
仮定します(面倒な方のケースを想定)。
B商品数の最大値は決まってますか
タイルに並べるテキストの数が最大数になります。いくつにでも対応したいという事だと、破たんします。

●印刷用のデータを作る
質問の「タイルオブジェクトで印刷するには」、という意味は、「タイルオブジェクトで印刷できる形のデータを作るには」、
という意味になります。
タイルオブジェクトで印刷するには、次の様な形のデータ形式の表を作る必要があります。
 [社名] [品名1] [価格1] [品名2] [価格2] ・・・・
  A社  りんご  500   みかん  300
  B社  いちご  600   トマト  200

このデータを作るには次の3段階の作業を行います。その前に前処理が必要です。
・表の前処理
まず、データは社名毎にならんでいる事、(整列しておけばよい)社名と商品名について単一化されている事を確認して下さい。

次に処理する前に元の表に[No][商品No][価格No]の2つの項目を追加して下さい。ここに次の計算式を設定します。
[No]:#条件選択([社名]=#直前値([社名],""),#直前値([No],0)+1,1,1)
[商品No]:"商品"+#数値([No])
[価格No]:"価格"+#数値([No])
これで、各社名毎に商品1〜商品n、価格1〜価格nの値が作られます。

@転置集計その1
社名をグループ項目に、[商品No]を転置項目に、商品名を集計項目にして
転置集計します。集計方法は#項目値とします。
転置結果を「商品名.tbl」に書き出して下さい。
これで次の様な表ができるはずです。
 [社名] [商品1] [商品2] ・・・・
  A社  りんご  みかん
  B社  いちご  トマト

A転置集計その2
同様に社名をグループ項目に、[価格No]を転置項目に、価格を集計項目にして転置集計します。
結果は「価格名.tbl」に書き出します。

B2つの表の結合
以上ができたら、「商品名.tbl」と「価格名.tbl」を結合して下さい。
これで目的とする印刷用の表ができます。

印刷
以上ができたら、印刷用のタイル形式のレポートを作成します。

●補足
以上の様に方法は書いてみましたが、かなり煩雑な方法になりそうです。
同じ様な処理を毎日行うならば、一括処理を作成した方が良いでしょうね。
これ以外に一括処理を使って、目的のデータを作り出す方法もありますが、
データを見ないとどの様にするのが良いかは何とも言えません。

私なら多分、様にするでしょう。
・伝票形式を使って、紙ではなくてイメージファイルに出力する。
・でき上がった印刷イメージをタイルオブジェクトに貼り付けて
 印刷する。
(印刷イメージを出力するツールがある前提ですが)

佐田守弘(KS-00119)
25930 Re:レポートのタイルオブジェクトで・・・ zzz 2004/04/19-11:14
記事番号25912へのコメント
悲しげさん,佐田さんお返事どうもありがとうございました。
あいまいな質問文でわかりにくくて申し訳ありません。
実は,やりたいことは,悲しげさんが書いてくださっているとおりのことで,
単に,会社別に合計件数と,合計金額を表示したいということです。
佐田さんのご質問に対しては,
@2列×4行のタイルオブジェクトにして,名刺ぐらいの大きさに切り取りたいのです。
A商品に関しては,全て同一のものと考えてくださって結構です。
 『すべて同一の商品』を『異なる金額』でそれぞれの会社に対して,『異なる個数』を売ったとでも考えてください。
  同じ会社でも,日によっては金額が変わるということになります。
 通常ありえない設定ですが,具体的にここには載せれない事情があってわけのわからないことになって申し訳ありません。
B商品数の最大値は決まっています。
 1個〜61個までです。
と,このようになっています。

悲しげさんに教えていただいた方法だと出来ますが,今後,毎回別表を作ることを考えると,
できれば,新たに表を書き出す方法ではなく,データをそのまま利用できて,
今後も使えるレポートをつくりたいのですが無理でしょうか?

わがままなお願いで申し訳ありません。

戻る