====== 할일 ====== * 메일 쓰기. 금요일 미팅 잡기. 코치타운 서비스 가입 * 웹페이지 만들기 * google form 제너레이터 http://sneakysheep.com/google-docs-form-tool-version-2/ function whatIsStyleOf(result) { var resultStyle = ''; var sheet = SpreadsheetApp.openById('10osWgJbb9RjXX2HrsseEwam7AskXF3ugtqPjwnK4p1E').getSheetByName('문항'); var stylesOfItems = sheet.getRange(1,1, sheet.getLastRow() -1, 2).getValues(); for (var i = 0; i < stylesOfItems.length ; i++) { // Logger.log(stylesOfItems[i][0]); if (result === stylesOfItems[i][0]) { resultStyle = stylesOfItems[i][1] } } return resultStyle; } function createIncoachingStyleProfileForms() { var form = FormApp.getActiveForm(); form.setTitle('Incoaching Style Profile'); var sheet = SpreadsheetApp.openById('10osWgJbb9RjXX2HrsseEwam7AskXF3ugtqPjwnK4p1E').getSheetByName('문항'); var stylesOfItems = sheet.getRange(1,1, sheet.getLastRow() , 2).getValues(); for (var i = 0; i < stylesOfItems.length ; i=i+2) { var item = form.addMultipleChoiceItem(); item.setTitle('나는'); item.setRequired(true); item.setChoiceValues([stylesOfItems[i][0],stylesOfItems[i+1][0]]); } } function calculateStyleProfile(lastColumn,a,b,e,f) { var sheet = SpreadsheetApp.openById('10osWgJbb9RjXX2HrsseEwam7AskXF3ugtqPjwnK4p1E').getActiveSheet(); var lastRow = sheet.getLastRow(); // A sheet.getRange(lastRow,lastColumn).setValue(a); // B sheet.getRange(lastRow,lastColumn+1).setValue(b); // E sheet.getRange(lastRow,lastColumn+2).setValue(e); // F sheet.getRange(lastRow,lastColumn+3).setValue(f); // 주도형 D var d = a*(e/2); // 사교형 I var i = a*(f/2); // 안정형 S var s = b*(f/2); // 신중형 C var c = b*(e/2); var arr = [d,i,s,c]; var i = arr.indexOf(Math.max.apply(Math, arr)); Logger.log(arr); var style = ''; if (i==0) { style = 'D' } else if (i ==1) { style = 'I'; } else if (i ==2) { style = 'S'; } else if (i ==3) { style = 'C'; } sheet.getRange(lastRow,lastColumn+4).setValue(style); return style; } function onOpen() { FormApp.getUi() // Or DocumentApp or FormApp. .createMenu('Custom Menu') .addItem('Show sidebar', 'showSidebar') .addToUi(); } function showSidebar() { // Display a sidebar with custom UiApp content. var uiInstance = UiApp.createApplication() .setTitle('Live Result'); var responses = FormApp.getActiveForm().getResponses(); uiInstance.add(uiInstance.createLabel(responses.length)); FormApp.getUi().showSidebar(uiInstance); } function onOpen() { var fa = FormApp.getActive(); ScriptApp.newTrigger('onFormSubmit') .forSpreadsheet(fa) .onFormSubmit() .create(); } function onFormSubmit(event) { var logDocument = DocumentApp.openById('17mpPXOsuMD70vpwJwN02Y8hziHB3tHb_l1rN8tAXwaQ'); var a = 0; var b = 0; var e = 0; var f = 0; try { var response = event.response; //logDocument.getBody().appendParagraph(Utilities.formatString("%s", event.response.getItemResponses().toString())); var itemResponses = event.response.getItemResponses(); for (var j = 1; j < itemResponses.length; j++) { var itemResponse = itemResponses[j]; //logDocument.getBody().appendParagraph(Utilities.formatString('question "%s" was "%s"', itemResponse.getItem().getTitle(), // itemResponse.getResponse())); if ('A' === whatIsStyleOf(itemResponse.getResponse())){ a = a+1; } if ('B' === whatIsStyleOf(itemResponse.getResponse())){ b = b+1; } if ('E' === whatIsStyleOf(itemResponse.getResponse())){ e = e+1; } if ('F' === whatIsStyleOf(itemResponse.getResponse())){ f = f+1; } } var style = calculateStyleProfile(itemResponses.length+3,a,b,e,f); var message = Utilities.formatString('A:%s B:%s E:%s F:%s Style:%s', a.toString(), b.toString(), e.toString(), f.toString(), style); var styleReportImageUrl = Utilities.formatString('http://www.dh8.kr/tmp/ISP_Style_%s.png', style); var styleReportImageBlob = UrlFetchApp .fetch(styleReportImageUrl) .getBlob() .setName("styleReportImageBlob"); //showSidebar(); logDocument.getBody().appendParagraph(message); email = itemResponses[0].getResponse(); //MailApp.sendEmail(email, "ISP", message); MailApp.sendEmail({ to: email, subject: "ISP 설문 결과", htmlBody: "
" + message, inlineImages: { styleReportImageBlob: styleReportImageBlob, } }); } catch(e) { errorMessage = (e.name + ' on line: ' + e.lineNumber + ' -> ' + e.message); logDocument.getBody().appendParagraph(errorMessage); } }