1

我正在为 ODK 构建一个 xlsx 表单。我有一个下拉列表和一个文本输入字段。当我从 ListA 中选择一个值时,我想在文本输入字段中填写一个特定的代码。

例如,如果我从下拉列表中选择“valueA”,则值“codeA”将出现在文本输入中。目前,我有一个 Excel 表,其中包含 ListA 中的值和相应代码(大约 300)之间的所有匹配项。ListA 中的所有值都是唯一的。

我正在尝试使用 Xls 的“计算”字段进行一些测试,但到目前为止还没有成功。有人用 Xls 做过类似的事情吗?可能吗?

4

1 回答 1

0

calculate您可以在下拉列表和文本输入之间包含一个字段,您可以在其中从文件中提取值,并使用其中选择的值作为键csv之间的对应关系。您可以在此处找到有关计算工作原理的说明。valueAcodeAValueApulldata(...)

这里有一个简单的例子。在调查选项卡中:

|type           |name   |label                  |calculation|

|select_one keys|value_a|Value A                |           |
|calculate      |code_a |                       |pulldata('data', 'value_column', 'key_column', ${value_a}|
|note           |note   |Code A value: ${code_a}|           |

在此处输入图像描述

在选项选项卡中:

|list_name|name    |label   |

|keys     |valueA_1|valueA_1|
|keys     |valueA_2|valueA_2|
(.......)

在此处输入图像描述

该文件data.csv应如下所示:

|value_column|key_column|

|valueA_1    |codeA_1   |
|valueA_2    |codeA_2   |
(.......)

在此处输入图像描述

最后,我建议考虑在 中应用级联选择布局value_a,因为从 300 个值中选择一个可能具有挑战性。另一种选择是按字母顺序或不同顺序对这些选项进行排序,这样当有人填写您的表格时,她就会知道如何轻松找到合适的选项。

希望这可以帮助!

于 2020-06-25T00:07:25.857 回答