みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。Win FM18環境です。
「次の場合にオブジェクトを隠す」の計算式にて、3つ以上の時の条件の式が上手く働かなくて困っています。
オブジェクトA・B・C・Dの4つが全て入力されていない時に(値が空欄の時)に、便宜上、仮の名前の「おしらせ」というオブジェクトを非表示にしたい、
つまり言い換えるならば、A・B・C・Dのどれか1つでも値が入っていれば、「おしらせ」という名前のオブジェクトも表示したい、こういうことです。これが目的です。
条件が1つだけならば
次の場合にオブジェクトを隠す 内の計算式ボックスで、(適応するターゲットは「おしらせ」)
オブジェクトA = ""
だと、オブジェクトAに何かしらの値が入っている時に「おしらせ」オブジェクトが表示されます。
ですが、論理演算子のorでつなげると何故か上手くいきません…
オブジェクトA = "" or
オブジェクトB = "" or
オブジェクトC = "" or
オブジェクトD = "" or
で、上手く機能しないです。この場合だと全てのオブジェクトに値が入っていないと、「おしらせ」オブジェクトが表示されません。
(AまたはBまたはCまたはDが空の時、という意味だと思ってました)
検索をかけて色々調べ、case関数やpatterncount、not isEmpty等も試してみましたが、
多分私の何かが間違っていると思います。
「オブジェクトA = ""」という組織そのものが計算の概念と違うのかな、とも考える事も…
ぜひ皆さん、教えてください。お願いします。
真 or 偽 or 偽 = 真
一つでも真があれば真を返します
真 and 真 and 偽 = 偽
一つでも偽があれば偽を返します
真を返すにはすべてが真でなければなりません。
> オブジェクトA = ""
IsEmpty ( オブジェクトA )
と同じですね。
Offline
一つ訂正です。
オブジェクトA・B・C・D
ですが、「フィールド」のまちがいです、訂正します。。
「隠す」の計算式ですから、表示したい条件に言い換えたらかえってややこしくなります。
すべて空欄なら隠す、だからこの場合ORでなくANDです。
逆に表示する条件を列挙して or でつなぎ、最後にすべてを not でひっくり返すと簡単です。
not が重なってとか細けぇことが気になる人には向きませんが。
A〜Dのいずれかに値があれば表示するならば
not (
not IsEmpty ( A ) or
not IsEmpty ( B ) or
not IsEmpty ( C ) or
not IsEmpty ( D )
) // not
Last edited by Moz (2024-01-27 10:48:20)
Offline
「すべてが空欄」の条件は
A & B & C & D = ""
という風に簡略化も可能かな。論理演算する前にテキスト化して連結してしまってから判定。
エラー値の場合がちょっと心配か。
皆様、アドバイスありがとうございます。
簡単そうに考えていましたが、確かに「〜ではない」= not の時に非表示 → 逆に考えると…の文章のくだりはややこしいですね。
頂いたアドバイスを元に、試してみます。
また後ほど、ご報告いたします。
ありがとうございます。最初の時は簡単に考えて not をつなげて計算式のように行えると思っていましたが、意味としては何だかややこしいんだなと改めて実感しました。
Mozさんの実列を取らせていただき、他の皆様のアドバイスも、今後に活かしたいと思います。
お忙しい最中、誠にありがとうございました。
感謝いたします。
なんか難しく考えましたね。。
四つのフィールドがすべて空なら真を返せばいいのですから
IsEmpty ( A )
and
IsEmpty ( B )
and
IsEmpty ( C )
and
IsEmpty ( D )
でいいでしょう。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 517.88 KiB (Peak: 522.41 KiB) ]