2013-09-16 58 views
-1

另一個用戶(in this thread)發佈了一個應用程序腳本,允許您通過Google表單上傳文件到Google雲端硬盤。上傳Google表單中的文件

// Script-as-app template. 
var submissionSSKey = '0AnqSFd3iikE3dFZ6M1JDekJIa1I5UEZIZURGN3hhM3c'; 

function doGet(e) { 
    var app = UiApp.createApplication().setTitle('Loan Registration Processing'); 
    var panel = app.createFormPanel(); 
    var grid = app.createGrid(8,2).setId('loanGrid'); 
    var loanTypeLabel = app.createLabel('Loan Type'); 
    var loanList = app.createListBox().setName('Loan List').setWidth('120px').setName('LoanType'); 
     loanList.addItem('Select Option');  
     loanList.addItem('FHA'); 
     loanList.addItem('Convential'); 
     loanList.addItem('VA'); 
     loanList.addItem('Reverse'); 
     loanList.addItem('HELOC'); 
    var borrowerNameLabel = app.createLabel("Borrower's Name"); 
    var borrowerTextbox = app.createTextBox().setWidth('150px').setName('borrower'); 
    var loanAmountLabel = app.createLabel('Loan Amount'); 
    var loanAmountTextbox = app.createTextBox().setWidth('150px').setName('amount'); 
    var appDateLabel = app.createLabel('Loan Date'); 
    var appDateTextbox = app.createDateBox().setWidth('150px').setName('date'); 
    var lienPostition = app.createLabel('Lien Position'); 
    var lienPos = app.createListBox().setName('Lien Position').setWidth('150px').setName('LienPosition'); 
     lienPos.addItem('Select Option');  
     lienPos.addItem('1st'); 
     lienPos.addItem('2nd'); 
    var propertyType = app.createLabel('Property Type'); 
    var propType = app.createListBox().setName('Property Type').setWidth('150px').setName('PropertyType'); 
     propType.addItem('Select Option'); 
     propType.addItem('1-4'); 
     propType.addItem('Manufactured'); 
    var submitButton = app.createSubmitButton('<B>Submit</B>'); 
    var warning = app.createHTML('<B>PLEASE WAIT WHILE DATA IS UPLOADING<B>').setStyleAttribute('background','yellow').setVisible(false) 
    //file upload 
    var upLoadTypeLabel = app.createLabel('File Upload'); 
    var upLoad = (app.createFileUpload().setName('thefile')); 

    //Grid layout of items on form 
    grid.setWidget(0, 0, loanTypeLabel) 
     .setWidget(0, 1, loanList) 
     .setWidget(1, 0, borrowerNameLabel) 
     .setWidget(1, 1, borrowerTextbox) 
     .setWidget(2, 0, loanAmountLabel) 
     .setWidget(2, 1, loanAmountTextbox) 
     .setWidget(3, 0, appDateLabel) 
     .setWidget(3, 1, appDateTextbox) 
     .setWidget(4, 0, lienPostition) 
     .setWidget(4, 1, lienPos) 
     .setWidget(5, 0, propertyType) 
     .setWidget(5, 1, propType) 
     .setWidget(6, 0, upLoadTypeLabel) 
     .setWidget(6, 1, upLoad) 
     .setWidget(7, 0, submitButton) 
     .setWidget(7, 1, warning) 

    var cliHandler = app.createClientHandler().forTargets(warning).setVisible(true) 
    submitButton.addClickHandler(cliHandler); 
    panel.add(grid); 
    app.add(panel); 
    return app; 

} 

function doPost(e) { 
    var app = UiApp.getActiveApplication(); 
    var LoanType = e.parameter.LoanType; 
    var borrower = e.parameter.borrower; 
    var amount = e.parameter.amount; 
    var date = e.parameter.date; 
    var LienPosition = e.parameter.LienPosition; 
    var PropertyType = e.parameter.PropertyType; 
    //app.getElementById('info').setVisible(true).setStyleAttribute('color','red'); 

    var sheet = SpreadsheetApp.openById(submissionSSKey).getActiveSheet(); 
    var lastRow = sheet.getLastRow(); 
    var targetRange = sheet.getRange(lastRow+1, 1, 1, 6).setValues([[LoanType,borrower,amount,date,LienPosition,PropertyType]]); 
    // data returned is a blob for FileUpload widget 
    var fileBlob = e.parameter.thefile; 
    var doc = DocsList.createFile(fileBlob); 
    return app 
} 

然而,調試這個時候,我不斷遇到錯誤「類型錯誤:無法讀取屬性‘參數’從不確定的(66行)。」爲什麼是這樣?

應用程序腳本作爲表單應用程序腳本啓動,功能是添加文件上傳按鈕和「成功上傳」屏幕。

非常感謝。

+1

你怎麼試圖運行這個腳本? –

回答

0

這是最近在s.o上報道的。 當您從調試器調用它時,您沒有傳遞任何(未定義)作爲函數參數。 你需要現場測試它。