みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
教えてください。
一日1レコードを使っています。
新規レコードを作成するときに日付のフィールドに
元のレコードの日付+1日の日付を自動入力したいのですが
計算式を教えてください。
宜しくお願いします。
Offline
フィールドを計算式にするより、
レイアウトに「新規作成」ボタンを作って、そのボタンで新規レコード作成を行ってしまうのが簡単だと思います。
ボタンに以下のようにスクリプトを割り当てます。
変数を設定[$day; 値:日付] //現在のレコードの日付フィールドの情報を$dayに記録しておきます。
新規レコード/検索条件 //新しいレコードを作成
フィールド設定[日付; $day+1] //新しいレコードの日付フィールドに、$day+1日を入力します。
Filemaker Advance 15 (win7) / Filemaker Go 15 (ipad mini/ipad mini2/ipad 2017)
Offline
> 元のレコードの日付+1日の日付を自動入力したい
「元の」
選択されているレコード
ということでしょうか?
全日付のレコードが必要なら、
1年分位いっぺんに作っちゃえばいいのでは。
スクリプト不要で簡単にできますよ。
Offline
返信ありがとうございます。
>変数を設定[$day; 値:日付] //現在のレコードの日付フィールドの情報を$dayに記録しておきます。
の部分がわからないのですが、どのようにしたらよいでしょうか?
Offline
このステップは、新規レコードを作成する前に、基準となる日付情報を変数に入れて持っていく、というステップです。
どこからわからないのか微妙なので0から行くと、
1.上部メニューから、「スクリプト(S)」→「スクリプトワークスペース(W)」で、スクリプトワークスペースを開きます。
2.左上の+マーク(新規スクリプト)で、新しいスクリプトの作成を開始します。
3.スクリプトにタイトル(名前)をつけます(仮に ”次の日付を作成” とかにします。後で意味がわかれば何でもいいです)。
4.右側に「ステップ」の一覧表示がなければ、右上の「ステップ」をクリックして表示します。
5.ステップの中に、「制御」という項目があるのでクリックして開きます(開いている場合はそのままでOK)
6.「制御」のなかに「変数を設定」という項目があるので、ダブルクリックしてスクリプトに追加します。;
7.変数を設定 [ ]というステップが中央に追加されたら、ダブルクリックして[変数を設定]のオプションダイアログを開きます。
8.名前(N): に、変数名 $day を入力します(頭に$が付いていれば変数名は何でもいいです)。
9.値(V): の右側の「指定(S)」をクリックして、計算式の指定ダイアログを開きます。
10.左側のフィールド一覧から、日付フィールドをダブルクリックして、フィールド名を入力(=フィールドの情報を記録するように指定)させます。
空白部分に テーブル名::日付 だけが入っている状態で、OKボタンを押します。
11.[変数を設定]のオプションダイアログに戻ったら、OKボタンを押して編集を確定します。
12.ステップが 変数を設定 [ ] から、 変数を設定 [$day; 値 : テーブル名::日付 ] になっていればこのステップはOKです。
このステップでは、「 $day 」という変数に、現在のレコードの、日付フィールドの値を持たせています。
現在のレコードの日付フィールドの値が「2017/10/19」の時、このステップの「 $day 」は「2017/10/19」を返します。
Last edited by 肉塊 (2017-10-19 14:21:17)
Filemaker Advance 15 (win7) / Filemaker Go 15 (ipad mini/ipad mini2/ipad 2017)
Offline
肉塊様
ご丁寧にありがとうござます。
教えていただいたところまではできました。
その後の
>フィールド設定[日付; $day+1] //新しいレコードの日付フィールドに、$day+1日を入力します。
の部分ができずに止まっています。
どのようにしたらよいか、教えてください。
宜しくお願いします。
Offline
このステップは、現在のレコードの、対象のフィールド(日付フィールド)に、「$dayに1を足した情報」を入れる、というステップです。
1~4は同じです。
5.ステップの中に、「フィールド」という項目があるのでクリックして開きます(開いている場合はそのままでOK)
6.「フィールド」のなかに「フィールド設定」という項目があるので、ダブルクリックしてスクリプトに追加します。
7.フィールド設定 [ ]というステップが中央に追加されたら、ダブルクリックして「フィールド指定」ダイアログを表示します。
8.フィールド指定ダイアログで、日付フィールドを選択してOKをクリックします(下の繰り返しは1になっていればOKです)。
9.フィールド設定 [テーブル名::日付] ✪ ←この星マークの部分に歯車マークが出ると思うので、それをクリックして「計算結果:」の右にある「指定」をクリックします。
10.「計算式の指定」ダイアログが開くので、こちらに $day + 1 と入力します(変数を設定ステップで作成した変数名と、半角で+1でOKです)。
11.OKで編集を確定して、歯車マークを閉じます。
12.ステップが フィールド設定 [テーブル名::日付] から、 フィールド設定 [テーブル名::日付; $day+1] になっていればこのステップはOKです。
前のステップで、「 $day 」という変数に、最初に居たレコードの、日付フィールドの値を持たせていました。
新規レコードで新しいレコードに移ったあと、その日付フィールドに、最初に居たレコードの日付に1日足した数字を入れるステップです。
$day(最初に居たレコードの日付フィールドの値)が「2017/10/19」の時、このステップの「 $day+1 」は「2017/10/20」を返します。
日付が「10/19」のレコードでこのスクリプトを使うと、日付に「10/20」が入力された新しいレコードが作成されます。
こんな感じでわかりますか?
※「日付フィールド」のフィールドタイプが「日付」であれば上記のように動きます。
フィールドタイプが「数字」や「テキスト」の場合、作成されたレコードの日付は「20171020」(スラッシュが勝手に削除された状態)になります。
Last edited by 肉塊 (2017-10-23 14:44:32)
Filemaker Advance 15 (win7) / Filemaker Go 15 (ipad mini/ipad mini2/ipad 2017)
Offline
基本的なところからいくと、「スクリプト」というのは「作業を自動で行わせるために記述するもの」という感じです。
Filemakerでは、スクリプトは1つずつのステップを組み合わせて作るもので、実行時は(LoopやIfなどがない限り基本的には)上から順に1つずつ各ステップを行っていきます。
作成したスクリプトを、ボタンに割り当てたり、ファイルを開いたときやレイアウトを変えたとき、フィールドを変えたときなどの、
特定の変更があったタイミングで実行するという風に設定して、使っていきます。
Googleなどで「Filemaker なんとか」というふうに検索すれば、スクリプトの書き方や、実現方法などが出てくることがあります。
また、タイトルだけで使い方がわからないステップは、Filemakerでリファレンスが用意されているので、こちらでも確認ができます(下のリンクはFMP13版ですが…)。
http://www.filemaker.com/help/13/fmp/ja … .13.1.html
スクリプトは自分で作っていくのですが、作り方の流れはこちらが参考になるかもしれません。
002-ファイルメーカーにおけるスクリプトの書き方(俺流)
http://emptyhouse.jp/nikki/entry-975.html
Filemaker Advance 15 (win7) / Filemaker Go 15 (ipad mini/ipad mini2/ipad 2017)
Offline
肉塊様
御礼が遅くなり申し訳ありません。
丁寧にご説明いただきありがとうございました。
実は教えていただいたとおりに操作をして、$day と$day+1 の2つのスクリプトを作りましたが
新規レコードを作成すると 日付; $day+1 と表示され実際の日付が入力されません。
どこが間違っているのでしょうか?
Offline
Pages: 1
[ Generated in 0.013 seconds, 7 queries executed - Memory usage: 547.15 KiB (Peak: 568.05 KiB) ]