问题描述
我想用在早期记录中插入该字段的内容填充下拉菜单(不是带有管道的表单)。
具体来说,我有一个名为 “Journal” 的字段。如果有人之前记录了期刊“代谢组学”,我希望它出现在下拉菜单(或类似的东西)中。
如果期刊是新期刊,我会添加一个文本字段,可以在其中添加新期刊。
感谢您的帮助
解决方法
如果我理解正确,您希望人们从下拉列表中进行选择,如果不存在正确的选项,您希望允许他们自己输入。这可以通过动态 SQL 查询字段来完成,该字段只有管理员才能配置,因此您需要本地管理员为您执行此操作。
本质上,您将有一个动态 SQL 字段(我将其称为 [journal_query]
)来查找已输入的不同值,以及一个文本框字段 ([journal_other]
) 以输入新的值,如果动态 SQL 字段不包含所需的选项。
[journal_query]
SQL 字段具有以下查询:
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]
的值(根据需要重命名字段)包含受访者选择或手动输入的期刊类型,您可以将其用于管道或报告。