初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-01-05 14:50:02

taru
Guest

前月送り 翌月送りの集計

お世話になっております。
前月に販売したレコードを出すのに 発送日 というフィールドに 2017/01 と検索をかけて
2017年の1月のレコードを出していますが、これをボタンで前月・翌月と送って検索をかけれるようにしたいです。
グローバルの日付フィールドを作ってみましたが、これの月をどのように±1するかの計算が解りません。
ご教授下さいませ。

https://fm-aid.com/bbs2/viewtopic.php?id=785
こちらを見ましたが、いまいち解りませんでした。orz

#2 2017-01-05 16:22:03

Shin
Member

Re: 前月送り 翌月送りの集計

各レコードに、Year ( 発送日 ) * 12 + Month ( 発送日 ) という計算フィールドを作っておきます。
検索する時に、2017/1 ならば、2017 * 12 + 1 という数値をグローバル変数に格納しておき、この数値で検索します。
翌月、前月へは、その数字を +1、-1 した数値で検索すれば良いでしょう。

Offline

#3 2017-01-06 10:42:33

qb_dp
Member

Re: 前月送り 翌月送りの集計

検索開始日と終了日のフィールドを作って、日付は、日付として扱ったほうが良いかと思います。


フィールド: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

#4 2017-01-06 12:44:27

taru
Guest

Re: 前月送り 翌月送りの集計

Shinさん qb_dpさん
ありがとうございます。

お二人のやり方を両方試してみて、出来るようになりました。
スクリプト引数の設定をどこでやるか最初解りませんでしたが、
何とかスクリプト実行でのスクリプトパラメーターまで辿りつき
やりたい事が出来るようになりました。

ありがとうございました(^-^)

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.020 seconds, 7 queries executed - Memory usage: 504.72 KiB (Peak: 514.52 KiB) ]