みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win 8 / FM13 Ad
いつもお世話になっております。
今回は表題の件についてご質問させて頂きたいと思います。
テーブルAの「No.」を表示されている対象レコード数分をカスタム関数で取得しました。
カスタム関数はGetFieldValuesで表示されている対象レコード分の値を1つのフィールドに
リスト化して取得する関数になります。
うまくレコード数分の値を取得できたのですが、その値を別テーブルで検索をかけたいのですが、
リスト化された値を1つずつうまく検索条件へ設定ができません。
どなたかご教授願えますでしょうか。
宜しくお願い致します。
GetValue関数で分解する。
リスト内全部のOR検索ならリレーションして関連レコード移動でも。
という意味ではない?
Offline
テーブルAの「No.」のみのレイアウトを作り、全レコード/検索条件コピー すれば、クリップボードに取得できますよ。
http://www.filemaker.com/help/13/fmp/ja … tml#636184
その値を繰り返しフィールドに分解して、関連レコードへ移動、ですぐ出来るはず。
Last edited by Shin (2015-01-20 14:00:22)
Offline
対象レコードの特定のフィールドの値の改行区切りは
FileMaker Pro 13 なら集計フィールドの「一覧」を使えば簡単に取得できますよ。
カスタム関数やスクリプト回すより数倍早いです。
あとは 旅人さんのご提案でいけるでしょう。
Offline
GetValue関数で分解する。
リスト内全部のOR検索ならリレーションして関連レコード移動でも。
という意味ではない?
返信ありがとうございます。
ほぼ初心者のようなものですので、どういった形で式を組めば良いのか
イメージがあまり湧きません。。。
テーブルAの「No.」のみのレイアウトを作り、全レコード/検索条件コピー すれば、クリップボードに取得できますよ。
http://www.filemaker.com/help/13/fmp/ja … tml#636184その値を繰り返しフィールドに分解して、関連レコードへ移動、ですぐ出来るはず。
返信ありがとうございます。
旅人さん、Mozさんとは別の方法になるんですかね?
一旦URLをチェックしてみます。
対象レコードの特定のフィールドの値の改行区切りは
FileMaker Pro 13 なら集計フィールドの「一覧」を使えば簡単に取得できますよ。カスタム関数やスクリプト回すより数倍早いです。
あとは 旅人さんのご提案でいけるでしょう。
返信ありがとうございます。
確かにカスタム関数を使用するより、集計フィールドの一覧のほうが
早く取得ができました。(集計フィールを使用すると遅いと少し重くなると聞いたので。。。)
その後の設定は旅人さんの方法があまりイメージが湧きませんね。。。
一覧に関しては色々検証しましたがリスト取得の過去のバージョンのどの方法よりも高速ですね。
旅人さんのご提案を勝手にサンプル化。即興なのであってるか分かりませんが......
(別テーブル作るの面倒なので同じテーブルの別オカレンスですがやることは同じです)
http://yahoo.jp/box/_EnBbk
Last edited by Moz (2015-01-20 15:11:37)
Offline
一覧に関しては色々検証しましたがリスト取得の過去のバージョンのどの方法よりも高速ですね。
旅人さんのご提案を勝手にサンプル化。即興なのであってるか分かりませんが......
(別テーブル作るの面倒なので同じテーブルの別オカレンスですがやることは同じです)
http://yahoo.jp/box/_EnBbk
Mozさん
サンプルファイルありがとうございます。
拝見させて頂きました。
こういった方法は思いつきませんでした。。。
サンプルファイルでは検索1件のみでしたが、Loop内にレコード/検索条件/ページへ移動[次の]を
組み合わせていけば、一覧で取得した複数の検索条件が指定できるということでしょうか?
何度も質問すみません。。
サンプルでは対象レコードすべての「No」で検索するように作ってありますよ。
最初のテーブル(ヘッダが黒)で検索した場合、表示されているレコードの「No」のリストを利用して
別テーブル(ヘッダが緑)の関連レコードへ移動または検索を行うスクリプトが作ってあります。
下記の動きはそのようなものを指すのではないですか?
テーブルAの「No.」を表示されている対象レコード数分をカスタム関数で取得しました。
カスタム関数はGetFieldValuesで表示されている対象レコード分の値を1つのフィールドに
リスト化して取得する関数になります。
うまくレコード数分の値を取得できたのですが、その値を別テーブルで検索をかけたい
Last edited by Moz (2015-01-20 16:32:31)
Offline
リスト表示されたものの完全一致のOR検索なら
Shinさんの全レコードコピーを使ってこんなので。
http://pupld.net/28/150120/ubwufl1fkl/index.cgi
リスト検索.fmp12
No.だけのレイアウトしか無い手抜きです。
Offline
よく考えたら
カスタム関数で得た結果を他に何かに使うのかな?
検索後にそのまま関連レコード移動するだけでいいわけだし。
Offline
検索の代りに関連レコード移動を使うなら、そのオプションで「対象レコード」というのがあるから、リストを作る必要がないという意味ですね。
実験してないけど、リストが集計フィールドで一瞬でできるなら、リストから関連レコード移動した方が速いかもしれない。
Mozさん、旅人さん、scripterさん
返信ありがとうございます。
そもそもは提出用に抽出するエクスポート機能を実装していましたが、
Aテーブルで検索をかけ、Bテーブル(履歴側)に複数ある場合に
抽出したExcelファイルが
Aテーブル情報 Bテーブル情報
AAA aaa iii uuu
eee ooo sss
ccc vvv nnn
のような形で抽出されてしまうため、履歴があるものに関して
Aテーブル情報 Bテーブル情報
AAA aaa iii uuu
AAA eee ooo sss
AAA ccc vvv nnn
履歴がないもに関しては
BBB
CCC
の形で抽出したいという要望がありました。
なので、カスタム関数で検索Keyを取得し、履歴側で取得したkeyで
検索をかけ履歴側にある場合は上記の表記で、ない場合は
Aテーブルの顧客情報のみ書き出すような方法はないかと
思いまして、相談させて頂きました。
すみません。
例で入れた部分がズレてしまいました。。。
本来はaの下にe、eの下にcの形です。
基本、Bから書き出すことになるのでBに無いBBBやCCCは書き出せませんよね。
AAA aaa iii uuu
eee ooo sss
ccc vvv nnn
BBB
CCC
ならすぐできるけど。
Offline
基本、Bから書き出すことになるのでBに無いBBBやCCCは書き出せませんよね。
AAA aaa iii uuu
eee ooo sss
ccc vvv nnn
BBB
CCC
ならすぐできるけど。
やはり厳しいですか。。。
該当しない案件のみ新規でレコードを作成し、Excelに書き出した後に削除する、
などそういった方法はできますか?
何度も質問すみません。
そのときだけ履歴側のAAA等のフィールドを常時ユニーク値制限しておいて
検索結果側のテーブルのレコードを履歴からインポートしたらできますけど。
Offline
Pages: 1
[ Generated in 0.005 seconds, 8 queries executed - Memory usage: 559.19 KiB (Peak: 580.09 KiB) ]