サブテーブル内のカテゴリ別集計について
【第6回 テーブルの値を利用する(条件付きでデータを集計)】
https://developer.cybozu.io/hc/ja/articles/202422244
の記載に少し手を加えて作成してみました。(下記画像)
下記画像に記載の通り
①:
カテゴリ別に集計された計算結果を
「小数桁数指定したい」または「四捨五入したい」または「小数点以下を切り捨てたい」
のようなことをするには、下記のコードにどのように手を加えたらよいでしょうか?
②:
単純にすべてのサブテーブル内の合計を下記画像のようにあるフィールドに表示させるには
どのようにしたらよいでしょうか?
どなたかご教示いただきたいです。
どうぞよろしくお願いいたします
Miyawaki 様
こんにちは。
①:カテゴリ別に集計された計算結果を
「小数桁数指定したい」または「四捨五入したい」または「小数点以下を切り捨てたい」
添付していただいたコードの26行部分のsubTotals[category]に、
Math.floor()を使えば「小数点以下を切り捨てる」ことができると思います。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
categorySpace.innerText = category + ': ' + Math.floor(subTotals[category]) + '円';
②:単純にすべてのサブテーブル内の合計を
下記画像のようにあるフィールドに表示させるにはどのようにしたらよいでしょうか?
やりたいことの理解が間違っていましたら申し訳ありませんが、
サブテーブル内の数値の合計をフィールドに表示させる場合は、
こちらのヘルプのように、計算フィールドのSUM()関数を使えばできると思います。
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/table_autocalc.html
どうぞよろしくお願いいたします。
wenxit218さん
ありがとうございます。
①の件
小数点以下切り捨てできました。
可能であれば「小数点以下桁数指定」「四捨五入」表示もご教示いただきたいです
②の件
ヘルプの記載の通りしてみてるんですが、私の何かがおかしいようです。
ヘルプ記載の「小計」の部分(=計算結果_材料費)のところですが
計算フィールドで
((入力_X寸法*入力_Y寸法*入力_Z板厚*比重)/1000000)*kg単価*入力_数量
↑のような計算結果が出るようにしています
ですが
ヘルプのように
SUM(計算結果_材料費)
としても小計に計算結果が表示されず、合計にも「#VALUE!」と表示されています
何かわかりましたらご教示いただきたいです
以上よろしくお願いいたします。
Miyawaki さん
①の件
こちらの記事に「小数点以下桁数指定」「四捨五入」の表示の仕方の説明がありますので、
参考になると思います!https://www.sejuku.net/blog/57084
②の件
計算式の「#VALUE!」エラーは、
計算する値の型や演算子が適切ではない場合に表示されます、とヘルプに書かれているので、https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/autocalc_error.html
推測で恐縮ですが、例えば「計算結果_材料費」は文字列一行の自動計算を使っている場合、
「計算結果_材料費」は文字列として扱われ、「#VALUE!」エラーも出ると思います。
上記のような値の型の問題はないが、確認したほうが良いかもしれません。
wenxit218さん
ありがとうございます。
①の件
重ね重ねの対応ありがとうございます。
大変わかりやすい資料を紹介していただき助かりました。
②の件
自分でもフィールドの計算する値の型の問題ではないかと思っておりました。
なので、問い合わせ前に文字列で計算式を入れていたのを、
計算式フィールドで計算式を入れて直しましたが、改善されませんでした。
あきらめて、ため息交じりで新規レコードを作成すると???なぜか症状が改善されていました。
もしかしてと思い、既存のレコードを編集しようとすると計算結果が反映されました。
既存のレコードが存在するときは、フィールド計算値を編集したり変えたりすると、
レコードをひとつひとつ一度編集しなおさないと
表示か改善されないということがわかりました。
何かボタン一つで一括更新できればいいと思いますが、なにかそういう技はありますでしょうか?
わかりましたらご教示いただきたいです
よろしくお願いいたします。
Miyawaki さん
②の件
そうなのですね、原因が分かって良かったです!
>何かボタン一つで一括更新できればいいと思いますが、なにかそういう技はありますでしょうか?
計算フィールドの値を一括更新させたい、ということであれば、
下記記事が参考になると思いますので、是非試してみてください↓
https://developer.cybozu.io/hc/ja/articles/201883830
よろしくお願いいたします。