質問編集履歴

5

追加

2020/02/17 15:06

投稿

sansam
sansam

スコア18

test CHANGED
File without changes
test CHANGED
@@ -451,3 +451,29 @@
451
451
  </html>
452
452
 
453
453
  ```
454
+
455
+
456
+
457
+ さらに、現在は、以下のエラーが出ており困っております
458
+
459
+
460
+
461
+ ReferenceError: 「url」が定義されていません。(行 27、ファイル「stuff」)
462
+
463
+ この部分で、うまくURLを取得できていないようで、困り果てております。
464
+
465
+ ```js
466
+
467
+ //修正画面リンクを埋め込む関数
468
+
469
+ function getModifyUrl (no, name) {
470
+
471
+ var modifyUrl = url + "/exec?name=modify&no=" + no;
472
+
473
+ return '<a href="' + modifyUrl + '" target="_top">' + name + '</a>';
474
+
475
+ };
476
+
477
+ コード
478
+
479
+ ```

4

説明文の追加と修正

2020/02/17 15:06

投稿

sansam
sansam

スコア18

test CHANGED
File without changes
test CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  一度、成功したのですが、2回目以降、何度やっても、以下のエラーが出てきます。
8
8
 
9
+
10
+
9
11
  スプレッドシートのID指定時は、'XxXXXXXX' シングルクオーテーションで囲み、
10
12
 
11
13
  シート名は、ダブルクオーテーションで囲っても、シングルクオーテーションで囲ってもエラー内容は同じ物が出ます

3

追加

2020/02/17 13:37

投稿

sansam
sansam

スコア18

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,9 @@
6
6
 
7
7
  一度、成功したのですが、2回目以降、何度やっても、以下のエラーが出てきます。
8
8
 
9
-
9
+ スプレッドシートのID指定時は、'XxXXXXXX' シングルクオーテーションで囲み、
10
+
11
+ シート名は、ダブルクオーテーションで囲っても、シングルクオーテーションで囲ってもエラー内容は同じ物が出ます
10
12
 
11
13
  ### 発生している問題・エラーメッセージ
12
14
 

2

追加

2020/02/17 13:24

投稿

sansam
sansam

スコア18

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  ```
16
16
 
17
+ ine.html
18
+
17
19
  TypeError: output.append is not a function(行 59)
18
20
 
