2012-09-21 6 views
0

이 오류로 인해 혼란스러워졌습니다. 나는 내가 누락 된 것을 알아낼 수 없었다. headPanel에 대한 호출이 없으면 UI가 작동하지만 제목이나 텍스트 레이블을 삽입하지 않으므로 텍스트를 추가하기를 원할 때 가로 패널을 추가했지만 아아 오류가 발생했습니다. 이 문제로 나를 도와주세요. 그리고 나는 내가 어리 석다는 것을 알아야합니다.Google 스크립트 오류 - 메서드를 찾을 수 없습니다.

function doGet(e){ 
    var app = UiApp.createApplication(); 
    var headPanel = app.createHorizontalPanel().setId('headPanel'); 
    var header = app.setTitle('Detention Attendance'); 
    var label = app.createLabel("Please enter attendance for Detention by clicking the  checkbox next to the student's name if they were present. Then click Sumbit."); 
    headPanel.add(header); //* ERROR OCCURS HERE 
    headPanel.add(label); 
    app.add(pane); 

    var panel = app.createVerticalPanel(); 
    var flexTable = app.createFlexTable().setStyleAttribute('border', '2px solid black') 
     .setStyleAttribute('borderCollapse','collapse') 
     .setBorderWidth(2); 
    //Get Data from spreadsheet 
    var spreadsheetId = 'xxxxxxxxxxxxxxxxxxxxxxxx';//Change it to your Spreadsheet ID 
    var dataArray = getData(spreadsheetId); 
//Load data into table cells 
    Logger.log(dataArray); 
    for (var row = 0; row<dataArray.length; row++){ 
    if (row > 0) { 
    var ticketDate = dataArray[row] [0]; 
    var dateStamp = Utilities.formatDate(ticketDate, "America/Chicago", "MM/dd/yyyy"); 
    Logger.log("dateStamp = " +dateStamp); 
    dataArray[row] [0] = dateStamp; 
    var ticketDate2 = dataArray[row] [16]; 
    var dateStamp2 = Utilities.formatDate(ticketDate2, "America/Chicago", "MM/dd/yyyy"); 
    dataArray[row] [16] = dateStamp2; 
    Logger.log("DateStamp = " +dateStamp2); 
    } 

    flexTable.setStyleAttribute("color", "purple").setText(row, 2, dataArray[row][2].toString()).setWidth('300px'); 
    flexTable.setText(row, 0, dataArray[row][0].toString()).setWidth('600px'); 
    flexTable.setText(row, 4, dataArray[row][16].toString()).setWidth('300px');  
} 

panel.add(flexTable); 
app.add(panel); 
return app; 
} 

function getData(spreadsheetId){ 
    var ss = SpreadsheetApp.openById(spreadsheetId); 
    var sheet = ss.getSheets()[0].getDataRange(); 
    Logger.log(sheet); 

    return sheet.getValues(); 
} 

답변

0

귀하의 header VAR는 UiInstance입니다 - 사실은 app 같은 인스턴스가의 .setTitle()에 호출 체인의 편의를 돌려 보냈다.

.add() 메서드는 위젯을 매개 변수로 찾고 있으며 찾지 못했습니다.

그럴 필요가 없습니다. header var - 문제의 원인 일뿐입니다. 실제로 UiApp 인스턴스를 만들 때 제목을 설정할 수 있습니다.

var app = UiApp.createApplication().setTitle('Detention Attendance'); 
관련 문제