みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お疲れ様です。
FM19 WIN10
ポータルツール内に金額とチェックボタンのフィールドを置いてます。(1レコードにつき1つのチェックボックス)
チェックボックスに✓が入ってるレコードの金額で合計金額を自動で計算してくれるフィールドをポータル外に作りたいです。
計算式等やり方をご教授願います。
どのような値一覧になっているのかよくわかりませんが、1レコードの中で、□100 □200 □300 のようになっているのでしたら、
Evaluate (
Substitute (
Char ( 8203 ) & チェックボックス & Char ( 8202 ) ;
[¶ ; Char ( 8202 ) & Char ( 8203 ) ] :
[Char ( 8203 ) & Char ( 8202 ) ; ""] :
[Char ( 8202 ) & Char ( 8203 ) ; "+"] :
[Char ( 8203 ) ; ""] :
[Char ( 8202 ) ; ""]
)
)
という計算フィールドで。前後の改行や空白行の処理をしています。
Evaluate (
Substitute (
"0" & チェックボックス ;
[¶ ; "+0"] :
)
)
でもいいかも。それが不要ならば、
Evaluate (
Substitute (
チェックボックス ;
[¶ ; "+"]
)
)
各レコードの中でチェックが1個だけに制限されるような仕組みがあって、複数のレコードの合計をだすのでしたら、そのチェックボックスを合計する集計フィールドを作ればいいでしょう。
Last edited by Shin (2022-10-18 06:56:56)
Offline
Shin様
ありがとうございます。
チェックボックスの値一覧でしょうか?
カスタム値で空白にして、ただチェックがつけられるようにしてあります。
細かい話ですが「ポータルツール」というのはレイアウトモードで出てくる「ポータルを配置する状態にするためのツールバーのボタン」のことです。ので「ポータルツール内」でなく「ポータル内」です。
ポータルフィルタは使ってないんでしょうか。
himadanne様
指摘ありがとうございます。
以後気を付けます。
ポータルフィルタは使っていないです。
ポータルフィルタでIsEmpty ( チェック )で絞り込んでから集計かsum関数使う感じですかね。
> カスタム値で空白にして、ただチェックがつけられるようにしてあります。
そのチェックボックスで使っている値一覧の内容はどうなっていますか。そこに複数の選択子があり、複数のチェックが入るのでしたら、上のような処理が必要です。
選択肢が1個だけか、複数のチェックが入らないなら、集計フィールドをつくるだけで済みそうです。
Offline
フィルタを使ってないならリレーションで計算できるので
ポータル内のテーブルに計算フィールド
Case ( not IsEmpty ( チェックボタン ) ; 金額 )
を作っておいて、レイアウトのテーブルの方で
Sum(ポータル内のテーブル::追加した計算フィールド)
が簡単ではないかな。
Shin様
選択肢は1つだけになります。
毎日ではありませんが10レコード中4レコードくらいはチェックが入ると思います。
himadanee様
リレーションで計算ですね。
やってみたことないので挑戦してみようと思います。
ありがとうございます。
もう一つの方法
ポータルを配置しているテーブルで、
チェックボックスの値と同じ値を入力したグローバルフィールドを作り、
現在のリレーションに、その照合を加えた新たなリレーションを設定。
これでチェックが入ったレコードと照合できますね。
Offline
選択肢が、□100 とかの数字でしたら、それを合計する集計フィールドを作っておき、それをメインのテーブルから参照するだけで合計できます。
ちなみに、ポータルフィルターを使っているのでしたら、そのポータルを複製して1行の表示にします。その中にその集計フィールドを配置しておけば、フィルターを適用した合計が求められます。
Last edited by Shin (2022-10-18 11:27:28)
Offline
皆様ありがとうございます。
こちらポータルでなくてリスト形式表示にした場合はどのようにやればよいのでしょうか。
集計でチェックの数のカウントはできているのであとはそのカウントされたレコードの金額のみを集計するだけだと思うのですがやり方がわかりません。。
#10
の方法ができているのなら、
そのリレーションを自己リレーションにして
後は同様に考えればいいでしょう。
Offline
チポ様ありがとうございます。
チェックボックスの値が“ ”なのでグローバルフィールド作成し“ ”を入れるところまではできましたが照合リレーションのつなげ方がいまいちわかりません。
作成したグローバルフィールドとチェックボックスのフィールドをつなげるということでしょうか。
> チェックボックスの値が“ ”
ブランクでは照合できませんから、
何か適当なテキストを入れないと、、
例えば
「✓」 Char(10003)とかChar(10004)
などはいかがでしょう。
そうして、リレーションは
現在の照合に加えて
and
グローバル = チェック
とします。
Offline
チポ様
分かりやすくありがとうございます。
リレーションを組んだ後はどのように合計金額を出せばよいでしょうか。
計算式はグローバル=チェックでSUM関数的でしょうか。
まずリレーションです。
現在、ポータルで表示しているリレーションの照合フィールドがありますよね。
照合フィールド = 照合フィールド
and
グローバルフィールド = チェックボックスフィールド
このようにリレーション設定します。
これで、
Sum ( 自己リレーション::金額 )
で求められます。
Offline
丁寧にありがとうございます。
とても助かります。
チェックボックスが " " というのは、スペースでしょうか。スペースだけではリレーションが張りにくいので、なんらかの文字か数字のほうがいいです。
ちょっとサンプルを改変しています。
https://www.dropbox.com/s/hefi1psv0dxek … 2.zip?dl=0
Last edited by Shin (2022-10-18 13:13:58)
Offline
Shin様
お疲れ様です。
チェックだけできればと思い、スペースのみ入れていました。
サンプルの方ありがとうございございます。
チェック入れたあと、どこか適当にクリックしないと金額が反映されないのって原因分かりますでしょうか。
チェックボックスをクリックすると、そのフィールドがアクティブになって、クリックのチェックは入るのですが、フィールドはアクティブのままです。それは、トリガーで処理できます。
サンプルに、トリガー設定していませんでした。もう一度ダウンロードしなおしてみてください。
Offline
Shin様
無事思い通りのものを作成できました。
色々とありがとうございます。とても便利になります。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 607.7 KiB (Peak: 624.6 KiB) ]