rtSurvey 中的只读字段允许您显示受访者无法编辑的信息。此功能在显示预填数据、计算结果或整个调查过程中应保持不变的信息时特别有用。

基本用法

要使字段只读,请在 XLSForm 中使用 read_only 列:

  | type    | name | label                 | read_only | default |
|---------|------|----------------------|-----------|---------|
| integer | num  | 患者编号为:    | yes       | 5       |
  

在此示例中,患者编号设置为 5,受访者无法更改。

将只读与默认值结合

只读字段通常与默认值结合使用,以显示预定或计算的信息:

  | type    | name     | label               | read_only | default        |
|---------|----------|---------------------|-----------|----------------|
| text    | username | 已登录用户:     | yes       | ${current_user}|
| date    | today    | 今天的日期:       | yes       | today()        |
  

这里,用户名和当前日期显示但无法编辑。

rtSurvey 特有功能

条件只读

rtSurvey 通过条件逻辑扩展了只读功能:

  | type    | name     | label           | read_only                |
|---------|----------|-----------------|--------------------------|
| integer | age      | 年龄:            | ${role} = 'viewer'       |
| text    | comments | 评论:       | selected(${status}, 'closed') |
  

在这些示例中:

  • 只有当用户角色为"viewer"时,“年龄"字段才是只读的。
  • 当状态为"closed"时,“评论"字段变为只读。

动态只读状态

rtSurvey 允许动态更改只读状态:

  | type      | name     | label    | read_only              |
|-----------|----------|----------| ----------------------|
| text      | address  | 地址: | ${edit_mode} = 'false' |
  

这允许您根据某些条件或用户操作在可编辑和只读模式之间切换。

使用只读字段的最佳实践

  1. 清晰性:通过视觉提示或标签清楚地标明哪些字段是只读的。
  2. 一致性:在整个调查中一致地使用只读字段。
  3. 验证:即使只读字段无法编辑,也要将其纳入数据验证流程。
  4. 性能:对只读字段中的复杂计算要谨慎,因为它们可能影响表单加载时间。
  5. 可访问性:确保只读字段对屏幕阅读器进行了适当标记。

高级技术

计算只读字段

使用只读字段显示基于其他回答的计算:

  | type      | name     | label           | read_only | calculation            |
|-----------|----------|-----------------|-----------|------------------------|
| calculate | bmi      | BMI:           | yes       | ${weight} / (${height} * ${height}) |
  

显示历史数据

只读字段可以显示来自之前调查或外部来源的数据:

  | type    | name           | label                  | read_only | default                    |
|---------|----------------|------------------------|-----------|----------------------------|
| text    | last_visit_date| 上次就诊日期:    | yes       | ${pulldata('visits', 'date', 'id', ${patient_id})} |
  

数据管理注意事项

  • 只读字段包含在数据导出中,通常带有表示其只读状态的标志。
  • 更新现有记录时,只读字段保留其原始值,除非通过后端明确覆盖。

移动应用行为

  • rtSurvey 移动应用遵守只读设置,包括条件只读逻辑。
  • 离线模式完全支持只读功能,包括动态和计算只读字段。

已知限制

  • 某些复杂的动态只读条件可能对低端设备产生轻微性能影响。
  • 只读字段可能无法阻止所有形式的导出数据文件中的数据操纵,因此建议对关键数据进行服务器端验证。

只读字段故障排除

  1. 字段意外可编辑:检查 read_only 列或条件逻辑中的语法错误。
  2. 计算值不更新:验证计算逻辑并确保所有引用字段的名称正确。
  3. 性能问题:优化复杂计算或考虑显示只读数据的替代方法。
此页面有帮助吗?