質問編集履歴
5
コードを最新に更新しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -146,21 +146,23 @@
|
|
146
146
|
|
147
147
|
|
148
148
|
|
149
|
-
/* 承認・否認 */
|
149
|
+
/* 承認・否認 */
|
150
|
-
|
150
|
+
|
151
|
-
html += '<a href="https://******/exec?p=ok&t='+
|
151
|
+
html += '<a href="https://script.google.com/*******/exec?p=ok&t='+timeStamp+'">承認</a><br>';
|
152
|
-
|
152
|
+
|
153
|
-
html += '<a href="https://******/exec?p=ng&t='+
|
153
|
+
html += '<a href="https://script.google.com/*******/exec?p=ng&t='+timeStamp+'">否認</a><br>';
|
154
154
|
|
155
155
|
|
156
156
|
|
157
157
|
|
158
158
|
|
159
|
+
|
160
|
+
|
159
161
|
/* メールを送信 */
|
160
162
|
|
161
163
|
if
|
162
164
|
|
163
|
-
(answer2 == '
|
165
|
+
(answer2 == '1課') {
|
164
166
|
|
165
167
|
GmailApp.sendEmail(
|
166
168
|
|
@@ -184,7 +186,7 @@
|
|
184
186
|
|
185
187
|
else if
|
186
188
|
|
187
|
-
(answer2 == '
|
189
|
+
(answer2 == '2課') {
|
188
190
|
|
189
191
|
GmailApp.sendEmail(
|
190
192
|
|
@@ -348,9 +350,9 @@
|
|
348
350
|
|
349
351
|
}
|
350
352
|
|
353
|
+
|
354
|
+
|
351
|
-
}
|
355
|
+
}
|
352
|
-
|
353
|
-
|
354
356
|
|
355
357
|
function setter(timestamp, str) {
|
356
358
|
|
@@ -360,9 +362,9 @@
|
|
360
362
|
|
361
363
|
var row = -1;
|
362
364
|
|
363
|
-
for(var i =
|
365
|
+
for(var i = 1; i < vals.length; i++) {
|
364
|
-
|
366
|
+
|
365
|
-
if((vals[i][0]
|
367
|
+
if(Utilities.formatDate(vals[i][0], "JST", "yyyy/MM/dd HH:mm:ss") == timestamp) {
|
366
368
|
|
367
369
|
row = i + 1;
|
368
370
|
|
@@ -376,6 +378,8 @@
|
|
376
378
|
|
377
379
|
}
|
378
380
|
|
381
|
+
}
|
382
|
+
|
379
383
|
|
380
384
|
|
381
385
|
|
4
誤記修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -282,6 +282,8 @@
|
|
282
282
|
|
283
283
|
</html>
|
284
284
|
|
285
|
+
|
286
|
+
|
285
287
|
------------------
|
286
288
|
|
287
289
|
●Error.html
|
3
スクリプトを最新に更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -74,17 +74,29 @@
|
|
74
74
|
|
75
75
|
●send_email.gs
|
76
76
|
|
77
|
+
|
78
|
+
|
77
79
|
function sendHtmlMail(e) {
|
78
80
|
|
81
|
+
|
82
|
+
|
79
|
-
var answer1 = e.namedValues['氏名']; //フォーム作成時に設定した項目名
|
83
|
+
var answer1 = e.namedValues['購入者 氏名']; //フォーム作成時に設定した項目名
|
80
84
|
|
81
85
|
var answer2 = e.namedValues['部門']; //フォーム作成時に設定した項目名
|
82
86
|
|
83
87
|
var answer3 = e.namedValues['商品名']; //フォーム作成時に設定した項目名
|
84
88
|
|
85
|
-
var answer4 = e.namedValues['商品URL']; //フォーム作成時に設定した項目名
|
86
|
-
|
87
|
-
var answer
|
89
|
+
var answer4 = e.namedValues['数量']; //フォーム作成時に設定した項目名
|
90
|
+
|
91
|
+
var answer5 = e.namedValues['単価(税込み)']; //フォーム作成時に設定した項目名
|
92
|
+
|
93
|
+
var answer6 = e.namedValues['購入理由']; //フォーム作成時に設定した項目名
|
94
|
+
|
95
|
+
var answer7 = e.namedValues['購入先(URL等)']; //フォーム作成時に設定した項目名
|
96
|
+
|
97
|
+
var answer8 = e.namedValues['優先度']; //フォーム作成時に設定した項目名
|
98
|
+
|
99
|
+
|
88
100
|
|
89
101
|
|
90
102
|
|
@@ -92,6 +104,8 @@
|
|
92
104
|
|
93
105
|
var body = 'htmlメールが表示できませんでした'; //本文(表示不可時)
|
94
106
|
|
107
|
+
|
108
|
+
|
95
109
|
var timeStamp=e.namedValues["タイムスタンプ"];
|
96
110
|
|
97
111
|
|
@@ -104,39 +118,53 @@
|
|
104
118
|
|
105
119
|
|
106
120
|
|
107
|
-
html += "
|
121
|
+
html += "購入者 氏名:" + answer1 + "<br>";
|
108
122
|
|
109
123
|
html += "商品名:" + answer3 + "<br>";
|
110
124
|
|
111
|
-
html += "
|
125
|
+
html += "数量:" + answer4 + "<br>";
|
126
|
+
|
127
|
+
html += "単価(税込み):" + answer5 + "<br>";
|
128
|
+
|
129
|
+
html += "購入理由:" + answer6 + "<br>";
|
130
|
+
|
131
|
+
html += "購入先(URL等):" + answer7 + "<br>";
|
132
|
+
|
133
|
+
html += "優先度:" + answer8 + "<br>";
|
134
|
+
|
135
|
+
|
112
136
|
|
113
137
|
html += "タイムスタンプ:" + timeStamp + "<br>";
|
114
138
|
|
115
|
-
|
139
|
+
|
116
|
-
|
117
|
-
|
140
|
+
|
141
|
+
|
118
142
|
|
119
143
|
html += "承認しますか?<br><br>";
|
120
144
|
|
121
145
|
|
122
146
|
|
147
|
+
|
148
|
+
|
149
|
+
/* 承認・否認 */
|
150
|
+
|
123
|
-
html += '<a href="https://******
|
151
|
+
html += '<a href="https://******/exec?p=ok&t='+(timeStamp - 0)+'">承認</a><br>';
|
124
|
-
|
152
|
+
|
125
|
-
html += '<a href="https://******
|
153
|
+
html += '<a href="https://******/exec?p=ng&t='+(timeStamp - 0)+'">否認</a><br>';
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
|
130
158
|
|
131
159
|
/* メールを送信 */
|
132
160
|
|
133
161
|
if
|
134
162
|
|
135
|
-
(answer2 == '部門') {
|
163
|
+
(answer2 == '部門1') {
|
136
164
|
|
137
165
|
GmailApp.sendEmail(
|
138
166
|
|
139
|
-
'メールアドレス',
|
167
|
+
'メールアドレス1',
|
140
168
|
|
141
169
|
subject,
|
142
170
|
|
@@ -156,11 +184,11 @@
|
|
156
184
|
|
157
185
|
else if
|
158
186
|
|
159
|
-
(answer2 == '部門') {
|
187
|
+
(answer2 == '部門2') {
|
160
188
|
|
161
189
|
GmailApp.sendEmail(
|
162
190
|
|
163
|
-
'メールアドレス',
|
191
|
+
'メールアドレス2',
|
164
192
|
|
165
193
|
subject,
|
166
194
|
|
@@ -184,7 +212,7 @@
|
|
184
212
|
|
185
213
|
GmailApp.sendEmail(
|
186
214
|
|
187
|
-
'メールアドレス',
|
215
|
+
'メールアドレス3',
|
188
216
|
|
189
217
|
subject,
|
190
218
|
|
@@ -254,43 +282,99 @@
|
|
254
282
|
|
255
283
|
</html>
|
256
284
|
|
257
|
-
|
258
|
-
|
259
285
|
------------------
|
260
286
|
|
287
|
+
●Error.html
|
288
|
+
|
289
|
+
<!DOCTYPE html>
|
290
|
+
|
291
|
+
<html>
|
292
|
+
|
293
|
+
<head>
|
294
|
+
|
295
|
+
<base target="_top">
|
296
|
+
|
297
|
+
</head>
|
298
|
+
|
299
|
+
<body>
|
300
|
+
|
301
|
+
URLが正しくありません。ここはエラーページです<br><br>
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
</body>
|
306
|
+
|
307
|
+
</html>
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
------------------
|
312
|
+
|
261
313
|
●doGet.gs
|
262
314
|
|
315
|
+
|
316
|
+
|
263
317
|
function doGet(e){
|
264
318
|
|
265
319
|
var page=e.parameter["p"];
|
266
320
|
|
267
321
|
var timeStamp=e.parameter["t"];
|
268
322
|
|
269
|
-
|
270
|
-
|
323
|
+
|
324
|
+
|
271
|
-
if(page == "ok" && timeStamp
|
325
|
+
if(page == "ok" && timeStamp){
|
326
|
+
|
272
|
-
|
327
|
+
setter(timeStamp, "○");
|
273
|
-
|
274
|
-
|
328
|
+
|
275
|
-
return HtmlService.createHtmlOutputFromFile('ok');
|
329
|
+
return HtmlService.createHtmlOutputFromFile('ok');
|
330
|
+
|
331
|
+
}
|
332
|
+
|
333
|
+
else if(page == "ng" && timeStamp){
|
334
|
+
|
335
|
+
setter(timeStamp, "×");
|
336
|
+
|
337
|
+
return HtmlService.createHtmlOutputFromFile('ng');
|
338
|
+
|
339
|
+
}
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
else{
|
344
|
+
|
345
|
+
return HtmlService.createHtmlOutputFromFile('Error');
|
346
|
+
|
347
|
+
}
|
276
348
|
|
277
349
|
}
|
278
350
|
|
351
|
+
|
352
|
+
|
353
|
+
function setter(timestamp, str) {
|
354
|
+
|
279
|
-
|
355
|
+
var sh = SpreadsheetApp.openById("スプレッドシートID").getSheetByName("フォームの回答");
|
280
|
-
|
356
|
+
|
281
|
-
r
|
357
|
+
var vals = sh.getDataRange().getValues();
|
358
|
+
|
359
|
+
var row = -1;
|
360
|
+
|
361
|
+
for(var i = 0; i < vals.length; i++) {
|
362
|
+
|
363
|
+
if((vals[i][0] - 0) == timestamp) {
|
364
|
+
|
365
|
+
row = i + 1;
|
366
|
+
|
367
|
+
}
|
282
368
|
|
283
369
|
}
|
284
370
|
|
285
|
-
|
286
|
-
|
287
|
-
|
371
|
+
if(row != -1) {
|
288
|
-
|
372
|
+
|
289
|
-
|
373
|
+
sh.getRange(row, 14, 1, 1).setValue(str);
|
290
|
-
|
291
|
-
|
292
|
-
|
374
|
+
|
293
|
-
}
|
375
|
+
}
|
376
|
+
|
377
|
+
|
294
378
|
|
295
379
|
|
296
380
|
|
2
承認結果の入力列を変更したいので内容を更新しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,9 @@
|
|
18
18
|
|
19
19
|
---
|
20
20
|
|
21
|
+
【更新】
|
22
|
+
|
21
|
-
|
23
|
+
回答でご指摘頂いた内容について本文にも追記します。
|
22
24
|
|
23
25
|
・書き込むスプレッドシートはidで特定して、その中のシート『フォームの回答』に書き込みを行う。
|
24
26
|
|
@@ -38,6 +40,14 @@
|
|
38
40
|
|
39
41
|
|
40
42
|
|
43
|
+
【再更新】
|
44
|
+
|
45
|
+
フォームの入力内容を追加する必要が出たので、
|
46
|
+
|
47
|
+
『承認』『否認』の結果入力をJ列ではなく、N列(14列目)に変更したいです。
|
48
|
+
|
49
|
+
N列に"〇"、"×"を入力したい。
|
50
|
+
|
41
51
|
|
42
52
|
|
43
53
|
|
1
回答で指摘頂いた内容を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,6 +16,28 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
+
---
|
20
|
+
|
21
|
+
【更新】回答でご指摘頂いた内容について本文にも追記します。
|
22
|
+
|
23
|
+
・書き込むスプレッドシートはidで特定して、その中のシート『フォームの回答』に書き込みを行う。
|
24
|
+
|
25
|
+
・『フォームの回答』シートには、フォームから申請された情報が入力されている。
|
26
|
+
|
27
|
+
タイトル行(A1~I1)には以下のタイトルが記入済み(タイムスタンプ、メールアドレス、氏名、部門、
|
28
|
+
|
29
|
+
機材種別、購入希望日、商品名、商品URL、個数)。
|
30
|
+
|
31
|
+
2行目以下はフォームからの申請内容が入力されている。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
・『承認』の場合はJ列に"〇"を、『否認』の場合はJ列に"×"を入力したい。
|
36
|
+
|
37
|
+
(タイムスタンプが一致する行に対して。)
|
38
|
+
|
39
|
+
|
40
|
+
|
19
41
|
|
20
42
|
|
21
43
|
|