Read-only
rtSurvey में Read-only fields आपको ऐसी जानकारी प्रदर्शित करने की अनुमति देते हैं जिसे उत्तरदाता द्वारा संपादित नहीं किया जा सकता। यह सुविधा विशेष रूप से pre-filled data, calculated results, या ऐसी जानकारी दिखाने के लिए उपयोगी है जो पूरे survey में स्थिर रहनी चाहिए।
Basic Usage
एक field को read-only बनाने के लिए, अपने XLSForm में read_only कॉलम का उपयोग करें:
| type | name | label | read_only | default |
|---------|------|----------------------|-----------|---------|
| integer | num | Patient number है: | yes | 5 |
इस उदाहरण में, patient number 5 पर सेट है और उत्तरदाता द्वारा बदला नहीं जा सकता।
Read-only को Default Values के साथ संयोजित करना
Read-only fields अक्सर pre-determined या calculated जानकारी प्रदर्शित करने के लिए default values के साथ मिलकर उपयोग किए जाते हैं:
| type | name | label | read_only | default |
|---------|----------|---------------------|-----------|----------------|
| text | username | Login किया हुआ user: | yes | ${current_user}|
| date | today | आज की तारीख: | yes | today() |
यहाँ, username और वर्तमान तारीख प्रदर्शित की जाती हैं लेकिन संपादित नहीं की जा सकतीं।
rtSurvey-Specific Features
Conditional Read-only
rtSurvey conditional logic के साथ read-only functionality को विस्तारित करता है:
| type | name | label | read_only |
|---------|----------|-----------------|--------------------------|
| integer | age | आयु: | ${role} = 'viewer' |
| text | comments | टिप्पणियाँ: | selected(${status}, 'closed') |
इन उदाहरणों में:
- ‘age’ field केवल तभी read-only है जब user की role ‘viewer’ हो।
- ‘comments’ field तब read-only हो जाती है जब status ‘closed’ हो।
Dynamic Read-only Status
rtSurvey आपको read-only status को dynamically बदलने की अनुमति देता है:
| type | name | label | read_only |
|-----------|----------|----------| ----------------------|
| text | address | पता: | ${edit_mode} = 'false' |
यह आपको कुछ conditions या user actions के आधार पर editable और read-only modes के बीच स्विच करने की अनुमति देता है।
Read-only Fields के उपयोग के लिए Best Practices
- स्पष्टता: visual cues या labels के माध्यम से स्पष्ट रूप से indicate करें कि कौन से fields read-only हैं।
- संगति: अपने survey में read-only fields का लगातार उपयोग करें।
- Validation: भले ही read-only fields संपादित नहीं की जा सकतीं, उन्हें अपनी data validation प्रक्रिया में शामिल करें।
- Performance: read-only fields में complex calculations के साथ सावधान रहें, क्योंकि वे form loading time को प्रभावित कर सकते हैं।
- Accessibility: सुनिश्चित करें कि read-only fields screen readers के लिए उचित रूप से चिह्नित हों।
Advanced Techniques
Calculated Read-only Fields
अन्य responses के आधार पर calculations प्रदर्शित करने के लिए read-only fields का उपयोग करें:
| type | name | label | read_only | calculation |
|-----------|----------|-----------------|-----------|------------------------|
| calculate | bmi | BMI: | yes | ${weight} / (${height} * ${height}) |
Historical Data प्रदर्शित करना
Read-only fields पिछले surveys या बाहरी स्रोतों से डेटा प्रदर्शित कर सकते हैं:
| type | name | label | read_only | default |
|---------|----------------|------------------------|-----------|----------------------------|
| text | last_visit_date| पिछली visit की तारीख: | yes | ${pulldata('visits', 'date', 'id', ${patient_id})} |
Data Management से संबंधित बातें
- Read-only fields को data exports में शामिल किया जाता है, आमतौर पर एक flag के साथ जो उनकी read-only status दर्शाता है।
- मौजूदा records को update करते समय, read-only fields अपने मूल values को तब तक बनाए रखते हैं जब तक उन्हें backend के माध्यम से स्पष्ट रूप से overwrite न किया जाए।
Mobile App का व्यवहार
- rtSurvey mobile app read-only settings का सम्मान करता है, जिसमें conditional read-only logic शामिल है।
- Offline mode read-only functionality का पूरी तरह से समर्थन करता है, जिसमें dynamic और calculated read-only fields शामिल हैं।
ज्ञात सीमाएं
- कुछ जटिल dynamic read-only conditions का low-end devices पर थोड़ा performance प्रभाव हो सकता है।
- Read-only fields exported data files में सभी प्रकार के data manipulation को नहीं रोक सकते, इसलिए critical data के लिए server-side validation की सिफारिश की जाती है।
Read-only Fields की समस्या निवारण
- Field अप्रत्याशित रूप से संपादन योग्य है:
read_onlyकॉलम या conditional logic में syntax errors की जांच करें। - Calculated Values अपडेट नहीं हो रहीं: calculation logic को verify करें और सुनिश्चित करें कि सभी referenced fields का नाम सही है।
- Performance संबंधी समस्याएं: जटिल calculations को optimize करें या read-only data प्रदर्शित करने के लिए वैकल्पिक approaches पर विचार करें।