みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM12の初心者です。
フィールド「品目コード」入力を半角数字9桁に限定する方法をご指導願います。
たまに全角や改行が入っていることがあります。
その場合はカスタムダイヤログ表示をさせ修正させるようにしたいと思います。
リレーションの条件になっており、困っております。
宜しくお願いいたします。
簡単なのは、入力値の制限でタイプを数字、長さを9に制限する。
Filter ( RomanHankaku ( Right ( "000000000" & 品目コード ; 9 ) ) ; "0123456789" )
という式を、自動入力に設定しておけば、ある程度は防げるのでは。
頭に 0 をいれて桁合わせしているのでしたら、人はなかなか入れてくれませんし、また、桁数を指定されての入力はすごくストレスですよ。
Offline
Filter ( RomanHankaku ( Right ( "000000000" & 品目コード ; 9 ) ) ; "0123456789" )
という式を、自動入力に設定しておけば、ある程度は防げるのでは。頭に 0 をいれて桁合わせしているのでしたら、人はなかなか入れてくれませんし、また、桁数を指定されての入力はすごくストレスですよ。
ご回答有難うございます。
間違って 123456789Enter と入力すると
23456789 になります。
123456789 に出来ないでしょうか。
計算順を変えて、
RomanHankaku ( Right ( "000000000" & Filter ( 品目コード ; "0123456789" ) ; 9 )
これでどうでしょう。
確かに、
9桁の入力を強いるのはストレスになるでしょうね。
例えば、
二つに分けるとか、3桁を三つとかにできないのかな。。
Offline
フィールドタイプを数字にする。
マイナスや小数点はfilterしないとだめか...
こっちも制限が簡単ですよ。
使ってる人から「うぜぇ」って苦情が来そうだけど。
>二つに分けるとか、3桁を三つとかにできないのかな。。
これ、いいですね。郵便番号感覚で。
>マイナスや小数点はfilterしないとだめか...
う、考えてなかった。
すべての「品目コード」が9桁ならいいですが、大半が9桁に満たない場合、
制限でゼロ埋めしたりすると「消すのが面倒」だとか何かと文句が出そうな気もしますね。
フィールドに入った際に全選択すりゃいいですが途中直したいとか......
入力と表示&利用する値を分けるというのはどうでしょう?
Last edited by Moz (2014-05-16 16:48:50)
Offline
計算順を変えて、
RomanHankaku ( Right ( "000000000" & Filter ( 品目コード ; "0123456789" ) ; 9 )
これでどうでしょう。確かに、
9桁の入力を強いるのはストレスになるでしょうね。
例えば、
二つに分けるとか、3桁を三つとかにできないのかな。。
1234567890 と入力すると
234567890 となります。
頭からカウントするなり、123456789 と表示できないでしょうか。
何度も申し訳ありません。
桁数が多いのはどこで間違えてるかわからないので、このさい
SerialIncrement("000000000" ; Self )
とかでは、どうかなあ
単純に半角数字以外捨てて頭から9桁ゼロ埋めなし
Left ( Filter ( Self ; "1234567890" ) ; 9 )
空欄以外で9桁なければエラーなので条件付き書式で赤字とかもありかなあ。
他の皆さんからの提案にも目を通された方がよいのでは?
Offline
最初の質問の通り、アラートを出すのなら、
入力値の制限で
Filter ( Self ; "0123456789" ) = Self and Length ( Self ) = 9
でいいのでは。
これが「うぜぇ」なら、スクリプトで、
上の式で条件分岐して、アラートを出す
これをトリガ Exit で実行。
Offline
>全角
インプットメソッドを直接入力にしておけば基本は防げます。
>半角数字9桁に限定する方法を
>改行
スクリプトトリガ OnObjectKeystroke なら、filter関数で半角数字とBSとEscだけにして
9文字以内におけば、それ以外の文字の入力は無視されます。
>フィールド「品目コード」入力を
品目コードを正しく入力してほしいのだから、判定にはFilterValuesとValueListItemsを使うべきでは。
>「品目コード」
品目コードではなく、品目名をインクリメンタルサーチで選べるようにするほうが親切では。
Offline
最初の質問の通り、アラートを出すのなら、
入力値の制限で
Filter ( Self ; "0123456789" ) = Self and Length ( Self ) = 9
でいいのでは。これが「うぜぇ」なら、スクリプトで、
上の式で条件分岐して、アラートを出す
これをトリガ Exit で実行。
私の判断だけでは実行できない事もありますので、今回はチポさまの提案を採用させていただく予定です。
皆様から色々なご提案をいただき有難うございます。
今後の開発案件に活用させていただきます。
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 530.1 KiB (Peak: 550.64 KiB) ]