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

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

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

You are not logged in.

Announcement

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


#1 2017-01-23 18:13:32

setsu
Guest

条件によるタブインデックス(フィールド)の入力禁止

初めまして、setsuと申します。

ある変数フラグが特定の値になっている時に、レイアウト内のタブコントロールにある二つのタブインデックスa,bのうちタブインデックスb内のフィールドを編集不可にしたいです。

理想的なのはレイアウト切り替えの際に$flag=1のとき、タブインデックスb自体を触れない(インデックスの部分がグレーアウトし、クリックしても反応がない)状態にできるようなスクリプトが書けるといいのですが、難しい場合は、タブインデックスb内のフィールドxについて入力禁止とできるようになればと考えています。

どうぞよろしくお願いいたします。

===========
使用環境
filemaker pro advanced14
Windows8.1 pro
===========
※filemaker webdirectの互換性が必要ですが、ひとまず無くてもできる方法がありましたらご教授いただきたいです。

#2 2017-01-23 20:38:18

シャチ
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

FMP12レベルしか持ってないので
ポータルのスクリプトトリガではうまくできなかったので
ボタンをポータルラベルにかぶせるということで
なんとか解決できたけど

方法は、
フラグフィールド(Flag)に A/Bのラジオボタンを作って
それでAB指定
ラベルAのボタンの上には
・If[Flag=”A"]
・カスタムダイアログ[入れませんのメッセージ]
・Else
・オブヘクトに移動[ラベルA]
・End If

Bの方にはこれと逆のスクリプトを

これでなんとか動いたけど。。。
何かいい方法ないかなぁ?

検証ファイルは
http://yahoo.jp/box/duJOyc
にあります

Offline

#3 2017-01-24 09:02:00

チポ
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

> レイアウト切り替えの際に$flag=1のとき
ローカル変数になっていますが、
スクリプト内でのことですか?

Offline

#4 2017-01-24 09:37:42

Moz
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

変数についてはチポさんから指摘がありますが $$flag ですかね?
↑という前提で。

[OnPanelSwitch]スクリプトトリガで移動先のタブが分かりますから、
$$flag = 1 でタブB がダメならば[現在のスクリプト終了(False)]でタブ移動はできません。

FileMaker WebDirect 互換性はあります。

サンプル
http://yahoo.jp/box/qk5Y-e

Offline

#5 2017-01-24 10:34:07

Shin
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

フラグが不明ですが。
OnObjectEnter トリガーを仕掛けておき、スクリプトでその変数を評価して、フラグが立っていればオブジェクトから出てしまうようにしておけば良いでしょう。

Offline

#6 2017-01-24 11:07:10

シャチ
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

Shin wrote:

OnObjectEnter トリガーを仕掛けておき、スクリプトでその変数を評価して、フラグが立っていればオブジェクトから出てしまうようにしておけば良いでしょう。

これを仕掛けて見たんですが
!2レベルでは OnObjectEnter が反応しなかった OnTabSwitch も反応してくれなくて
ひょっとして OS(Sierra と相性が悪いのかも。。。

Offline

#7 2017-01-24 11:28:52

Moz
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

リファレンスにも記載されていますが[OnObjectEnter]トリガは
マウスクリックによるタブコントロール選択ではアクティベートされません。

http://www.filemaker.com/help/12/fmp/jp … .38.2.html

タブコントロール内のフィールドへの入力を防ぐためにフィールドコントロールへ設定するなら有効です。

Offline

#8 2017-01-24 12:00:07

チポ
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

OnObjectModify
がタブパネルの切り替えに有効ですよ。

これを使って、
条件で指定したタブパネルを選択出来ない様に出来ますね。

Offline

#9 2017-01-24 12:47:10

Moz
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

FileMaker Pro 14 のようなので[OnPanelSwitch](作例で使用)で良いかなと思ったのですが......マズいですかね。
トリガの起点は FileMaker Pro 12(初出は[OnTabSwitch])です。

Offline

#10 2017-01-24 12:55:17

シャチ
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

検証で使った関数が間違ってました
Get ( トリガ現在のタブパネル )
を使うべきだったんですね。

これを使って
OnTabSwitchで解決できました。
検証ファイルは
http://yahoo.jp/box/no5UIu
に置きました。

Offline

#11 2017-01-24 13:39:08

Shin
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

タブの表示を禁止したいのではなく,その中のフィールドの編集を禁止する、という事では無いのですか。そのフィールドにトリガーを仕掛ければいいと思いますが。

Offline

#12 2017-01-24 13:44:15

Moz
Member

Re: 条件によるタブインデックス(フィールド)の入力禁止

理想的なのはレイアウト切り替えの際に$flag=1のとき、タブインデックスb自体を触れない(インデックスの部分がグレーアウトし、クリックしても反応がない)状態にできるようなスクリプトが書けるといいのですが、難しい場合は、タブインデックスb内のフィールドxについて入力禁止とできるようになればと考えています。

というご要望ですから
[OnPanelSwitch]によるタブの無効化が図れたら第一希望通り、
[OnObjectEnter]によるタブ内フィールドの入力禁止は次点希望ですね。

[OnPanelSwitch]で以下の追加要望についても充足されることも検証済です。

※filemaker webdirectの互換性が必要ですが、ひとまず無くてもできる方法がありましたらご教授いただきたいです。

Last edited by Moz (2017-01-24 13:45:05)

Offline

#13 2017-01-25 10:25:23

setsu
Guest

Re: 条件によるタブインデックス(フィールド)の入力禁止

皆様

一括で失礼します。たくさんのご助言ありがとうございます。
ご指摘のあった変数ですが、当初タブのあるレイアウトへの切り替え時のスクリプト内で解決しようとしていたためflagをローカル変数にしていました。特にこだわりがあった訳ではないです。紛らわしくて申し訳ありません。

Mozさん、Shinさんのご助言を参考にレイアウト切り替え時に$$flag=1とし、スクリプトトリガのOnPanelSwitchで$$flag=1のとき現在のスクリプト終了で解決しました。
シャチさんもボタンをラベルに重ねるというアイデアをありがとうございました。また他に機会があれば応用できればと思います。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 533.05 KiB (Peak: 553.95 KiB) ]