みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもご教示ありがとうございます。
表題の件で、ご教示下さい。
ポータル内には、チェック・区分・住所を配置し、3行表示で制作しています。
この3行の内の1行のチェックフィールドに●が入っていたらほかの2行には●が入力出来ないように制御は可能でしょうか?
FileMaker Pro 17
Windows 10 Pro
Offline
未実装なんで、テスト必要。
check値は1と想定。
↓リレーション
ポータルのテーブルオカレンス(A)をコピー(B)。
AとBをID同士≠でリレーション。
↓ポータルのテーブルフィールド
checkフィールド(数字タイプ)
check確認フィールド(計算フィールド非保存):計算結果は数字:計算式はCount ( B::check )
↓レイアウト
checkフィールドにインスペクタ:オブジェクトを隠す:A::Check_確認 > 0
チェックの値によって計算式等が変わりますが、考え方は同じかと。
ようするに、自己リレ先から値を取得して、それを判定してポータル上で隠す、隠さない。
1行目以外にチェックしてあれば、どのような動きに?
Offline
1行目以外にチェックしてあれば、どのような動きに?
チェックフィールド値でソートしていますので、チェックされたレコードが先頭になるようにしています。
---------------------------------------------------
チェック ・・・その他のフィールド
1行目 ● データA
2行目 データB
3行目 データC
---------------------------------------------------
1行目から2行目にチェックを入れ直す
チェック ・・・その他のフィールド
1行目 データA
2行目 ● データB
3行目 データC
---------------------------------------------------
チェック ・・・その他のフィールド
1行目 ● データB
2行目 データA
3行目 データC
確定した時点で、ソートが実行されてデータBレコードが先頭になります。
問題点として、1レコードにしかチェックが入らないようにしようとした時、既にチェックが入っていたら、まず先にチェックを外してからでないと、他のレコードにはチェック出来ないのではないか?とも考えます。
確定していなければ大丈夫なのか?とも思うのですが、表題の方法が分からないのでその先に進めません。
Offline
関連レコードへ移動 で、チェックを空白で全置換、フィールド設定でチェック、元の表示へ戻る、
という手順しかないのでは。新規ウィンドウで作業すると簡単です。
Offline
ポータル内のポータル::チェックフィールドをボタンにして下記スクリプトを実行。
※ "●"入力済の行の場合は、チェックを消去します。
【チェックボタンスクリプト】
・ 関連レコードへ移動 [関連レコードだけ; テーブル: 「ポータル」; レイアウト: 「ポータル」]
・If [IsEmpty(ポータル::チェック)]
・ フィールド設定 [ポータル::チェック; "●"]
・ レコードを対象外に
・End If
・ フィールド内容の全置換 [ダイアログなし; ポータル::チェック; ""]
・ 全レコードを表示
・ レイアウト切り替え [元のレイアウト]
Offline
Shinさん、Hiroさん
ご教示、ありがとうございます。
チェックフィールドには"●"が表示されるようにしたまま(視覚的に選択されている事をアピールする意味もあり)近くにセットボタンを配置して、ここを押していただくようにしました。
"●"でソートされるように設定していますので、常に"●"が表示されたレコードが最上段にくるようになり、考えていた通りの動作を実現出来ました。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 561.91 KiB (Peak: 581.98 KiB) ]