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

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

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

You are not logged in.

Announcement

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


#1 2017-06-13 09:20:33

hoyo
Member

Virtual List用のテーブルに対象レコードのデータを渡す

いつも参考にさせていただいております。

複数人でExcelエクスポートするためのVirtual List用テーブルに、
対象レコードのデータを渡す方法について質問です。

ランダムな対象レコードのため
ExecuteSQLを使用せずにデータを取り出したいのですが可能でしょうか。

エクスポートしたいフィールドには改行入りのものも含まれています。
数は最大で一度に5万レコードほどです。

よろしくお願い致します。

FM16、WIN7

Offline

#2 2017-06-13 12:42:12

Hiro
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

> 複数人で
・の真意が読み切れませんが、

普通にVirtualListして希望のレコードデータを得て、必要なフィールド値をExcelエクスポートするだけでは?

Offline

#3 2017-06-13 14:15:14

hoyo
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

Hiroさん、ありがとうございます。

最初は単なるエクスポート用テーブルを作成したのですが
(インポート・エクスポート後、全レコードを削除)
複数人が同時に行うとエクスポート前にレコードが削除されてしまうため、
こちらを参考にVirtual List用テーブルを作成しました。
https://fm-aid.com/bbs2/viewtopic.php?id=6403

普通にとは、Loopで1レコードずつ対象のデータを変数に入れていくなどで良いのでしょうか。
お手数ですがご教示いただけますと幸いです。

Offline

#4 2017-06-13 15:05:30

Hiro
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

・普通にとは、適当な方法で「照合キーの一覧」を得て、目的に適うVirtualListを作ることです。
・適当な方法は、冗長なループ処理の簡略版として「全置換」機能を使うのが、高速なのでお勧めです。
・複数人が同時利用するなら、この取得「照合キー一覧」を、使用者個別にテーブル管理できるよう「グローバル格納」すると良いでしょう。

Offline

#5 2017-06-13 16:17:33

hoyo
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

Hiroさん、ありがとうございます。

VirtualListを作るには照合キーの一覧があれば大丈夫なのでしょうか。
リストに入れたい全てのフィールドの値がはじめから必要だと思っておりました。

照合キーの一覧の作成は全置換が高速なのですね。
集計フィールドの一覧は作成できそうですが、全置換の方がベストでしょうか。

グローバル格納で複数人が自身にしか見られないデータを作成できる点、理解しました。

Offline

#6 2017-06-13 16:38:51

Hiro
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

あぁ、集計フィールドの「一覧」新機能が使えるバージョンだから、それがベストなのですが、
その先の「グローバル格納」の点で、「全置換」が本事案ではやはり、最善かな!

Last edited by Hiro (2017-06-13 16:43:00)

Offline

#7 2017-06-13 17:43:03

hoyo
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

Hiroさん、何度もありがとうございます。

Let&List関数を使ってグローバルフィールドに全置換というような流れでしょうか。
各フィールド間は特定の文字で繋ぎ
フィールド内改行も別の特定の文字に変換、分解時に戻す予定です。

元のデータが入っているテーブルに作成したグローバルフィールドにのみ格納できました。

Offline

#8 2017-06-13 18:34:22

Hiro
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

> Let&List関数を使ってグローバルフィールドに全置換というような流れでしょうか。
・そうですネ。最初のレコードで繰越し変数をリセットし、繰越し変数を更新、最後のレコードで累積集計結果を書き出します。
・全置換はマスタテーブル側で行い、結果もバーチャルテーブル::グローバルフィールド(参照フィールド)へ直代入します。

> 各フィールド間は特定の文字で繋ぎ
> フィールド内改行も別の特定の文字に変換、分解時に戻す予定です。
・その必要はありません。バーチャル側に事前に必要な数の汎用・参照フィールドを用意しておくためです。

> 元のデータが入っているテーブルに作成したグローバルフィールドにのみ格納できました。
・元テーブルレイアウトに設置されたバーチャル側の参照グローバルフィールドに全置換の結果を格納できます。

Offline

#9 2017-06-14 10:45:31

hoyo
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

Hiroさん、ありがとうございます。

全置換の式は無事にできました。

> ・その必要はありません。バーチャル側に事前に必要な数の汎用・参照フィールドを用意しておくためです。
そうでした、一緒に必要なフィールドも並べて書き出すつもりでいましたが
照合キーの一覧を求めるとおっしゃっていましたね。
すみませんうっかりしていました。

参照フィールドということはリレーションを作成するのでしょうか。
2つの独立したテーブルで考えていました。
バーチャル側のグローバルフィールドを分解して一行ずつ照合キーを格納した計算フィールドと
元テーブル側の照合キーフィールドでリレーションを作成、
バーチャル側に元テーブルのフィールドを参照した計算フィールドを設置したところ
綺麗に表示できました。

Offline

#10 2017-06-14 13:49:05

Hiro
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

素晴しい!
拙いヒントから良く解析されたと思います。^^)

老婆心から、バーチヤルテーブル側の再確認ですが、
・十分余裕を持った数のレコードを事前に作成しておく。
・「レコード番号」(入力自動化)数字フィールドを用意。
・「照合キー」計算フィールドの式は、GetValue(照合キー一覧; レコード番号)
・「照合キー」同士で元本テーブルとリレーションを張る。
・必要な元本フィールドを参照する「元本::関連フィールド」か「バーチヤル::計算フィールド」を設置。

Offline

#11 2017-06-14 15:21:31

hoyo
Member

Re: Virtual List用のテーブルに対象レコードのデータを渡す

こちらこそ何度もお付き合いくださり感謝しております。
バーチャルテーブルも再確認できありがたいです。

リレーションを張ることは全く発想にありませんでした。
元テーブルから参照することでこんなにスムーズに作成できるのですね、とても勉強になりました。
Hiroさん本当にありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 526.41 KiB (Peak: 547.32 KiB) ]