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

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

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

You are not logged in.

Announcement

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


#1 2017-10-17 13:29:36

日付の自動入力について

教えてください。

一日1レコードを使っています。
新規レコードを作成するときに日付のフィールドに
元のレコードの日付+1日の日付を自動入力したいのですが
計算式を教えてください。

宜しくお願いします。

Offline

#2 2017-10-17 14:41:43

肉塊
Member

Re: 日付の自動入力について

フィールドを計算式にするより、
レイアウトに「新規作成」ボタンを作って、そのボタンで新規レコード作成を行ってしまうのが簡単だと思います。
ボタンに以下のようにスクリプトを割り当てます。

変数を設定[$day; 値:日付]     //現在のレコードの日付フィールドの情報を$dayに記録しておきます。
新規レコード/検索条件       //新しいレコードを作成
フィールド設定[日付; $day+1]   //新しいレコードの日付フィールドに、$day+1日を入力します。


Filemaker Advance 15 (win7) / Filemaker Go 15 (ipad mini/ipad mini2/ipad 2017)

Offline

#3 2017-10-17 18:10:50

チポ
Member

Re: 日付の自動入力について

> 元のレコードの日付+1日の日付を自動入力したい
「元の」
選択されているレコード
ということでしょうか?


全日付のレコードが必要なら、
1年分位いっぺんに作っちゃえばいいのでは。

スクリプト不要で簡単にできますよ。

Offline

#4 2017-10-19 12:45:40

Re: 日付の自動入力について

返信ありがとうございます。

>変数を設定[$day; 値:日付]     //現在のレコードの日付フィールドの情報を$dayに記録しておきます。
の部分がわからないのですが、どのようにしたらよいでしょうか?

Offline

#5 2017-10-19 14:03:20

肉塊
Member

Re: 日付の自動入力について

このステップは、新規レコードを作成する前に、基準となる日付情報を変数に入れて持っていく、というステップです。
どこからわからないのか微妙なので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

#6 2017-10-22 14:59:13

Re: 日付の自動入力について

肉塊様

ご丁寧にありがとうござます。
教えていただいたところまではできました。
その後の
>フィールド設定[日付; $day+1]   //新しいレコードの日付フィールドに、$day+1日を入力します。
の部分ができずに止まっています。
どのようにしたらよいか、教えてください。
宜しくお願いします。

Offline

#7 2017-10-23 12:07:36

肉塊
Member

Re: 日付の自動入力について

このステップは、現在のレコードの、対象のフィールド(日付フィールド)に、「$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

#8 2017-10-23 13:20:57

肉塊
Member

Re: 日付の自動入力について

基本的なところからいくと、「スクリプト」というのは「作業を自動で行わせるために記述するもの」という感じです。
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

#9 2017-11-19 14:53:07

Re: 日付の自動入力について

肉塊様
御礼が遅くなり申し訳ありません。
丁寧にご説明いただきありがとうございました。
実は教えていただいたとおりに操作をして、$day と$day+1 の2つのスクリプトを作りましたが
新規レコードを作成すると 日付; $day+1 と表示され実際の日付が入力されません。
どこが間違っているのでしょうか?

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.024 seconds, 9 queries executed - Memory usage: 546.72 KiB (Peak: 567.63 KiB) ]