みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも参考にさせていただいております。
複数人でExcelエクスポートするためのVirtual List用テーブルに、
対象レコードのデータを渡す方法について質問です。
ランダムな対象レコードのため
ExecuteSQLを使用せずにデータを取り出したいのですが可能でしょうか。
エクスポートしたいフィールドには改行入りのものも含まれています。
数は最大で一度に5万レコードほどです。
よろしくお願い致します。
FM16、WIN7
Offline
> 複数人で
・の真意が読み切れませんが、
普通にVirtualListして希望のレコードデータを得て、必要なフィールド値をExcelエクスポートするだけでは?
Offline
Hiroさん、ありがとうございます。
最初は単なるエクスポート用テーブルを作成したのですが
(インポート・エクスポート後、全レコードを削除)
複数人が同時に行うとエクスポート前にレコードが削除されてしまうため、
こちらを参考にVirtual List用テーブルを作成しました。
https://fm-aid.com/bbs2/viewtopic.php?id=6403
普通にとは、Loopで1レコードずつ対象のデータを変数に入れていくなどで良いのでしょうか。
お手数ですがご教示いただけますと幸いです。
Offline
・普通にとは、適当な方法で「照合キーの一覧」を得て、目的に適うVirtualListを作ることです。
・適当な方法は、冗長なループ処理の簡略版として「全置換」機能を使うのが、高速なのでお勧めです。
・複数人が同時利用するなら、この取得「照合キー一覧」を、使用者個別にテーブル管理できるよう「グローバル格納」すると良いでしょう。
Offline
Hiroさん、ありがとうございます。
VirtualListを作るには照合キーの一覧があれば大丈夫なのでしょうか。
リストに入れたい全てのフィールドの値がはじめから必要だと思っておりました。
照合キーの一覧の作成は全置換が高速なのですね。
集計フィールドの一覧は作成できそうですが、全置換の方がベストでしょうか。
グローバル格納で複数人が自身にしか見られないデータを作成できる点、理解しました。
Offline
あぁ、集計フィールドの「一覧」新機能が使えるバージョンだから、それがベストなのですが、
その先の「グローバル格納」の点で、「全置換」が本事案ではやはり、最善かな!
Last edited by Hiro (2017-06-13 16:43:00)
Offline
Hiroさん、何度もありがとうございます。
Let&List関数を使ってグローバルフィールドに全置換というような流れでしょうか。
各フィールド間は特定の文字で繋ぎ
フィールド内改行も別の特定の文字に変換、分解時に戻す予定です。
元のデータが入っているテーブルに作成したグローバルフィールドにのみ格納できました。
Offline
> Let&List関数を使ってグローバルフィールドに全置換というような流れでしょうか。
・そうですネ。最初のレコードで繰越し変数をリセットし、繰越し変数を更新、最後のレコードで累積集計結果を書き出します。
・全置換はマスタテーブル側で行い、結果もバーチャルテーブル::グローバルフィールド(参照フィールド)へ直代入します。
> 各フィールド間は特定の文字で繋ぎ
> フィールド内改行も別の特定の文字に変換、分解時に戻す予定です。
・その必要はありません。バーチャル側に事前に必要な数の汎用・参照フィールドを用意しておくためです。
> 元のデータが入っているテーブルに作成したグローバルフィールドにのみ格納できました。
・元テーブルレイアウトに設置されたバーチャル側の参照グローバルフィールドに全置換の結果を格納できます。
Offline
Hiroさん、ありがとうございます。
全置換の式は無事にできました。
> ・その必要はありません。バーチャル側に事前に必要な数の汎用・参照フィールドを用意しておくためです。
そうでした、一緒に必要なフィールドも並べて書き出すつもりでいましたが
照合キーの一覧を求めるとおっしゃっていましたね。
すみませんうっかりしていました。
参照フィールドということはリレーションを作成するのでしょうか。
2つの独立したテーブルで考えていました。
バーチャル側のグローバルフィールドを分解して一行ずつ照合キーを格納した計算フィールドと
元テーブル側の照合キーフィールドでリレーションを作成、
バーチャル側に元テーブルのフィールドを参照した計算フィールドを設置したところ
綺麗に表示できました。
Offline
素晴しい!
拙いヒントから良く解析されたと思います。^^)
老婆心から、バーチヤルテーブル側の再確認ですが、
・十分余裕を持った数のレコードを事前に作成しておく。
・「レコード番号」(入力自動化)数字フィールドを用意。
・「照合キー」計算フィールドの式は、GetValue(照合キー一覧; レコード番号)
・「照合キー」同士で元本テーブルとリレーションを張る。
・必要な元本フィールドを参照する「元本::関連フィールド」か「バーチヤル::計算フィールド」を設置。
Offline
こちらこそ何度もお付き合いくださり感謝しております。
バーチャルテーブルも再確認できありがたいです。
リレーションを張ることは全く発想にありませんでした。
元テーブルから参照することでこんなにスムーズに作成できるのですね、とても勉強になりました。
Hiroさん本当にありがとうございました。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 526.41 KiB (Peak: 547.32 KiB) ]