初心者のFileMaker pro Q&A

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

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

ログインしていません。

アナウンス

Claris FileMaker Pro 19 ヘルプ
新しい質問は、新規トピック から投稿して下さい。


#1 2022-05-12 17:36:49

LKD
ゲストユーザー

他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

レポートのレイアウトで、フィールド1が表示状態のときにはフィールド2を非表示にする
1が非表示状態なら2を表示状態にするということはどうやったらできますか?

二律背反でどちらか一方が表示されるようにしたいです

#2 2022-05-12 18:10:42

Shin
メンバー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

レイアウト上のフィールドの表示非表示は、いろいろ条件がありますんので、レイアウト上の設定だけでは無理です。(レイアウト上のオブジェクトを隠す設定は、それそのものの条件以外に検知するのは無理でしょう)
レポート、とあるので、ブラウズ状態ではないようですので、そのような計算フィールドを作ればいかがでしょう。

オフライン

#3 2022-05-12 19:56:42

himadanee
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

フィールド1の条件と逆の条件をフィールド2に設定するだけではだめなの?

GetLayoutObjectAttribute ( "f1" ; "isObjectHidden" ) = 0
とやると、f1が非表示ならこのオブジェクトは表示します。

#4 2022-05-13 08:39:02

Shin
メンバー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

その方法だと、何らの事情で両方のフィールドにデータが入ると、両方消えてしまいますよ。

オフライン

#5 2022-05-13 09:00:03

himadanee
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

データの有無でなくフィールドの表示非表示で切り替えてるわけですが
「オブジェクトを隠す」話しか思いつきませんでしたが、表示状態というのが、スライド設定のことを言ってるということですかね?それならそう書きそうなものですけど...

いずれにしろ、「フィールド1の表示状態に応じてフィールド2の表示状態を変える」件なので、まずフィールド2の状態にかかわらずフィールド1を表示する条件というのが何かあるんだと思いますが
「二律背反で」といってるけど、フィールド1は2に依存しないで決まるように設定すれば、両方消えることはないと思いますが...

#6 2022-05-13 09:42:01

チポ
メンバー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

himadaneeさんの言われるように、
フィールド1か2の非表示はどのようにしているのか。

これを書けば回答は簡単なのでは。

オフライン

#7 2022-05-13 18:29:16

LKD
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

表示非表示の説明があいまいで申し訳ありませんでした
テーブル1に同じ内容がある場合に2個めからは非表示にしたくて

Get ( レコード番号 ) > 1 and テーブル::フィールド1 = GetNthRecord ( テーブル::フィールド  ; Get ( レコード番号 ) - 1 )

でテーブル1を消しています
上記でテーブル1が消えているときに、同じ場所に(重ねて配置しておく)あるテーブル2が表示されるようにしたいです
テーブル1が表示されているときにはテーブル2を非表示にします

#8 2022-05-13 18:43:13

LKD
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

上記のてテーブル1を消す、と書いてあるところはフィールド1の間違いです

さらに書きわすれがありました
フィールド1でソートしています

#9 2022-05-13 18:54:48

Shin
メンバー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

フィールド1にデータが入っていれば、と読んでしまったので、少し意味が違いましたね。

スライドコントロールを使って、スワイプジェスチャーを許可無しにして、スワイプドットも表示しないようにしておけばいかがでしょう。
コントロールの基になるフィールドで、スクリプトでスワイプさせればいいでしょう。

編集者 Shin (2022-05-13 19:00:32)

オフライン

#10 2022-05-13 18:55:25

LKD
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

連投すみません
ソートして後部小計をつけて
”ソートされたグループごとに集計を再開する”
にしたらグループごとにレコード番号が1から始まるかと思い
レコード番号が1以外ならフィールド2を表示するという意味で

Get ( レコード番号 ) = 1

のときに非表示としてみましたが、一番上は非表示になりましたが
その下以降はすべて表示されてしまいました

himadanee の式ではすべて表示されてしまいました

#11 2022-05-13 19:33:04

himadanee
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

#3の式の"f1"はフィールド名でなくオブジェクト名です。(フィールド1にオブジェクト名を付けて、それを指定する)

だけど「オブジェクトを隠す」計算式をフィールド1に使ってるんだから、フィールド2にはそれを反転した計算式を設定すればいいだけでは。
not (...)

#12 2022-05-14 17:40:01

LKD
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

皆様のアドバイスを参考に試してみましたが、うまくできませんでした
すべてのレコードに対してフィールド2が表示されてしまいます

not もやってみましたが、できませんでした
式の書き方などが間違っているのでしょうか

#13 2022-05-14 23:05:26

himadanee
ゲストユーザー

Re: 他のオブジェクトの表示の有無を条件に他にオブジェクトを表示させる方法

「上記でテーブル1が消えているときに、同じ場所に(重ねて配置しておく)あるテーブル2が表示されるようにしたいです」
1と2が同じ大きさなら、単純にフィールド1だけ非表示にする条件式を設定して、フィールド2を背面にしておけばいいだけでは?

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer