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

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

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

You are not logged in.

Announcement

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


#1 2014-05-16 08:53:43

sora
Guest

入力を半角数字9桁に限定する方法

FM12の初心者です。

フィールド「品目コード」入力を半角数字9桁に限定する方法をご指導願います。
たまに全角や改行が入っていることがあります。
その場合はカスタムダイヤログ表示をさせ修正させるようにしたいと思います。
リレーションの条件になっており、困っております。
宜しくお願いいたします。

#2 2014-05-16 09:06:12

Traveller
Guest

Re: 入力を半角数字9桁に限定する方法

簡単なのは、入力値の制限でタイプを数字、長さを9に制限する。

#3 2014-05-16 09:25:39

Shin
Member

Re: 入力を半角数字9桁に限定する方法

Filter ( RomanHankaku ( Right ( "000000000" & 品目コード ; 9 ) ) ; "0123456789" )
という式を、自動入力に設定しておけば、ある程度は防げるのでは。

頭に 0 をいれて桁合わせしているのでしたら、人はなかなか入れてくれませんし、また、桁数を指定されての入力はすごくストレスですよ。

Offline

#4 2014-05-16 10:39:47

sora
Guest

Re: 入力を半角数字9桁に限定する方法

Shin wrote:

Filter ( RomanHankaku ( Right ( "000000000" & 品目コード ; 9 ) ) ; "0123456789" )
という式を、自動入力に設定しておけば、ある程度は防げるのでは。

頭に 0 をいれて桁合わせしているのでしたら、人はなかなか入れてくれませんし、また、桁数を指定されての入力はすごくストレスですよ。


ご回答有難うございます。
間違って 123456789Enter  と入力すると
23456789 になります。
123456789 に出来ないでしょうか。

#5 2014-05-16 10:49:16

チポ
Member

Re: 入力を半角数字9桁に限定する方法

計算順を変えて、
  RomanHankaku ( Right ( "000000000" & Filter ( 品目コード ; "0123456789" ) ; 9 )
これでどうでしょう。


確かに、
9桁の入力を強いるのはストレスになるでしょうね。
例えば、
二つに分けるとか、3桁を三つとかにできないのかな。。

Offline

#6 2014-05-16 12:28:30

dup
Guest

Re: 入力を半角数字9桁に限定する方法

フィールドタイプを数字にする。
マイナスや小数点はfilterしないとだめか...

#7 2014-05-16 16:39:27

Traveller
Guest

Re: 入力を半角数字9桁に限定する方法

こっちも制限が簡単ですよ。
使ってる人から「うぜぇ」って苦情が来そうだけど。

>二つに分けるとか、3桁を三つとかにできないのかな。。
これ、いいですね。郵便番号感覚で。

#8 2014-05-16 16:41:02

Traveller
Guest

Re: 入力を半角数字9桁に限定する方法

>マイナスや小数点はfilterしないとだめか...
う、考えてなかった。

#9 2014-05-16 16:47:55

Moz
Member

Re: 入力を半角数字9桁に限定する方法

すべての「品目コード」が9桁ならいいですが、大半が9桁に満たない場合、
制限でゼロ埋めしたりすると「消すのが面倒」だとか何かと文句が出そうな気もしますね。
フィールドに入った際に全選択すりゃいいですが途中直したいとか......

入力と表示&利用する値を分けるというのはどうでしょう?

Last edited by Moz (2014-05-16 16:48:50)

Offline

#10 2014-05-19 12:05:14

sora
Guest

Re: 入力を半角数字9桁に限定する方法

チポ wrote:

計算順を変えて、
  RomanHankaku ( Right ( "000000000" & Filter ( 品目コード ; "0123456789" ) ; 9 )
これでどうでしょう。


確かに、
9桁の入力を強いるのはストレスになるでしょうね。
例えば、
二つに分けるとか、3桁を三つとかにできないのかな。。


1234567890 と入力すると
234567890 となります。

頭からカウントするなり、123456789 と表示できないでしょうか。
何度も申し訳ありません。

#11 2014-05-19 12:15:18

tim
Guest

Re: 入力を半角数字9桁に限定する方法

桁数が多いのはどこで間違えてるかわからないので、このさい
SerialIncrement("000000000" ; Self )
とかでは、どうかなあ

#12 2014-05-19 13:10:39

Moz
Member

Re: 入力を半角数字9桁に限定する方法

単純に半角数字以外捨てて頭から9桁ゼロ埋めなし

Left ( Filter ( Self ; "1234567890" ) ; 9 )

空欄以外で9桁なければエラーなので条件付き書式で赤字とかもありかなあ。

他の皆さんからの提案にも目を通された方がよいのでは?

Offline

#13 2014-05-19 13:27:27

チポ
Member

Re: 入力を半角数字9桁に限定する方法

最初の質問の通り、アラートを出すのなら、
入力値の制限で
Filter ( Self ; "0123456789" ) = Self and Length ( Self ) = 9
でいいのでは。


これが「うぜぇ」なら、スクリプトで、
上の式で条件分岐して、アラートを出す
これをトリガ Exit で実行。

Offline

#14 2014-05-19 14:33:29

keima
Member

Re: 入力を半角数字9桁に限定する方法

>全角
インプットメソッドを直接入力にしておけば基本は防げます。

>半角数字9桁に限定する方法を
>改行
スクリプトトリガ OnObjectKeystroke なら、filter関数で半角数字とBSとEscだけにして
9文字以内におけば、それ以外の文字の入力は無視されます。

>フィールド「品目コード」入力を
品目コードを正しく入力してほしいのだから、判定にはFilterValuesとValueListItemsを使うべきでは。

>「品目コード」
品目コードではなく、品目名をインクリメンタルサーチで選べるようにするほうが親切では。

Offline

#15 2014-05-19 14:50:38

sora
Guest

Re: 入力を半角数字9桁に限定する方法

チポ wrote:

最初の質問の通り、アラートを出すのなら、
入力値の制限で
Filter ( Self ; "0123456789" ) = Self and Length ( Self ) = 9
でいいのでは。


これが「うぜぇ」なら、スクリプトで、
上の式で条件分岐して、アラートを出す
これをトリガ Exit で実行。

私の判断だけでは実行できない事もありますので、今回はチポさまの提案を採用させていただく予定です。
皆様から色々なご提案をいただき有難うございます。
今後の開発案件に活用させていただきます。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 529.59 KiB (Peak: 550.13 KiB) ]