onopen触发combobox更新



方案表格1:添加客户信息并保存在mysql db。

表格2:添加发票并从表格1中添加的客户选择。需要使用ComboBox选择客户。

需要相同的建议或代码段。

注意:基于使用Google表格,看来我无法在表单视图中更新ComboBox。

预先感谢。

以下是在电子表格中使用床单名称的下拉式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');
  */
}

我希望这会有所帮助。如果我误解了问题,请告诉我。

最新更新