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

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

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

You are not logged in.

Announcement

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


#1 2018-02-23 15:18:08

Haru
Member

入力値制限の動作について

お世話になっております。
環境はWin、FM16になります。

一つのテーブルのレイアウトにタブを3つ設定
タブ1 タブ2 タブ3の中にそれぞれ25フィールドを配置(繰り返しフィールドではないです)
タブ3の25フィールドはNGワードとし、タブ1・タブ2のフィールドにNGワードが入力されたらカスタムメッセージを表示するよう設定しました
制限内容は
・データ入力時のみ
・計算式で制限 タブ1とタブ2の各フィールド≠タブ3のNGワードフィールド1~25&タブ1とタブ2の各フィールド=""
・制限値以外の入力時にカスタムメッセージ表示

上記設定を行ったところタブ1・タブ2の各フィールドにNGワードが入るとメッセージが表示されるようになったんですがその他に新規レコード作成やレコードの切り替えなどフィールドにかかわりのない処理をしようとしてもメッセージが表示されるようになってしまいました。
計算式がおかしいということでしょうか?
原因の特定にお力添えをいただけたら幸いです。
よろしくお願いいたします。

Offline

#2 2018-02-23 15:42:13

チポ
Member

Re: 入力値制限の動作について

制限の条件式がよく分かりませんが、
フィールドの空白が制限に掛かっているのでは?

Offline

#3 2018-02-23 16:00:57

Haru
Member

Re: 入力値制限の動作について

チポ様
ご返信ありがとうございます。
初心者ですので質問を質問で返すようになってしまい申し訳ないです。
空白が制限にかかっているというのは入力値の制限の必要条件の空欄不可に☑が入っているかどうかということでしょうか?
それとも計算式でフィールドの空白が制限にかからないようにしなければならないということでしょうか?

計算式は
タブ1のフィールド1 ≠  タブ3のフィールド 1 and フィールド 2 and フィールド 3 and フィールド 4 and フィールド 5 and フィールド 6 and フィールド 7 and フィールド 8 and フィールド 9 and フィールド 10 and フィールド 11 and フィールド 12 and フィールド 13 and フィールド 14 and フィールド 15 and フィールド 16 and フィールド 17 and フィールド 18 and フィールド 19 and フィールド 20 and フィールド 21 and フィールド 22 and フィールド 23 and フィールド 24 and フィールド 25 & フィールド1  = ""
これをタブ1とタブ2の各フィールドに設定してます。(最初と最後のフィールド1の部分を各フィールドごとに変えてます)

Offline

#4 2018-02-23 16:28:20

チポ
Member

Re: 入力値制限の動作について

計算式は、
  タブ1のフィールド1はタブ3の全フィールドと一致してはいけない
  または
  フィールド1は空白

を目指しているのでしょうか?

とすれば、
まず、
  and

  &
の解釈が間違っています。

and
論理式の連結です

&
テキストの連結です


> タブ1のフィールド1 ≠  タブ3のフィールド 1 and フィールド 2・・・
これを
  タブ1のフィールド1 ≠  タブ3のフィールド 1 & フィールド 2 &・・・
としても、
これでは、
タブ3のフィールド1と2・・・を連結した値とタブ1のフィールド1の値の不一致を見ています。


正しい考え方は
タブ1のフィールド1 ≠  タブ3のフィールド 1
and
タブ1のフィールド1 ≠  タブ3のフィールド 2
and
タブ1のフィールド1 ≠  タブ3のフィールド 3
and
・・・
ですが、冗長になりますよね。


タブ3の全フィールドのリストを得て、
それにタブ1のフィールド1の値の有無を
PatternCount
で見る。

とすればずっと短く出来ます。

Offline

#5 2018-02-23 16:31:38

Haru
Member

Re: 入力値制限の動作について

チポ様
ご返信ありがとうございます。
なるほどそもそもの解釈がおかしかったのですね
ご返信の内容で計算式をやり直してみます

Offline

#6 2018-02-23 17:42:07

