みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お助けください。環境はFM12、ウィンドウ7 です。
一覧に並んだグループデータ番号(同じグループ番号が複数)あり、
ひとつのグループ番号レコードだけを表示させたくて
下記の対象外スクリプトで組んだのですが、うまくいきません。
実行結果は、ひとつ、ふたつ 同じグルー・プ番号が付きます。
どこを変えればうまく機能しますでしょうか?
グループ番号でソート
最初のレコードへ移動
変数を設定 [$Bangou; テーブル: グループ番号]
次のレコードへ移動
Loop
if $Bangou = テーブル: グループ番号
レコードを対象外に
else
変数を設定 [$Bangou; テーブル: グループ番号]
end if
次のレコードへ移動(最後まできたら終了)
End loop
【スクリプト】
・レコード/検索条件/ページへ移動 [最初の]
・Loop
・ If [IsEmpty(FilterValues($vl; テーブル: グループ番号))]
・ 変数を設定 [$vl; 値:List($vl; テーブル: グループ番号)]
・ レコード/検索条件/ページへ移動 [次の; 最後まできたら終了]
・ Else
・ レコードを対象外に
・ Exit Loop If [Get(対象レコード数)=ValueCount($vl)]
・ End If
・End Loop
【ポイント】
*ユニーク番号だけの一覧「$vl」を生成しながら、FilterValuesでグループ番号とリスト照合する。
*「対象外」のあとは、自動で繰り上がるので、「次のレコードへ移動」する必要はない。
Last edited by Hiro (2014-03-15 06:43:42)
Offline
次のレコードへ移動(最後まできたら終了)
をend ifの上に移動して
if $Bangou = テーブル: グループ番号
を
if [$Bangou = テーブル: グループ番号 and $Bangou=GetNthRecord ( テーブル: グループ番号; Get ( レコード番号 )-1 )]
にするとか?
ソートするので、1つ上と比較すればいいのでは。
グループ番号でソート
最初のレコードへ移動
次のレコードへ移動
Loop
if[テーブル: グループ番号=GetNthRecord(テーブル: グループ番号;Get(レコード番号)-1)]
レコードを対象外に
else
次のレコードへ移動(最後まできたら終了)
end if
End loop
あれ?Travellerさんのと同じか。変数いらないでしょう。
Offline
Hiroさん、ありがとうございました。
朝一から移植して、感動しております。
waderさん、TravellerさんのGetNthRecord関数の使い方が
大変、勉強になりました。ありがとうございました。
>変数いらないでしょう。
そうとも言う(゚o゜)\
集計機能使えば、表示はすぐですし、エクスポートすればその一覧も作れますが。
Offline
Hiro様のスクリプトで、試してみたのですが、
私の場合はうまくいきません。
自動採番のIDとテキスト型の番号のふたつのフィールドのファイルでテストしましたが、
同じ番号が出ていたりします。何が原因なのでしょうか?
レコード/検索条件/ページへ移動 [最初の]
・Loop
・ If [IsEmpty(FilterValues($vl; テーブル: 番号))]
・ 変数を設定 [$vl; 値:List($vl; テーブル: 番号)]
・ レコード/検索条件/ページへ移動 [次の; 最後まできたら終了]
・ Else
・ レコードを対象外に
・ Exit Loop If [Get(対象レコード数)=ValueCount($vl)]
・ End If
・End Loop
元々はFM12ですが、環境は何でしょう?
こちらの事前検証でも少なくともFM9では、$vlの計算結果に最初の値がダブってリストされるバグがあることを確認しています。
その場合、安易な対象療法かも?ですが、Exit Loop If [Get(対象レコード数)=ValueCount($vl)-1]で補正するとか。
今回質問の方法以外にも、全く別のアプローチによる解法も色々考えられます。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 560.13 KiB (Peak: 579.58 KiB) ]