2014-04-08 1 views
0

이 오류가 계속 발생합니다. "죄송합니다. 서버 오류가 발생했습니다. 잠시 기다렸다가 다시 시도하십시오. "내 코드를 실행하면 정말 도움이 필요합니다."죄송합니다. 서버 오류가 발생했습니다. 잠시 기다렸다가 다시 시도하십시오."

나는 오류가

function onOpen() { 
    var submenu = [{name:"Report", functionName:"responseMech"}]; 
    SpreadsheetApp.getActiveSpreadsheet().addMenu('Generator', submenu); 

    } 



    function responseMech(){ 

var response = Browser.inputBox('Report Generator', 'Please enter the Trackwise record    number you are searching for', Browser.Buttons.OK_CANCEL); 
    report(response) 
} 


    function report(response) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses"); 



    var TW_data = ss.getRange(2,3,ss.getLastRow(),1).getValues(); 

for (j in TW_data){ 

if(response == TW_data[j] && response != ""){ 
    //Main program can take place here 

    var row_number = j + 2; 

    var report_heading = new Array(); 
    var report_data = new Array(); 


    for (var i = 0; i < ss.getLastColumn(); ++i) { 
    report_heading.push([]); 
    report_data.push([]); 
    } 

    for (var i = 0; i < ss.getLastColumn(); ++i) { 
    report_heading[i][0]=ss.getRange(1,i+1).getValues(); 
    report_data[i][0]=ss.getRange(row_number,i+1).getValues(); 
    } 


    var final_heading = new Array(); 
    var final_data = new Array(); 



    for(var i = 0; i < ss.getLastColumn(); ++i){ 
    if(report_data[i][0] != ""){ 
     final_heading.push(report_heading[i][0]); 
     final_data.push(report_data[i][0]); 
    } 
    } 


    var doc = DocumentApp.openById("1vVs5A94GcPhsdowZjMDXnlTdL7iH_AiT52uemWgcVYU"); 



    doc.setText('') 
    InputDataToReport(doc, final_heading, final_data); 
    var sender = Session.getActiveUser().getEmail(); 

    var subject = " Report for TW# " + response; 
    var message = "Please see attached"; 
// 


var file = DriveApp.getFileById('1vVs5A94GcPhsdowZjMDXnlTdL7iH_AiT52uemWgcVYU'); 




    //Send the freshly constructed email 
MailApp.sendEmail(sender, subject, message, { 
name: 'Automatic Emailer Script', 
attachments: [file.getAs(MimeType.PDF)] 
}); 


} 




    } 

    } 



    function InputDataToReport(doc,heading, responses) { 
    //define header cell style which we will use while adding cells in header row 
     //Backgroud color, text bold, white 
    var headerStyle = {}; 
     headerStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#336600'; 
     headerStyle[DocumentApp.Attribute.BOLD] = true; 
     headerStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FFFFFF'; 

     //Style for the cells other than header row 
     var cellStyle = {}; 
    cellStyle[DocumentApp.Attribute.BOLD] = false; 
    cellStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#000000'; 

     //By default, each paragraph had space after, so we will change the paragraph style to add zero space 
    //we will use it later 
    var paraStyle = {}; 
    paraStyle[DocumentApp.Attribute.SPACING_BEFORE] = 0; 
     paraStyle[DocumentApp.Attribute.SPACING_AFTER] = 0; 
    paraStyle[DocumentApp.Attribute.LINE_SPACING] = 1; 


    //get the body section of document 
    var body = doc.getBody(); 

    //Add a table in document 
    var table = body.appendTable(); 



    for(var i=0; i<heading.length; i++){ 
var tr1 = table.appendTableRow(); 
var td1 = tr1.appendTableCell(heading[i][0]); 
td1.setAttributes(headerStyle); 
var paraInCell = td1.getChild(0).asParagraph(); 
paraInCell.setAttributes(paraStyle); 

var tr2 = table.appendTableRow(); 
var td2 = tr2.appendTableCell(); 
var para2 = td2.appendParagraph(responses[i][0]); 
td2.setAttributes(cellStyle); 
var paraInCell2 = td2.getChild(0).asParagraph(); 
paraInCell2.setAttributes(paraStyle); 

    } 




    } 

이에 도움을 감사하게 될 것입니다

불구하고 메일 응용 프로그램입니다 의심!

답변

0

이 부분이 문제의 원인이 될 수 있습니다

for (j in TW_data){ 

if(response == TW_data[j] && response != ""){ 
    //Main program can take place here 

    var row_number = j + 2; 

이 예제에서 각 j은 행의 실제 값입니다. 실제로 TW_data["Samsung"]을 의미로는, 따라서 오류 TW_data[j]을 할 무의미하므로, "Apple", "Samsung""Sony" 자체가 하나 그 하나 각각의 하나가 될 것입니다 j: 그래서, 열이 3 개 행을 포함합니다. 또한 row_number으로 "Samsung"2으로 합산하는 것은 불가능합니다.

코드의 나머지 부분은 얼핏에 확인 보이는 당신은 단순히 for (j=0;j<TW_data.length;j++)와 루프의 시작을 교체해야합니다, 그것이 작동되도록하려면

관련 문제