2

我想用早期记录中该字段中插入的内容填充下拉菜单(不是带有管道的表单)。

具体来说,我有一个名为"Journal"的字段。如果有人之前记录了“代谢组学”杂志,我希望它出现在下拉菜单中(或类似的东西)。

如果期刊是新的,我会添加一个可以添加新期刊的文本字段。

感谢您的帮助

4

1 回答 1

1

如果我理解正确,您希望人们从下拉列表中进行选择,如果不存在正确的选项,您希望允许他们自己输入。这可以通过只有管理员才能配置的动态 SQL 查询字段来完成,因此您需要本地管理员为您执行此操作。

本质上,如果动态 SQL 字段不包含所需的选项,您将有一个动态 SQL 字段(我正在调用它[journal_query])来查找已输入的不同值,以及一个文本框字段 ( ) 来输入新值[journal_other].

SQL 字段有这个[journal_query]查询:

SELECT DISTINCT value FROM redcap_data WHERE project_id = [project-id] AND field_name = 'journal_other' UNION SELECT 'Other';

它显示所有现有值并在列表中添加“其他”选项。

并且该[journal_other]字段具有分支逻辑,仅在[journal_query] = 'Other'.

复杂之处在于数据现在仅存在于两个字段中的一个中,因此可以使用第三个字段将两者结合起来,[journal_other]如果值为 则[journal_query] = 'Other'选择 的值,否则选择 的值[journal_query]。如果您使用的是最新版本并且可以访问@CALCTEXT操作标签,那么您将创建一个文本输入字段(我会调用此字段,[journal]因为它始终包含记录的正确值),并应用此操作标签:

@CALCTEXT(if([journal_query]='Other',[journal_other],[journal_query]))

然后[journal](根据需要重命名字段)的值包含受访者选择或手动输入的日记帐类型,您可以将其用于管道或报告。

于 2021-01-18T04:53:15.017 回答