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

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

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

You are not logged in.

Announcement

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


#1 2017-03-28 17:20:01

t_tanaka
Member

登録ボタンについて

現在、テキストボックスに文字が入力されたら自動登録されずに保存ボタンを押し、コンファーム画面でOKを押したときのみ登録されるようなものを作成しています。


編集するタイミングでグローバルフィールドに転記させて(OnRecordCommitを使用)、
登録ボタンがおされたときには、そのまま保存。キャンセルが押されたときにはグローバルフィールドに転機させた値をテキストボックスにいれるようにしています。

しかし、コンソールでキャンセルが押されてグローバルフィールドの値をテキストボックスにいれるときに空の値しかはいりません。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■スクリプト1(変数の一時保存用スクリプト)
変数を設定[$$グローバル用;値:"テスト"]


■スクリプト2(登録ボタン押下時のスクリプト)
カスタムダイアログを表示["データ保存";"入力したデータを保存しますか?"]
If(Get(最終メッセージ選択)=1)
Else
  計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
End If
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

なにかわかる方はご返信いただけると幸いです。

Offline

#2 2017-03-28 17:49:54

Re: 登録ボタンについて

t_tanaka wrote:

カスタムダイアログを表示["データ保存";"入力したデータを保存しますか?"]
If(Get(最終メッセージ選択)=1)
Else
  計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
End If

このスクリプトだと
レイアウト上にそのフィールドが載ってないと
データは入りません。
フィールド設定 を使うとなくても張りますが・・・
レイアウト上にあるのかな?

Offline

#3 2017-03-28 17:56:38

t_tanaka
Member

Re: 登録ボタンについて

フィールドには「テスト」(テキストボックス用)と「グローバル用」(グローバル格納)の二つ用意しています。

Offline

#4 2017-03-28 18:01:10

チポ
Member

Re: 登録ボタンについて

変数に値を移していますが、
グローバルフィールドにも移しているのでしょうか?

Offline

#5 2017-03-28 18:23:18

チポ
Member

Re: 登録ボタンについて

全体が変ですね・・

> 変数を設定[$$グローバル用;値:"テスト"]
グローバル変数 $$グローバル用
に値「テスト」のテキストを設定しています。

テストフィールドの値を移すんでしょう?

で、
>   計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
突如、グローバルフィールド「グローバル用」が出てきました??

Offline

#6 2017-03-28 18:25:53

t_tanaka
Member

Re: 登録ボタンについて

グローバル変数の値の参照方法が
計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]

だと思ったのですが、ここが違うんですね。

上の意味をテストのテキストボックスにグローバル用の変数の値を入れるの意味だと思いました。

Offline

#7 2017-03-29 09:29:26

チポ
Member

Re: 登録ボタンについて

グローバル変数とグローバルフィールドはまったく異なるものですよ。

$$グローバル用
に入力したのなら、
> 計算結果を挿入[選択;sample1::テスト;sample1::グローバル用]
これは
  計算結果を挿入[ 選択 ; sample1::テスト ; $$グローバル用 ]
ですね。


  フィールド設定 [ sample1::テスト ; $$グローバル用 ]
個人的にはこちらですね。


しかし、
> 編集するタイミングでグローバルフィールドに転記させて(OnRecordCommitを使用)
OnRecordCommit
ではフィールド編集前の値を取り出せないでしょう。

Offline

#8 2017-03-29 11:25:26

t_tanaka
Member

Re: 登録ボタンについて

チポ様

ご返信ありがとうございます。

下記のサイト等を参考に作成していたのですが、「onRecordCommit」だと編集前のデータをとれないのですね。

URL:https://community.filemaker.com/thread/146507

ご指摘ありがとうございます。

Offline

#9 2017-03-29 17:16:42

t_tanaka
Member

Re: 登録ボタンについて

もうひとつ教えていただきたいのですが、編集前のデータ(対象のテキストボックス等がアクティブになった時)を参照する方法はあるのでしょうか?

Offline

#10 2017-03-29 17:28:08

チポ
Member

Re: 登録ボタンについて

> 対象のテキストボックス等がアクティブになった時
フィールドが選択されたときなら、
  OnObjectEnter
でいいのでは。

スクリプトトリガのヘルプです。
一通り目を通してみたらいかがでしょう
http://www.filemaker.com/help/14/fmp/ja … tml#432143


FM14ですが、、
FM15のヘルプ、なんか見づらい・・

Offline

#11 2017-03-29 17:34:07

Re: 登録ボタンについて

手前味噌で恐縮ですが
https://fm-aid.com/bbs2/viewtopic.php?id=6176
で、スクリプトトリガの解説書の公開を案内してます。
お役のたつといいのですが。

Offline

#12 2017-03-29 17:50:03

t_tanaka
Member

Re: 登録ボタンについて

お二人ともご返信ありがとうございます。

テキストボックスに編集前のデータを格納して(グローバルフィールドもしくはグローバル変数に格納)して、別スクリプトでボタンをクリックしたときに、カスタムダイアログを表示し、キャンセルが押されたときに、その編集前のデータを格納するようなスクリプトを書いてみます。

Offline

#13 2017-03-29 18:07:21

チポ
Member

Re: 登録ボタンについて

> 別スクリプトでボタンをクリックしたときに、カスタムダイアログを表示し、
> キャンセルが押されたときに、その編集前のデータを格納

ボタンを押してくれればいいですが、
押されないこともあり得るのでは。

必ず押さないとそのレコードから抜けられないとか、
ボタンではなく、そのフィールドから出たときにスクリプトを起動させるとか、
方法は考えられますよ。

出たときのスクリプトなら、
スクリプトステップ
  元に戻す/再実行
が使えますね、
これなら、編集前を保存しておく必要が有りません。

Offline

#14 2017-03-29 19:06:17

t_tanaka
Member

Re: 登録ボタンについて

ご返信いただいた方ありがとうございます。
無事できました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.014 seconds, 9 queries executed - Memory usage: 529.59 KiB (Peak: 550.49 KiB) ]