みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
今PC、iPad、iPhone用のレイアウトがあり、iPadやiPhoneで使用する場合は自動的に使用する端末に合わせたレイアウトが表示されるようになっています。
PCでiPad用のレイアウトを表示しようとしたのですが一度表示されたらすぐにまたPC用のレイアウトに切り替わってしまいます。
ただしiPhone用のレイアウトは選択してもPC用には切り替わらずに表示が出来ます。
If[Get(システムプラットフォーム ) = 1 ]
レイアウト切り替え[「PC用 」( マスタ ) ]
Else If[PatternCount (Get (アプリケーションバージョン ) ; “ iPad“ )]
レイアウト切り替え[「iPad用 」( マスタ ) ]
Else If[PatternCount (Get (アプリケーションバージョン ) ; “ Go“ )]
レイアウト切り替え[「iPhone用 」( マスタ ) ]
End If
これをiPad用のレイアウト設定の中のスクリプトトリガ、OnRecordLoadにつけてあります。
もしかしたらiPadのレイアウトのスクリプトトリガではなく、別の所につけた方が良いのでしょうか?
何か違っていたらご指摘いただきたいと思いますので宜しくお願い致します。
FileMaker Pro14を使用しております。
Offline
Get(システムプラットフォーム ) = 1 なので、環境はインテルベースのMacで合っていますか?
iPad用レイアウトのOnRecordLoadなので、今の動作は
①iPad用レイアウトを選ぶ
②iPad用レイアウトが表示される
③レコードがロードされ、OnRecordLoadのスクリプトトリガが実行される
④システムプラットフォームが1なので、PC用に切り替える
という流れになっているので、PC用レイアウトに戻っていると思われます。
PC用レイアウトのOnRecordLoadに付けると、
iPad用レイアウトを開いた時にはスクリプトが実行されませんので、PCで開けます。
iPhone用レイアウトを選択しても実行されないのは恐らく、
iPhone用レイアウトのOnRecordLoadに、本スクリプトを設定していないためではないでしょうか。
尚、スクリプト実行タイミングの詳細は、以下のリファレンスで確認すると良いです。
http://www.filemaker.com/help/13/fmp/ja … .9.61.html
Offline
やまおーさんが既に書かれていますが、OnRecordLoadではレコードがロードされるたびに実行されます。
単なるレコード移動などでも実行されますから必要以上に実行されることになります。
端末によってレイアウトを切り替えるためのトリガとしては適していません。
端末によってレイアウトを切り替える場合は OnLayoutEnter が適しているでしょう。
iPad / iPhone での処理速度を重視するならば何もレイアウトオブジェクトのないレイアウトに切り替え
そのレイアウトの OnLayoutEnter で端末毎のレイアウトに切り替えるなどの方法があります。
いずれかの端末のレイアウトを表示してスクリプトで判定する場合よりパフォーマンスは向上します。
この作り方はスターターソリューションなどが参考になるでしょう。
ただし、スクリプトトリガを設定したレイアウトにブラウズモードで切り替えた場合には
スクリプトトリガが動作してレイアウトはPC用に切り替えられますから、
開発時にはレイアウトモードでレイアウトを表示するなどの工夫が必要です。
Offline
皆様ご指摘ありがとうございます!
OnLayoutEnterのやり方もあるのですね。
色々と試してみようと思います。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 552.46 KiB (Peak: 579.45 KiB) ]