19
21
  ```
@@ -27,3 +29,421 @@
27
29
  参考URL;https://note.com/consul_addtag/n/nd581fe122540を参照ください。
28
30
 
29
31
  よろしくお願いいたします。
32
+
33
+ ```html
34
+
35
+ <!DOCTYPE html>
36
+
37
+ <html>
38
+
39
+ <head>
40
+
41
+ <base target="_top">
42
+
43
+ </head>
44
+
45
+ <body>
46
+
47
+ <style>
48
+
49
+ #header-fixed{
50
+
51
+ border: 5px solid #fff; /* 表示領域を白枠で囲う */
52
+
53
+ position: fixed; /* ヘッダーの固定 */
54
+
55
+ padding:10px 0 20px; /* 上10px、下20pxをあける */
56
+
57
+ top: 0px; /* 位置(上0px) */
58
+
59
+ left: 10px; /* 位置(右0px) */
60
+
61
+ width: 100%; /* 横幅100% */
62
+
63
+ height:70px; /* 縦幅70px */
64
+
65
+ background-color:#FFF /* バックの色 */
66
+
67
+ }
68
+
69
+ #content{
70
+
71
+ top: 80px; /* 位置(上0px) */
72
+
73
+ left: 0px; /* 位置(右0px) */
74
+
75
+ padding:110px 0 0px;
76
+
77
+ width: 100%; /* 横幅100% */
78
+
79
+ background-color: "#000000" /* バックの色 */
80
+
81
+ }
82
+
83
+ #menu{
84
+
85
+ font-size : 20px;
86
+
87
+ border : 1px;
88
+
89
+ padding : 10px 20px 0px 0px;
90
+
91
+ }
92
+
93
+ thead {
94
+
95
+ display: block;
96
+
97
+ }
98
+
99
+ tbody {
100
+
101
+ overflow-x: hidden;
102
+
103
+ overflow-y: scroll;
104
+
105
+ }
106
+
107
+ </style>
108
+
109
+ <?
110
+
111
+ url = "https://script.google.com/macros/s/[App-ID]";
112
+
113
+ ?>
114
+
115
+ <div id='header-fixed'>
116
+
117
+ <font size="5pt" color="#5555ff">社員管理システム  </font>
118
+
119
+ <a id='menu' href="<?=url?>/exec?name=view">再表示</a>
120
+
121
+ <a id='menu' href="<?=url?>/exec?name=inputStuff">社員登録</a>
122
+
123
+ <!-- <font size='5px'> 只今の時刻<span id="clock_time"></span>です。</font> -->
124
+
125
+ </div>
126
+
127
+ <!-- ↑↑↑メニュー↑↑↑-->
128
+
129
+ <script>
130
+
131
+ function clock()
132
+
133
+ {
134
+
135
+ // 現在日時を表すインスタンスを取得
136
+
137
+ // var now = new Date();
138
+
139
+ // document.getElementById("clock_time").innerHTML = now;
140
+
141
+ }
142
+
143
+ setInterval(clock, 1000);
144
+
145
+ </script>
146
+
147
+ <?
148
+
149
+ myMail = Session.getActiveUser().getEmail();
150
+
151
+ output.append('<font size="2px" color="#5555ff">ログインユーザー:');
152
+
153
+ output.append( myMail);
154
+
155
+ ?>
156
+
157
+ <div id='content'>
158
+
159
+ <?
160
+
161
+ //スタッフリストのスプレッドIDを指定
162
+
163
+    var id =[シートのIDを指定];
164
+
165
+    var mySheet = SpreadsheetApp.openById(id).getSheetByName("スタッフ");
166
+
167
+ var endrow = mySheet.getLastRow();
168
+
169
+ var headData = mySheet.getRange("A1:N1").getValues();
170
+
171
+ var myData = mySheet.getRange(2, 1 , endrow-1 , 14).getValues();
172
+
173
+ output.append('<table border="1" cellspacing="0" cellpadding="5" bordercolor="#333333" style="table-layout:fixed;width:100%;">');
174
+
175
+ output.append('<thead><div fixed>');
176
+
177
+ output.append('<colgroup>');
178
+
179
+ output.append('<col style="width:3%;"><col style="width:7%;"><col><col><col><col><col><col style="width:20%;"><col style="width:10%;"><col><col style="width:10%;"><col style="width:15%;"><col style="width:5%;"><col>');
180
+
181
+ output.append('</colgroup>');
182
+
183
+ output.append('<tr>');
184
+
185
+ headprefix = '<th bgcolor="#5555ff"><font color="#FFFFFF" size="2px">';
186
+
187
+ headbackfix = '</font></th>';
188
+
189
+
190
+
191
+ //ヘッダー情報取得
192
+
193
+ no = headData[0][0];
194
+
195
+ name = headData[0][1];
196
+
197
+ commit = headData[0][2];
198
+
199
+ company = headData[0][3];
200
+
201
+ payroll = headData[0][4];
202
+
203
+ roll = headData[0][5];
204
+
205
+ post = headData[0][6];
206
+
207
+ profile = headData[0][7];
208
+
209
+ tag = headData[0][8];
210
+
211
+ avalable = headData[0][9];
212
+
213
+ address = headData[0][10];
214
+
215
+ facebook = headData[0][11];
216
+
217
+ ndadate = headData[0][12];
218
+
219
+ status = headData[0][13];
220
+
221
+
222
+
223
+ //テーブルヘッダー作成
224
+
225
+ output.append(headprefix + no + headbackfix);
226
+
227
+ output.append(headprefix + name + headbackfix);
228
+
229
+ output.append(headprefix + commit + headbackfix);
230
+
231
+ output.append(headprefix + company + headbackfix);
232
+
233
+ output.append(headprefix + payroll + headbackfix);
234
+
235
+ output.append(headprefix + roll + headbackfix);
236
+
237
+ output.append(headprefix + post + headbackfix);
238
+
239
+ output.append(headprefix + profile + headbackfix);
240
+
241
+ output.append(headprefix + tag + headbackfix);
242
+
243
+ output.append(headprefix + avalable + headbackfix);
244
+
245
+ output.append(headprefix + address + headbackfix);
246
+
247
+ output.append(headprefix + facebook + headbackfix);
248
+
249
+ output.append(headprefix + ndadate + headbackfix);
250
+
251
+ output.append(headprefix + status + headbackfix);
252
+
253
+ output.append('</tr>');
254
+
255
+ output.append('</thead></div>');
256
+
257
+
258
+
259
+ //テーブルボディの作成
260
+
261
+ output.append('<tbody>');
262
+
263
+ y=0;
264
+
265
+ for(var i=0; i<myData.length; i++){
266
+
267
+ no = myData[i][y];
268
+
269
+ name = myData[i][y+1];
270
+
271
+ commit = myData[i][y+2];
272
+
273
+ company = myData[i][y+3];
274
+
275
+ payroll = myData[i][y+4];
276
+
277
+ roll = myData[i][y+5];
278
+
279
+ post = myData[i][y+6];
280
+
281
+ profile = myData[i][y+7];
282
+
283
+ tag = myData[i][y+8];
284
+
285
+ avalable = myData[i][y+9];
286
+
287
+ address = myData[i][y+10];
288
+
289
+ facebook = myData[i][y+11];
290
+
291
+ ndadate = myData[i][y+12];
292
+
293
+ status = myData[i][y+13];
294
+
295
+
296
+
297
+       headprefix = '<td style="word-wrap:break-word;"><font color="#000000" size="1px">';
298
+
299
+ headbackfix = '</font></td>';
300
+
301
+
302
+
303
+ if (status === "解約" || status === "退職"){
304
+
305
+ output.append('<tr bgcolor = "#333333">');
306
+
307
+ }else if(status === "停止中"){
308
+
309
+ output.append('<tr bgcolor = "#AAAAAA">');
310
+
311
+ }else{
312
+
313
+ output.append('<tr bgcolor = "#FFFFFF">');
314
+
315
+ }
316
+
317
+ output.append(headprefix + no + headbackfix);
318
+
319
+ output.append(headprefix + getModifyUrl(no,name) + headbackfix);
320
+
321
+ output.append(headprefix + commit + headbackfix);
322
+
323
+ output.append(headprefix + company + headbackfix);
324
+
325
+ output.append(headprefix + payroll + headbackfix);
326
+
327
+ output.append(headprefix + roll + headbackfix);
328
+
329
+ output.append(headprefix + post + headbackfix);
330
+
331
+ output.append(headprefix + getLink(profile) + headbackfix);
332
+
333
+ output.append(headprefix + tag + headbackfix);
334
+
335
+ output.append(headprefix + avalable + headbackfix);
336
+
337
+ output.append(headprefix + getMailAddress(address) + headbackfix);
338
+
339
+ output.append(headprefix + getLink(facebook) + headbackfix);
340
+
341
+ output.append(headprefix + getViewDate(ndadate) + headbackfix);
342
+
343
+ output.append(headprefix + status + headbackfix);
344
+
345
+ output.append('</tr>');
346
+
347
+ }
348
+
349
+ output.append('</tbody>');
350
+
351
+ output.append('</table>');
352
+
353
+ ?>
354
+
355
+ <?
356
+
357
+ //上記から参照する関数群
358
+
359
+ function escape_html (string) {
360
+
361
+ if(typeof string !== 'string') {
362
+
363
+ return string;
364
+
365
+ }
366
+
367
+ return string.replace(/[&'`"<>]/g, function(match) {
368
+
369
+ return {
370
+
371
+ '&': '&amp;',
372
+
373
+ "'": '&#x27;',
374
+
375
+ '`': '&#x60;',
376
+
377
+ '"': '&quot;',
378
+
379
+ '<': '&lt;',
380
+
381
+ '>': '&gt;',
382
+
383
+ }[match]
384
+
385
+ });
386
+
387
+ }
388
+
389
+
390
+
391
+ //修正画面リンクを埋め込む関数
392
+
393
+ function getModifyUrl (no, name) {
394
+
395
+ var modifyUrl = url + "/exec?name=modify&no=" + no;
396
+
397
+ return '<a href="' + modifyUrl + '" target="_top">' + name + '</a>';
398
+
399
+ };
400
+
401
+
402
+
403
+      //URLリンクを埋め込む関数
404
+
405
+ function getLink (stringUrl) {
406
+
407
+ var pattern = 'http';
408
+
409
+ if(stringUrl.indexOf(pattern) === 0){
410
+
411
+ return '<a href="' + stringUrl + '" target="_blank">' + stringUrl + '</a>';
412
+
413
+ }else{
414
+
415
+ return stringUrl;
416
+
417
+ }
418
+
419
+ };
420
+
421
+
422
+
423
+ //メールリンクを埋め込む関数
424
+
425
+ function getMailAddress (stringMail) {
426
+
427
+ if(stringMail.indexOf('@') != -1){
428
+
429
+ return '<a href="mailto:' + stringMail + '">' + stringMail + '</a>';
430
+
431
+ }else{
432
+
433
+ return stringMail;
434
+
435
+ }
436
+
437
+ };
438
+
439
+
440
+
441
+ ?>
442
+
443
+ </div>
444
+
445
+ </body>
446
+
447
+ </html>
448
+
449
+ ```

1

追記

2020/02/17 13:21

投稿

sansam
sansam

スコア18

test CHANGED
File without changes
test CHANGED
File without changes