अधिक

ARCPAD फॉर्म कोड अंक में विशिष्ट आईडी बनाएं

ARCPAD फॉर्म कोड अंक में विशिष्ट आईडी बनाएं


मैं एक विशिष्ट आईडी बनाने की कोशिश कर रहा हूं जो एक कस्टम फॉर्म पर पॉप अप करता है जिसे मैं आर्कपैड में बना रहा हूं। इसकी आवश्यकता है ताकि फील्ड कार्यकर्ता इस संख्या को कुछ पूरक पेपर टेबल पर शामिल कर सकें जो वे अपने साथ ले जाते हैं।

मैंने निम्नलिखित कोड को एक साथ चिपकाया है जो ज्यादातर काम करता है; हालांकि, अगर कोई रिपीट एट्रीब्यूट्स टॉगल का उपयोग करता है तो "अद्वितीय" आईडी भी दोहराई जाती है।

क्या यह देखने के लिए परीक्षण करने का कोई तरीका है कि क्या दोहराना विशेषता टॉगल चालू या बंद है?

मैं इसे ऑब्जेक्ट मॉडल में कहीं भी नहीं ढूंढ सकता।

यहाँ मेरा कोड है। यह फ़ॉर्म के लिए ONLOAD ईवेंट पर चलता है (दस्तावेज़ीकरण की कमी के लिए खेद है)। यह मूल रूप से केवल सुविधाओं के माध्यम से लूप करता है और आईडी फ़ील्ड में सबसे अधिक संख्या पाता है और 1 जोड़ता है। यदि फॉर्म पर आईडी बॉक्स पहले से ही भरा हुआ है तो इसे निष्पादित नहीं किया जाता है।

विकल्प स्पष्ट मंद varUniqueID उप UniqueID2 मंद objRS, HighValue, CurrentValue, objEFPageOneControls, objEditForm सेट objRS = Application.map.layers("OFF_ROAD").records set objEditForm = application.map.layers("OFF_ROAD").forms("EDITFORM" ) सेट करें objEFPageOneControls = objEditForm.Pages("Page1").Controls if (objEFPageOneControls("IDBOX").Value = "") फिर if (objRS.RecordCount > 0) फिर objRS.Movefirst HighValue = objRS.Fields("ID" .Value objRS.MoveNext जबकि objRS.EOF CurrentValue = objRS.Fields("ID").Value अगर HighValue < CurrentValue तो HighValue = CurrentValue End अगर objRS.MoveNext Wend HighValue = HighValue + 1 End अगर objEFPageOneControls("IDBOX") .Value = HighValue अंत यदि अंत उप

यदि आप आर्कपैड के साथ आने वाले ट्री रजिस्टर टेम्प्लेट की जांच करते हैं, तो आर्कपैड स्टूडियो में .js फ़ाइल खोलें और वहां आप देखेंगे कि मैंने इसे खत्म करने के लिए कुछ चेक लिखे हैं।

आपको यह देखने के लिए जांचना होगा कि क्या यह किसी मौजूदा सुविधा को संपादित करने के विपरीत एक नया रिकॉर्ड है। यह भी जांचें कि आप पृष्ठों को बदलकर संपादन के माध्यम से आईडी को बीच में नहीं बदलते हैं - क्योंकि मैंने इसे ऑनसेटएक्टिव ईवेंट पृष्ठ पर रखा है।

एन.बी. यह एक कठिन और तेज़ नियम नहीं है, लेकिन मैं फॉर्म ऑनलोड ईवेंट से जो कुछ भी कर सकता हूं उसे निकालने का प्रयास करता हूं, केवल इसलिए कि वास्तविक पृष्ठ लोड होने तक तत्व मेरे लिए उपलब्ध नहीं हो सकते हैं।

इसलिए जब मैं एक सुविधा बनाता हूं तो मैं SetUID() चलाता हूं और यह मेरे लिए कुछ मूल्यों को संग्रहीत करता है जब कोई नई सुविधा बनाई जाती है।

मुझे बताएं कि आप किस प्रकार से आगे बढ़ेंगे।

चीयर्स,

गैरेथ