みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
FMP 15 Winを使っています。
タイトルどおりなのですが、ポータル内の情報を取得したいです。
ポータル1行目の情報をフィールド①
ポータル2行目の情報をフィールド②
というふうに入力したいです。
何か良い方法はありますでしょうか?
よろしくお願いします。
Offline
> ポータル1行目の情報をフィールド①
の式は、 GetValue(List(ポータルテーブル::情報フィールド); 1)
> ポータル2行目の情報をフィールド②
の式は、 GetValue(List(ポータルテーブル::情報フィールド); 2)
※ただし、空白の情報フィールドはリストから無視され、行順位が繰り上げ計算されます。
Offline
ポータル内の欲しいフィールドが"商品名"だとします。
ポータルは複数行あるでしょうから
まずポータルのその"商品名"フィールドをリスト化します。
List(そのポータル名::商品名)
で商品名の改行区切りのリストが得られます。
次にそのリストが何行あるか調べます。
とりあえずそのリストを変数に入れて
$list=List(そのポータル名::商品名)
その後
Valuecount($list)
でそのポータルの行数が出ます。
これを行数として変数に入れます。
変数を設定 $max=Valuecount($list) //行数です
これらの情報を元にLOOPで随時とりだします。
変数を設定 $i=1//カウンター
//挿入先が別テーブルならここで挿入先のレイアウトへ切り替え
//指定レコードに移動させる
Loop
Exit Loop if $i>$max // 行数を越えたら終了
フィールド設定 "挿入先のフィールド" GetValue($list;$i)
//挿入先が別テーブルならここでレコード移動する(次へ)。
End Loop
みたいな感じかと想像しました。
これは別テーブルにデータを移動するような時に使いますが、Loopの基本型です。
同じレコード内での単なる挿入は不定数が前提ではないですからHiroさんの考え通りですね。
Offline
Hiro様 calafate様
ありがとうございました。
今回は単純な計算のみだったのですが、こんな便利な関数があるのですね。
また、Loopの使い方もすごく勉強になりました!
また、よろしくお願い致します。
Offline
解決ですが。。
ポータル1行目は関連フィールドのみで得られます。
2行目以降は
GetNthRecord
で行を指定して得られます。
空白のフィールドでも問題ありません。
ポータルにフィルタ、ソート指定がないことが条件ですね。
Offline
Pages: 1
[ Generated in 0.007 seconds, 8 queries executed - Memory usage: 508.73 KiB (Peak: 513.27 KiB) ]