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

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

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

You are not logged in.

Announcement

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


#1 2013-11-05 12:40:10

あると
Guest

検索スクリプトとグローバル格納

環境:FM12、win8

IDと日付で検索して、該当レコードを出したいと思ってます。

テーブル:A
フィールド:A_ID
フィールド:A_日付
フィールド:A_メモ

テーブル:B
フィールド:B_ID(グローバル)
フィールド:B_日付(グローバル)
フィールド:B_メモ(グローバル)

A_IDとB_IDでリレーション組んでいます。ポータルツールを使用するため。

入力画面(テーブル:B)→スクリプト「検索移動」→検索画面(テーブル:B)→入力→スクリプト「検索実行」→リスト表示→選択→入力画面へ戻る。
という流れを作ろうとしています。

スクリプト「検索移動」、IDと日付を空にします。
レイアウト切り替え:検索画面へ
フィールド設定[B_ID;""]
フィールド設定[B_日付;""]

スクリプト「検索実行」、IDと日付に入力して絞り込むか、もしくは片方に入力でリストとして出すか。
レイアウト切り替え:(テーブル:A)
検索モード
フィールド設定[A_ID;B_ID]
フィールド設定[A_日付;B_日付]
検索実行
フィールド設定[B_メモ;A_メモ]
レイアウト切り替え:検索画面へ

ここで出来ずに困っているのが、3点あります。
1、リレーションをID同士で組んだためか、検索入力をどう変えても、IDでしか検出してくれない。日付をいれても検索せず。
2、ID+日付、IDのみ、日付のみと、検索がandとorの両面になるが出来るのか?
3、or検索のときリスト表示は、どうすれば良いか?グローバルにしたため、同じものを量産してしまい使えない。

and検索でリストにするなら、リレーションでIDと日付でくくり、ポータルで出せば済む。
or検索も、片方だけリレーションでくくれば出来る。
では、両立させるには?と。

本番では、スクリプトで検索実行後にIf(Get ( 最終エラー ) = 401)と、該当レコードの有無で結果は変えたいのですが、まずはレコードが必ずあることを前提にして作成中です。
これが動かないことには、先に行けないので。


長々となりましたが、アドバイスいただければありがたく。
よろしくお願いします。

#2 2013-11-05 12:49:06

Layouter
Guest

Re: 検索スクリプトとグローバル格納

ポータルは何に使うんですか。
IDというと普通はユニークなものを言うんですが、テーブルAではユニークじゃないのですか。

#3 2013-11-05 13:25:57

チポ
Member

Re: 検索スクリプトとグローバル格納

> スクリプト「検索実行」、IDと日付に入力して絞り込むか、もしくは片方に入力でリストとして出すか。
> レイアウト切り替え:(テーブル:A)
> 検索モード
> フィールド設定[A_ID;B_ID]
> フィールド設定[A_日付;B_日付]
> 検索実行
この検索実行の前でスクリプトを止めて検索条件を確認してみたらどうでしょう。



グローバルフィールドだけのテーブルBは不要では、
テーブルAのグローバルでいいでしょう。

Offline

#4 2013-11-05 13:38:18

あると
Guest

Re: 検索スクリプトとグローバル格納

お返事いただきありがとうございます。

Layouterさんへ
>ポータルは何に使うんですか。
>IDというと普通はユニークなものを言うんですが、テーブルAではユニークじゃないのですか。
テーブル:C
フィールド:C_ID
フィールド:C_社名
フィールド:C_電話番号
という風に、その他も考慮しています。それらをIDでつなぐと。
ですので、ID:1のAA社からいつ連絡あって、その内容をメモとして・・・それらをデータベースとして残し、検索したいと思っております。

チポさんへ
>グローバルフィールドだけのテーブルBは不要では、
>テーブルAのグローバルでいいでしょう。
了解です。やってみます。

検索条件の確認もやってみます。

#5 2013-11-05 14:23:46

Layouter
Guest

Re: 検索スクリプトとグローバル格納

IDは会社のIDなんですね。
日付だけでもポータル表示したいなら、リレーションは=でなくXにしてポータルフィルタで表示するとかですが
テーブルBをなくしたら、Aで検索した後はAのリスト表示のレイアウトで見ればいいですよね。ポータルは不要。

#6 2013-11-05 14:27:31

あると
Guest

Re: 検索スクリプトとグローバル格納

検索条件の確認したところ、IDと日付のand検索になってました。
IDでリレーション組んでポータル使ったので、IDでしか検索できないと勘違いしたようです。ポータルの使いどころを間違えました。すみません。

>2、ID+日付、IDのみ、日付のみと、検索がandとorの両面になるが出来るのか?
>3、or検索のときリスト表示は、どうすれば良いか?
この2点は、まだ解決せず。

>テーブルAのグローバルでいいでしょう。
やってみると言ったものの、どのようにすれば良いのでしょうか?

#7 2013-11-05 14:46:53

チポ
Member

Re: 検索スクリプトとグローバル格納

> リレーションをID同士で組んだためか、検索入力をどう変えても、IDでしか検出してくれない。日付をいれても検索せず。
こう書かれていますが、

> 検索条件の確認したところ、IDと日付のand検索になってました
これはどういうこと?



検索で対象レコードを絞り込むのと、
ポータルで関連レコードを表示することは全く違うことです。

