みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ウインドウズの19バージョンを使っているのですが、
簡単に思えてなぜかできないことがあります。
List関数で取得した関連レコードに通し番号を表示したいというものなのですが、
私は何の機能を見落としているのでしょうか・・・?
やりたいこと
関連テーブルのレコード内容
いちご
みかん
レモン
Xでリレーションしているメインのテーブルから
List関数で取得したい内容
1 いちご
2 みかん
3 レモン
ちなみに、ポータルへの表示をしたいわけではないので
ポータル上にマージフィールドを置くというやり方ではないのです。
取得したList内容を編集するのが簡単では。例えば、
While (
[
t = ¶ & List ( ポータル ) & ¶ ;
n = ValueCount ( t )
] ;
n ;
[
pos = Position ( t ; ¶ ; 1 ; n ) ;
t = Replace ( t ; pos + 1 ; 0 ; n & " " ) ;
n = n - 1
] ;
MiddleValues ( t ; 2 ; ValueCount ( t ) - 2 )
)Last edited by Shin (2022-10-22 18:34:01)
Offline
こんなのも考えてみました。
Evaluate
(
"Let($n=1;$n) & \" " & Substitute ( List(関連テーブル::フィールド) ; ¶ ; "\" & \¶ & Let($n=$n+1;$n) & \" " ) & "\""
)
もっと簡単に「List()の結果として取得する」には、関連テーブル側に連番のフィールドとリストにしたい値とを連結したフィールドを作る必要があります。
リレーションの設定でソート指定していないのなら、
無ソートで、
ソート指定してあればそのフィールドでソートして、
そのレコード番号
でいいのでは。
全レコードを対象にする必要がありますね。
Offline
データに"が含まれる場合に対処できてなかったので修正。
Evaluate
(
"Let($n=1;$n) & \" \" & " & Substitute ( Quote( List(関連テーブル::フィールド)) ; "\¶" ; "\" & \¶ & Let($n=$n+1;$n) & \" " ) & ""
)
いただいた回答をいじくりまわしても理解が追い付かず
返事が遅くなり申し訳ありません。
Shinさんの書かれたコードで実現できたのですが、
内容がいまひとつ理解しきれず何度も関数マニュアルを見返しているところです・・・
チポさんのソート番号の案、後出しになってしまいスミマセン
全レコード対象ではなく、ソート順もデフォルトではないので難しいです。
himadaneeさんの方法は、、、Shinさんのやり方に輪をかけて理解が追い付きません・・・
EvaluteとLetがなんとなく苦手なまま来てしまったので
把握に時間がかかりそうです。
ですが、最近のVerで追加されたwhile関数や
Evaluteの使用など自分では考えなさそうな点、ご教示いただけタス刈ります。
ありがとうございます。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 551.92 KiB (Peak: 579.61 KiB) ]