みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
いつも大変お世話になっております。
バージョン19.5.300になります。
Y軸で在庫を表示しており、X軸で日付を表示しております。
日付は繰り返しフィールドで表示させています。
←→ボタンをレイアウトし、日付を一週間や一月、移動させて、在庫表示をしています。
最初に商品を選んだ段階では最初の1レコード目を選択しています。
1レコード目を選択したまま、マウスやパッドでスクロールして下の商品のスケジュールを見るのですが、ここでレコードを選択しないで、←→ボタンを押すと、当然1レコード目を選択しているので、一番上に戻ってから、日付が前後します。
一度レコードを選択してから←→ボタンを押せば、当然問題ないのですが、そのひと手間を省きたく、例えば今画面表示されているレコードの一番上を選択する。などといったスクリプトはあるのでしょうか?
それがあるのであれば、←→ボタンの一番上のスクリプトステップに組み込めば理想の動作になるのかなと思い、質問した次第です。
正直難しいと感じておりますが、何か方法があればご教授のほど、よろしくお願いいたします。
質問者さんの言う一番上というのがよく分かりませんが、
表示されているレコードの1件目に移動するなら
[レコード/検索条件/ページへ移動]スクリプトステップで「最初の」を選べば移動できます。
Offline
よく理解できていないのでトンチンカンでしたらご容赦を
モニタに表示されている一番上のレコード
ということでしたら無理でしょう。
> ←→ボタン
これはヘッダかフッタに配置しているのですよね?
ボディに配置すればそのレコードで動きますよ。
Offline
GetLayoutObjectAttribute ( "オブジェクト名" ; "top" )
を見れば、選択されてる行がどの辺にあるかはわかるので、行の高さから移動すべき行数を計算してそのレコードへ移動すればいいでしょうけど、ウィンドウサイズとか変数が多そうですね。
1行ずつ移動して判定しようとすると、移動した時点で画面内にスクロールされてしまうので、だめでした。
皆様
一番上というのは、最初のレコードのことです。
これに戻らずに、モニタ画面の一番上に表示されているレコード。ということでした。
わかりづらくて申し訳ございません。
←→ボタンはヘッダに配置しています。ボディに配置するのは無理ですので、やはり厳しいと理解しました。
一度選択してから、←→ボタンを押すという動作で対応しようと思います。
ありがとうございました。
今後とも、何卒よろしくお願いいたします。
すごく簡単な方法を思いつきました。
1.画面内のどのレコードを実際に人間が注目しているかはそのレコードにアクションを起こさない限り絶対にわからないので、移動先のレコードを現在の状態だけから指定することは不可能
2.画面内のレコードなら、どこに移動しても(上下の端の半端に表示されてるレコード以外)特に問題ない
なので、ボディの任意のフィールドに「次の場合にオブジェクトを隠す」計算式
Let($$L=Get(レコード番号);0)
を設定してレコード番号をグローバル変数に保存しておいて、スクリプトではそのレコードに移動します。
移動先がたまたま「上下の端の半端に表示されてるレコード」だった場合は、それを完全に表示するように少しスクロールしてしまいます。
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 513.71 KiB (Peak: 518.25 KiB) ]