rtSurvey 中的唯讀字段允許您顯示受訪者無法編輯的資訊。此功能對於顯示預先填寫的資料、計算結果或在整個問卷調查過程中應保持不變的資訊特別有用。

基本用法

要使字段成為唯讀,請在 XLSForm 中使用 read_only 欄:

  | type    | name | label                 | read_only | default |
|---------|------|----------------------|-----------|---------|
| integer | num  | Patient number is:    | yes       | 5       |
  

在此範例中,患者編號設定為 5,受訪者無法更改。

將唯讀與預設值結合

唯讀字段通常與預設值結合使用,以顯示預先確定或計算的資訊:

  | type    | name     | label               | read_only | default        |
|---------|----------|---------------------|-----------|----------------|
| text    | username | Logged in user:     | yes       | ${current_user}|
| date    | today    | Today's date:       | yes       | today()        |
  

在這裡,使用者名稱和當前日期被顯示但無法編輯。

rtSurvey 特定功能

條件唯讀

rtSurvey 使用條件邏輯擴展唯讀功能:

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

在這些範例中:

  • 如果使用者角色是「viewer」,則「age」字段僅為唯讀。
  • 如果狀態為「closed」,則「comments」字段變為唯讀。

動態唯讀狀態

rtSurvey 允許您動態更改唯讀狀態:

  | type      | name     | label    | read_only              |
|-----------|----------|----------| ----------------------|
| text      | address  | 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| Date of last visit:    | yes       | ${pulldata('visits', 'date', 'id', ${patient_id})} |
  

資料管理考量

  • 唯讀字段包含在資料匯出中,通常帶有指示其唯讀狀態的標記。
  • 更新現有記錄時,唯讀字段保留其原始值,除非透過後端明確覆寫。

行動應用程式行為

  • rtSurvey 行動應用程式遵守唯讀設定,包括條件唯讀邏輯。
  • 離線模式完全支援唯讀功能,包括動態和計算的唯讀字段。

已知限制

  • 某些複雜的動態唯讀條件可能會對低端裝置上的效能產生輕微影響。
  • 唯讀字段可能無法防止匯出的資料文件中的所有形式的資料操作,因此對於關鍵資料建議使用伺服器端驗證。

唯讀字段疑難排解

  1. 字段意外可編輯:檢查 read_only 欄或條件邏輯中的語法錯誤。
  2. 計算值未更新:驗證計算邏輯並確保所有參考字段的名稱正確。
  3. 效能問題:最佳化複雜的計算或考慮顯示唯讀資料的替代方法。
此頁面有幫助嗎?