2012-12-18 59 views
0

我試圖做一個GAS腳本來從我使用Ui服務創建的表單寫入數據,但它不起作用。使用Ui服務中的submitButton在Google Spreadsheet中寫入數據

形式顯示正常,但在電子表格中保存數據的功能不起作用:

function SalvaRegistro(e) { 
var app=UiApp.getActiveApplication(); 
var DataValue=e.parameter.Data; 
var TicketIDValue=e.value.TicketID; 
var TicketTypeValue=e.value.TicketType; 
var DemandedByValue=e.value.DemandedBy; 
var AnalystValue=e.value.Analyst; 
var StatusValue=e.value.Status; 
var DescriptionValue=e.value.Description; 
var TicketIDValue=e.value.TicketID; 

sheet=SpreadsheetApp.getActiveSheet(); 
var lastRow = sheet.getLastRow(); 
sheet.getRange(lastRow, getColIndexByName("Data")).setValue(DataValue); 
sheet.getRange(lastRow, getColIndexByName("Ticket ID")).setValue(TicketIDValue); 
sheet.getRange(lastRow, getColIndexByName("Ticket Type")).setValue(TicketTypeValue); 
sheet.getRange(lastRow, getColIndexByName("Demandado por")).setValue(DemandedByValue); 
sheet.getRange(lastRow, getColIndexByName("Analista")).setValue(AnalystValue); 
sheet.getRange(lastRow, getColIndexByName("Status")).setValue(StatusValue); 
sheet.getRange(lastRow, getColIndexByName("Descrição")).setValue(DescriptionValue); 
return app.close() 
        } 

我怎樣才能使形式寫在表格中的數據?

+0

表中有什麼價值?它是'未定義'還是什麼都沒有發生?你有錯誤信息嗎? –

回答

0

如果您在GUI中使用FormPanel和Submit按鈕,則可以簡單地使用名爲doPost(e)的預定義函數,其中e var將包含所有FormPanel值。 對於每個輸入字段,還在GUI Builder中設置Name參數,以便您可以按名稱引用它們。下面是代碼:

function doPost(e) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var txt1 = e.parameter.TextBox1Name; 
    var txt2 = e.parameter.TextBox2Name; 
    ss.getActiveSheet().appendRow([txt1,txt2]); 
} 

爲了什麼我可以從你的代碼中看到的,你只需要添加一排所以不是看最後一排,你可以簡單地使用appendRow功能,像我一樣。

+0

@marcelo它的作品!非常感謝! –

+0

一點:數據(日期)來了一個未定義的值,因爲我使用setEnabled(false)它的文本框。我將其更改爲setReadOnly(true),問題消失了。但是現在,在腳本編輯器中使用調試工具會出現一個錯誤,指出無法讀取未定義的屬性「參數」。 奇怪的是日期值包含在它們各自的單元格中。 –

相關問題