On this page
code
唯讀
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' |
這允許您根據特定條件或使用者操作在可編輯和唯讀模式之間切換。
使用唯讀字段的最佳實踐
- 清晰度:透過視覺提示或標籤清楚地指示哪些字段是唯讀的。
- 一致性:在整個問卷調查中一致使用唯讀字段。
- 驗證:即使唯讀字段無法編輯,也要將其納入資料驗證流程。
- 效能:謹慎處理唯讀字段中的複雜計算,因為這些可能會影響表單載入時間。
- 無障礙存取:確保唯讀字段已正確標記以供螢幕閱讀器使用。
進階技術
計算唯讀字段
使用唯讀字段顯示基於其他回應的計算:
| 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 行動應用程式遵守唯讀設定,包括條件唯讀邏輯。
- 離線模式完全支援唯讀功能,包括動態和計算的唯讀字段。
已知限制
- 某些複雜的動態唯讀條件可能會對低端裝置上的效能產生輕微影響。
- 唯讀字段可能無法防止匯出的資料文件中的所有形式的資料操作,因此對於關鍵資料建議使用伺服器端驗證。
唯讀字段疑難排解
- 字段意外可編輯:檢查
read_only欄或條件邏輯中的語法錯誤。 - 計算值未更新:驗證計算邏輯並確保所有參考字段的名稱正確。
- 效能問題:最佳化複雜的計算或考慮顯示唯讀資料的替代方法。
此頁面有幫助嗎?