लीगेसी फ़ॉर्म फ़ील्ड्स
लीगेसी फ़ॉर्म फ़ील्ड्स
Aspose.Words FOSS for .NET Word के लेगेसी (content-control से पहले) फ़ॉर्म फ़ील्ड्स — टेक्स्ट इनपुट, चेकबॉक्स, और ड्रॉप-डाउन फ़ील्ड्स — को FormField क्लास और Aspose.Words.Fields में इसकी तीन विशिष्ट फ़ील्ड सबक्लासेज़ के माध्यम से पढ़ता और बदलता है।
फ़ॉर्म फ़ील्ड मान पढ़ना
Document.Range.FormFields (एक FormFieldCollection) रेंज में प्रत्येक लेगेसी फ़ॉर्म फ़ील्ड तक सीधे पहुँच प्रदान करता है, बिना नोड ट्री को मैन्युअली चलाए। प्रत्येक FormField Name (फ़ील्ड को संदर्भित करने के लिए उपयोग किया जाने वाला बुकमार्क-शैली पहचानकर्ता), Type (एक FieldType मान जो यह पहचानता है कि यह किस प्रकार का फ़ॉर्म फ़ील्ड है), Result (वर्तमान मान), Enabled, और HelpText/OwnHelp तथा StatusText/OwnStatus के माध्यम से सहायता/स्थिति टेक्स्ट को उजागर करता है। SetTextInputValue(newValue) टेक्स्ट इनपुट फ़ील्ड के लिए नया मान सीधे सेट करता है। FormFieldCollection में बुकमार्क नाम (उदा. formFields["BookmarkName"]) द्वारा इंडेक्स करके विशिष्ट फ़ील्ड प्राप्त किया जा सकता है, और Remove(formField) / RemoveAt(index) संग्रह से फ़ील्ड को हटाते हैं।
टेक्स्ट, चेकबॉक्स, और ड्रॉप-डाउन फ़ील्ड प्रकार
तीन लेगेसी फ़ॉर्म फ़ील्ड प्रकारों के प्रत्येक का एक समर्पित क्लास है: FieldFormText ( FORMTEXT फ़ील्ड, जो FieldType.FieldFormTextInput के अनुरूप है) फ्री-टेक्स्ट इनपुट के लिए, FieldFormCheckBox ( FORMCHECKBOX फ़ील्ड) बूलियन टॉगल के लिए, और FieldFormDropDown ( FORMDROPDOWN फ़ील्ड) चयन सूची के लिए। अंतर्निहित FormField नोड पर, TextInputType (एक TextFormFieldType मान — Regular, Number, Date, CurrentDate, CurrentTime, या Calculated) और TextInputFormat नियंत्रित करते हैं कि टेक्स्ट फ़ील्ड का मान कैसे व्याख्यायित और स्वरूपित किया जाता है; MaxLength इसके इनपुट की लंबाई को सीमित करता है; TextInputDefault इसका डिफ़ॉल्ट मान प्रदान करता है। Checked और Default चेकबॉक्स फ़ील्ड्स पर लागू होते हैं, जहाँ IsCheckBoxExactSize/CheckBoxSize उसके रेंडर आकार को नियंत्रित करते हैं। ड्रॉप-डाउन फ़ील्ड्स अपना विकल्प सूची DropDownItems में रखती हैं, जो DropDownItemCollection है और Add, Insert, Remove, Contains, और IndexOf को समर्थन देती है, साथ ही वर्तमान चयनित आइटम के लिए DropDownSelectedIndex।
टिप्स और सर्वोत्तम प्रथाएँ
- हाथ से
Document.Range.Fieldsको प्रकार के आधार पर फ़िल्टर करने के बजायDocument.Range.FormFieldsका उपयोग करें — यह लेगेसी फ़ॉर्म फ़ील्ड्स के लिए सीधे, टाइप्ड एंट्री पॉइंट है। - जब फ़ॉर्म फ़ील्ड का मान उपयोगकर्ता द्वारा उसे छोड़ते ही निर्भर फ़ील्ड की पुनः गणना को ट्रिगर करना चाहिए, तो
CalculateOnExitसेट करें। FormField.EntryMacro/ExitMacroमूल दस्तावेज़ में कॉन्फ़िगर किए गए VBA मैक्रो नामों का संदर्भ देते हैं — उन्हें पढ़ना किसी भी मैक्रो कोड को निष्पादित नहीं करता।- टेक्स्ट फ़ील्ड के
Resultको संख्या या तिथि के रूप में पार्स करने से पहलेTextInputTypeकी जाँच करें —Regularफ़ील्ड्स पर कोई फ़ॉर्मेट प्रतिबंध नहीं लगाया जाता।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
बुकमार्क नाम द्वारा FormFieldCollection को इंडेक्स करने पर null लौटाता है | फॉर्म फ़ील्ड का बुकमार्क नाम मेल नहीं खाता, या फ़ील्ड खोजी गई सीमा में मौजूद नहीं है | गणना करते समय FormField.Name के माध्यम से सटीक बुकमार्क नाम की पुष्टि करें |
Checked सेट करने के बाद चेकबॉक्स की स्थिति प्रतिबिंबित नहीं होती | संशोधन के बाद दस्तावेज़ सहेजा नहीं गया | संशोधन के बाद दस्तावेज़ को सहेजें; Checked अगली पहुँच पर पढ़ा जाता है |
ड्रॉप-डाउन DropDownSelectedIndex सीमा से बाहर है | सूचकांक DropDownItems में किसी आइटम से मेल नहीं खाता | सेट करने से पहले DropDownItems.Count के विरुद्ध इंडेक्स को मान्य करें |
| टेक्स्ट फ़ील्ड मान लागू नहीं हुआ | SetTextInputValue के बजाय सीधे प्रॉपर्टी असाइनमेंट का उपयोग किया गया | FormField पर SetTextInputValue(newValue) को कॉल करें |
FAQ
FormField और FieldFormText/FieldFormCheckBox/FieldFormDropDown में क्या अंतर है?
FormField कोई भी लेगेसी फ़ॉर्म फ़ील्ड का प्रतिनिधित्व करने वाला सामान्य नोड है, जिसे Document.Range.FormFields के माध्यम से पहुँचा जाता है। FieldFormText, FieldFormCheckBox, और FieldFormDropDown प्रत्येक फ़ील्ड प्रकार के लिए फ़ील्ड-विशिष्ट क्लासेज़ हैं (जो Field से व्युत्पन्न हैं) जब सामान्य Field संग्रह के माध्यम से काम किया जाता है।
मैं किसी दस्तावेज़ में सभी फ़ॉर्म फ़ील्ड मान कैसे प्राप्त करूँ?
प्रत्येक FormField पर Document.Range.FormFields को गिनें और Name/Result पढ़ें।
क्या मैं ड्रॉप-डाउन फ़ॉर्म फ़ील्ड में विकल्प जोड़ सकता हूँ?
हां — FormField.DropDownItems एक DropDownItemCollection है जिसमें Add(value), Insert(index, value), और Remove(name) शामिल हैं।
क्या ये आधुनिक कंटेंट कंट्रोल्स के समान हैं?
नहीं। लेगेसी फ़ॉर्म फ़ील्ड्स (FORMTEXT, FORMCHECKBOX, FORMDROPDOWN) Word के स्ट्रक्चरड डॉक्यूमेंट टैग (कंटेंट कंट्रोल) मॉडल से पहले के हैं; दोनों एक ही दस्तावेज़ में मौजूद हो सकते हैं।
API Reference सारांश
| क्लास / मेथड | विवरण |
|---|---|
Document.Range.FormFields | रेंज में सभी लेगेसी फ़ॉर्म फ़ील्ड्स तक सीधा एक्सेस |
FormField | सामान्य लेगेसी फ़ॉर्म फ़ील्ड नोड: name, type, result, enabled state |
FormFieldCollection | FormField वस्तुओं का संग्रह; बुकमार्क नाम द्वारा सूचकांक, Remove() |
FieldFormText | FORMTEXT फ़ील्ड क्लास |
FieldFormCheckBox | FORMCHECKBOX फ़ील्ड क्लास |
FieldFormDropDown | FORMDROPDOWN फ़ील्ड क्लास |
TextFormFieldType | पाठ फ़ील्ड इनपुट फ़ॉर्मेट के लिए Enum (Regular, Number, Date, आदि) |
DropDownItemCollection | ड्रॉप-डाउन फ़ील्ड के विकल्पों की संपादन योग्य सूची |