複数のアプリを1つのアプリに集計させたいです。
複数アプリ(3つ)には
*団体名(文字列)
*人数(計算)
【サブテーブル】
┃開始日(日付)┃~┃終了日(日付)┃総日数(計算)┃日報区分(ドロップダウン)┃免除区分(ドロップダウン)┃金額/日数分(計算)┃金額/1日分(計算)┃
が入力されています。
日報フォーム(集計用アプリ)
*(日付) ←日付を入力
【サブテーブル1(アプリA)】
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
【サブテーブル2(アプリB)】
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
【サブテーブル3(アプリC)】
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
開始日から終了日までの期間、日報フォームに団体名&施設名ごとに金額(1日分)を映したいのですが可能でしょうか?
ディベロッパーツールで確認してみたところ、取得まではできているのですが
日報フォームに反映されません。
ご指摘お願い致します><;
(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;
});
})();