みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。
前月に販売したレコードを出すのに 発送日 というフィールドに 2017/01 と検索をかけて
2017年の1月のレコードを出していますが、これをボタンで前月・翌月と送って検索をかけれるようにしたいです。
グローバルの日付フィールドを作ってみましたが、これの月をどのように±1するかの計算が解りません。
ご教授下さいませ。
https://fm-aid.com/bbs2/viewtopic.php?id=785
こちらを見ましたが、いまいち解りませんでした。orz
各レコードに、Year ( 発送日 ) * 12 + Month ( 発送日 ) という計算フィールドを作っておきます。
検索する時に、2017/1 ならば、2017 * 12 + 1 という数値をグローバル変数に格納しておき、この数値で検索します。
翌月、前月へは、その数字を +1、-1 した数値で検索すれば良いでしょう。
Offline
検索開始日と終了日のフィールドを作って、日付は、日付として扱ったほうが良いかと思います。
フィールド:gS_DATE|日付|グローバル
フィールド:gE_DATE|日付|グローバル
スクリプトを以下のようにして、
引数「0」で今月
引数「+1」次月
引数「-1」前月
とできます。
変数を設定 [$argu; 値:Get ( スクリプト引数 )]
If [$argu = 0]
フィールド設定 [SYSTEM::gS_DATE; Let([ DT=Get ( 日付 ); M = Month ( DT ); Y = Year ( DT ) ]; Date ( M ; 1 ; Y )
Else
フィールド設定 [SYSTEM::gS_DATE; Let([ DT=SYSTEM::gS_DATE; M = Month ( DT ); Y = Year ( DT ) ]; Date ( M + $argu ; 1 ; Y )
End If
フィールド設定 [SYSTEM::gE_DATE; Let([ DT=SYSTEM::gS_DATE; M = Month ( DT ); Y = Year ( DT ) ]; Date ( M+1 ; 0 ; Y )
#検索
検索モードに切り替え []
フィールド設定 [TABLE::日付; SYSTEM::gS_DATE & "..." & SYSTEM::gE_DATE]
.....
検索実行 []
日付設定スクリプトと、検索スクリプトを分けておけば、ひと月に限らず、色々な期間の検索に対応できます。
Offline
Shinさん qb_dpさん
ありがとうございます。
お二人のやり方を両方試してみて、出来るようになりました。
スクリプト引数の設定をどこでやるか最初解りませんでしたが、
何とかスクリプト実行でのスクリプトパラメーターまで辿りつき
やりたい事が出来るようになりました。
ありがとうございました(^-^)
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 506.02 KiB (Peak: 516.04 KiB) ]