みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Ver 15を使用しています。
画面上でチェックボックスセットを利用し複数選択したものを
テーブルのテキスト形式のフィールドに保存しております。
そのテキストフィールドの文字列を整形してチェックボックス数分の計算フィールドにフラグ(0 or 1)
として分解しています。
しかしながら、チェックボックスの選択が無い場合に該当計算フィールドに何も表示されない状態になっております。
例)
材料:「木」、「鉄」、「コンクリート」、「その他金属」のチェックボックスセット
(テーブルの材料 テキストフィールド値)
---------------------------------------------
行1)木¶コンクリート
行2)鉄¶コンクリート
行3) ←選択なし
---------------------------------------------
※現状
行1の「計算_木」:1
行2の「計算_木」:0
行3の「計算_木」: ←なにも出力されない
※理想
行1の「計算_木」:1
行2の「計算_木」:0
行3の「計算_木」:0
「計算_木」の内容)
Let (
[
$num = 1;
$max = ValueCount ( 材料 );
$val = "";
$retFlg = 0;
$GetFlg= "Case( $max > 0;
Let ([
$val = GetValue( 材料; $num);
$retFlg= If( $val = \"木\"; 1; $retFlg);
$num = $num + 1;
$max = $max - 1
];
Evaluate($GetFlg)
);
$retFlg
)"
];
Evaluate ( $GetFlg ))
Case文やEvaluate等々いろいろ編集したのですが、理想になりません。
解決方法がありましたら、ご教示ください。
計算式の指定窓の下にある
「式内の全フィールドの値が空欄のとき、計算しない」
のチェックを外せばいいのでは。
FIlterValue関数でもっと簡単な式になりますよ。
Offline
チポ様
回答ありがとうございました。
解決しました。
FilterValueも試してみます。
解決済みで、しかもチポさんもアドバイス済ですが、
わざわざループ計算で複雑にしなくとも、
単に論理式で論理値(0 or 1)を得れば良いのでは、
FilterValues(材料;"木")=FilterValues("木";"木")
※なお、右辺のFilterValues処理は、左辺の計算結果の末尾に
空行が強制付加されるのに対応する等価措置。
Offline
Pages: 1
[ Generated in 0.013 seconds, 8 queries executed - Memory usage: 509.38 KiB (Peak: 513.91 KiB) ]