# 開始日～終了日までの日報フォームの作り方

**URL:** <https://community.cybozu.dev/t/topic/6251>\
**Category:** kintone 開発相談\
**Created:** [2020 年 4 月 15 日午前 7:10 UTC](https://community.cybozu.dev/t/topic/6251 "2020-04-15T07:10:47Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2179](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account2179](https://community.cybozu.dev/u/Legacy_Account2179)\
**Post date:** [2020 年 4 月 15 日午前 7:10 UTC](https://community.cybozu.dev/t/topic/6251/1 "2020-04-15T07:10:47Z")

</div>

複数のアプリを１つのアプリに集計させたいです。

複数アプリ(３つ)には

**＊団体名(文字列)**

**＊人数(計算)**

【サブテーブル】

**┃開始日(日付)┃～┃終了日(日付)┃総日数(計算)┃日報区分(ドロップダウン)┃免除区分(ドロップダウン)┃金額/日数分(計算)┃金額/1日分(計算)┃**

が入力されています。

&nbsp;

日報フォーム(集計用アプリ)

**＊（日付）** ←日付を入力

【サブテーブル1(アプリA)】

**┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃**

【サブテーブル２(アプリB)】

**┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃**

【サブテーブル３(アプリC)】

**┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃**

&nbsp;

開始日から終了日までの期間、日報フォームに団体名＆施設名ごとに金額(1日分)を映したいのですが可能でしょうか？

ディベロッパーツールで確認してみたところ、取得まではできているのですが

日報フォームに反映されません。

ご指摘お願い致します＞＜；

&nbsp;

```
(function() {
'use strict';

// 「Aアプリコピー」時の処理
kintone.events.on(["app.record.create.submit",
"app.record.edit.submit"],
function(event) {
var record = event.record;

///カーソル情報代入
var appID = 000; //データ取得元 AアプリID
var limit = 200;
var offset = 0;
var size = 100;
//日報アプリ情報代入
var reqStart = record["日付"].value;

function postCursor() {
var body = {
'app': appID,
'fields':["使用団体名","計算","Table_1"],
//'query'：「フィールドコード 演算子 条件」の順序で記述
         //Aアプリ：サブテーブルtable_1「使用開始日」～「使用終了日」の間 が 日報アプリ：「日付」 and
         //Aアプリ：サブテーブルtable_1「日報区分」 が 日報アプリ：「日報区分A」 と同じ and
// Aアプリ：「使用団体名」 が 日報アプリ：「利用者A」と同じ and
//Aアプリ：サブテーブルtable_1「免除区分A」 が 日報アプリ：「減免区分A」 と同じ and
// Aアプリ：「計算」 が 日報アプリ：「人数A」と同じ and
//Aアプリ：サブテーブルtable_1「施設のみの使用料金1日」 が 日報アプリ：「基本使用料金A」 と同じ and
//Aアプリ：サブテーブルtable_1「施設の減免額計1日」 が 日報アプリ：「施設の減免額計A」 と同じ and
//Aアプリ：サブテーブルtable_1「施設_減免後_1日」 が 日報アプリ：「減免後使用料金A」 と同じ and
'query': '使用開始日 <= "'+ reqStart +'" and 使用終了日 >= "'+ reqStart +'" order by $id desc' ,
'limit': limit,
        'offset': offset,
'size': size
};

// Aアプリデータ取得用のカーソル作成（thenを使うことで resp の中にデータが格納される）
return kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'POST', body).then(function(resp) {
// 成功：カーソル作成
return resp.id;
// catch で取得失敗時のエラー制御
}).catch(function(error) {
// エラー発生時にエラー表示
return error;
});
}

function getRecordsFromCursor(cursorId, opt_records) {
var records = opt_records || [];
var body = {
'id': cursorId
};

// Aアプリからデータ取得（thenを使うことで resp の中にデータが格納される）
return kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'GET', body).then(function(resp) {
// 成功：データを取得
records = records.concat(resp.records);
if (resp.next) {
return getRecordsFromCursor(cursorId, records);
}
return records;
// catch で取得失敗時のエラー制御
}).catch(function(error) {
// エラー発生時にエラー表示
return error;
});

}
    //コンソールへ取得情報格納
postCursor().then(function(respCursorId) {
return getRecordsFromCursor(respCursorId);
}).then(function(respRecords) {
console.log(respRecords);

//set用レコード情報の取得
var getRec = kintone.app.record.get();

//コンソールへ格納した「アプリA」アプリフィールド情報代入
for (var i = 0; i < respRecords.length; i++) {
var resp_pCostTable = respRecords[i]["Table_1"].value;

  //日報アプリ「Aアプリ」サブテーブルへ取得データセット
  for (var ii = 0; ii < resp_pCostTable.length; ii++) {
  var strtemp = respRecords[i]["使用団体名"].value;
  getRec.record["Aアプリ"].value.unshift({
  value: {
"NOA": { "type": "NUMBER", "value": "0" },
  "日報区分A": { "type": "DROP_DOWN", "value": resp_pCostTable[ii].value["日報区分"].value },
  "減免区分A": { "type": "DROP_DOWN", "value": resp_pCostTable[ii].value["免除区分A"].value },
  "利用者A": { "type": "SINGLE_LINE_TEXT", "value": respRecords[i]["使用団体名"].value },
  "基本使用料金A": { "type": "NUMBER", "value": resp_pCostTable[ii].value["施設のみの使用料金1日"].value },
  "施設の減免額計A": { "type": "NUMBER", "value": resp_pCostTable[ii].value["施設の減免額計1日"].value },
  "減免後使用料金A": { "type": "NUMBER", "value": resp_pCostTable[ii].value["施設_減免後_1日"].value },
  "人数A": { "type": "NUMBER", "value": respRecords[i]["計算"].value },
  "備考A": { "type": "SINGLE_LINE_TEXT", "value": ""},
  }
  });
  }

}

//取得したset用レコード情報をセット
kintone.app.record.set(getRec);

}).catch(function(error) {
console.log(error);
});

return event;

});
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2020 年 4 月 20 日午前 4:07 UTC](https://community.cybozu.dev/t/topic/6251/2 "2020-04-20T04:07:55Z")

</div>

桑野美咲様

お世話になっております。

レコードに反映されないのは、非同期処理を待たずに「return event;」してしまっているからです。  
submitイベントで、非同期処理を待ってからレコードの変更を行いたい場合は、「kintone.Promiseオブジェクト」をreturnする方法が一般的です。  
[https://developer.cybozu.io/hc/ja/articles/360023047852](https://community.cybozu.dev/hc/ja/articles/360023047852)

また、レコードの絞り込みだけでなく、テーブル行の絞り込みも必要かとお思います。

コードは下記「sample.js」のようになるかと思います。  
kintone-js-sdkを利用しているので、下記リンクから「kintone-js-sdk.min.js」をダウンロードして、「sample.js」の前に読み込んでください。  
[https://github.com/kintone/kintone-js-sdk/tree/master/dist](https://github.com/kintone/kintone-js-sdk/tree/master/dist)

・sample.js

``

```
(function() {
  "use strict";
  kintone.events.on([
    'app.record.create.submit',
    'app.record.edit.submit',
  ], function(event){
    var date = event.record.日付.value;
    var kintoneRecord = new kintoneJSSDK.Record(new kintoneJSSDK.Connection);
    return kintoneRecord.getAllRecordsByCursor({
      app: 000,
      query: '使用開始日 <= "' + date + '" and 使用終了日 >= "' + date + '" order by $id desc',
      fields: ['使用団体名', '計算', 'Table_1']
    }).then(function(response){
      event.record.Table_1.value = [].concat.apply([], response.records.map(function(record){
        return record.Table_1.value.filter(function(row){
          return row.value.使用開始日.value <= date && row.value.使用終了日.value >= date;
        }).map(function(row){
          return {
            value: {
              利用者A: {
                value: record.使用団体名.value,
                type: 'SINGLE_LINE_TEXT'
              },
              日報区分A: {
                value: row.value.日報区分.value,
                type: 'DROP_DOWN'
              },
              金額_1日分A: {
                value: row.value.金額_1日分.value,
                type: 'NUMBER'
              },
              人数A: {
                value: record.計算.value,
                type: 'NUMBER'
              },
            }
          }
        })
      }));
      return event;
    });
  });
})();

```

``

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2179](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account2179](https://community.cybozu.dev/u/Legacy_Account2179)\
**Post date:** [2020 年 4 月 22 日午前 4:51 UTC](https://community.cybozu.dev/t/topic/6251/3 "2020-04-22T04:51:29Z")

</div>

江田篤史様

ご丁寧にコードまでご指導くださり、ありがとうございます。

試してみたところ8行目の

```
var kintoneRecord = new kintoneJSSDK.Record(new kintoneJSSDK.Connection);

```

の部分で怒られるのですが、何か問題があるのでしょうか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2020 年 4 月 22 日午前 8:10 UTC](https://community.cybozu.dev/t/topic/6251/4 "2020-04-22T08:10:34Z")

</div>

桑野美咲様

お世話になっております。

「sample.js」の前に「kintone-js-sdk.min.js」を読み込んでいますか？  
読み込んでいても動かない場合はエラーメッセージを教えて頂きたいです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2179](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account2179](https://community.cybozu.dev/u/Legacy_Account2179)\
**Post date:** [2020 年 4 月 27 日午前 6:24 UTC](https://community.cybozu.dev/t/topic/6251/5 "2020-04-27T06:24:46Z")

</div>

[江田篤史様](https://community.cybozu.dev/hc/ja/profiles/5826575706-%E6%B1%9F%E7%94%B0%E7%AF%A4%E5%8F%B2)

返信が遅くなり申し訳ありません。

もしかしたらダウンロードの方法が間違っているのでしょうか？

[https://github.com/kintone/kintone-js-sdk/tree/master/dist](https://github.com/kintone/kintone-js-sdk/tree/master/dist)

から右上の緑ボタンのダウンロードからZipファイルダウンロードをし、解凍をしたのち、

distフォルダ内のkintone-js-sdk.min.jsを「JavaScript / CSSでカスタマイズファイル」→アップロードして追加→保存しました。

エラーが出たり出なくなったりしております。

エラーは「missing ‘( )’ invoking a constructor.」とででいますので、やはりダウンロードがきちんとできていないのでしょうか・・・

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2020 年 4 月 30 日午前 2:51 UTC](https://community.cybozu.dev/t/topic/6251/6 "2020-04-30T02:51:04Z")

</div>

桑野美咲様

お世話になっております。

ESLint等を利用しているということでしょうか？

ESLintでは、コンストラクタ呼び出しの括弧は省略できないようですね。  
確認不足で申し訳ございません。

下記で試していただけますか？

```
varkintoneRecord =newkintoneJSSDK.Record(newkintoneJSSDK.Connection());

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2179](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account2179](https://community.cybozu.dev/u/Legacy_Account2179)\
**Post date:** [2020 年 5 月 6 日午前 1:32 UTC](https://community.cybozu.dev/t/topic/6251/7 "2020-05-06T01:32:15Z")

</div>

江田篤史様

返信が遅くなり申し訳ありません\>\<;

お世話になっております。

今使っているのが、キントーンプラグインの「JSEdit for kintone」です。

ご指摘いただいた個所を編集してみたところ

エラーは出なくなったのですが、やはり何も反映されません。

ディベロッパーツールで確認したところ、データ取得をした後にアクションをせずに、最後に飛んでしまう状態です。

最後にこのようなエラーが出ました。(番号のところは数字が入っていました)

Uncaught TypeError: Cannot set property ‘value’ of undefined  
at download.do?app=(日報アプリID)&contentId=番号&jsType=DESKTOP&hash=番号:14

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2020 年 5 月 7 日午前 5:26 UTC](https://community.cybozu.dev/t/topic/6251/8 "2020-05-07T05:26:46Z")

</div>

桑野美咲様

お世話になっております。

14行目の「event.record.Table\_1.value」でエラーが出ているのかと思います．

「Table\_1」をご自身の日報フォームのサブテーブル1のフィールドコードに変更してみてください．

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2179](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account2179](https://community.cybozu.dev/u/Legacy_Account2179)\
**Post date:** [2020 年 5 月 15 日午後 3:39 UTC](https://community.cybozu.dev/t/topic/6251/9 "2020-05-15T15:39:57Z")

</div>

江田篤史様

返信が大変遅くなり申し訳ありません。

ご指摘いただいた個所を修正してみましたが、やはり同じところでエラーが出ています。

念のため、日報フォームサブテーブルのフィールドコードも調べましたが、間違いありません。

最後のreturnをした後に、14行目に戻ると、変更した日報フォームのサブテーブルフィールドコードが「”Table\_1”」に変わっていて、エラーがでます。

18行目からの取得も

record.はundefined

&nbsp;row.value.は取得結果が出てきません。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2020 年 5 月 17 日午前 8:08 UTC](https://community.cybozu.dev/t/topic/6251/10 "2020-05-17T08:08:19Z")

</div>

桑野美咲様

お世話になっております．

「最後のreturnをした後に、14行目に戻る」というのは，「デベロッパーツールなどからコードの14行目を見る」という意味でしょうか？  
状況を把握し切れていないのですが，コードの修正箇所が反映されていないということでしょうか？  
その場合は，ブラウザのキャッシュ機能が関係していると考えられるので，下記などをご参照ください．  
[https://digitalidentity.co.jp/blog/seo/seo-tech/cash-speed-up.html](https://digitalidentity.co.jp/blog/seo/seo-tech/cash-speed-up.html)

「18行目からの取得もrecord.はundefined，row.value.は取得結果が出てきません。」というのは，console.log()などで出力を行ったということでしょうか？  
よろしければ，諸々試した後のコードを拝見したいです．

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2179](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account2179](https://community.cybozu.dev/u/Legacy_Account2179)\
**Post date:** [2020 年 5 月 18 日午前 5:04 UTC](https://community.cybozu.dev/t/topic/6251/11 "2020-05-18T05:04:10Z")

</div>

江田篤史様

的確なご指導感謝いたします。

キャッシュが関係していたようで、キャッシュを削除したところ、

思ったような動きが実行されました。

ここ何か月、頭を抱えておりましたので、江田様には感謝でいっぱいです。

的外れな質問等してしまったかと思いますが、ご丁寧な対応ありがとうございました。

もっと勉強したいと思います。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2025 年 6 月 3 日午前 6:52 UTC](https://community.cybozu.dev/t/topic/6251/12 "2025-06-03T06:52:54Z")

</div>

クローズされました: 2025 年 6 月 3 日午前 6:52 UTC

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
