初心者のFileMaker pro Q&A

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

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

ログインしていません。

アナウンス

Claris FileMaker Pro 19 ヘルプ
新しい質問は、新規トピック から投稿して下さい。


#1 2021-06-08 21:38:31

てる
ゲストユーザー

ポータル(リスト)のアクティブ行を一番上に表示したい

過去のトピックと似てて申し訳ありません。

レイアウトにタブを配置し、夫々にレイアウトテーブルのポータルを配置しています。
ポータルを切り替える度に、現在のレコードを一番上に表示したいと思っています。

過去トピックを拝見して、変数に現在のレコード番号を取得し
レコード移動(最後)
レコード移動(レコード番号)
としています。
しかし、結果は一番下だったり、中間だったりと表示位置が定まりません。(デバッガでは、一番上に表示されます。)

そこで、レコード移動(最後)の次に「ウインドウ内容の再表示」や「スクリプト一時停止」を入れて
レコード移動(レコード番号)とすると、現在のレコードが一番上に表示されます。
しかしながら、この方法では画面がチラついてしまいます。

皆様、何かよい方法は有りませんでしょうか?
宜しくお願いします。

#2 2021-06-08 23:50:20

Shin
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

最初に、ウインドウを固定 を入れてみればいかがでしょう。

オフライン

#3 2021-06-09 08:44:43

てる
ゲストユーザー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

Shin さま

アドバイスありがとうございます。

はい、ウインドウの固定を入れています。有効にしても無効にしても結果がかわりません。

#4 2021-06-09 08:58:02

Shin
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

スクリプトを全てを書き出して見てください。ウインドウの固定は、状況によって無効です。

ポータルの設定がわかりませんが、現在のレコードを一番上に、の現在のレコードとは、アクティブになっているレコードで、ポータルは自己リレーションということでしょうか。
自己リレーションなのdしたら、ポータルを現在のテーブルにしておけば、なにもせずにポータルのアクティブ行は、アクティブレコードになります。
他のテーブルへでしたら、ポータル内のソート順と関係なく表示されてもいいのでしたら、1行ポータルと複数行ポータルを並べて表示させ、それぞれ、現在のレコードとユニーク情報が一致、一致しない、というフィルターを設定しておけばいいです。

オフライン

#5 2021-06-09 09:42:03

チポ
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

状況とご希望がよく分かりません。。

表題では
>  ポータル(リスト)のアクティブ行を一番上に表示
と書いていますが、

> レコード移動(最後)
としています。。?

オフライン

#6 2021-06-09 15:58:24

てる
ゲストユーザー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

Shin さんの発言:

スクリプトを全てを書き出して見てください。ウインドウの固定は、状況によって無効です。

ポータルの設定がわかりませんが、現在のレコードを一番上に、の現在のレコードとは、アクティブになっているレコードで、ポータルは自己リレーションということでしょうか。
自己リレーションなのdしたら、ポータルを現在のテーブルにしておけば、なにもせずにポータルのアクティブ行は、アクティブレコードになります。
他のテーブルへでしたら、ポータル内のソート順と関係なく表示されてもいいのでしたら、1行ポータルと複数行ポータルを並べて表示させ、それぞれ、現在のレコードとユニーク情報が一致、一致しない、というフィルターを設定しておけばいいです。


ありがとうございます。
スクリプトを書きだします。

エラー処理オン
ユーザによる強制終了を許可オフ
ウインドの固定

変数を設定[$レコード番号;get(アクティブレコード番号)]

オブジェクトへ移動[オブジェクト名:GetValue(Get(トリガターゲットパネル);2)]

レコード/検索条件/ページへ移動[最後の]
//ウインドウ内容の再表示  (ココで再表示を有効にすると毎回現在のレコードが上に表示します。)
レコード/検索条件/ページへ移動[ダイアログあり:オフ;$レコード番号]

スクリプトは以上になります。


ポータルの設定ですが、複数タブに夫々配置しているポータルは、すべて現在のテーブルです。リレーションではありません。
タブを切り替える度に、タブに配置しているポータル(現在のテーブル)のアクティブ行が一番上に表示するようにしたいのです。

よろしくお願いいたします

#7 2021-06-09 16:17:13

てる
ゲストユーザー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

チポ さんの発言:

状況とご希望がよく分かりません。。

表題では
>  ポータル(リスト)のアクティブ行を一番上に表示
と書いていますが、

> レコード移動(最後)
としています。。?


説明が悪くて申し訳ないです。

やりたいことは
テーブルにフィールドがA,B,C,D,E,F,G,H,I,・・・と複数ります。

テーブルの内容を一覧表示したいのですが、横長なレイアウトが見にくい為、
タブコントロールを配置し、夫々にポータル表示で現在のテーブル内容を表示しています。
タブ1のポータルには、フィールドABC
タブ2のポータルには、フィールドADEF
タブ3のポータルには、フィールドAGHI
しかしながら、夫々ポータルのアクティブレコードの表示位置が一番上だったり、中間だったり、欄外だったりとズレます。
そこでタブを切り替える度に、アクティブレコードの表示位置を一番上にして統一したいと思っています。

このような書き方で伝わりますでしょうか?
よろしくお願いいたします。

#8 2021-06-09 16:53:22

チポ
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

現在のポータルの上に1行ポータルを配置して、
アクティブなポータル行をそこへ表示。
はいかがでしょう。

オフライン

#9 2021-06-09 17:35:30

Shin
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

一番上に表示するのは、レコード、それとも、ポータル行?

オフライン

#10 2021-06-09 23:14:48

ウィン
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

アクティブレコードをポータル表示で一番上に表示したいとのことですが、基本的にポータル行の正確な表示位置情報を知る手立てがありません。

レイアウトを移動してしまったりすると位置関係はリセットされて最初もしくは最後の行にアクティブされてしまうような動作をします。
現在のレイアウトでは対象となるレコード(ポータル)が選択されている為、タブ切り替えをするとアクティブレコードは選択されている状態だと思います。ポータル位置のばらつきがここにあるのだと思います。

どうしても一番上に表示したい場合にはチポさんが提案する一行ポータルを配置するやり方か、もしくはソートをかけて一番上にアクティブレコードを持ってくるほかありません。

ソートをかけても構わないならタブボタンにトリガースクリプトステップを仕込むことで並べ替えは実現可能かと思われます。デメリットは表示される順番が多少変わってしまうことです。それでも目的のアクティブレコードは一番上に表示できます。

オフライン

#11 2021-06-09 23:51:03

Moz
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

アクティブという表現がアレですが
横に長いフィールド数の多いポータルを3分割してタブそれぞれに配置したってことじゃないですかね。
元は同じTOでもポータルが分かれているので1枚目2枚目3枚目が独立して表示されてしまう......と。

ポータルから抜ける時にアクティブだった行が他のタブに移動した際に1番上に来れば良いのでは?
チポさんのアイデアが近いように思いますが。

オフライン

#12 2021-06-10 00:28:14

Shin
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

#4の最後に、書いていますが。

オフライン

#13 2021-06-10 11:38:05

チポ
メンバー

Re: ポータル(リスト)のアクティブ行を一番上に表示したい

ああ、書かれていましたね、
読んでいませんでした -_-

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer