質問編集履歴
4
コードを変更しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
-
*
|
29
|
+
*団体名(文字列)
|
30
30
|
|
31
31
|
*人数(計算)
|
32
32
|
|
@@ -110,7 +110,7 @@
|
|
110
110
|
|
111
111
|
|
112
112
|
|
113
|
-
// 「
|
113
|
+
// 「Aアプリコピー」時の処理
|
114
114
|
|
115
115
|
kintone.events.on(["app.record.create.change.コピー",
|
116
116
|
|
@@ -124,7 +124,7 @@
|
|
124
124
|
|
125
125
|
///カーソル情報代入
|
126
126
|
|
127
|
-
var appID = 000; //データ取得元
|
127
|
+
var appID = 000; //データ取得元 AアプリID
|
128
128
|
|
129
129
|
var limit = 200;
|
130
130
|
|
@@ -132,17 +132,23 @@
|
|
132
132
|
|
133
133
|
var size = 100;
|
134
134
|
|
135
|
-
//
|
135
|
+
//日報アプリ情報代入
|
136
|
-
|
136
|
+
|
137
|
-
var pNo = record["施設名"].value;
|
137
|
+
var pNo = record["施設名A"].value;
|
138
|
-
|
139
|
-
|
138
|
+
|
140
|
-
|
141
|
-
var
|
139
|
+
var menjo = record["減免区分A"].value;
|
142
|
-
|
140
|
+
|
143
|
-
var worker = record["
|
141
|
+
var worker = record["団体名A"].value;
|
144
|
-
|
142
|
+
|
145
|
-
var
|
143
|
+
var kingaku1 = record["金額1"].value;
|
144
|
+
|
145
|
+
var kingaku2 = record["金額2"].value;
|
146
|
+
|
147
|
+
var kingaku3 = record["金額3"].value;
|
148
|
+
|
149
|
+
var ninzu = record["人数A"].value;
|
150
|
+
|
151
|
+
var reqStart = record["日付"].value;
|
146
152
|
|
147
153
|
|
148
154
|
|
@@ -152,17 +158,31 @@
|
|
152
158
|
|
153
159
|
'app': appID,
|
154
160
|
|
155
|
-
'fields':["
|
161
|
+
'fields':["使用団体名","人数","施設名","使用開始日","使用終了日","免除区分A","金額1","金額2","金額3"],
|
156
162
|
|
157
163
|
//'query':「フィールドコード 演算子 条件」の順序で記述
|
158
164
|
|
159
|
-
//
|
165
|
+
//Aアプリ:「使用開始日」~「使用終了日」の間 が 日報アプリ:「日付」 and
|
160
|
-
|
166
|
+
|
161
|
-
//
|
167
|
+
// Aアプリ:「使用団体名」 が 日報アプリ:「団体名A」と同じ and
|
168
|
+
|
162
|
-
|
169
|
+
// Aアプリ:「人数」 が 日報アプリ:「人数A」と同じ and
|
170
|
+
|
163
|
-
//
|
171
|
+
//Aアプリ:サブテーブルtable_1「施設名」 が 日報アプリ:「施設名A」 と同じ and
|
172
|
+
|
164
|
-
|
173
|
+
//Aアプリ:サブテーブルtable_1「免除区分A」 が 日報アプリ:「減免区分A」 と同じ and
|
174
|
+
|
175
|
+
//Aアプリ:サブテーブルtable_1「金額1」 が 日報アプリ:「金額1」 と同じ and
|
176
|
+
|
177
|
+
//Aアプリ:サブテーブルtable_1「金額2」 が 日報アプリ:「金額2」 と同じ and
|
178
|
+
|
179
|
+
//Aアプリ:サブテーブルtable_1「金額3」 が 日報アプリ:「金額3」 と同じ and
|
180
|
+
|
165
|
-
'query': '日
|
181
|
+
'query': '使用開始日 <= >= 使用終了日 "'+ reqStart +'" and 使用団体名 = "'+ worker +'" and 人数 = "'+ ninzu +'" and "施設名 in ("'+ pNo+'") order by $id desc'
|
182
|
+
|
183
|
+
+'"and "免除区分A in ("'+menjo+'") order by $id desc'+'"and "金額1 in ("'+kingaku1+'") order by $id desc'+'"and "金額2 in ("'+kingaku2+'") order by $id desc'
|
184
|
+
|
185
|
+
+'"and "金額3 in ("'+ kingaku3+'") order by $id desc',
|
166
186
|
|
167
187
|
'limit': limit,
|
168
188
|
|
@@ -174,7 +194,7 @@
|
|
174
194
|
|
175
195
|
|
176
196
|
|
177
|
-
//
|
197
|
+
// Aアプリデータ取得用のカーソル作成(thenを使うことで resp の中にデータが格納される)
|
178
198
|
|
179
199
|
return kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'POST', body).then(function(resp) {
|
180
200
|
|
@@ -208,7 +228,7 @@
|
|
208
228
|
|
209
229
|
|
210
230
|
|
211
|
-
//
|
231
|
+
// Aアプリからデータ取得(thenを使うことで resp の中にデータが格納される)
|
212
232
|
|
213
233
|
return kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'GET', body).then(function(resp) {
|
214
234
|
|
@@ -256,15 +276,15 @@
|
|
256
276
|
|
257
277
|
|
258
278
|
|
259
|
-
//コンソールへ格納した「
|
279
|
+
//コンソールへ格納した「アプリA」アプリフィールド情報代入
|
260
280
|
|
261
281
|
for (var i = 0; i < respRecords.length; i++) {
|
262
282
|
|
263
|
-
var resp_pCostTable = respRecords[i]["table
|
283
|
+
var resp_pCostTable = respRecords[i]["table"].value;
|
264
|
-
|
265
|
-
|
266
|
-
|
284
|
+
|
285
|
+
|
286
|
+
|
267
|
-
//
|
287
|
+
//日報アプリ「table_1」サブテーブルへ取得データセット
|
268
288
|
|
269
289
|
for (var ii = 0; ii < resp_pCostTable.length; ii++) {
|
270
290
|
|
@@ -272,13 +292,19 @@
|
|
272
292
|
|
273
293
|
value: {
|
274
294
|
|
295
|
+
"施設名": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["施設名A"].value },
|
296
|
+
|
275
297
|
"免除区分A": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["減免区分A"].value },
|
276
298
|
|
277
|
-
"使用団体名": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["
|
299
|
+
"使用団体名": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["団体名A"].value },
|
278
|
-
|
279
|
-
|
300
|
+
|
280
|
-
|
281
|
-
"
|
301
|
+
"金額1": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["金額1"].value },
|
302
|
+
|
303
|
+
"金額2": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["金額2"].value },
|
304
|
+
|
305
|
+
"金額3": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["金額3"].value },
|
306
|
+
|
307
|
+
"人数": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["人数A"].value },
|
282
308
|
|
283
309
|
}
|
284
310
|
|
@@ -316,9 +342,9 @@
|
|
316
342
|
|
317
343
|
|
318
344
|
|
319
|
-
|
345
|
+
サブテーブルのコピーのコードを見様見真似で作成してみましたが、全く動かない状態です。
|
320
|
-
|
346
|
+
|
321
|
-
どこをどう変えてよいものか
|
347
|
+
どこをどう変えてよいものか、わからない状態です。
|
322
348
|
|
323
349
|
|
324
350
|
|
3
マルチポストであることを宣言しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,6 +12,12 @@
|
|
12
12
|
|
13
13
|
```
|
14
14
|
|
15
|
+
同質問をサイボウズディベロッパーでも投稿させていただいておりますが、
|
16
|
+
|
17
|
+
なかなか情報収集ができないため、こちらでご質問させてくださいm(__)m
|
18
|
+
|
19
|
+
|
20
|
+
|
15
21
|
複数のアプリを1つのアプリに集計させたいです。
|
16
22
|
|
17
23
|
|
@@ -22,13 +28,13 @@
|
|
22
28
|
|
23
29
|
*利用者名(文字列)
|
24
30
|
|
25
|
-
|
31
|
+
*人数(計算)
|
26
32
|
|
27
33
|
【サブテーブル】
|
28
34
|
|
29
35
|
|
30
36
|
|
31
|
-
┃開始日(日付)┃~┃終了日(日付)┃総日数(計算)┃施設名(ドロップダウン)┃
|
37
|
+
┃開始日(日付)┃~┃終了日(日付)┃総日数(計算)┃施設名(ドロップダウン)┃免除区分(ドロップダウン)┃金額/日数分(計算)┃金額/1日分(計算)┃
|
32
38
|
|
33
39
|
|
34
40
|
|
@@ -52,7 +58,9 @@
|
|
52
58
|
|
53
59
|
|
54
60
|
|
55
|
-
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
61
|
+
┃施設名(ドロップダウン)┃免除区分(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
62
|
+
|
63
|
+
|
56
64
|
|
57
65
|
|
58
66
|
|
@@ -60,7 +68,9 @@
|
|
60
68
|
|
61
69
|
|
62
70
|
|
63
|
-
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
71
|
+
┃施設名(ドロップダウン)┃免除区分(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
72
|
+
|
73
|
+
|
64
74
|
|
65
75
|
|
66
76
|
|
@@ -68,7 +78,7 @@
|
|
68
78
|
|
69
79
|
|
70
80
|
|
71
|
-
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
81
|
+
┃施設名(ドロップダウン)┃免除区分(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
72
82
|
|
73
83
|
|
74
84
|
|
2
コード変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -96,130 +96,206 @@
|
|
96
96
|
|
97
97
|
(function() {
|
98
98
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
99
|
+
'use strict';
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
// 「Bアプリコピー」時の処理
|
104
|
+
|
105
|
+
kintone.events.on(["app.record.create.change.コピー",
|
106
|
+
|
107
|
+
"app.record.edit.change.コピー"],
|
108
|
+
|
109
|
+
function(event) {
|
110
|
+
|
111
|
+
var record = event.record;
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
///カーソル情報代入
|
116
|
+
|
117
|
+
var appID = 000; //データ取得元 集計用アプリID
|
118
|
+
|
119
|
+
var limit = 200;
|
120
|
+
|
121
|
+
var offset = 0;
|
122
|
+
|
123
|
+
var size = 100;
|
124
|
+
|
125
|
+
//Aアプリ情報代入
|
126
|
+
|
127
|
+
var pNo = record["施設名"].value;
|
128
|
+
|
129
|
+
var reqStart = record["使用開始日"].value;
|
130
|
+
|
131
|
+
var reqEnd = record["使用終了日"].value;
|
132
|
+
|
133
|
+
var worker = record["使用団体名"].value;
|
134
|
+
|
135
|
+
var pCostTable = record["使用料金1日"].value;
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
function postCursor() {
|
140
|
+
|
141
|
+
var body = {
|
142
|
+
|
143
|
+
'app': appID,
|
144
|
+
|
145
|
+
'fields':["利用者A","日付","施設名"],
|
146
|
+
|
147
|
+
//'query':「フィールドコード 演算子 条件」の順序で記述
|
148
|
+
|
149
|
+
//Bアプリ:「日付」 が Aアプリ:「使用開始日」~「使用終了日」の間 and
|
150
|
+
|
151
|
+
//Bアプリ:「利用者A」 が Aアプリ:「使用団体名」と同じ and
|
152
|
+
|
153
|
+
//Bアプリ:サブテーブルtable1「施設名」 が Aアプリ:「施設名」 と同じ
|
154
|
+
|
155
|
+
'query': '日付 >= "'+ reqStart +'" and 日付 <= "'+ reqEnd +'" and 利用者A = "'+ worker +'" and "施設名 in ("'+ pNo +'") order by $id desc' ,
|
156
|
+
|
157
|
+
'limit': limit,
|
158
|
+
|
159
|
+
'offset': offset,
|
160
|
+
|
161
|
+
'size': size,
|
162
|
+
|
163
|
+
};
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
// Bアプリデータ取得用のカーソル作成(thenを使うことで resp の中にデータが格納される)
|
168
|
+
|
169
|
+
return kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'POST', body).then(function(resp) {
|
170
|
+
|
171
|
+
// 成功:カーソル作成
|
172
|
+
|
173
|
+
return resp.id;
|
174
|
+
|
175
|
+
// catch で取得失敗時のエラー制御
|
176
|
+
|
177
|
+
}).catch(function(error) {
|
178
|
+
|
179
|
+
// エラー発生時にエラー表示
|
180
|
+
|
181
|
+
return error;
|
182
|
+
|
183
|
+
});
|
184
|
+
|
185
|
+
}
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
function getRecordsFromCursor(cursorId, opt_records) {
|
190
|
+
|
191
|
+
var records = opt_records || [];
|
192
|
+
|
193
|
+
var body = {
|
194
|
+
|
195
|
+
'id': cursorId
|
196
|
+
|
197
|
+
};
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
// Bアプリからデータ取得(thenを使うことで resp の中にデータが格納される)
|
202
|
+
|
203
|
+
return kintone.api(kintone.api.url('/k/v1/records/cursor', true), 'GET', body).then(function(resp) {
|
204
|
+
|
205
|
+
// 成功:データを取得
|
206
|
+
|
207
|
+
records = records.concat(resp.records);
|
208
|
+
|
209
|
+
if (resp.next) {
|
210
|
+
|
211
|
+
return getRecordsFromCursor(cursorId, records);
|
148
212
|
|
149
213
|
}
|
150
214
|
|
215
|
+
return records;
|
216
|
+
|
217
|
+
// catch で取得失敗時のエラー制御
|
218
|
+
|
219
|
+
}).catch(function(error) {
|
220
|
+
|
221
|
+
// エラー発生時にエラー表示
|
222
|
+
|
223
|
+
return error;
|
224
|
+
|
225
|
+
});
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
//コンソールへ取得情報格納
|
232
|
+
|
233
|
+
postCursor().then(function(respCursorId) {
|
234
|
+
|
235
|
+
return getRecordsFromCursor(respCursorId);
|
236
|
+
|
237
|
+
}).then(function(respRecords) {
|
238
|
+
|
239
|
+
console.log(respRecords);
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
//set用レコード情報の取得
|
244
|
+
|
245
|
+
var getRec = kintone.app.record.get();
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
//コンソールへ格納した「日報」アプリフィールド情報代入
|
250
|
+
|
251
|
+
for (var i = 0; i < respRecords.length; i++) {
|
252
|
+
|
253
|
+
var resp_pCostTable = respRecords[i]["table_1"].value;
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
//Aアプリを日報フォーム「table_1」サブテーブルへ取得データセット
|
258
|
+
|
259
|
+
for (var ii = 0; ii < resp_pCostTable.length; ii++) {
|
260
|
+
|
261
|
+
getRec.record["table_1"].value.unshift({
|
262
|
+
|
263
|
+
value: {
|
264
|
+
|
265
|
+
"免除区分A": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["減免区分A"].value },
|
266
|
+
|
267
|
+
"使用団体名": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["利用者A"].value },
|
268
|
+
|
269
|
+
"施設名": { "type": "CALC", "value": "" /*resp_pCostTable[ii].value["施設名"].value*/ },
|
270
|
+
|
271
|
+
"使用料金1日": { "type": "SINGLE_LINE_TEXT", "value": resp_pCostTable[ii].value["使用料金A"].value },
|
272
|
+
|
273
|
+
}
|
274
|
+
|
275
|
+
});
|
276
|
+
|
277
|
+
}
|
278
|
+
|
279
|
+
|
280
|
+
|
151
281
|
}
|
152
282
|
|
153
|
-
|
283
|
+
|
154
|
-
|
284
|
+
|
155
|
-
|
285
|
+
}).catch(function(error) {
|
156
|
-
|
286
|
+
|
157
|
-
|
287
|
+
console.log(error);
|
158
|
-
|
159
|
-
|
288
|
+
|
160
|
-
|
161
|
-
"金額": Number(num),
|
162
|
-
|
163
|
-
"人数": Number(num2),
|
164
|
-
|
165
|
-
}
|
166
|
-
|
167
|
-
}
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
}
|
172
|
-
|
173
|
-
});
|
289
|
+
});
|
174
|
-
|
290
|
+
|
291
|
+
|
292
|
+
|
175
|
-
|
293
|
+
return event;
|
294
|
+
|
295
|
+
|
176
296
|
|
177
297
|
});
|
178
298
|
|
179
|
-
function setData() {
|
180
|
-
|
181
|
-
var record = kintone.app.record.get().record;
|
182
|
-
|
183
|
-
var TableB = record["アプリA"].value;
|
184
|
-
|
185
|
-
var index = TableB.length - 1;
|
186
|
-
|
187
|
-
// テーブル初期化
|
188
|
-
|
189
|
-
for (var i = 0; i <= index; i++) {
|
190
|
-
|
191
|
-
TableB.splice(0, 1);
|
192
|
-
|
193
|
-
}
|
194
|
-
|
195
|
-
// 取得したデータを追加
|
196
|
-
|
197
|
-
for (var key in orderdatas) {
|
198
|
-
|
199
|
-
TableB.push({
|
200
|
-
|
201
|
-
value: {
|
202
|
-
|
203
|
-
"施設名": {value: orderdatas[key]["施設名"], type: "SINGLE_LINE_TEXT"},
|
204
|
-
|
205
|
-
"団体名": {value: orderdatas[key]["団体名"], type: "SINGLE_LINE_TEXT"},
|
206
|
-
|
207
|
-
"金額": {value: Number(orderdatas[key]["金額"]), type: "NUMBER"},
|
208
|
-
|
209
|
-
"人数": {value: orderdatas[key]["人数"], type: "SINGLE_LINE_TEXT"}
|
210
|
-
|
211
|
-
}
|
212
|
-
|
213
|
-
});
|
214
|
-
|
215
|
-
}
|
216
|
-
|
217
|
-
kintone.app.record.set({record: record});
|
218
|
-
|
219
|
-
}
|
220
|
-
|
221
|
-
});
|
222
|
-
|
223
299
|
})();
|
224
300
|
|
225
301
|
```
|
@@ -232,7 +308,7 @@
|
|
232
308
|
|
233
309
|
Javascript初心者でサブテーブルのコピーのコードを見様見真似で作成してみましたが、全く動かない状態です。
|
234
310
|
|
235
|
-
|
311
|
+
どこをどう変えてよいものか・・・これで合っているのかもわからない状態です。
|
236
312
|
|
237
313
|
|
238
314
|
|
1
質問内容とコードを少し変更しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,19 +24,11 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
【サブテーブル
|
27
|
+
【サブテーブル】
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
29
|
+
|
36
|
-
|
37
|
-
|
38
|
-
|
30
|
+
|
39
|
-
┃施設名(ドロップダウン)┃金額/日数分(計算)┃金額/1日分(計算)┃
|
31
|
+
┃開始日(日付)┃~┃終了日(日付)┃総日数(計算)┃施設名(ドロップダウン)┃人数(計算)┃金額/日数分(計算)┃金額/1日分(計算)┃
|
40
32
|
|
41
33
|
|
42
34
|
|
@@ -60,7 +52,7 @@
|
|
60
52
|
|
61
53
|
|
62
54
|
|
63
|
-
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃
|
55
|
+
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
64
56
|
|
65
57
|
|
66
58
|
|
@@ -68,7 +60,7 @@
|
|
68
60
|
|
69
61
|
|
70
62
|
|
71
|
-
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃
|
63
|
+
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
72
64
|
|
73
65
|
|
74
66
|
|
@@ -76,7 +68,7 @@
|
|
76
68
|
|
77
69
|
|
78
70
|
|
79
|
-
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃
|
71
|
+
┃施設名(ドロップダウン)┃団体名(文字列)┃金額(1日分)(数値)┃人数(数値)┃
|
80
72
|
|
81
73
|
|
82
74
|
|
@@ -84,7 +76,9 @@
|
|
84
76
|
|
85
77
|
|
86
78
|
|
79
|
+
開始日から終了日までの期間,レコード一覧から抽出集計し
|
80
|
+
|
87
|
-
|
81
|
+
日報フォームに団体名&施設名ごとに金額(1日分)を映したいのですが可能でしょうか?
|
88
82
|
|
89
83
|
|
90
84
|
|
@@ -100,192 +94,134 @@
|
|
100
94
|
|
101
95
|
```ここに言語名を入力
|
102
96
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
(function
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
97
|
+
(function() {
|
98
|
+
|
99
|
+
"use strict";
|
100
|
+
|
101
|
+
kintone.events.on(["app.record.create.change.開始日", "app.record.edit.change.開始日"], function(e) {
|
102
|
+
|
103
|
+
var date = e.record["開始日"].value;
|
104
|
+
|
105
|
+
// アプリAから取得したデータ格納用
|
106
|
+
|
107
|
+
var orderdatas = {};
|
108
|
+
|
109
|
+
var body = {
|
110
|
+
|
111
|
+
'app': 000, // アプリAのアプリID
|
112
|
+
|
113
|
+
'query': '開始日 = "' + date + '"'
|
114
|
+
|
115
|
+
}
|
116
|
+
|
117
|
+
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function(resp) {
|
118
|
+
|
119
|
+
resp.records.forEach(function(record) {
|
120
|
+
|
121
|
+
var Table = record["アプリA"].value;
|
122
|
+
|
123
|
+
for (var t = 0; t < Table.length; t++) {
|
124
|
+
|
125
|
+
var code = Table[t].value["施設名"].value;
|
126
|
+
|
127
|
+
var name = Table[t].value["団体名"].value;
|
128
|
+
|
129
|
+
var num = Table[t].value["金額"].value;
|
130
|
+
|
131
|
+
var num2 = Table[t].value["人数"].value;
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
if (orderdatas[code]) {
|
136
|
+
|
137
|
+
var Num = Number(orderdatas[code]["金額"]);
|
138
|
+
|
139
|
+
orderdatas[code] = {
|
140
|
+
|
141
|
+
"施設名": code,
|
142
|
+
|
143
|
+
"団体名A": name,
|
144
|
+
|
145
|
+
"金額": Num,
|
146
|
+
|
147
|
+
"人数": Num2,
|
148
|
+
|
149
|
+
}
|
150
|
+
|
151
|
+
}
|
152
|
+
|
153
|
+
else {
|
154
|
+
|
155
|
+
orderdatas[code] = {
|
156
|
+
|
157
|
+
"施設名": code,
|
158
|
+
|
159
|
+
"団体名": name,
|
160
|
+
|
161
|
+
"金額": Number(num),
|
162
|
+
|
163
|
+
"人数": Number(num2),
|
164
|
+
|
165
|
+
}
|
166
|
+
|
167
|
+
}
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
}
|
172
|
+
|
173
|
+
});
|
174
|
+
|
175
|
+
setData();
|
176
|
+
|
177
|
+
});
|
178
|
+
|
179
|
+
function setData() {
|
180
|
+
|
181
|
+
var record = kintone.app.record.get().record;
|
182
|
+
|
183
|
+
var TableB = record["アプリA"].value;
|
184
|
+
|
185
|
+
var index = TableB.length - 1;
|
186
|
+
|
187
|
+
// テーブル初期化
|
188
|
+
|
189
|
+
for (var i = 0; i <= index; i++) {
|
190
|
+
|
191
|
+
TableB.splice(0, 1);
|
192
|
+
|
193
|
+
}
|
194
|
+
|
195
|
+
// 取得したデータを追加
|
196
|
+
|
197
|
+
for (var key in orderdatas) {
|
198
|
+
|
199
|
+
TableB.push({
|
200
|
+
|
201
|
+
value: {
|
202
|
+
|
203
|
+
"施設名": {value: orderdatas[key]["施設名"], type: "SINGLE_LINE_TEXT"},
|
204
|
+
|
205
|
+
"団体名": {value: orderdatas[key]["団体名"], type: "SINGLE_LINE_TEXT"},
|
206
|
+
|
207
|
+
"金額": {value: Number(orderdatas[key]["金額"]), type: "NUMBER"},
|
208
|
+
|
209
|
+
"人数": {value: orderdatas[key]["人数"], type: "SINGLE_LINE_TEXT"}
|
210
|
+
|
211
|
+
}
|
212
|
+
|
213
|
+
});
|
214
|
+
|
215
|
+
}
|
216
|
+
|
217
|
+
kintone.app.record.set({record: record});
|
218
|
+
|
219
|
+
}
|
220
|
+
|
221
|
+
});
|
160
222
|
|
161
223
|
})();
|
162
224
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
//★2つ目
|
168
|
-
|
169
|
-
App1.insert = function(table, nextRow) {
|
170
|
-
|
171
|
-
var row = nextRow || 2;
|
172
|
-
|
173
|
-
// (施設名が同じ)日報フォームにレコードを取得
|
174
|
-
|
175
|
-
return costApp.get(table[row]['value']['施設名'].value).then(function(resp) {
|
176
|
-
|
177
|
-
var costRecord = resp['records'];
|
178
|
-
|
179
|
-
return costApp.increaseRow(costRecord, table[row].value, 0).then(function(resp4) {
|
180
|
-
|
181
|
-
row++;
|
182
|
-
|
183
|
-
if (row < table.length) {
|
184
|
-
|
185
|
-
return App1.insert(table, row);
|
186
|
-
|
187
|
-
}
|
188
|
-
|
189
|
-
return true;
|
190
|
-
|
191
|
-
}, function(resp4) {
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
row++;
|
196
|
-
|
197
|
-
if (row < table.length) {
|
198
|
-
|
199
|
-
return billApp.insert(table, row);
|
200
|
-
|
201
|
-
}
|
202
|
-
|
203
|
-
return false;
|
204
|
-
|
205
|
-
});
|
206
|
-
|
207
|
-
}, function(resp) {
|
208
|
-
|
209
|
-
return false;
|
210
|
-
|
211
|
-
});
|
212
|
-
|
213
|
-
};
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
//日報フォーム用
|
220
|
-
|
221
|
-
App2.get = function(No) {
|
222
|
-
|
223
|
-
var params = {
|
224
|
-
|
225
|
-
// 日報フォーム番号
|
226
|
-
|
227
|
-
"app": App2.APP_ID,
|
228
|
-
|
229
|
-
// 検索条件
|
230
|
-
|
231
|
-
"query": '施設名 ="' + No + '"',
|
232
|
-
|
233
|
-
// 取得項目
|
234
|
-
|
235
|
-
"fields": ['$id', '$revision', '施設名', 'アプリA']
|
236
|
-
|
237
|
-
};
|
238
|
-
|
239
|
-
return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params);
|
240
|
-
|
241
|
-
};
|
242
|
-
|
243
|
-
// テーブル内の1行を更新する(加算)
|
244
|
-
|
245
|
-
// @param exsitedInf 日報日報フォームのレコード
|
246
|
-
|
247
|
-
// @param newInf 総合体育館システムの支払情報1件
|
248
|
-
|
249
|
-
// @param rowIndex 更新する行を示す数(配列の添え字)
|
250
|
-
|
251
|
-
// @return Promise
|
252
|
-
|
253
|
-
//
|
254
|
-
|
255
|
-
App2.increaseRow = function(existedInf, newInf, rowIndex) {
|
256
|
-
|
257
|
-
var App2Table = existedInf[0]['アプリA'].value;
|
258
|
-
|
259
|
-
//支払金額を加算する
|
260
|
-
|
261
|
-
var Value1 = Number(App2Table[rowIndex]['value']['金額'].value);
|
262
|
-
|
263
|
-
App2Table[rowIndex]['value']['金額'].value = Value1 + Number(newInf['金額'].value);
|
264
|
-
|
265
|
-
var params = {
|
266
|
-
|
267
|
-
"app": App2.APP_ID,
|
268
|
-
|
269
|
-
"id": existedInf[0]['$id'].value,
|
270
|
-
|
271
|
-
"revision": existedInf[0]['$revision'].value,
|
272
|
-
|
273
|
-
"record": {
|
274
|
-
|
275
|
-
"アプリA": { "value": App2Table }
|
276
|
-
|
277
|
-
}
|
278
|
-
|
279
|
-
};
|
280
|
-
|
281
|
-
// 更新
|
282
|
-
|
283
|
-
return kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', params);
|
284
|
-
|
285
|
-
}
|
286
|
-
|
287
|
-
})(); //----- function
|
288
|
-
|
289
225
|
```
|
290
226
|
|
291
227
|
|
@@ -294,7 +230,9 @@
|
|
294
230
|
|
295
231
|
|
296
232
|
|
233
|
+
Javascript初心者でサブテーブルのコピーのコードを見様見真似で作成してみましたが、全く動かない状態です。
|
234
|
+
|
297
|
-
|
235
|
+
ここからレコード一覧からの集計方法や日付の期間など、どこをどう変えてよいものか・・・これで合っているのかもわからない状態です。
|
298
236
|
|
299
237
|
|
300
238
|
|