Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google应用程序脚本表单-添加项目失败。您已达到最大项目数_Google Apps Script_Google Forms - Fatal编程技术网

Google apps script Google应用程序脚本表单-添加项目失败。您已达到最大项目数

Google apps script Google应用程序脚本表单-添加项目失败。您已达到最大项目数,google-apps-script,google-forms,Google Apps Script,Google Forms,我正在做大量的电话交易。表格要求制造商(苹果)、型号(iPhone 6)、容量(32GB)、运营商(Verizon)和状态(良好)。为了向客户提供即时报价,此表单本质上需要成为一棵自上而下的树,因此仅苹果一家就有数百种可能的最终报价页面组合(报价不时通过脚本更新)。具体项目限额是多少?我似乎找不到任何关于谷歌表单项目限制的文档。对于我的用例,有没有办法绕过这个限制或在它的范围内工作 下面是我所有的代码,不包括苹果以外的制造商的数据。一些if语句用于处理其他制造商的数据结构与下面所示不同的情况(

我正在做大量的电话交易。表格要求制造商(苹果)、型号(iPhone 6)、容量(32GB)、运营商(Verizon)和状态(良好)。为了向客户提供即时报价,此表单本质上需要成为一棵自上而下的树,因此仅苹果一家就有数百种可能的最终报价页面组合(报价不时通过脚本更新)。具体项目限额是多少?我似乎找不到任何关于谷歌表单项目限制的文档。对于我的用例,有没有办法绕过这个限制或在它的范围内工作

下面是我所有的代码,不包括苹果以外的制造商的数据。一些if语句用于处理其他制造商的数据结构与下面所示不同的情况(即没有载波规范或GB规范的手机,或两者都没有)


应用程序脚本会一直工作,直到它向您抛出错误消息为止,因此您可以通过打开表单并查看您创建的项目数,轻松找到限制

如果表单链接到存储结果的电子表格,则每个电子表格最多有400000个单元格

当涉及到案例的解决方法时-将表单附加到电子表格,打开电子表格,看看表单响应是什么样的:

由于将多个嵌套数组值指定给项目标题和选项的方式不同,因此您可以无限重复地填充同一问题的工作表

看一看这张照片。 通过创建独立问题而不是嵌套问题,您可以显著减少项目数量:

function populateForm() {
    var form = FormApp.openById('Id of your form');    
    form.setDestination(FormApp.DestinationType.SPREADSHEET, spreadsheet.getId());
    var item = form.addCheckboxItem();

    form.addMultipleChoiceItem()
        .setTitle('What is your phone model?')
        .setChoiceValues([('iPhone 6', 'iPhone 5', ...])

    form.addMultipleChoiceItem()
       .setTitle('What is your phone capacity?')
       .setChoiceValues([('32GB', '64GB', ...])

  ...   
}

为什么不制作一个多选网格?@如果我可以限制每个网格只能有一个响应,那么Master Multichoice行就很好了,但它只允许限制每行一个响应。此外,它不允许“基于答案转到部分”记住,新的限制是500万:我创建嵌套问题的原因是从谷歌表单为客户提供即时报价。对于独立问题,我无法做到这一点,因为表单无法分析以前问题的回答,并将客户引导到具有正确报价的特定页面。我知道这会创建一个复杂的表单结构,但我认为这对最终用户来说是最简单的。我想我可以使用你推荐的表单结构,让脚本通过电子邮件将报价发送给他们。也许我需要考虑更高级的表单生成器,如果你把表单链接到一个电子表格,你可以绑定到这个电子表格,一个应用程序脚本,该算法将根据用户输入计算报价,然后将其发送给用户。您可以将其合并到onEdit()触发器函数中,以便每次使用每个新提交表单的信息更新工作表时,代码都将直接运行。
function populateForm() {
    var form = FormApp.openById('Id of your form');    
    form.setDestination(FormApp.DestinationType.SPREADSHEET, spreadsheet.getId());
    var item = form.addCheckboxItem();

    form.addMultipleChoiceItem()
        .setTitle('What is your phone model?')
        .setChoiceValues([('iPhone 6', 'iPhone 5', ...])

    form.addMultipleChoiceItem()
       .setTitle('What is your phone capacity?')
       .setChoiceValues([('32GB', '64GB', ...])

  ...   
}