みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM13
WIN7
予定表というテーブルの月曜フィールドにチェックが入っている場合
実施テーブルに今月の月曜日分のレコードを作成したいのですが?
2016年4月であれば、実績テーブルに
2016/4/4
2016/4/11
2016/4/18
2016/4/25
4つのレコードを作りたいです。
Offline
曜日を
DayOfWeek関数
が返す数値とします。
指定された曜日のその月の最初の日付は
Let ( [ $d = Date ( 月 ; 1 ; 年 ) ;
$w = DayOfWeek ( $d ) ] ;
$d - $w + 曜日 + 7 * ( $w > 曜日 ) )
で求められます。
あとは、
スクリプトでできますね。
Offline
https://fm-aid.com/bbs2/viewtopic.php?id=4026
でにた話題がありました。
曜日を、チポさんと同様に設定しておけば、最初の日付は
Div ( Date ( Month ( 日付 ) ; 1 - 曜日 ; Year ( 日付 ) ) ; 7 ) * 7 + 曜日 + 6
で求められます。
レコード数は、
Div ( Date ( Month ( 日付 ) + 1 ; 1 - 曜日 ; Year ( 日付 ) ) ; 7 ) - Div ( Date ( Month ( 日付 ) ; 1 - 曜日 ; Year ( 日付 ) ) ; 7 )
で求められます。
Last edited by Shin (2016-04-20 16:30:06)
Offline
みなさんありがとうございます。
昨日、スクリプトに頭を悩ましながらも、やりたい事ができました。
とりあえずLet関数で日付が出せたので、1週間分の予定や、1ヶ月分の予定を実績レコードに送る事ができました。
グローバルフィールドに年と月を用意して、月曜から日曜までの日付を出して、予定表の曜日とIF関数で真なら実績レコードに新規作成。
変数を準備して、フィールド設定。
次の週は+7で繰り返し。
5週目の+28は月グローバルとIF関数で真なら作成。
スクリプトが長くなりましたが、こんな感じでやりたい事ができました。
もっと、スマートな方法もあるのでしょうが、結構満足しています。
本当にありがとございます。
その月の最初の日付を出す。Div関数でも出るんですね。
自分一人では到底辿り着けない計算式でした。また勉強させてください。
Offline
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 508.07 KiB (Peak: 518.13 KiB) ]