2013-06-20 21 views
1

我已经尝试了以下代码的多次迭代,但成功次数有限。记录器似乎正确地显示命令,但表单看起来不像EXECUTE命令。执行后,表单只会生成一个未定义的复选框。如何使用For循环创建Google窗体复选框选项

鉴于我必须多次重复使用稍微不同的问题措辞重复此复选框问题,我试图减少我的代码足迹,并希望变得更高效。

这里是代码段的我的影片失败:

var storerangestart = 9901; 
    var storerangeend = 9999; 
    page402_cbitem1.setTitle('What stores do you have allocated for this project?'); 
    var page402array = 'page402_cbitem1.setChoices([\n'; 
    for (var i = storerangestart; i < storerangeend; i++) { 
     var storerangecurrent = i + ""; 
     page402array += 'page402_cbitem1.createChoice(' + storerangecurrent + '),\n'; 
    } 
    page402array += 'page402_cbitem1.createChoice(' + storerangeend + ')\n]);'; 
    Logger.log(page402array); 
    page402array(); 

回答

2

的记录器没有显示你的命令,它显示你的字符串。您的代码创建了一个字符串,其中包含的文字看起来像代码,但无法直接在Google Apps脚本中执行该字符串的内容。

你有一个好主意 - 你只是试图处理错误的对象类型。

看看CheckboxItem.setChoices()的定义,你会发现它需要一系列选择作为参数。示例代码可能会抛出你,因为它创造了.setChoices()方法调用里面的item元素:

item.setChoices([ 
    item.createChoice('Cats'), 
    item.createChoice('Dogs') 
]); 

你可以实现同样的结果是这样的:

var choices = [];       // create a new array of choices 
choices.push(item.createChoice('Cats')); // Add 'Cats' 
choices.push(item.createChoice('Dogs')); // Add 'Dogs' 
item.setChoices(choices);     // set the array of choices 

,设置了机会为循环你在想什么。而不是建立一个包含一串代码,你需要调用各种对象的方法,首先建立的选择数组,然后该数组分配作为选择的表单项目:

var storerangestart = 9901; 
var storerangeend = 9999; 
page402_cbitem1.setTitle('What stores do you have allocated for this project?'); 
var page402array = []; 
for (var i = storerangestart; i < storerangeend; i++) { 
    var storerangecurrent = i + ""; 
    page402array.push(page402_cbitem1.createChoice(storerangecurrent)); 
} 
Logger.log(page402array); 
page402_cbitem1.setChoices(page402array); 
+0

非常感谢你。这让我疯狂!我不是一个交易程序员,但可以混淆许多像'编程'这样的任务......这个只是让我陷入困境,因为我第一次使用.setChoices方法创建复选框数组。 setChoice,它一直保持错误状态,所以我认为文档可能已过时,这是一个不推荐的方法。 – user2494974

+0

很高兴帮助!当你对所有代码有足够的熟悉时,代码就变得容易了,但是很容易混淆来自PHP的想法,网页上的javascript,服务器端编程以及Apps Script API。我认为通过思考过程的工作可能有助于解决类似的未来问题。 – Mogsdad

+0

@Mogsdad,我刚花了几个小时试图弄清楚如何构建一系列的选择。 'var choices = []; //创建一个新的选择阵列 choices.push(item.createChoice('Cats')); //添加'猫' choices.push(item.createChoice('Dogs')); //添加'Dogs' item.setChoices(choices); //设置选择阵列'保存一天。谢谢你,并且赞不绝口。 –

相关问题