何をしたくて、何ができないのか分かりません。

Offline

#8 2013-11-05 15:01:18

Layouter
Guest

Re: 検索スクリプトとグローバル格納

>2、ID+日付、IDのみ、日付のみと、検索がandとorの両面になるが出来るのか?
+(両方入力した場合)は、andでいいんですよね?それだと、andか単独かで、orという条件はないのでは。
IDのみ複数入力したい、というわけじゃないですよね。

入力画面(テーブル:A)→スクリプト「検索移動」→検索画面(テーブル:A)→入力→スクリプト「検索実行」→リスト表示→選択→入力画面へ戻る。
「検索移動」は検索モードに切り替えるだけ。
「検索実行」は検索実行してリスト形式のレイアウトに切り替えるだけ
「選択」はそのレイアウトのどこでもいいからボタンにしておいて、入力画面に切り替えるだけ
でいいんじゃないのかなあ。

#9 2013-11-05 15:20:09

あると
Guest

Re: 検索スクリプトとグローバル格納

チポさんへ

IDと日付で検索できれば、絞り込むが出来るのですが、例えば「ID:1のAA社。前回、連絡もらった内容で」「お昼頃、田中(仮)さん宛に電話あたよ」と言われても、日付がわからず相手がわからずでは該当レコードがわかりません。
そのため、IDか日付だけを入力すれば、履歴をリスト表示して選択できれば良いと思い。ポータルフィールドを置いたのですが、当然ながらリレーションで組んだものでしか表示してくれません。
IDでつないでいれば、IDに関してだけのリストは出来る。
ですが、つないでいない日付では絞り込んでくれない。

安易に、リスト表示したいと考えたのが、間違いであったと。
そのポータルだけ見ていたので、IDでしか検索できていないと勘違いをしてしまったしだいです。
再度、確認をしてみたところ、IDと日付の2つとも入力していれば、該当レコードへしっかり検索が出来ていました。and検索は出来ていたと。

改めて、やりたいことは、IDのみ入力、日付のみ入力、と片方だけを入力して検索する。履歴をリスト表示したい。
というものです。
この場合は、or検索になりますよね?
そのため、前者のand検索が出来て、後者のor検索もできるというのは可能なのだろうかと。

グローバル格納を使わなければ出来ると思うのですが、グローバル格納を使ったうえで動作させたいと思っております。


Layouterさんへ
ありがとうございます。
>日付だけでもポータル表示したいなら、リレーションは=でなくXにしてポータルフィルタで表示するとかですが
>テーブルBをなくしたら、Aで検索した後はAのリスト表示のレイアウトで見ればいいですよね。ポータルは不要。
頑張ってみます。

#10 2013-11-05 15:28:00

あると
Guest

Re: 検索スクリプトとグローバル格納

Layouterさんへ
>+(両方入力した場合)は、andでいいんですよね?それだと、andか単独かで、orという条件はないのでは。
>IDのみ複数入力したい、というわけじゃないですよね。
はい、どちらかだけです。
複数入力はないです。これは単独になるのですか、or検索と勘違いしてたのですね。

>「検索実行」は検索実行してリスト形式のレイアウトに切り替えるだけ
グローバル格納使ってるテーブル:Bは、まったく要らない。テーブル:Aのまま、作れば良いということですか?
出来れば、入力および検索等の操作は、テーブル:B(グローバル格納を利用)で行いたいのですが。

#11 2013-11-05 15:36:30

チポ
Member

Re: 検索スクリプトとグローバル格納

まだよく分からない、、


IDと日付の or 検索をしたいのなら、
検索条件を二つ作り、
一つにIDを入力、もう一つに日付を入力
これで検索します。

Offline

#12 2013-11-05 15:38:45

チポ
Member

Re: 検索スクリプトとグローバル格納

書き落とした。


> 入力および検索等の操作は、テーブル:B(グローバル格納を利用)で行いたいのですが
テーブルAのグローバルフィールドを、ヘッダなりフッタに置けばいいことですよ。

ご希望なら、ヘッダだけのレイアウトも作れます。

Offline

#13 2013-11-05 15:53:13

Layouter
Guest

Re: 検索スクリプトとグローバル格納

作り方はいくらでも考えられますけど、(ボタンを押して)スクリプトを実行してから検索条件を入れる、という流れなんで、
「グローバル格納使ってるテーブル:Bは、まったく要らない。テーブル:Aのまま、作れば良い」と思いました。
いきなり条件を入れたいとか、検索でなくポータルとか関連レコードへ移動を使うケースなら、グローバルフィールド使いますけど...

#14 2013-11-05 17:13:22

あると
Guest

Re: 検索スクリプトとグローバル格納

チポさん、Layouterさんへ

今のままでも、出来なくはないということなので、もう少し頑張ってみたいと思います。
他の方法でも、アドバイスをいただきありがとうございます。あきらめずに済みそうです。

進展ありましたら、ご報告したいと思います。
ありがとうございました。

#15 2013-11-05 17:59:27

あると
Guest

Re: 検索スクリプトとグローバル格納

>テーブルAのグローバルフィールドを、ヘッダなりフッタに置けばいいことですよ。
こちらの方法は出来ました。

解決にしたいと思います。
本当に、ありがとうございました。先週末からの悩みが解決できた。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 596.56 KiB (Peak: 613.1 KiB) ]