<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>合計 on qwerty.work</title>
        <link>https://qwerty.work/tags/%E5%90%88%E8%A8%88/</link>
        <description>Recent content in 合計 on qwerty.work</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja-JP</language>
        <lastBuildDate>Thu, 19 Jan 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://qwerty.work/tags/%E5%90%88%E8%A8%88/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>【Kintone】関連レコード一覧内の金額や数値を集計してフィールドに登録するJavascript</title>
            <link>https://qwerty.work/post/2023/01/kintone%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E5%86%85%E3%81%AE%E9%87%91%E9%A1%8D%E3%82%84%E6%95%B0%E5%80%A4%E3%82%92%E9%9B%86%E8%A8%88%E3%81%97/</link>
            <pubDate>Thu, 19 Jan 2023 00:00:00 +0000</pubDate>
            <guid>https://qwerty.work/post/2023/01/kintone%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E5%86%85%E3%81%AE%E9%87%91%E9%A1%8D%E3%82%84%E6%95%B0%E5%80%A4%E3%82%92%E9%9B%86%E8%A8%88%E3%81%97/</guid>
            <description>&lt;h2 id=&#34;関連レコードに合計を表示したい&#34;&gt;関連レコードに合計を表示したい&#xA;&lt;/h2&gt;&lt;p&gt;Kintone（キントーン）で請求書や勤怠管理などで、明細を関連レコード一覧で表示するアプリを作成したのですが、金額や時間の合計を登録できたらな～と検索してみたら方法がありましたのでメモ。アプリにJavascriptを登録したら正常に動きました。&lt;/p&gt;&#xA;&lt;p&gt;関連レコード一覧を表示するアプリに「数値」パーツで作った「合計」というフィールドに、レコード保存時に計算された値が表示され、保存できました。しかし、最初のレコード保存では表示されず、&lt;strong&gt;２回目の保存のタイミング&lt;/strong&gt;で表示されるので、改善の余地ありです。&lt;/p&gt;&#xA;&lt;h3 id=&#34;ソース1&#34;&gt;ソース1&#xA;&lt;/h3&gt;&lt;p&gt;AAA1、AAA2、BBB、CCC、DDDをそれぞれアプリで使用している項目の&lt;strong&gt;フィールドコード&lt;/strong&gt;に置換て使用します。フィールドコードは英数に限らず日本語でも大丈夫です。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(function() {&#xA;  kintone.events.on([&amp;#39;app.record.edit.show&amp;#39;,&amp;#39;app.record.create.change.AAA2&amp;#39;], function(event) {&#xA;    const appId = kintone.app.getRelatedRecordsTargetAppId(&amp;#34;BBB&amp;#34;);&#xA;    const query = &amp;#39;AAA1=&amp;#34;&amp;#39; + event.record[&amp;#39;AAA2&amp;#39;].value + &amp;#39;&amp;#34;&amp;#39;; &#xA;    const body = {&#xA;      &amp;#39;app&amp;#39; : appId,&#xA;      &amp;#39;query&amp;#39; : query&#xA;    };&#xA;    kintone.api(kintone.api.url(&amp;#39;/k/v1/records&amp;#39;, true), &amp;#39;GET&amp;#39;, body, function(resp) {&#xA;      var sum = 0;&#xA;      resp.records.forEach((record)=&amp;gt;{&#xA;        sum += record[&amp;#39;CCC&amp;#39;].value ? parseInt(record[&amp;#39;CCC&amp;#39;].value) : 0;&#xA;      });&#xA;       event.record[&amp;#39;DDD&amp;#39;].value = sum;&#xA;       kintone.app.record.set(event);&#xA;    });&#xA;&#xA;    return event;&#xA;  });  &#xA;  &#xA;})();&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;設定するフィールドコードの説明&#34;&gt;設定するフィールドコードの説明&#xA;&lt;/h4&gt;&lt;p&gt;例えば、リレーションの関係が請求書アプリと請求書明細アプリだったとしたら、以下のようになります。&lt;/p&gt;&#xA;&lt;p&gt;AAA1&lt;/p&gt;&#xA;&lt;p&gt;「関連レコード一覧」の設定で「表示するレコードの条件」に設定している&lt;strong&gt;主キー&lt;/strong&gt;となるフィールドコード（関連レコード一覧を&lt;strong&gt;呼び出すアプリ側&lt;/strong&gt;のフィールドコード）。&lt;/p&gt;&#xA;&lt;p&gt;（例）請求書アプリ側の請求書ID（レコードID）&lt;/p&gt;&#xA;&lt;p&gt;AAA2&lt;/p&gt;&#xA;&lt;p&gt;「関連レコード一覧」の設定で「表示するレコードの条件」に設定している&lt;strong&gt;外部キー&lt;/strong&gt;となるフィールドコード（関連レコード一覧に&lt;strong&gt;呼び出されるアプリ側&lt;/strong&gt;のフィールドコード）。&lt;/p&gt;&#xA;&lt;p&gt;（例）請求書明細アプリ側の請求書ID&lt;/p&gt;&#xA;&lt;p&gt;BBB&lt;/p&gt;&#xA;&lt;p&gt;「関連レコード一覧」&lt;strong&gt;パーツ&lt;/strong&gt;に設定したフィールドコード（関連レコード一覧を&lt;strong&gt;呼び出す****アプリ側&lt;/strong&gt;のフィールドコード）。&lt;/p&gt;&#xA;&lt;p&gt;（例）請求書アプリ側の明細を表示する「関連レコード一覧」パーツのフィールドコード&lt;/p&gt;&#xA;&lt;p&gt;CCC&lt;/p&gt;&#xA;&lt;p&gt;関連レコード一覧に&lt;strong&gt;呼び出されるアプリ側&lt;/strong&gt;にある集計対象のフィールドコード。&lt;/p&gt;&#xA;&lt;p&gt;（例）請求書明細アプリ側の「金額」フィールド&lt;/p&gt;&#xA;&lt;p&gt;DDD&lt;/p&gt;&#xA;&lt;p&gt;集計結果を表示したいパーツのフィールドコード（関連レコード一覧を&lt;strong&gt;呼び出す****アプリ側&lt;/strong&gt;のフィールドコード）。&lt;/p&gt;&#xA;&lt;p&gt;（例）請求書アプリ側の「合計」フィールドコード&lt;/p&gt;&#xA;&lt;h3 id=&#34;ソース2&#34;&gt;ソース2&#xA;&lt;/h3&gt;&lt;p&gt;以下のソースでも動作しました。こちらの方がわかりやすいかもしれません。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(() =&amp;gt; {&#xA;    &amp;#39;use strict&amp;#39;;&#xA;  &#xA;    const events = [&#xA;      &amp;#39;app.record.detail.show&amp;#39;,&#xA;      &amp;#39;app.record.edit.show&amp;#39;&#xA;    ];&#xA;    kintone.events.on(events, (event) =&amp;gt; {&#xA;      const clientRecordId = event.recordId;&#xA;      const relatedAppId = kintone.app.getRelatedRecordsTargetAppId(&amp;#39;請求明細一覧&amp;#39;);&#xA;      const query = &amp;#39;請求書ID=&amp;#34;&amp;#39; + event.record[&amp;#39;請求書ID&amp;#39;].value + &amp;#39;&amp;#34;&amp;#39;;&#xA;      // const query = `&amp;#34;${clientRecordId}&amp;#34;=請求書ID`; //レコードIDを使用する場合&#xA;      const outputFields = [&amp;#39;金額&amp;#39;];&#xA;      const appUrl = kintone.api.url(&amp;#39;/k/v1/records&amp;#39;);&#xA;  &#xA;      const params = {&#xA;        &amp;#39;app&amp;#39;: relatedAppId,&#xA;        &amp;#39;query&amp;#39;: query,&#xA;        &amp;#39;fields&amp;#39;: outputFields&#xA;      };&#xA;    &#xA;      kintone.api(appUrl, &amp;#39;GET&amp;#39;, params, (resp) =&amp;gt; {&#xA;        let amount = 0;&#xA;        for (let i = 0; i &amp;lt; resp.records.length; i++) {&#xA;          //amount += parseFloat(resp.records[i].金額.value);&#xA;          amount += parseFloat(resp.records[i].金額.value) ? parseFloat(resp.records[i].金額.value) : 0;&#xA;        }&#xA;&#xA;        event.record[&amp;#39;合計&amp;#39;].value = amount;&#xA;        kintone.app.record.set(event);&#xA;        return event;&#xA;      });&#xA;    });&#xA;  })();&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;参考サイト&#34;&gt;参考サイト&#xA;&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;&lt;div class=&#34;link-card&#34;&gt;&#xA;  &lt;a href=&#34;https://developer.cybozu.io/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://image.thum.io/get/width/300/crop/200/https://developer.cybozu.io/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88&#34; alt=&#34;https://developer.cybozu.io/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88&#34; loading=&#34;lazy&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-body&#34;&gt;&#xA;      &lt;span class=&#34;link-card-title&#34;&gt;https://developer.cybozu.io/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88&lt;/span&gt;&#xA;      &#xA;      &lt;span class=&#34;link-card-url&#34;&gt;https://developer.cybozu.io/hc/ja/articles/203030394-%E9%96%A2%E9%80%A3%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%A0%85%E7%9B%AE%E3%82%92%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E3%81%A7%E9%9B%86%E8%A8%88&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;&lt;div class=&#34;link-card&#34;&gt;&#xA;  &lt;a href=&#34;https://fastsystem.funai.site/relatedrecords-sum/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://image.thum.io/get/width/300/crop/200/https://fastsystem.funai.site/relatedrecords-sum/&#34; alt=&#34;https://fastsystem.funai.site/relatedrecords-sum/&#34; loading=&#34;lazy&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-body&#34;&gt;&#xA;      &lt;span class=&#34;link-card-title&#34;&gt;https://fastsystem.funai.site/relatedrecords-sum/&lt;/span&gt;&#xA;      &#xA;      &lt;span class=&#34;link-card-url&#34;&gt;https://fastsystem.funai.site/relatedrecords-sum/&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;&lt;div class=&#34;link-card&#34;&gt;&#xA;  &lt;a href=&#34;https://www.gotop.co.jp/kintonesi20220113/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://image.thum.io/get/width/300/crop/200/https://www.gotop.co.jp/kintonesi20220113/&#34; alt=&#34;https://www.gotop.co.jp/kintonesi20220113/&#34; loading=&#34;lazy&#34;&gt;&#xA;    &lt;/div&gt;&#xA;    &#xA;    &lt;div class=&#34;link-card-body&#34;&gt;&#xA;      &lt;span class=&#34;link-card-title&#34;&gt;https://www.gotop.co.jp/kintonesi20220113/&lt;/span&gt;&#xA;      &#xA;      &lt;span class=&#34;link-card-url&#34;&gt;https://www.gotop.co.jp/kintonesi20220113/&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&#xA;</description>
        </item></channel>
</rss>
