みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMP15 ( mac ) FMGO15を使用しています。
レイアウト間の移動の際に、前のレイアウトに簡単に戻れるように「戻る」ボタンを作成したいと思っています。
今のところイメージしているのは、レイアウト移動の際に、グローバル変数で「$$前レイアウト」を登録しておいて、「戻る」ボタンで変数値を呼び出すようにしようと思っているのですが、
1段階の戻るならシンプルですが、2段階、3段階の「戻る」を登録・記録するにはスクリプト内で結構複雑になるかなと心配しています。
「戻る」ボタンの仕組みを単純、シンプルにできる方法がありましたら、どなたかご教授いただけますか?
Offline
アクセスしたレイアウトを記録するテーブルを作って
履歴を残して
それを検出して 戻るという方法はいかがですか?
Offline
その変数の中に改行区切りでレイアウトを保存していけば良いでしょう。新しい情報は、一番前に付け加えます。
レイアウトを戻すには、1行目を削除すれば、最上の行が前のレイアウトになりますので、このレイアウトに移動します。さらにこれを繰り返せば、戻っていきます。
ただ、これはレイアウトが戻るだけで、対象のレコードが戻る訳ではないので、前の状態を再現している事にはなりません。
前の状態に戻すには、スナップショットリンクを保存していけば良いかもしれませんが、これでもアクティブレコードの選択まではサポートできませんね。
Offline
変数が使えるようになって便利になりましたね。
説明不足でした。
私の提案での保存するデータに レイアウトやレコード番号、レコードID などを入れておくと
戻す時のスクリプト処理で 元のレコードに戻したりもできた と思ってるんですが。。
Offline
>シャチさん、Shinさん
ありがとうございます。
今のところ単純にレイアウト移動だけの情報が戻ればそれで十分ですので変数でやって機能の理解をしたいと思います。
テーブルを使えば、アクティブレコードなどの情報も登録しておけるし、精度の高い「戻る」機能ができそうですね。
ちなみに変数をListで制御するには、
$$レイアウト=
記録を追加していく場合(進):: List ( get (レイアウト名) ; $$レイアウト )
記録を消去していく場合(退):: Substitute ( $$レイアウト ; getvalue ($$レイアウト ; 1 ) ; "" )
こんな感じでよろしいのでしょうか?
Last edited by jose (2016-12-29 18:01:04)
Offline
追記;
一応ホームレイアウトに戻った時に変数をリセットしています。
記録を追加は上の式で大丈夫そうですが、記録を消去していく場合、上の式だと1行目が空白で残ってしまいます。
どなたかご教授いただけますか?
Offline
Substitute() で消すと、例えば、情報リスト、情報リスト明細 という名前のレイアウトがあると困りませんか。
MiddleValues ( $$レイアウト ; 2 ; ValueCount ( $$レイアウト ) - 1 )
にしておかれると良いでしょう。
Offline
Shinさん
middle valueとvalue countの関数は一度も使ったことがなかったのでとても勉強になります。
ありがとうございます!
Offline
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 516.27 KiB (Peak: 520.8 KiB) ]