みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
現在、テキストボックスに文字が入力されたら自動登録されずに保存ボタンを押し、コンファーム画面でOKを押したときのみ登録されるようなものを作成しています。
編集するタイミングでグローバルフィールドに転記させて(OnRecordCommitを使用)、
登録ボタンがおされたときには、そのまま保存。キャンセルが押されたときにはグローバルフィールドに転機させた値をテキストボックスにいれるようにしています。
しかし、コンソールでキャンセルが押されてグローバルフィールドの値をテキストボックスにいれるときに空の値しかはいりません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■スクリプト1(変数の一時保存用スクリプト)
変数を設定[$$グローバル用;値:"テスト"]
■スクリプト2(登録ボタン押下時のスクリプト)
カスタムダイアログを表示["データ保存";"入力したデータを保存しますか?"]
If(Get(最終メッセージ選択)=1)
Else
計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
End If
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
なにかわかる方はご返信いただけると幸いです。
Offline
カスタムダイアログを表示["データ保存";"入力したデータを保存しますか?"]
If(Get(最終メッセージ選択)=1)
Else
計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
End If
このスクリプトだと
レイアウト上にそのフィールドが載ってないと
データは入りません。
フィールド設定 を使うとなくても張りますが・・・
レイアウト上にあるのかな?
Offline
フィールドには「テスト」(テキストボックス用)と「グローバル用」(グローバル格納)の二つ用意しています。
Offline
変数に値を移していますが、
グローバルフィールドにも移しているのでしょうか?
Offline
全体が変ですね・・
> 変数を設定[$$グローバル用;値:"テスト"]
グローバル変数 $$グローバル用
に値「テスト」のテキストを設定しています。
テストフィールドの値を移すんでしょう?
で、
> 計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
突如、グローバルフィールド「グローバル用」が出てきました??
Offline
グローバル変数の値の参照方法が
計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
だと思ったのですが、ここが違うんですね。
上の意味をテストのテキストボックスにグローバル用の変数の値を入れるの意味だと思いました。
Offline
グローバル変数とグローバルフィールドはまったく異なるものですよ。
$$グローバル用
に入力したのなら、
> 計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
これは
計算結果を挿入[ 選択 ; sample1::テスト ; $$グローバル用 ]
ですね。
フィールド設定 [ sample1::テスト ; $$グローバル用 ]
個人的にはこちらですね。
しかし、
> 編集するタイミングでグローバルフィールドに転記させて(OnRecordCommitを使用)
OnRecordCommit
ではフィールド編集前の値を取り出せないでしょう。
Offline
チポ様
ご返信ありがとうございます。
下記のサイト等を参考に作成していたのですが、「onRecordCommit」だと編集前のデータをとれないのですね。
URL:https://community.filemaker.com/thread/146507
ご指摘ありがとうございます。
Offline
もうひとつ教えていただきたいのですが、編集前のデータ(対象のテキストボックス等がアクティブになった時)を参照する方法はあるのでしょうか?
Offline
> 対象のテキストボックス等がアクティブになった時
フィールドが選択されたときなら、
OnObjectEnter
でいいのでは。
スクリプトトリガのヘルプです。
一通り目を通してみたらいかがでしょう
http://www.filemaker.com/help/14/fmp/ja … tml#432143
FM14ですが、、
FM15のヘルプ、なんか見づらい・・
Offline
手前味噌で恐縮ですが
https://fm-aid.com/bbs2/viewtopic.php?id=6176
で、スクリプトトリガの解説書の公開を案内してます。
お役のたつといいのですが。
Offline
お二人ともご返信ありがとうございます。
テキストボックスに編集前のデータを格納して(グローバルフィールドもしくはグローバル変数に格納)して、別スクリプトでボタンをクリックしたときに、カスタムダイアログを表示し、キャンセルが押されたときに、その編集前のデータを格納するようなスクリプトを書いてみます。
Offline
> 別スクリプトでボタンをクリックしたときに、カスタムダイアログを表示し、
> キャンセルが押されたときに、その編集前のデータを格納
ボタンを押してくれればいいですが、
押されないこともあり得るのでは。
必ず押さないとそのレコードから抜けられないとか、
ボタンではなく、そのフィールドから出たときにスクリプトを起動させるとか、
方法は考えられますよ。
出たときのスクリプトなら、
スクリプトステップ
元に戻す/再実行
が使えますね、
これなら、編集前を保存しておく必要が有りません。
Offline
ご返信いただいた方ありがとうございます。
無事できました。
Offline
Pages: 1
[ Generated in 0.014 seconds, 9 queries executed - Memory usage: 529.59 KiB (Peak: 550.49 KiB) ]