みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
以下の計算式を設定した繰り返しフィールドを作って、
vlに取得した日付のリストを順番に表示していく計算式です。(トピック7869)
これで、一応表示はできるのですが、「集計最終日」に日付が入力されている場合は、
vlのリストをすべて表示するのではなく、その最終日の表示を最後にしてあとは空らんにしたいと思います。
式後半の
v < ul ; v;
v >= ul ; ul に問題があって、最終日を一度表示したあと、vlと同じ数だけになるだけ最終日を何回も繰り返して表示してしまいます。
しかし、どのようにすればよいかがわかりません。
(再帰式を使うしかない気がするが・・・;;)
Let( [
vl = ValueListItems(Get(ファイル名);教室マスタ_入テ受験者::教室名[1]&"教室日程一覧");
max = ValueCount(vl);
ld = GetValue(vl;max);
ul = 入テ各教室締め日::集計最終日[1];
ldplus = Date(Month(ld);Day(ld)+1;Year(ld));
n=Get(計算式繰り返し位置番号);
v=GetValue(vl;n)
];
Case(
IsEmpty(ul) ; Case(
n <= max ; v;
n = max +1 ; ldplus
);
not IsEmpty(ul) ; Case(
v < ul ; v;
v >= ul ; ul
)
)
)毎回面倒な質問で恐縮ですが、ご教授いただければ幸いです。
PS.再帰式を理解するのに良いサンプルファイルがあればご紹介いただけませんか?
FMpro11 MacOSX10.9
Offline
Let( [
vl = ValueListItems(Get(ファイル名);教室マスタ_入テ受験者::教室名[1]&"教室日程一覧");
vl = List ( vl ; GetAsDate(RightValues(vl;1)) + 1 );
ul = 入テ各教室締め日::集計最終日[1];
n=Get(計算式繰り返し位置番号);
v=GetAsDate(GetValue(vl;n))
];
Case(
not IsEmpty(ul) and v > ul ; "" ; v
)
)
あらら・・・こんな簡単な式で良かったのか・・・
timさんありがとうございました。
自分の頭の悪さが嫌になりますわ・・・(ーー;)
Offline
すみません。もう少し教えて下さい。
timさんの教えていただいたことをベースにして、次のように式を変えました。
でも、一つ問題があって、「最終日」が入力されているときは、
この最終日そのものを最後に表示したいのですが、うまい書き方がわかりません。
Let( [
vl = ValueListItems(Get(ファイル名);教室マスタ_入テ受験者::教室名[1]&"教室日程一覧");
max = ValueCount(vl);
ld = GetValue(vl;max);
ul = 入テ各教室締め日::集計最終日[1];
ldplus = Date(Month(ld);Day(ld)+1;Year(ld));
n=Get(計算式繰り返し位置番号);
v=GetValue(vl;n)
];
Case(
not IsEmpty(ul) and v > ul ; "" ;
Case(
n = max +1 and IsEmpty(ul) ; ldplus ; v
)
)
)Offline
あ、+1以外にもリスト外の値があるんでした。
そうすると
Let( [
vl = ValueListItems(Get(ファイル名);教室マスタ_入テ受験者::教室名[1]&"教室日程一覧");
vl = List ( vl ; GetAsDate(RightValues(vl;1)) + 1 );
ul = 入テ各教室締め日::集計最終日[1];
n=Get(計算式繰り返し位置番号);
v=GetAsDate(GetValue(vl;n))
];
Case(
not IsEmpty(ul) and v > ul ; Case ( Self[n-1] <> ul ) ; ul ; "" ) ; v
)
)
あんまりすっきりしない。。。
timさん、早速ありがとうございます。
わたし、最初のtimさんの書き込みの、前半部分が変更されてるの気付いてませんでした。すみません^^;
で、新しい式の方ですが、self[n-1] の記述が通らないようです。
この使い方は問題ありませんか?
Offline
self[n-1]をフィールド名に変えたらうまくいきました。ありがとうございます。
Offline
timさん、やっぱりだめです。
フィールド名[n-1] <> ul ; ul ;"" で、最後の項目のあとが、シマシマ模様的に飛び飛びでulが表示されてしまうのに気付きました^^;
どうなおしたらいいでしょうか・・・・
Offline
区分[n-1] <> ul and 区分[n-1] <> "" としたら行けました。
今度こそ大丈夫そうです。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 562.64 KiB (Peak: 582.45 KiB) ]