みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
よろしくお願いいたします。
Win8、FM 13 adv. を使用しております。
このようなことが、出来ましたらと思いまして・・・・よろしくお願い申し上げます。
例えば、AからGまでの、7グループに分けられたデータ(各グループにそれぞれ100件ほどのデータ、重複なし)があるとします。
各群の並び順(任意)を指定しまして、
各群から、ランダムに、1データずつ抽出して、
指定したグループの順番で、データを表示したいと考えております。
AADBDCBG・・・・と、グループの並び順を指定して、
表示されるデータ(各グループからランダムに一つずつ抽出)は、
Aグループから抽出したデータ、Aグループの残りから抽出したデータ、Dグループから抽出したデータ、
Bグループから抽出したデータ、Dグループの残りから抽出したデータ、Cグループから抽出したデータ、・・・・・
のように、したいと思います。
稚拙な説明で申し訳ありません。
どなたか、良い方法がありましたらよろしくお願い申し上げます。
文章説明は面倒なので、説明代わりにサンプルをアップしましたので参考ください。
必要事項の一覧を作り、ループスクリプトで一覧結果を取得しています。
●サンプル「ランダム抽出.fmp12」→ http://yahoo.jp/box/goCEKP
Offline
2個のテーブルを作り、グループ名でリレーションしておきます。抽出テーブルのグループ名に、グループの並び順を1レコード1グループで順に設定します。
データテーブル 抽出テーブル
グループ名 = グループ名
データ データ
N_random serial
この状態で、次のスクリプトを走らせれば、目的の様になるでしょう。
エラー処理 [ オン ]
レイアウト切り替え [ 「データ」 (データ) ]
全レコードを表示
フィールド内容の全置換 [ データ::N_random; 計算で置き換える: Random ][ ダイアログなし ]
レイアウト切り替え [ 「抽出テーブル」 (抽出テーブル) ]
Loop
検索実行 [ 指定された検索条件: レコードの検索; 条件: 抽出テーブル::データ: 「=」 ][ 記憶する ]
Exit Loop If [ Get ( 最終エラー ) ]
関連レコードへ移動 [ テーブル: 「データ」; 使用するレイアウト: 「データ」 (データ) ][ 関連レコードだけを表示 ]
レコードのソート [ 特定のソート順: データ::N_random; 昇順 ][ 記憶する; ダイアログなし ]
関連レコードへ移動 [ テーブル: 「抽出テーブル」; 使用するレイアウト: 「抽出テーブル」 (抽出テーブル) ][ 関連レコードだけを表示 ]
レコードのソート [ 特定のソート順: 抽出テーブル::serial; 昇順 ][ 記憶する; ダイアログなし ]
レコードのインポート [ ソース: 「file:joy-h4288.fp7」; ターゲット: 「抽出テーブル」; 方法: 既存のレコードを更新する;... ][ ダイアログなし ]
End Loop
全レコードを表示
レコードのソート [ 特定のソート順: 抽出テーブル::serial; 昇順 ]
https://www.dropbox.com/s/b4pm32z1w7d8x … 7.zip?dl=0
Last edited by Shin (2016-03-12 23:25:55)
Offline
Hiro 様
Shin 様
大変有り難うございます。いろいろと考えて、出来なかったことが、
お二人の手にかかりますと・・・・・・魔法の様です。
早速、実装させて頂いて、後にご報告をさせて頂きます。
素晴らしいです。
有り難うございます。
Hiro 様
Shin 様
大変有り難うございました。
お陰様で、今まで出来なかったことが可能となりました。
また、宜しくお願い申し上げます。
[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 513.31 KiB (Peak: 518.22 KiB) ]