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

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

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

You are not logged in.

Announcement

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


#1 2018-04-09 20:39:25

徳田
Member

ポータル内のきめられた行の値を取得する方法

お世話になります。
FMP 15 Winを使っています。
タイトルどおりなのですが、ポータル内の情報を取得したいです。
ポータル1行目の情報をフィールド①
ポータル2行目の情報をフィールド②
というふうに入力したいです。
何か良い方法はありますでしょうか?
よろしくお願いします。

Offline

#2 2018-04-09 21:32:48

Hiro
Member

Re: ポータル内のきめられた行の値を取得する方法

> ポータル1行目の情報をフィールド①
の式は、 GetValue(List(ポータルテーブル::情報フィールド); 1)
> ポータル2行目の情報をフィールド②
の式は、 GetValue(List(ポータルテーブル::情報フィールド); 2)

※ただし、空白の情報フィールドはリストから無視され、行順位が繰り上げ計算されます。

Offline

#3 2018-04-09 21:53:59

calafate
Member

Re: ポータル内のきめられた行の値を取得する方法

ポータル内の欲しいフィールドが"商品名"だとします。

ポータルは複数行あるでしょうから

まずポータルのその"商品名"フィールドをリスト化します。

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

#4 2018-04-09 22:58:00

徳田
Member

Re: ポータル内のきめられた行の値を取得する方法

Hiro様 calafate様

ありがとうございました。
今回は単純な計算のみだったのですが、こんな便利な関数があるのですね。

また、Loopの使い方もすごく勉強になりました!

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

Offline

#5 2018-04-10 09:23:15

チポ
Member

Re: ポータル内のきめられた行の値を取得する方法

解決ですが。。

ポータル1行目は関連フィールドのみで得られます。
2行目以降は
  GetNthRecord
で行を指定して得られます。

空白のフィールドでも問題ありません。


ポータルにフィルタ、ソート指定がないことが条件ですね。

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, 8 queries executed - Memory usage: 508.73 KiB (Peak: 513.27 KiB) ]