みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMPro17AdをWindows10で利用しています。
対象レコードの絞り込みを行うと、さっきまで表示させていたデータではなく、
最初のレコードが表示されてしまいます。
検索ボタンを押す前のレコードを表示させたまま、
絞り込むにはどうしたらよいのでしょうか。
ご教授お願い致します。
無理でしょう。
代替案ですが、、
そのレコード固有の値を得ておいて、
検索後、それを探して行く。
等でしょうね。
探すのは、
Loopで1レコードずつ見て行くか、
グローバルフィールドとリレーションして関連レコード移動
でできます。
Offline
現在のレコードがフリー検索後の対象レコードセットに含まれる保証は無いのだから、
FMの仕様が正当で、あなたの考え方の方がむしろ不当な要求ですネ。
Offline
もし、もし、ですが、現在のレコードから、リレーションが張れるような検索を行うのでしたら、リレーションを通して、関連レコードへ移動、でいいですが。ごく限られた条件です。
Offline
Loopで目的の値のレコードへ移動するサンプルが以下にあります。
[解決] ブラウザのページ内検索のような事がしたい (ページ 1)
https://fm-aid.com/bbs2/viewtopic.php?pid=49094#p49094
Offline
対象レコードで、キー $Key になるフィールドの値を List() か、一覧集計で取得 $Text して、
CountValue ( Left ( $Text ; Position ( $Text ; $Key ) ) )
でレコード位置が求められるはずです。Loop よりは効率いいでしょう。
Offline
効率で言うのなら、、
関連レコード移動
が簡単でしょう。
ユニークなフィールドと、グローバルフィールド一つ
必要になりますが。
Offline
関連レコードへ移動は、検索結果の対象レコードセットを保持するのが出来ないのでは?
Offline
移動だけの設定にすれば対象レコードが変わることはないですよ。
Offline
たくさんの提案ありがとうございます。
本当に心強く、頼りにさせていただいております。
現状と、質問の補足を少しさせてください…
対象レコードの絞り込み条件は、「1つのチェックボックスのチェック」だけで、
もちろん、現在表示されているレコードもチェックが入っているデータです。
現在のレコードとは、一覧からリレーションされた明細レコードのような関係性のレコードの集まりなのですが
更にその中から【ボタン押下】のタイミングで「チェックが入っている」データだけに絞り込み、
別のレイアウトに表示させるとき、現在のレコードを表示させたいのです。
現状は、ボタン押下のスクリプトに
・レイアウト切り替え
・対象レコードの絞り込み
を設定しています。
これですと、☑で絞り込んだデータの最初のレコードが表示されてしまいますよね。
レイアウト切り替え前に、ボタンがあったレイアウトに表示していたデータの記憶?のようなことをしておき、
レイアウト切り替えをし絞り込みの後に、記憶していたものをまた何か設定すれば、
ボタンがあったレイアウトに表示されていたデータが、表示できないものでしょうか?
関連レコードへ移動を入れたりしてみましたがダメでした。
どんな設定をどこにすればよいかわからないのです…
上手く現状と、やりたいことがお伝え出来ていればいいのですが…
よろしくお願いします。
「1つのチェックボックスのチェック」ということは、値を複数持つことはない、今のレコードと同じ情報を持つレコードを抽出、ということでしたら、そのフィールドで自己リレーションを張り、
関連レコードへ移動(新規ウィンドウ)
が簡単でしょうね。
Offline
>#10『対象レコードの絞り込み条件は、「1つのチェックボックスのチェック」だけで、』
今回、☑した検索フラグ(チェック値)は次回にも残ったままになるので、
毎回、全レコードをクリヤーリセットする事前処理が必要となりますネ。
これはいちいち面倒なので、これを避ける簡略な方法をよくとります。
それは、フラグ値に今回のみ有効な「固有シリアル値」(例えば、タイムスタンプ値とか)を使う手法です。
これなら、古いフラグ値が残留したまま放置しても一向に構いません。
※また、入力フラグ値の有効精査は「1値」照合が楽なので、「チェックボックス」は、
「択一」強制入力可能な「ラジオボタン」へ換えます。
説明がなかなか伝わり難い様なので、チポさん案「関連レコードへ移動」を利用する方法の
上説作例サンプルを補足アップしときます。
●サンプル「検索後現レコード表示.fmp12」 → https://1drv.ms/u/s!AlaCGhTKTWEOp3NIz_R … F?e=uO9LsU
Last edited by Hiro (2020-05-12 15:34:10)
Offline
Shin 様
ありがとうございます。
なんとなく出来そうな気がするのですが、何分自己リレーションの概念が
よくわかっておりませんで。。。
【そのフィールドで自己リレーションを張り】とは、どのようにしたらよいのでしょうか
子テーブル同士をリレーション張るということでしょうか?
現在、親テーブルの全レコードの中に、
すでにチェックボックスセット(□A□B□C)にチェックの入ったデータが複数件あります。
その中のAに☑が付いている、例えば佐藤さんのデータを1件表示している親テーブルレイアウトがあります。
その親テーブルレイアウトに配置したボタンを押下したとき
子テーブルレイアウトに切り替えて、Aに☑が付いているデータだけに絞って、さらに画面には佐藤さんのデータを表示させたいのです。
【値を複数持つことはない】とは、上でいうことに当てはまりますか?
【今のレコードと同じ情報を持つレコードを抽出ということえあれば】、これはその通りです。
自己リレーションだけでできますでしょうか?
Hiro 様
サンプルまで作成していただきありがとうございます。
はい、やりたいことは子テーブルコピーレイアウトに表示されているものそのものです。
自己リレーション
設定するところは、フィールドを2つ追加し、自己リレーション?と、スクリプトでしょうか?
なかなか、敷居が高そうですが、理解するのに、時間がかかりそうですが。。。
がんばって解読してみます。
できればもうしばらくお付き合いいただけますと助かります。
よろしくお願いいたします。
Hiro様
申し訳ありません。
子テーブルコピーレイアウトには1件しか表示されていないのです。。。
私がやりたいのは、サンプルでいうところの
親テーブルレイアウトから、子テーブルレイアウトにボタンで遷移するとき
例えば、親ID001、子ID4のデータを選択し、関連レコード検索ボタンを押下したら
子テーブルレイアウトに子ID4のデータが表示されていますよね。
さらに、データも親ID001のデータ5件に絞り込まれてますよね。
これをやりたいのです。
サンプルとこちらの現状と違うところは
親テーブルレイアウトにあたるレイアウトはフォーム形式です。
ポータルもないのです。
なので、例えでいうところの、親ID001、子ID4のデータを選択することができないのです。。。
言葉足らずで、本当に申し訳ありません。
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 599.69 KiB (Peak: 616.59 KiB) ]