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

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

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

You are not logged in.

Announcement

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


#1 2021-05-10 15:20:58

tfm
Guest

日付フィールドに4桁or8桁入力は可能でしょうか?

お世話になります。

日付フィールドを入力する時に例えば5月10日なら0510といった具合に入力は可能なのでしょうか?
20200510などでも構いません。
事務作業の効率化のためです。

お手数ですが、よろしくお願い致します。

#2 2021-05-10 15:48:10

チポ
Member

Re: 日付フィールドに4桁or8桁入力は可能でしょうか?

4桁入力なら、
2桁入力後に「/」を入力するスクリプトを作って、
スクリプトトリガ
  OnObjectKeyStroke
で実行させればいいでしょう。

8桁でも同様に考えればいいですが、
4桁でも、8桁どちらでもは、
入力した値を見る必要が有りますね。

Offline

#3 2021-05-10 16:29:57

tfm
Guest

Re: 日付フィールドに4桁or8桁入力は可能でしょうか?

チポ様

ありがとうございます。
2桁入力後に「/」を入力するスクリプトとは、具体的にどのように作成すればよろしいでしょうか?
すみませんが、よろしくお願い致します。

#4 2021-05-10 17:44:18

チポ
Member

Re: 日付フィールドに4桁or8桁入力は可能でしょうか?

If [ Length ( 日付フィールド ) = 2 ]
   テキストを挿入 [「/」]   ( 内容を選択にチェックを入れない )
  End If

このスクリプトをスクリプトトリガ
  OnObjectKeyStroke
に指定すればいいでしょう。

しかし、このままでは、
  delete(Mac)
  Back Space(Win)
キーが2桁のところで効かなくなりますから、
  If [ Code ( Get ( トリガ入力 ) ) = 8 ]
    現在のスクリプト終了 [結果: 1]
  End If
これを最初に入れておいた方がいいでしょう。

このフィールドは半角入力限定です。

Offline

#5 2021-05-10 17:53:19

Shin
Member

Re: 日付フィールドに4桁or8桁入力は可能でしょうか?

スクリプトは、フィールド設定の1ステップのみでいいでしょう。
フィールド指定はせずに、

Let (
[
	arg = Get ( スクリプト引数 ) ;
	dt = GetAsDate ( arg ) ;
	len = Length ( arg )
] ;
	Case (
		dt  ≠ "?" ; dt ;
		len = 3 ; GetAsDate ( Replace ( arg ; 2 ; 0 ; "/" ) ) ;
		len = 4 ; GetAsDate ( Replace ( arg ; 3 ; 0 ; "/" ) ) ;
		len = 8 ; GetAsDate ( Replace ( Replace ( arg ; 7 ; 0 ; "/" ) ; 5 ; 0 ; "/" ) ) ;
		arg
	)
)

という計算式を設定値にします。
目的のフィールドに OnObjectValidate のトリガーでそのスクリプトを設定し、スクリプト引数にそのフィールド自身を指定しておきます。

Last edited by Shin (2021-05-10 18:08:41)

Offline

#6 2021-05-10 22:42:06

tfm
Guest

Re: 日付フィールドに4桁or8桁入力は可能でしょうか?

Shinさんのスクリプトで問題なく解決できました。
本当にありがとうございました。

チポさんもアドバイス、ありがとうございました。

今後とも、どうぞ宜しくお願い致します。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 509.11 KiB (Peak: 515.86 KiB) ]