過去の桐井戸端BBS (桐ver.7) |
1307 | 日付の絞り込み | 前田 | 1999/2/12-07:58 |
現在桐5.1から7.1への売り上げプログラムの移行中です。 日付処理が基本的に違いますので表の変更、CMDの変更で苦労しております。(譲渡プログラム) 日付の絞り込みでストップしてしまいました。 絞り込み [日付]{=<#月数加算(&年月日,-1,1)}で日付項目のデータを選択したいのですが うまく行きません、日付データを文字列に変更する項目を作成したほうがいいのでしょうか。 ご指導ください。 | |||
1310 | Re: | 悲しげ | 1999/2/12-13:56 |
記事番号1307へのコメント どもっ、前田さん 状況が判らないことが数点あります。 ひとつは、これがうまく行かないのは、v5(v5.1と云うものは存在しません)上でのことなのか、 v7上でのことなのか、と云う点です。 もしv5上でなら、選択の比較式でこのような計算式は使えません。 ちょっとトリッキーな条件選択式を使えばできますが。 例 [日付]=#cond([]=<#月数加算(&年月日,-1,1),[],[],#U,1,"1") この時、[日付]項目は文字列型ですよね? v7上でうまく行かないとすれば、おかしい可能性のひとつに、[日付]項目のデータ型の問題が 考えられます。 日時型になっていますか? さて、その上で試してみると、レレレ、1件も選択されませんね(?_?)。 そこで、次のようにしたらうまく行きました。 絞り込み [日付]=<#日時値(#月数加算(&年月日,-1,1)) この時、{ }囲みは有っても無くてもいいみたいです。 単に、#月数加算だけだと、おそらくデータ型は文字列のままなんでしょうね。 意識的に日時型に変換する必要があるようでした。 日時の扱いはよく判らなかったので、私は今までなるべく数値で逃げて来ましたが、 おかげさまでこの度は勉強になりました。(^^;) | |||
1313 | Re: | 前田 | 1999/2/12-16:10 |
記事番号1310へのコメント > 絞り込み [日付]=<#日時値(#月数加算(&年月日,-1,1)) 大変ありがとうございました。 V7.1の日時型データのポイントが今一つ理解できてませんでした。 確かに&年月日は文字型ですので、日時型と比較する場合は”#日時値”の関数で変換しなくては いけなかったのですね。 バッチリうまく行きました、ありがとうございます。 | |||
1315 | Re: | MIT | 1999/2/12-16:46 |
記事番号1307へのコメント 桐V7になって項目タイプに日時項目が出来て便利な反面、これまでの一括処理でエラーが 発生するケースも多いようですね。 ところで日付型項目に対して絞り込みをしたい時に 例えば比較式で []=d”1999/02/12” 比較式先頭に小文字の「d」、とそれに続く文字列を””で括る なお年、月、日の区別は「/」や「−」など区切りが分かれば良い。 と記述すると希望する絞り込み結果を得られます。表形式編集時など使うと便利です。 すでにご存知の事と思いますが、掲示板をご覧の皆様の参考になればと思い投函させて いただきました。MIT | |||
1316 | Re: | アックン | 1999/2/12-16:56 |
記事番号1307へのコメント 前田さん、悲しげさん、MITさん> 勝手に回答をフォローしておきます。(わらぃ) 悲しげさんの記述でOKでしょうが、MITさんが書かれていたように 日時型の定数を用いた一括は次のようになります。 &STR="=<d"""+#月数加算(&年月日,-1,1)+""" 絞り込み [日付]_&STR ・会話形式では 日時型の項目で比較式を使って絞り込みたいときは、 >=d"1999/2/12" のようにします。 d"日時文字列"で日時型定数になります(dでもDでも可)。 ・一括では いったんこの定数を&STRに取得しておき、 絞り込み <項目名>_<文字列型変数>・・の書式にします。 NIFTY/FAPPLI桐Q&A会議室で、#月数加算(&年月日,-1,1)を 使った回答を数日前に書いたばかりで、目に留まりました。 悲しげさん> どうも昔から <項目名>_<文字列型変数> に縁があるようで・・。(わらぃ) アックン(=^・^=) | |||
1318 | Re: | 川浪 | 1999/2/12-23:45 |
記事番号1307へのコメント 前田さん こんばんわ ちょっと質問の趣旨からははずれますが... 私もV5からV7へアップする作業で2000年対策も考え,西暦2桁文字列型を日時型に替え ようとやってみました. が,途中でやりかたをかえました. 2000年問題に関係する表にすべて,例えば[年月日]項目(文字列型)に対しては [年月日4桁](文字列型)という計算項目を追加し,[年月日]項目の頭2桁が50以下なら 頭に20をつけ,50以上なら頭に19を付けるという計算式を設定しました.そして索引名をかえずに 索引設定の項目を[年月日]から[年月日4桁]にかえました. 理由は,年月日での選択や検索のとき 文字列型でないと *など(ワイルドカード)が使えないこと, 一括処理や表の変更箇所が非常に多くなることなどです. 私共の会社のように,並びが おもな問題の場合 必ずしも日時型を使う必要がないと思いますし 手間もかけない方がいいと思いますが いかがでしょうか? もし,すこしでも参考になれば嬉しく思います. |