サブテーブル内の集計について その②

サブテーブル内のカテゴリ別集計について

 

【第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

よろしくお願いいたします。