2017-09-30 8 views
0

シナリオ フォーム1:顧客情報を追加し、mySQLデータベースに保存します。onOpenトリガコンボボックスの更新

フォーム2:請求書を追加し、フォーム1から追加した顧客を選択します。コンボボックスを使用して顧客を選択する必要があります。

同じもののための提案またはコードスニペットが必要です。

注:Googleフォームを使用しているため、フォームビューでコンボボックスを更新できないようです。

ありがとうございました。

答えて

0

Googleフォームリストをスプレッドシートのシート名で埋め込む例を示します。顧客名を含むデータの列を簡単にループして同じことを実行できます。

コード:

function editingASimpleForm() 
{ 
    var ss=SpreadsheetApp.openById('1bNqs3YeALOsIzMqnTg6SfK-7mHNcPZQ0ZuC81ee3LRU') 
    var allShts=ss.getSheets(); 
    var excShts=['Form Responses 4']; 
    var incShts=[]; 
    var form=FormApp.getActiveForm(); 
    var s=Utilities.formatString('Form name is <strong>%s</strong> and id is <strong>%s</strong>', form.getTitle(),form.getId()); 
    var allItems=form.getItems(); 
    /* 
    for(var i=0;i<allItems.length;i++) 
    { 
    s+=Utilities.formatString('<br />Title: <strong>%s</strong> Type <strong>%s</strong> Id: <strong>%s</strong> Index: <strong>%s</strong>', allItems[i].getTitle(),allItems[i].getType(),allItems[i].getId(),allItems[i].getIndex()) 
    } 
    */ 
    for(var i=0;i<allItems.length;i++) 
    { 
    var itm=allItems[i]; 
    if(itm.getId()=='405225448')//I got this id from the above commented out code which outputs title,type,id and index 
    { 
     var li0=itm; 
    } 
    } 
    for(var i=0;i<allShts.length;i++)//this loop gets the non excluded sheet names into an array 
    { 
    if(excShts.indexOf(allShts[i].getName())==-1) 
    { 
     incShts.push(allShts[i].getName()); 
    } 
    } 
    li0.asListItem().setChoiceValues(incShts);//This populates the list 
    /* 
    var ui=HtmlService.createHtmlOutput(s).setWidth(1200).setHeight(450); 
    FormApp.getUi().showModalDialog(ui, 'Form Editing'); 
    */ 
} 

私はこのことができます願っています。私が質問を誤解した場合、私に知らせてください。

関連する問題