初心者のFileMaker pro Q&A (旧掲示板)

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

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

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2021-06-15 11:04:31

st-taka
Member

新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

いつも大変お世話になっています。

次のようなことを行いたいと思っています。
1 元ウインドウで”検索ボタン”を押すと、新規ウインドウで検索条件を入れる画面が出る(OK)
2 検索条件を入れて”ウインドウを閉じる”と、元の画面に戻る。(OK)
3 元のウインドウで、検索を行いたい(これがうまくいかない)

なお、現状では、
1 元ウインドウで”検索ボタン”を押すと、検索画面のレイアウト(検索モード)に切り替わる(OK)
2 検索条件を入れて、”検索実行”を行う。(OK)
3 検索画面から”レイアウトの切り替え”で元のウインドウに戻る(OK)
このように行っています。

よろしくご指導ください。

Offline

#2 2021-06-15 11:59:50

チポ
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

> 1 元ウインドウで”検索ボタン”を押すと、新規ウインドウで検索条件を入れる画面が出る(OK)
この新規ウインドウの
レイアウトのテーブルは?
また、それは検索モードですか?


ご希望の理由がわかりませんが。。

Offline

#3 2021-06-15 13:05:49

Shin
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

別ウィンドウで検索条件を設定する、という必然性を示していただけませんか。

FileMaker では、別ウィンドウは別のクライアントが使っている、という感じの動きです。ですから、別のウィンドウでの動きを持ってくることはできませんね。
また、検索条件はスクリプトから保存することができません(手動でしたら、現在の検索を保存と保存済み検索か最近の検索で可能です)ので、検索条件を取り出すこともできません。
どうしても取り出すためには、検索条件を入力した状態で、各フィールドから値を取り出していくといいのかもしれませんが、これもフィールドごとに内容を取り出すしかないので結構面倒です。
同じテーブルへの操作のようですので、どうしても別ウインドウで検索条件を設定したいのでしたら、別ウィンドウで検索してしまって、その結果を取得して、元のウィンドウで適用させる(再検索になりますが)、という手があるとは思いますが。

Offline

#4 2021-06-15 15:34:21

st-taka
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

チボ様
shin様

早速のご返答ありがとうございます。

説明不足でしたが、次のような理由で検索条件を入れる画面は”検索用のレイアウト”で行っています。
1 本ウインドウで画面を検索モードに切り替えると、
  うっかり勘違いして、検索画面で入力する事項を編集モードのフィールドに書き込む危険があります。
2 また、例えば登録日での検索などは、次のように長い検索条件を入れたい場合もありますので、
  検索条件を入れる専用のレイアウトを作成しています。
  2021/04/01 ... 2021/04/30
3 同じウインドウで検索画面にレイアウトを切り替えれば問題はないのですが、
  出来れば、新規ウインドウで”検索レイアウト”を開くとことが出来ればビジュアル的にも検索画面である事が、
  より明示できるのではないかと思っています。

レコードの編集の場合は、新規ウインドウで編集しても書込確定をすれば、元レイアウトの方も正常に反映されることは、
承知しています。
しかし、検索モードはデータテーブルへの書き込みがないので無理かなと思いましたが、
"レコード/検索条件コピー"と言うステップがあったので、これなどをうまく使えないかなと思ったのです。
検索条件をコピーして、貼り付けなどができるでしょうか。
よろしくお願いします。

Offline

#5 2021-06-15 16:24:09

Shin
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

「レコード/検索条件コピー」は、「テキストフィールドはタブ区切り形式で、レコードのレイアウト内に作成された順序でコピーされます。」ですので、使えないことはないですが、フィールドの削除などでその順番が確定したものではないのでどうでしょうか。
レイアウトも、フィールド定義も変更がなければいいのかもしれません。(同じテーブルの中だけならば、FIeldID を別途取得して照合すれば何とかなります)

同じウィンドウで検索させるのが簡単では。表示は、例えば、元のウィンドウの大きさを保存しておいて、レイアウトを変更して小さなウィンドウで表示して条件を入力させ、検索後は元のウィンドウに戻してレイアウトも戻す。という動きでいいのでは。

Last edited by Shin (2021-06-15 16:55:15)

Offline

#6 2021-06-15 16:35:20

チポ
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

面倒なこと考えるより現在のウィンドウで考えたほうがはるかに簡単では。

> 1 本ウインドウで画面を検索モードに切り替えると、
>   うっかり勘違いして、検索画面で入力する事項を編集モードのフィールドに書き込む危険があります。

確定したレコードは普通に編集できないようにできますし、
また、
メニューを使えないようにして、ボタンでのみ検索モードに入れるようにすればどうにでもなりますよね。

Offline

#7 2021-06-15 16:38:09

qb_dp
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

複数フィールドの値を一時保管・復元は手間をかけないとできません。

以下でjson形式でフィールド値の取得が行なえます。
レコードをJSONとして取得(繰り返しフィールド対応)
https://fm-aid.com/custom-function/28-getrecordasjson2

復元はスクリプトでLoopが必要です。
以下は参考
ファイル内のグローバルフィールド(繰り返し含む)の値をすべて初期化。
https://fm-aid.com/custom-function/19-g … -fieldreps


新規ウインドウの代替で、ポップオーバーボタンで行うとか...

Offline

#8 2021-06-16 12:07:29

st-taka
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

みなさま
いろいろなお知恵を出していただきまして大変ありがとうございました。

検索条件の”コピー&貼り付け”はかなり面倒なことが理解できましたので、
同一のウインドウでレイアウトを切り替えて、”検索して⇒元に戻る” という方式で行ってまいりたいと思います。

”新規ウインドウ”は、印刷プレビューなどで使っていますが、とても便利なので、
ついつい検索画面でも使えないかと思った次第です。

私にとって、出来ること、出来ないこと、が明確になることはとても貴重なことでしたので、
重ね重ねお礼申し上げます。
これからもどうぞよろしくご指導ください。

Offline

#9 2021-06-16 14:45:47

mic
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

検索モードで検索条件を入力するのではなく、
・検索条件を入力するグローバルフィールドを用意
・グローバルフィールドの条件で検索するスクリプトを作成

として新規ウインドウで検索条件を入力させ、元のレイアウトに戻って検索スクリプトを実行すれば実現できないでしょうか。
グローバルフィールドの初期化やフィールドを増やした時などに手間が掛かる欠点はありますが、どこからでも検索条件を設定できると思います。

Offline

#10 2021-06-17 11:05:58

st-taka
Member

Re: 新規ウインドウで設定した検索条件を元ウインドウに反映させて検索したい

mic さま

どうもありがとうございます。
サンプルファイルを作って確かめたところ、期待通りの結果になりました。
ただ、フィールドが多い場合など少し面倒なことと、他のレイアウトも同様にしなければ統一性が無くなるので、今回はこの方式は見送ることにしました。
しかし、この仕組みは他のことでも活用できますので、役立たせて頂きます。

今後ともよろしくご指導ください。



mic wrote:

検索モードで検索条件を入力するのではなく、
・検索条件を入力するグローバルフィールドを用意
・グローバルフィールドの条件で検索するスクリプトを作成

として新規ウインドウで検索条件を入力させ、元のレイアウトに戻って検索スクリプトを実行すれば実現できないでしょうか。
グローバルフィールドの初期化やフィールドを増やした時などに手間が掛かる欠点はありますが、どこからでも検索条件を設定できると思います。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] claudebot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 546.51 KiB (Peak: 567.41 KiB) ]