Haru
Member

Re: 入力値制限の動作について

チポ様
計算式ですがPatternCountよりもExactのほうが都合がよかったのでそちらを用いて組んでみました
後はチポ様が先述されております通り空白が制限に引っかかっております
空白が制限にかからないようにするための考え方をご教授頂けないでしょうか?
自身で試行錯誤の上覚えていきたいと思っておりますので、完全解答でなく考え方を匂わせていただければと思います
よろしくお願いします

Offline

#7 2018-02-24 10:04:16

Haru
Member

Re: 入力値制限の動作について

度々申し訳ございません。
上記内容の続きでタブ1のフィールド1が、タブ3のNGワードの空白になっているフィールド以外の文字が入力されているフィールドのみ一致したらダイアログが表示されるのはどうしたらよいでしょうか?
入力値の制限だけでなくカスタムダイアログなど試してみましたが上手くいかず、ご教授お願い致します。

Offline

#8 2018-02-24 12:22:37

Shin
Member

Re: 入力値制限の動作について

Exact() を使うと、却って面倒な式になると思いますが。

ファイルの構造が理想的はないので、
IsEmpty ( FilteValues ( タブ1のフィールド1 ; List ( タブ3のフィールド 1 ; フィールド 2 ; フィールド 3 ; フィールド 4 ; .... ) ) )
で判別するのが比較的簡単かも。
タブ3のフィールド を別のテーブルに1レコードごとに保存していけば、もう少し楽になると思います。

Offline

#9 2018-02-24 12:46:13

Haru
Member

Re: 入力値制限の動作について

Shin様
ご返信ありがとうございます。
最初に条件として記入してなかったのですが、まず管理IDを設定しておりそのIDごとのタブ1タブ2タブ3となっております。
この場合の理想的な構築はどのような考え方になるのでしょうか?
不勉強で申し訳ないのですが教えていただければ幸いです

IsEmpty ( FilteValues ( タブ1のフィールド1 ; List ( タブ3のフィールド 1 ; フィールド 2 ; フィールド 3 ; フィールド 4 ; .... ) ) )
を計算式に入れてみたのですが新規レコード作成時にダイアログが表示されてしましました。

Offline

#10 2018-02-25 18:08:48

Shin
Member

Re: 入力値制限の動作について

制限は、完全一致でいいのですよね。それとも部分一致ですか?
完全一致ならば、
IsEmpty ( FilteValues ( タブ1のフィールド1 ; List ( タブ3のフィールド 1 ; フィールド 2 ; フィールド 3 ; フィールド 4 ; .... ) ) )
でうまく動いていますよ。
具体的に何を目指しているのかがわからないですが、非常にシンプルな構造で、ご希望の動きを作ったサンプル。管理IDごとに管理しています。動きが分かりやすいようにテーブルを3個に分けてフィールド数は全部で8です。(67個減らしました) メインとテキストを置いておく2テーブル構成もできます。
https://www.dropbox.com/s/ole91qmyjivrv … 7.zip?dl=0

Last edited by Shin (2018-02-25 18:16:25)

Offline

#11 2018-02-26 08:56:43

Haru
Member

Re: 入力値制限の動作について

Shin様
ご返答ありがとうございます。
Shin様のサンプルファイルは表示ができなかったので確認できなかったのですが、Shin様のアドレスをもとに試行錯誤しておりましたところ、非常にアホなことをしておりました。
管理ID入力やレコード作成時にダイアログが表示される原因は最初レイアウトを作っているときに色々と触ってそのままにしていた繰り返しフィールドの設定が原因でした。
こちらの設定を1に戻したところご回答頂いた通りに動作することが出来ました。

皆様ありがとうございました。
また何かありましたらご助力お願い致します。

Offline

#12 2018-02-26 12:53:36

Shin
Member

Re: 入力値制限の動作について

サンプルは、圧縮してありますので、解凍してごらんください。
ファイルの構成も参考になると思います。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 588.73 KiB (Peak: 605.63 KiB) ]