みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも大変お世話になっております。
バージョン19.6.1.45になります。
案件書の中に、いくつかフィールドがあり、変更したら変更フラグが0→1に変わり、変更を伝えるボタンを配置しています。
例えば、場所フィールドが変更された場合は、OnObjectKeystrokeで、
変数を設定$場所;値案件テーブル::場所
フィールド設定[案件テーブル::場所チェック;$場所]
フィールド設定[案件テーブル::変更フラグ;1]
としているのですが、上記の場所フィールドは問題なく、問題なのが、チェックボックスセットを使用している対応部署というフィールドなのです。
これに同様のスクリプト設定をしても、変更フラグが0から1に変更されません。
何かおかしいところはございますでしょうか?
ご教授のほどよろしくお願いいたします。
チェックボックスは、マウスでクリックしてますよね。
OnObjectKeystroke は、キーボード入力の検出なので、クリックは反応しません。
OnObjectModify にすれば良いかと。
以下の様な方法で修正ログを残すこともできます。
https://fm-aid.com/bbs2/viewtopic.php?pid=22613#p22613
Offline
他のフィールドも OnObjectKeystroke だと、TABでも反応するので、OnObjectModify の方が良い様な。
Offline
> 変数を設定$場所;値案件テーブル::場所
> フィールド設定[案件テーブル::場所チェック;$場所]
これは変数不要で、直接フィールド設定できますよね。
すでに回答がある通り
OnObjectModify
のほうがいいと思いますが、、
書かれたスクリプトだと、
一度変更したけれど、やっぱり変更しない。
この場合でも、スクリプトが動きますよ。
Offline
ありがとうございます。
基本的なところでした。
実は、チェックボックスセットが
部署A B C D
のような感じで
変更前がABCDとしまして
Dを外すとABCとなります。
ABCDが 対応部署チェックフィールド
ABCが 対応部部署フィールドになり、
ここが異なっていると、対応部署フィールドの色が変わって、かつ変更フラグが1になる。という動作にしたいのです。
他のテキスト入力ののフィールドは問題ないのですが、チェックボックスの変更前の状態を変数で取得する。というのに手こずっております・・・
わかりづらいかもしれませんが、ご教授願えますでしょうか?
よく理解できていませんが、
ここだけ
> 変更前の状態を変数で取得する
スクリプト
元に戻す/再実行 [元に戻す]
変数を設定
元に戻す/再実行 [再実行]
ただし、
チェックボックスはチェックされた順に改行で入力されますから、
同じチェックでも、チェック順の違いで値が異なります。
ご注意を。
Offline
チポさん
説明不足で申し訳ありません。
元に戻すの設定、知りませんでした。
ありがとうございます。
この方法で試してみます。
チポさんの指摘されている通り、チェック順で内容が 並びますので、それを値一覧の順で並び替えるように、自動入力の計算式(上書き許可)で次の式を設定しておきます。
FilterValues ( ValueListItems ( Get ( ファイル名 ) ; "新規値一覧" ) ; Self )
次に、そのフィールドにトリガーを仕掛けて、次のスクリプトを動かします。(スクリプト引数を使って、OnObjectEnter と OnObjectSave それぞれにしかけます)。まず。変数にクリック前の値が保存され、save された後でクリック後の値と比較できますので、そこで必要な処理を入れます。
If [ Get ( スクリプト引数 ) = "enter" ]
変数を設定 [ $$check ; 値: 名称未設定::text000 ]
Else If [ Get ( スクリプト引数 ) = "save" ]
カスタムダイアログを表示 [ Substitute ( $$check ; ¶ ; " " ) & ¶ & Substitute ( 名称未設定::text000 ; ¶ ; " " ) ]
End If
現在のスクリプト終了 [ テキスト結果: 0 ]
Offline
Pages: 1
[ Generated in 0.015 seconds, 10 queries executed - Memory usage: 563.3 KiB (Peak: 568.55 KiB) ]