【问题标题】:google script forms ListItem: how to set pageBreakItems for each choice?google script forms ListItem:如何为每个选项设置 pageBreakItems?
【发布时间】:2018-11-01 07:32:39
【问题描述】:

我有一个关于如何在 Google 表单 ListItem 中设置选项列表的问题,它不仅指定选项值,还根据所选值指定 goToPage() pageBreak 目标。

对于这个问题的长度,我很抱歉:我更愿意提供一些背景信息来说明问题。提前非常感谢您!

上下文是温室的上下文,其中必须在植物生长的不同阶段对每株植物执行不同的操作,例如播种、移栽、收获。

植物名称及其生长阶段存储在名为 plantProgress 的表格中,表格如下:

|plantNumber    |   nextAction |
| ------------- -------------  |
|salad001       |   harvest    |            
|salad002       |   transplant |
|salad003       |   sow        |

plantNumber 会在创建新的时更新(我有一个 pageBreakItem),而nextAction 值会在上一个操作完成后更新工作表中的值。

当用户打开表单时,他会看到ListItemplantNumber。每个nextAction 对应一个不同的页面(即pageBreakItem

请注意,我已经在 Google 表单 GUI 中创建了带有 ListItem 的初始页面和带有 nextAction 值的后续 pageBreakItems,因此我通过其 ID 访问 ListItem,例如

plantList = form.getItemById("999999999").asListItem()

如果添加新植物,我知道如何动态创建选择值列表:我从plantNumber 列(例如plantChoices)创建一个数组并将其传递给plantList

plantList.setChoiceValues(plantChoices)

我需要做的是也为每个选择传递目的地pageBreakItem(例如收获)。

我试图通过查看class Choice 的文档来了解如何做到这一点,但我无法弄清楚。
理想情况下,我想做这样的事情:

plantList = form.getItemById("999999999").asListItem()

plantList.setChoices([
        item.createChoice('salad001', FormApp.PageNavigationType.goToPage("harvest"))
        item.createChoice('salad002', FormApp.PageNavigationType.goToPage("transplant"))
        item.createChoice('salad003', FormApp.PageNavigationType.goToPage("sow"))
      ])

【问题讨论】:

    标签: google-apps-script google-forms


    【解决方案1】:

    我设法解决了这个问题!我只需要获取每个定义的 pageBreakItem(播种、移植、收获)的 id 并将其作为第二个参数传递给 plantList.createChoice。这是一个例子:

    plantList = form.getItemById("999999999").asListItem()
    
     sowPage = form.getItemById("111111111").asPageBreakItem();
     transplantPage = form.getItemById("222222222").asPageBreakItem();
     harvestPage = form.getItemById("333333333").asPageBreakItem();
    
    
    plantList.setChoices([
            plantList.createChoice('salad001', harvestPage),
            plantList.createChoice('salad002', transplantPage),
            plantList.createChoice('salad003', sowPage)
          ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多