過去の桐井戸端BBS (桐ver.9)
24787 レポートで[月日]の項目を印刷したとき始期と終期を印刷したいのに終期のみが印刷されてしまう 脱初級! 2004/02/12-15:58
いつも勉強させて頂いております。
またご教授お願いしたく、よろしくお願い申し上げます。
表のデータに例えば、100レコードあり、項目[採用]の欄に"○"があるデータのみを絞込み、
レポートで印刷処理したい、と思っています。
そのレコードには項目:月(1月・2月等)と、日(20日・25日等)のデータがあり、
それぞれ文字列で"1月"、"10日"のような形でデータをもっています。
そして、項目:月日に"1月10日"というように月と日のデータを結合した計算式を入れています。
このとき、例えば、75行目(項目:月日の値は、"10月1日")から、
100行目(項目:月日の値は、"12月31日")までのレコードを印刷するとした場合、レポート上で、

始期:[月日]
終期:[月日]

とした場合には、始期にも終期にも最後の100行目のデータ
(例えば、12月31日)がはいってしまい、
レポートでは、

始期:12月31日
終期:12月31日

と印刷されてしまいます。

これを75行目の先頭レコードの値である、"10月1日"と表示させる、つまり、レポートで

始期:10月1日
終期:12月31日

と印字させるようにするには、レポート内の定義をどうすればよいのでしょうか?
よろしくご教授のほど、お願い申し上げます。


24799 表定義から見直して下さい 佐田 守弘 2004/02/12-22:49
記事番号24787へのコメント
脱初級!さん
書かれている内容で私に俳味が解らない部分がありますが、それ以前の問題として
表のデータの持ち方を考え直した方が良い部分があります。多分これを直せば、
それだけでうまく行く様な気もします。

●日付のデータの持ち方
日付は、月、日のデータを文字列型でもっているとの事ですが、これは何か意味があるのでしょうか。
私には不適切なデータの持ち方に思えます。
日付は、日時型で持つのが適した方法です。
日時型であれば、簡単に日付での期間を絞り込めます。
もしどうしても年、月、日を分けたいのなら、整数型で数値だけを持って下さい。
この場合には、絞り込みなどのために文字列型ないし日時型の日付を計算する必要があります。
また、後の話の原因でもありますが、1月、10月といった桁数が揃っていない月の記述では並べ替えができず、
始めと終りを簡単には求められないと思います。

●レポートでの始期と終期の印刷
これはどうやって印刷しておりますか?それが解らないとコメントできません。
上記のように文字列型で月と日を持っているのだと、始めの日付と終りの日付を簡単に求められないはずなので。

佐田守弘(KS-00119)
24802 補足>始期と終期 佐田 守弘 2004/02/12-23:23
記事番号24799へのコメント
書き忘れてましたので追加します。
●始期と終期の印刷方法
始期とは、日付が最も古いもの、終期とは最新の日付の意味であるとすれば、
データ型が日時型であれば、最小値と最大値で求められます。
つまり、レポートで集計オブジェクトを作り、それぞれ、#最小([日付])、
#最大([日付])と設定すれば、求められます。

そして、質問されている75行〜100行のデータに限って言えば、同じ方法で
正しい日付が印刷されるはずです。ただし、それは75行〜100行に限ります。

全行印刷したり、他の期間で印刷すると破たんする事がすぐに解ると思います。
(全行印刷すると、始期は1月の最初の日付、終期は9月の最後の日付になります)
理由は前回コメントに書いた通りで、現在のデータの持ち方では、
始まりと終りの日付を正しく求める事ができないためです。

佐田守弘(KS-00119)

追伸:力付くで無理やり求める方法も多分あるでしょう。
しかしお奨めしません。


24855 Re:表定義から見直して下さい 脱初級! 2004/02/14-17:28
記事番号24799へのコメント
佐田様、レス、ありがとうございました。
いただきましたアドバイスを参考に再考してみます。
またわからない点がありましたら、よろしくアドバイス
のほど、お願い申し上げます。
このたびは、ありがとうございました。

佐田様へ。
脱初級!より。

戻る