मासिक अभिलेख: दिसम्बर 2007

मेरा बेटा Gamespot काट दिया

तो, आज सुबह, मेरा बेटा देख एक उम्र तेरह हेलो प्रतिबंधित करने के लिए निर्धारित किया है 3 पर वीडियो Gamespot. मैं बर्फ खोदते के बाहर हूँ, तो मैं वहाँ नहीं हूँ में मदद के लिए या में बाधा. आवश्यकता आविष्कार की और सब कि माँ है … वह है एक यूरेका! पल. वह जानता है कि भले ही Gamespot उसे अपने में प्रवेश करने के लिए चाहता है असली जन्म दिनांक, वह वास्तव में दर्ज कर सकते हैं किसी भी जन्म तारीख वह चाहता है. एक बार जब वह एहसास हुआ कि, वह खुद को बहुत पुराने वीडियो देखने के लिए बनाया.

I’m not quite sure how I feel about this 🙂

रविवार अजीब बात है: “यह मुद्रण कचरा है”

पर मेरी पहली नौकरी में कॉलेज से बाहर 1991, मैं भाग्यशाली के लिए एक विनिर्माण कंपनी के साथ काम करने के लिए गया था 13 स्थानों, इसके कॉर्पोरेट मुख्यालय न्यू जर्सी में नहीं सहित. मैं शामिल हो गए जब बस कंपनी एक नया ERP प्रणाली बाहर चल रहा था. हम एक छोटे आईटी विभाग के बारे में दस लोग पूरी तरह से थे, जिनमें से दो यात्रा नहीं. IBM सिस्टम की जगह शामिल परियोजना का हिस्सा 36 HP हार्डवेयर और HPUX के साथ बक्से. हर कोई ग्रीन ट्यूब सिस्टम तक पहुँचने के लिए इस्तेमाल किया.

परियोजना के साथ रोल है और मैं नीचे के साथ एक नई सह कार्यकर्ता बाल्टीमोर को भेजा रहा हूँ, जेफ. यूनिक्स बॉक्स को सत्ता हमारा काम था, सुनिश्चित करें कि हे/एस चल रहा था, ERP प्रणाली स्थापित करें, ईआरपी कॉन्फ़िगर करें, ईआरपी पर लोगों को ट्रेन और मौके पर लोगों के लिए कस्टम काम करते. (यह एक सपना काम था, विशेष रूप से कॉलेज के बाहर सीधे आ रही). इससे पहले कि हम वास्तव में जमीन से मिल सकता है, हम सभी हरी ट्यूबों के लिए खोल देना करने के लिए की जरूरत, उन्हें डेस्क पर रख दिया और उन्हें तार. और सबसे अच्छा हिस्सा था कि हम RJ11 कनेक्टर्स पर खुद रखा था.

कुछ कारण है कि मैं कभी नहीं समझा और वास्तव में कभी नहीं सोचा था के समय के बारे में पूछने के लिए, हम कुछ ठेका कंपनी के साथ आते हैं और संयंत्र भर में केबल चलाने था पड़ा, लेकिन क्या हम उन्हें कनेक्टर्स पर डाल नहीं है. तो, वहाँ एक पैच बॉक्स"था" के साथ "कम्प्यूटर कक्ष में लेबल नहीं किये गये केबलों के दर्जनों" और ये इमारत में विभिन्न स्थानों के लिए इमारत के आसपास शनिवार snaked.

हम इसे माध्यम से हमारे रास्ते एक सप्ताहांत के पाठ्यक्रम पर काम किया, प्रत्येक तार परीक्षण, एक संबंधक पर डाल (यह सुनिश्चित करने के सीधे बनाम था. को पार कर गया), हरी ट्यूबों और प्रिंटर्स पर बिट सेटिंग यह सुनिश्चित करने के सही थे, तारों के लेबलिंग, सुनिश्चित करें कि कि "गेटी" प्रत्येक पोर्ट और शायद एक हजार अन्य चीजों कि मैं तब से दबा दिया है के लिए सही ढंग से चल रहा था. यह सब एक साथ बहुत अच्छी तरह से आया था.

लेकिन, वहाँ एक महत्वपूर्ण केबल है कि हम समझ नहीं सका था. बाल्टीमोर में संयंत्र न्यू जर्सी में एक भांडागार स्थान के साथ एक रिश्ता था. कुछ आदेश बाल्टीमोर में रखा उस स्थान से बाहर भेज दिया. वहाँ दो तारों कि हम HPUX बॉक्स करने के लिए कनेक्ट करने के लिए था थे: एक हरे रंग की ट्यूब और एक प्रिंटर. हरे रंग की ट्यूब आसान था, लेकिन प्रिंटर एक तीन सप्ताह दुःस्वप्न में बदल गया.

यदि आप यह नहीं जानते, या इसे दबा दिया है, इस तरह से हरी ट्यूबों और प्रिंटर्स के साथ लेनदेन, वहाँ विभिन्न विकल्प है कि आप विभिन्न पिनों की स्थापना से निपटने कर रहे हैं. 8-बिट, 7-बिट, समता (भी/विषम/कोई नहीं), शायद दूसरों. यदि आप उन सेटिंग्स में से एक गलत हो जाओ, अभी भी सामान से पता चलता है कि ट्यूब या प्रिंटर, लेकिन यह कुल अस्पष्ट हो जाएगा, या यह अस्पष्ट पहचानने योग्य सामान का एक बहुत कुछ के साथ बीच में होगी. बेशक, इन पिनों को देखने और एक छोटा सा फ्लैट-एज स्क्रू ड्राइवर का उपयोग कर सेट किया जा करने के लिए है करने के लिए कड़ी मेहनत कर रहे हैं. और वे कभी नहीं कर रहे हैं मानक.

हम न्यू जर्सी आदमी के साथ कई त्वरित कॉल के पहले तक सेट करें (एक सफ़ेद कंप्यूटर hater जो शायद हमें इस दिन के लिए शाप). हम हरे रंग की सुंदर जल्दी से काम कर ट्यूब मिल गया, लेकिन हम काम करने के लिए प्रिंटर नहीं मिल सका. यह "मुद्रण कचरा" रखा. हम एक नए RJ11 संबंधक पैदा होगा, को पार कर और सीधे के बीच स्विचन. हम पोर्ट को हटाना होगा और Unix में पुन: बनते. हम उसे हमें करने के लिए पिन विन्यास समझाने की, तो प्रिंटर पर होने दुरूह कार्य के माध्यम से चला गया, कभी नहीं सच में यकीन है कि अगर वह इसे सही ढंग से कर रहा था.

यह समय के बारे में रह जाना है, बाल्टीमोर में सब कुछ गुनगुना है, लेकिन हम काम करने के लिए न्यू जर्सी में शापित प्रिंटर प्राप्त नहीं कर सकता! हम वापस NJ अप करने के लिए व्यक्ति में प्रिंटर पर काम करने के लिए ड्राइविंग के लिए छोड़कर सभी संभावनाओं को समाप्त किया. सब है कि ड्राइविंग से बचने के लिए, हम अंत में हमें फ़ैक्स करने के लिए उससे पूछो क्या वह हो रही है जब यह "कचरा", उम्मीद है शायद कि वहाँ होगा कुछ सुराग उस कचरा है कि हमें बताना होगा कि हम क्या कर रहे हैं में गलत.

जब हम फैक्स मिला, हम तुरंत पता था कि क्या गलत था. देखें, एक "एल. पी. जारी करने के लिए कि क्या हम एक प्रिंटर ठीक से कॉन्फ़िगर किया गया था परीक्षण के हमारे विधि था" इस तरह आदेश:

lp/आदि/passwd

मूल रूप से, हम बाहर unix पासवर्ड फ़ाइल मुद्रित. यह हमेशा मौजूद है और बॉक्स से बाहर है, हमेशा सिर्फ एक पृष्ठ. मानक Unix पासवर्ड फ़ाइल आप कुछ इस तरह दिखता है:

स्मिथ:*:100:100:8A-74(कार्यालय):/होम/स्मिथ:/usr/बिन/श अतिथि:*:200:0::/होम/अतिथि:/usr/बिन/श  

हम बाहर पासवर्ड फ़ाइल और फिर से कई हफ्तों के लिए मुद्रित किया गया था और इसे सही ढंग से मुद्रित करना था. हालांकि, अंत उपयोगकर्ता के लिए, यह "मुद्रण कचरा" था.

</अंत>

अभी तक एक और नेटवर्क क्रेडेंशियल्स Multi-Challenge समस्या और समाधान

मेरे मुवक्किल ने हाल ही में से एक जादू डिवाइस स्थापित जुनिपर कि जाहिरा तौर पर अपने पुराने सिस्को नेटवर्क लोड balancer की जगह (NLB). एक ही समय के बारे में एटी, हम स्थापित एक एक वर्कफ़्लो समस्या को संबोधित करने के लिए हॉटफिक्स.

एक या दो दिन बाद में, हम एक समस्या देखा जब हम साझा सेवा प्रदाता तक पहुँचा (एसएसपी). हम यह करने के लिए मिल सकता है, लेकिन हम एक उपयोगकर्ता ID और पासवर्ड प्रत्येक पृष्ठ पर कई बार के लिए चुनौती दी हो जाएगा. यह मुख्य पोर्टल app के साथ ऐसा नहीं हुआ, और न ही केंद्रीय व्यवस्थापन. स्वाभाविक रूप से, हम दोनों में से जो पता नहीं था (जुनिपर या हॉटफिक्स) मुद्दा होगा, हालांकि मैं दृढ़ता से शक है हॉटफिक्स, हम था स्थापित नहीं यह बहुत सही पता लगाना.

यह पता चला कि जुनिपर संपीड़न सेटिंग का किसी तरह पड़ा. में से एक robed आंकड़े से अधिक में नेटवर्क समूह उस सेटिंग को बंद कर दिया. कि हमारी समस्या का हल.

यह पहली बार है कि सम्पीडन एक SharePoint समस्या का मूल कारण मेरे लिए किया गया है नहीं है. IIS संपीड़न प्रतिकूल IE के लिए एक 3 पार्टी उपकरण यह डॉट नेट फैक्टरी पर अच्छे लोगों से प्रभावित 6 ब्राउज़र्स (IE 7 ब्राउज़रों कठिनाई के बिना काम किया).

तो, "संपीड़न जोड़ें" खतरों की सूची में.

</अंत>

करने के लिए क्रेडिट: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Technorati टैग: ,

ब्लॉगिंग प्लेटफार्म बदलने के बारे में सोच

मैं मेरी "ब्लॉगिंग कैरियर बंद शुरू कर दिया" का उपयोग कर Microsoft के प्लेटफ़ॉर्म और यह मेरे लिए अच्छा किया गया है. यह पोस्ट करने के लिए आसान है, वहाँ रहे हैं अच्छा विकल्प और अपने "अंतरिक्ष" के प्रबंधन के लिए विजेट, सभ्य वेब संग्रहण और आगे.

हालांकि, मैं सिर्फ सच में लगभग कोई योजना के साथ MS समाधान में गिर गई. मुझे मैं कहाँ हूँ और मैं कहाँ जा रहा हूँ का मूल्यांकन करने के लिए उस अकेले कॉल्स, एक ब्लॉगिंग प्लेटफार्म के संदर्भ में. वहाँ भी कर रहे हैं दो महत्वपूर्ण सीमाओं कि मुझे सही अब विज़-à-विज़ Windows Live रिक्तियाँ परेशान.

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

दूसरा, वहाँ नहीं लगता है "धातु के सिक्के करने के लिए किसी भी तंत्र" एक विंडोज लाइव स्पेस के ब्लॉग. वास्तव में, आदेश में एमएस के विज्ञापनों से छुटकारा पाने के लिए (जिसमें से मुझे कोई लाभ नहीं निकाले जाते), मैं वास्तव में माइक्रोसॉफ्ट भुगतान करने की आवश्यकता. (कम से कम, कि कैसे मैं यह समझ आता है; मैं यह करने के लिए निश्चित जवाब और सवाल है जैसे कि यह प्राप्त करने में असमर्थ रहे हैं).

अब है कि मैं मिल गया है एक की स्थापना की तर्ज और ब्लॉगिंग की आदतों का सेट, मैं अन्य विकल्पों का मूल्यांकन करना चाहते हैं. मैं कुछ शोध किया है और वहाँ विकल्पों की एक बहुत कुछ कर रहे हैं, लेकिन मैं क्या अन्य लोगों के रूप में उत्सुक हूँ, विशेष रूप से SharePoint समुदाय में दूसरों (ब्लॉगर्स या पाठकों के रूप में), का उपयोग करने के लिए की तरह.

यदि आप इस विषय हितों और तुम एक राय या अपने अनुभव को साझा करने के लिए इच्छुक हैं, कृपया एक टिप्पणी छोड़ या मुझे सीधे ईमेल.

धन्यवाद!

<अंत />

Technorati टैग:

SharePoint डिजाइनर ईमेल भेजता है ???? एक ईमेल में

कभी-कभी मंच उपयोगकर्ताओं से पूछो: SharePoint Designer क्यों डाला करता है ???? मेरे ईमेल में एक फ़ील्ड मान के बजाय?

एक कारण यह होता है, क्योंकि जो करने के लिए आप संदर्भित चर नल है.

ऐसा हो सकता है क्योंकि "वर्तमान आइटम से किसी फ़ील्ड को संदर्भित करने के लिए आप प्रयास कर रहे हैं" लेकिन उपयोगकर्ता कभी उस प्रपत्र फ़ील्ड में कोई मान दर्ज किया.

<अंत />

तुलना करें / SharePoint डिज़ाइनर वर्कफ़्लो में रिक्त दिनांक के लिए परीक्षण

परिदृश्य: एक SharePoint डिज़ाइनर वर्कफ़्लो में, आप की जरूरत है अगर कोई दिनांक फ़ील्ड रिक्त है यह निर्धारित करने के लिए.

समस्या: एसपीडी एक तारीख के अलावा और कुछ के लिए तारीखों की तुलना के लिए एक सीधी विधि उपलब्ध नहीं कराता है. आप इस तरह की कोई शर्त नहीं बना सकता: "यदि [DateField] रिक्त बराबर होती है".

समाधान: तारीख करने के लिए एक स्ट्रिंग कनवर्ट करें. यदि दिनांक रिक्त है यह निर्धारित करने के लिए स्ट्रिंग तुलना का उपयोग करें.

स्क्रीन शॉट्स:

निम्न स्क्रीन शॉट्स बताएंगे कि कैसे यह करने के लिए. इस परिदृश्य में, किसी आइटम पर एक फ़ील्ड, "पर्यावरण परमिट:पहली बार अनुस्मारक दिनांक परमिट", प्रस्तुत है और वर्कफ़्लो प्रतिक्रिया में आग.

छवि

छवि

नोट्स:

जब मैं यह करने की कोशिश की, मैं ख़ुशी से कि यह काम करता है जानने के लिए चकित हो गया था. मैं कि SharePoint डिज़ाइनर स्ट्रिंग असाइनमेंट नामंज़ूर हो सकता है चिंतित था (चर:StringReminderDateDate) लेकिन यह यह अनुमति किया.

मैं भी गया था कि यह अनुमति देने का संबंध, मान नल और रनटाइम पर WF अप या तो झटका हो सकता है या शायद वैश्विक तापमान बढ़ा 1/2 एक डिग्री, लेकिन उन चिंताओं निराधार थे.

</अंत>

पट्टी काई का विस्तार करने के लिए बहुत उच्च अभी भी है

आज, मैं एक ग्राहक के साथ काम कर रहा था और सामग्री क्वेरी वेब पार्ट को संशोधित करें और किसी सामग्री प्रकार से जानकारी के अतिरिक्त बिट्स को प्रदर्शित करने के लिए कैसे का वर्णन.

"प्रथम।, आप अपने डेटा स्रोतों से कनेक्ट करने के लिए CQWP को कॉन्फ़िगर करें, तब आप इसे निर्यात करने के लिए अपने कार्य केंद्र, संशोधित करें <CommonViewFields>, अपलोड करें, मूल निकालने और अब यह है ' primed’ उन अन्य स्तंभों को प्रदर्शित करने के लिए. अगले, SharePoint डिज़ाइनर ऊपर खुला, साइट संग्रह रूट करने के लिए नेविगेट करें और ItemStyle.xsl का पता लगाएँ. टेम्पलेट्स में से एक एक उपयोगी प्रारंभिक बिंदु के रूप में प्रतिलिपि बनाएँ. वापस जाने के लिए और संशोधित करने के लिए CQWP के इस नए टेम्पलेट का उपयोग करें. अंत में, अपने नए फ़ील्ड् स रेंडर करने के लिए टेम्पलेट को संशोधित करें! (यह इसलिए कि अन्य उपयोगकर्ताओं में वापस परिणाम देख सकते हैं की जाँच करने के लिए मत भूलना)."

यह सब काफी मेरे लिए स्पष्ट है (और हम SharePoint डेवलपर प्रकारों में से ज्यादातर) पर क्या हो रहा है और कैसे यह काफी अच्छा है, वाक़ई, डेटा रिट्रीवल पहलुओं CQWP की इतनी अच्छी तरह से-डेटा प्रस्तुति पहलुओं से अलग कर रहे हैं. लेकिन, इसे समझाने के लिए इतना आसान नहीं है, यह है?

<अंत />

सामग्री क्वेरी वेब पार्ट परिणाम प्रदर्शित ग्रिड में / तालिका

अवलोकन और उद्देश्य

बॉक्स से बाहर, काई’ सामग्री क्वेरी वेब भाग (CQWP) इसका परिणाम एक सूची स्वरूप में प्रदर्शित करता है, खोज परिणामों के समान. यह भी एक ग्रिड स्वरूप में परिणाम प्रदर्शित करने के लिए संभव है (अर्थात. HTML तालिका स्वरूप). ग्रिड स्वरूप में कुछ हालात बेहतर होते हैं. मैं इस लेख में उस प्रभाव को प्राप्त करने के लिए कैसे का वर्णन.

व्यापार परिदृश्य

मैं एक उद्यम-व्यापी काई rollout पर एक ग्राहक के साथ काम किया है. हम उनके वर्गीकरण बनाया गया है ऐसी है कि परियोजनाओं के पदानुक्रम में प्रथम श्रेणी के नागरिक हैं और उनके अपने शीर्ष स्तर साइट है. परियोजना प्रबंधकों परियोजना सारांश जानकारी का एक सिंगलटन सूची को बनाए रखने, ऐसे शीर्षक, बजट, पूरा होने के उम्मीद की तारीख, शेष बजट और अन्य सारांश प्रकार के फ़ील्ड् स. द्वारा "सिंगलटन" मेरा मतलब है एक कस्टम SharePoint सूची केवल एक आइटम होते हैं की गारंटी. Simplistically, यह इस तरह दिखता है:

छवि

तकनीकी दृष्टिकोण बहुत ही के रूप में वर्णित है यहाँ (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP रेंडर करने के लिए HTML ब्राउज़र के लिए फेंकना करने के लिए कोई XSL ट्रांस्फ़ॉर्म का उपयोग करता है.

मैं हमेशा XSL में गोताखोरी से पहले क्योंकि XSL एक दुःस्वप्न है नतीजा कल्पना. यहाँ है मेरे वांछित परिणाम:

छवि

HTML इस तरह उस परिणाम उत्पन्न करता है:

<html>
 <शरीर>
 <केंद्र>
 <तालिका बॉर्डर= 1>

<!-- लेबल->
 <टी. आर. bgcolorब्लू =>
 <td><फ़ॉन्ट रंग/ / u003d व्हाइट><>प्रोजेक्ट का नाम</></फ़ॉन्ट></td>
 <td संरेखित करेंसही =><फ़ॉन्ट रंग/ / u003d व्हाइट><>पूर्ण दिनांक</></फ़ॉन्ट></td>
 <td संरेखित करेंसही =><फ़ॉन्ट रंग/ / u003d व्हाइट><>बजट</></फ़ॉन्ट></td>
 <td संरेखित करेंसही =><फ़ॉन्ट रंग/ / u003d व्हाइट><>वास्तविक व्यय</></फ़ॉन्ट></td>
 <td><फ़ॉन्ट रंग/ / u003d व्हाइट><>समग्र स्थिति</></फ़ॉन्ट></td>
 </टी. आर.>

<टी. आर.>
 <td>कम्प्यूटर कक्ष पुनः वायर.</td>
 <td संरेखित करेंसही =>02/01/08</td>
 <td संरेखित करेंसही =>22,500.00</td>
 <td संरेखित करेंसही =>19,000.00</td>
 <td>प्रगति में</td>
 </टी. आर.>

<टी. आर.>
 <td>प्रावधान के लिए नवीनीकरण SQL सर्वर</td>
 <td संरेखित करेंसही =>04/01/08</td>
 <td संरेखित करेंसही =>7,500.00</td>
 <td संरेखित करेंसही =>0.00</td>
 <td>की योजना बनाई</td>
 </टी. आर.>

</तालिका>
 </केंद्र>
 </शरीर>
</html>

दृष्टिकोण

ग्रिड बनाने के लिए इन चरणों का पालन करें:

  1. ग्रिड के घटकों की पहचान (पंक्तियाँ/स्तंभ).
  2. परिभाषित करें और आवश्यक साइट स्तंभ बनाना.
  3. उप साइटें परियोजनाओं और सिंगलटन सूचियों के लिए बनाएँ.
  4. CQWP एक वेब पेज को जोड़ने और यह आपकी सूचियों के लिए खोज करने के लिए कॉन्फ़िगर करें.
  5. CQWP XML ऊपर अतिरिक्त स्तंभों को इकट्ठा करने के लिए संशोधित करें.
  6. XSL एक मेज उत्पन्न करने के लिए संशोधित करें.

मैं नंबर छह पर ध्यान केंद्रित करने जा रहा हूँ. सीधे आगे और कुछ है कि किसी भी CQWP उपयोगकर्ता पहले से ही किया है चार के माध्यम से एक नंबर रहे हैं. संख्या पाँच MSDN से इस संपूर्ण स्क्रीन-शॉट लादेन लेख सहित अन्य लोगों द्वारा अच्छी तरह से प्रलेखित किया गया है यहाँ (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) और हीदर सुलैमान ब्लॉग यहाँ (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

नट और बोल्ट

आरंभ और MSDN प्रलेखन और हीदर सुलैमान के लेख के अनुसार पांच के माध्यम से एक कदम को लागू.

इस बिंदु पर, आप अपने CQWP पेज को जोड़ दिया है और आपके पास अपने <CommonViewFields> के रूप में आवश्यक कॉन्फ़िगर किया गया.

सामान्य चरणों का पालन, मैं इन मध्यवर्ती परिणाम प्राप्त:

1. कोई सामग्री प्रकार बनाना, एक templatized कस्टम सूची सामग्री प्रकार और दो साइटों के लिए. यहाँ सामग्री प्रकार है:

छवि

यहाँ साइट संरचना है:

छवि

2. मेरी परियोजना सबसाइट्स और सिंगलटन परियोजना सारांश सूचियाँ बनाने के बाद CQWP में जोड़ें:

छवि

3. मैं चाहता हूँ के माध्यम से सभी अतिरिक्त जानकारी जोड़ें <CommonViewFields>:

        <संपत्ति नाम="CommonViewFields" प्रकार="स्ट्रिंग">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</संपत्ति>

ध्यान दें कि सभी गुण फ़ील्ड एक लाइन या इसे पर रखने के लिए मैंने काम नहीं होता (CQWP मुझे बताना होगा कि क्वेरी कोई आइटम नहीं लौटा).

4. इस बिंदु पर, हम MSDN आलेख से परे ले जाने के लिए तैयार कर रहे हैं और पर पर पलटें हीदर सुलैमान के लेख के लिए. उसके चरणों के निकट चरण शुरू करने का पालन करें #5 एक अनुकूलित बनाने के लिए / ItemStyle.xsl का unghosted संस्करण. मैं हीथ की सलाह का पालन करें, ऊपर चरण के माध्यम से 11 और इन मध्यवर्ती परिणाम प्राप्त:

4.1: मेरी XSL टेम्पलेट निम्नानुसार ही नाम दें:

<xsl:टेम्पलेट का नाम = "ग्रिड" मैच "पंक्ति =[@Style 'ग्रिड' =]" मोड = "itemstyle">

मैं भी थोड़ा उसे सुझाव दिया संशोधित करें <xsl:के लिए प्रत्येक …> जोड़ने के द्वारा एक <br /> टैग एक क्लीनर लिस्टिंग प्रदान करने के लिए:

    <xsl:के लिए प्रत्येक का चयन करें="@*">
      पी:<xsl:मान का का चयन करें="नाम()" /><br/>
    </xsl:के लिए प्रत्येक>

4.2: मैं वेब पार्ट को संशोधित करें, उपस्थिति के लिए जाओ और मेरी "ग्रिड का चयन करें" शैली:

छवि

परिवर्तन लागू करें और यहाँ का परिणाम है:

छवि

हम से ऊपर क्षेत्रों हम चाहते हैं देख सकते हैं (प्रोजेक्ट का नाम, व्यय, स्थिति, आदि) हमारे लिए जब हम HTML का उत्सर्जन का उपयोग करने के लिए उपलब्ध हैं. इतना ही नहीं, लेकिन हम देखते हैं जिसके द्वारा हम XSL में उन स्तंभों का संदर्भ लेना चाहिए के नाम. उदाहरण के लिए, हम के रूप में "Project_x005F_x0020_Name" परियोजना की स्थिति का संदर्भ.

इस बिंदु पर, हम इन दिग्गजों के कंधों से और हीदर ब्लॉग से विदा, मैं मेरा अपना छोटा सा जोड़ें.

ContentQueryMain.xsl

नोट: जब परिवर्तन करने के साथ दोनों ContentQueryMain.xsl ही ItemStyle.xsl, आप की जरूरत है इससे पहले कि आप अपने परिवर्तनों के प्रभाव देखने में उन फ़ाइलों को वापस की जाँच करने के लिए.

ग्रिड बनाने के प्रयोजनों के लिए, काई हम देखते हैं एक CQWP से परिणाम का उत्पादन करने के लिए दो अलग अलग XSL फ़ाइलों का उपयोग करता है. आउटपुट का पिछला सा उत्पन्न करने के लिए, हम ItemStyle.xsl संशोधन. काई वास्तव में एक और XSL फ़ाइल का उपयोग करता है, अपने HTML जनरेट करने के लिए ItemStyle.xsl के साथ संयोजन के रूप में करने के लिए ContentQueryMain.xsl. जैसा कि इसके नाम का तात्पर्य, "मुख्य ContentQueryMain.xsl है" XSL कि अनुवाद के समग्र प्रवाह नियंत्रण. यह सब पाया आइटम के माध्यम से iterates और उन्हें टेम्पलेट् स के लिए एक से गुजरता है ItemStyle.xsl में. हम खुले उत्पन्न करने के लिए ItemStyle.xsl को संशोधित करेंगे <तालिका> टैग डेटा और समापन की पहली पंक्ति के प्रकाश का उत्सर्जन से पहले <तालिका> अंतिम पंक्ति उत्सर्जक के बाद टैग. यह पूरा करने के लिए, हमारे "ग्रिड के लिए दो मानकों से गुजारें को संशोधित किया गया है ContentQueryMain.xsl" ItemStyle.xsl में टेम्पलेट, "अंतिम पंक्ति" और "वर्तमान पंक्ति". ItemStyle.xsl ये सशर्त आवश्यक टैग फेंकना करने के लिए उपयोग करता है.

हीथ सोलोमन तकनीक का उपयोग करना, हम ContentQueryMain.xsl का पता लगाएँ. यह ItemStyle.xsl के रूप में एक ही स्थान में स्थित है. इस स्क्रीन शॉट में मदद चाहिए:

छवि

हम निम्नलिखित बदलाव करने की जरूरत:

  • कोई xsl टेम्पलेट संशोधित करें, "CallItemTemplate" कि वास्तव में ItemStyle.xsl में हमारे ग्रिड टेम्पलेट invokes. इतना है कि यह डेटा यह सशर्त उत्पन्न खोलने और बंद करने के लिए की जरूरत है होगा हम ग्रिड टेम्पलेट को दो पैरामीटर पारित करेगा <तालिका> टैग.
  • ContentQueryMain.xsl कि "CallItemTemplate कॉल का एक अन्य सा संशोधित करें" यह एक "LastRow पारित करने के लिए" तो उस LastRow हमारे ग्रिड टेम्पलेट के लिए पारित किया जा सकता पैरामीटर.

"OuterTemplate.CallItemTemplate नामक टेम्पलेट का पता लगाएँ" स्ट्रिंग द्वारा की पहचान की:

  <xsl:टेम्पलेट नाम="OuterTemplate.CallItemTemplate">

पूरे टेम्पलेट निम्नानुसार बदलें:

  <xsl:टेम्पलेट नाम="OuterTemplate.CallItemTemplate">
    <xsl:परम नाम="CurPosition" />

    <!--
      "LastRow में जोड़ें" पैरामीटर.
      आइटम शैली दर्रा में "ग्रिड" है जब हम केवल यह उपयोग करें.
    -->
    <xsl:परम नाम="LastRow" />

    <xsl:चुनें>
      <xsl:कब टेस्ट="@Style 'NewsRollUpItem' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="EditMode" का चयन करें="$cbq_iseditmode" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>
      <xsl:कब टेस्ट="@Style 'NewsBigItem' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="CurPos" का चयन करें="$CurPosition" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>
      <xsl:कब टेस्ट="@Style 'NewsCategoryItem' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="CurPos" का चयन करें="$CurPosition" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>

      <!--
              ग्रिड itemstyle.xsl टेम्पलेट के लिए पारित की वर्तमान स्थिति, और lastrow.
              ItemStyle.xsl का उपयोग करेंगे कि खुले फेंकना करने के लिए और समापन <तालिका> टैग.
      -->
      <xsl:कब टेस्ट="@Style 'ग्रिड' =">
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
          <xsl:परम के साथ नाम="CurPos" का चयन करें="$CurPosition" />
          <xsl:परम के साथ नाम="अंतिम" का चयन करें="$LastRow" />
        </xsl:लागू टेम्पलेट्स>
      </xsl:कब>

      <xsl:अन्यथा>
        <xsl:लागू टेम्पलेट्स का चयन करें="." मोड="itemstyle">
        </xsl:लागू टेम्पलेट्स>
      </xsl:अन्यथा>
    </xsl:चुनें>
  </xsl:टेम्पलेट>

टिप्पणी परिवर्तन के उद्देश्य का वर्णन.

बेशक, "OuterTemplate.CallItemTemplate" ही किसी अन्य टेम्पलेट से कहा जाता है. इस पाठ स्ट्रिंग के लिए खोज के द्वारा उस टेम्पलेट का पता लगाएँ:

<xsl:टेम्पलेट नाम="OuterTemplate.Body">

OuterTemplate.Body में दिए गए निर्देशों के माध्यम से स्क्रॉल करें और LastRow पैरामीटर निम्नानुसार डालें (तिर्छा में किसी टिप्पणी के रूप में दिखाया गया):

<xsl:कॉल-टेम्पलेट नाम="OuterTemplate.CallItemTemplate">
  <xsl:परम के साथ नाम="CurPosition" का चयन करें="$CurPosition" />
  <!-- LastRow पैरामीटर सम्मिलित करें. -->
  <xsl:परम के साथ नाम="LastRow" का चयन करें="$LastRow"/>
</xsl:कॉल-टेम्पलेट>

इस सब के बाद, हम अंत में बातें इतना है कि हमारे ItemStyle.xsl का उत्सर्जन कर सकते हैं ठीक से सेट है <तालिका> सही जगह पर टैग.

ItemStyle.Xsl

नोट: फिर से, ItemStyle.xsl में इतनी है कि आप उन परिवर्तनों के प्रभाव को देख कोई भी परिवर्तन करने के बाद की जाँच करें.

हम यहाँ दो कार्य है:

  • पूरे ग्रिड टेम्पलेट बदलें. आप प्रतिलिपि/नीचे से पेस्ट कर सकते हैं.
  • "Formatcurrency में सक्षम बनाता है टेम्पलेट परिभाषा के बाहर कुछ mumbo जंबो जोड़ें" काम करने के लिए टेम्पलेट. (आप बता सकते हैं कि मैं XSL पर एक कमजोर हैंडल है).

प्रथम, शीर्ष ItemStyle.xsl के निकट, इस पंक्ति में जोड़ें:

  <!-- कुछ mumbo जंबो कि अमेरिका को प्रदर्शित करने के लिए हमें सक्षम बनाता है. मुद्रा. -->
  <xsl:दशमलव स्वरूप नाम="स्टाफ" अंक="" />

  <xsl:टेम्पलेट नाम="डिफ़ॉल्ट" मैच="*" मोड="itemstyle">

ध्यान दें कि मैं यह सीधे पहले जोड़ा गया <xsl:टेम्पलेट का नाम = "डिफ़ॉल्ट" …> परिभाषा.

अगले, करने के लिए हमारी ग्रिड टेम्पलेट पर वापस जाना. पूरे ग्रिड टेम्पलेट नीचे दिए गए कोड के साथ बदलें. यह अच्छी तरह से टिप्पणी की है, लेकिन मुझे ईमेल या मेरे ब्लॉग पर टिप्पणियाँ छोड़ यदि आपके कोई प्रश्न हैं करने में संकोच नहीं करते.

  <xsl:टेम्पलेट नाम="ग्रिड" मैच="पंक्ति[@Style 'ग्रिड' =]" मोड="itemstyle">

    <!--
      ContentMain.xsl CurPos और आखिरी गुजरता.
      हम इन सशर्त खुले फेंकना करने के लिए उपयोग करें और समापन <तालिका> टैग.
    -->
    <xsl:परम नाम="CurPos" />
    <xsl:परम नाम="अंतिम" />

    <!-- निम्न चर से मानक ItemStyle.xsl unmodified हैं -->
    <xsl:चर नाम="SafeImageUrl">
      <xsl:कॉल-टेम्पलेट नाम="OuterTemplate.GetSafeStaticUrl">
        <xsl:परम के साथ नाम="UrlColumnName" का चयन करें="'ImageUrl'"/>
      </xsl:कॉल-टेम्पलेट>
    </xsl:चर>
    <xsl:चर नाम="SafeLinkUrl">
      <xsl:कॉल-टेम्पलेट नाम="OuterTemplate.GetSafeLink">
        <xsl:परम के साथ नाम="UrlColumnName" का चयन करें="'LinkUrl'"/>
      </xsl:कॉल-टेम्पलेट>
    </xsl:चर>
    <xsl:चर नाम="DisplayTitle">
      <xsl:कॉल-टेम्पलेट नाम="OuterTemplate.GetTitle">
        <xsl:परम के साथ नाम="शीर्षक" का चयन करें="@Title"/>
        <xsl:परम के साथ नाम="UrlColumnName" का चयन करें="'LinkUrl'"/>
      </xsl:कॉल-टेम्पलेट>
    </xsl:चर>
    <xsl:चर नाम="LinkTarget">
      <xsl:अगर टेस्ट="@OpenInNewWindow = 'सच'" >_ blank</xsl:अगर>
    </xsl:चर>

    <!--
      यहाँ हम एक चर को परिभाषित, "tableStart".  यह होता है कि हम के रूप में अच्छी तरह से तालिका में स्तंभ लेबल के उद्घाटन को परिभाषित करने के लिए उपयोग HTML.  ध्यान दें कि यदि CurPos = 1, यह भी शामिल है में एक CDATA टैग HTML.
      अन्यथा, यह खाली हो जाएगा.

      हर बार जब ItemStyle ContentQueryMain.xsl के द्वारा कहा जाता है tableStart का मान emited है.
    -->
    <xsl:चर नाम="tableStart">
      <xsl:अगर टेस्ट="$CurPos = 1">
        <![CDATA[
        <तालिका बॉर्डर = 1>
          <tr bgcolor = "ब्लू">
            <td><फ़ॉन्ट रंग "व्हाइट" =><ख>प्रोजेक्ट का नाम</ख></फ़ॉन्ट></td>
            <टीडी संरेखित करें = "सही"><फ़ॉन्ट रंग "व्हाइट" =><ख>पूर्ण दिनांक</ख></फ़ॉन्ट></td>
            <टीडी संरेखित करें = "सही"><फ़ॉन्ट रंग "व्हाइट" =><ख>बजट</ख></फ़ॉन्ट></td>
            <टीडी संरेखित करें = "सही"><फ़ॉन्ट रंग "व्हाइट" =><ख>वास्तविक व्यय</ख></फ़ॉन्ट></td>
            <td><फ़ॉन्ट रंग "व्हाइट" =><ख>समग्र स्थिति</ख></फ़ॉन्ट></td>
          </टी. आर.>
        ]]>
      </xsl:अगर>
    </xsl:चर>

    <!--
      एक और चर, tableEnd बस को परिभाषित करता है समापन टेबल टैग.

      TableStart साथ के रूप में, यह हमेशा emited है.  यही कारण है इसकी कीमत सशर्त चाहे हम अंतिम पंक्ति ContentQueryMain.xsl द्वारा पारित किया गया है पर आधारित सौंपा है.
    -->
    <xsl:चर नाम="tableEnd">
      <xsl:अगर टेस्ट="$CurPos = $Last">
        <![CDATA[ </तालिका> ]]>
      </xsl:अगर>
    </xsl:चर>

    <!--
      हमेशा tableStart की सामग्री का उत्सर्जन.  यदि यह पहली पंक्ति हमारे लिए ContentQueryMain.xsl द्वारा पारित नहीं है, तो हम जानते हैं कि इसका मान रिक्त हो जाएगा.

      आउटपुट से बचने क्योंकि अक्षम करें जब tableStart इसे खाली नहीं, यह भी शामिल है कि हम ब्राउज़र के द्वारा रेंडर किया जा करने के लिए चाहते हैं वास्तविक HTML.  यदि हम बता नहीं अक्षम करने के लिए XSL पार्सर उत्पादन से बचने, यह सामान की तरह उत्पन्न होगा"&लेफ्टिनेंट;तालिका&जी. टी.;" के बजाय"<तालिका>".
    -->
    <xsl:मान का का चयन करें="$tableStart" अक्षम करें आउटपुट बचने="हाँ"/>


    <टी. आर.>
      <!--
      पी:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <td>
        <xsl:मान का का चयन करें="@Project_x005F_x0020_Name"/>
      </td>

      <td संरेखित करें="दाईं ओर">
        <xsl:मान का का चयन करें="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </td>

      <td संरेखित करें="दाईं ओर">
        <xsl:कॉल-टेम्पलेट नाम="formatcurrency">
          <xsl:परम के साथ नाम="मान" 
का चयन करें="@Project_x005F_x0020_Budget"></xsl:परम के साथ> </xsl:कॉल-टेम्पलेट> </td> <td संरेखित करें="दाईं ओर"> <xsl:कॉल-टेम्पलेट नाम="formatcurrency"> <xsl:परम के साथ नाम="मान" का चयन करें="@Project_x005F_x0020_Expenses">
</xsl:परम के साथ> </xsl:कॉल-टेम्पलेट> </td> <td> <xsl:मान का का चयन करें="@Project_x005F_x0020_Status"/> </td> <!-- निम्न सभी टिप्पणी है बाहर बातों को स्पष्ट करने के लिए. हालांकि, इसे वापस लाने के लिए और में यह सामान एक <td> उसके प्रभाव को देखने के लिए. --> <!-- <div id = "linkitem" वर्ग = "" आइटम> <xsl:यदि परीक्षण "स्ट्रिंग लंबाई =($SafeImageUrl) != 0"> <div कक्षा "छवि-क्षेत्र-बाएँ" => <एक href = "{$SafeLinkUrl}" लक्ष्य = "{$LinkTarget}"> <आइएमजी कक्षा "छवि-निश्चित-चौड़ाई =" src = "{$SafeImageUrl}"
alt = "{@ImageUrlAltText}"/> </एक> </div> </xsl:अगर> <div वर्ग = "लिंक-आइटम"> <xsl:कॉल-टेम्पलेट
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <एक href = "{$SafeLinkUrl}"
लक्ष्य = "{$LinkTarget}" शीर्षक = "{@LinkToolTip}"> <xsl:मान का चयन करें "$DisxslyTitle" = /> </एक> <div वर्ग = "विवरण"> <xsl:select="@Description मान का" /> </div> </div> </div>
--> </टी. आर.> <!-- समापन का उत्सर्जन टेबल टैग. अगर हम अंतिम पंक्ति पर नहीं कर रहे हैं, इस रिक्त हो जाएगा. --> <xsl:मान का का चयन करें="$tableEnd" अक्षम करें आउटपुट बचने="हाँ"/> </xsl:टेम्पलेट> <xsl:टेम्पलेट नाम="formatcurrency"> <xsl:परम नाम="मान" का चयन करें="0" /> <xsl:मान का का चयन करें='संख्या स्वरूप($मान, "$DDD,DDD,DDD.डीडी", "कर्मचारियों")' /> </xsl:टेम्पलेट>

मानक WSS/काई डेटा प्रविष्टि स्क्रीन कैस्केडिंग ड्रॉप-downs का समर्थन नहीं करते (या अन्य इंट्रा-संचार से)

अद्यतन (04/2008): इस महान ब्लॉग प्रविष्टि इस समस्या के लिए एक अच्छा जावास्क्रिप्ट आधारित दृष्टिकोण से पता चलता है: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

द्वितीय अद्यतन: (04/2008): इस ब्लॉग प्रविष्टि भी आशाजनक दिखता है: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

कई बार एक हफ्ते, यदि नहीं दैनिक, एक आवश्यकता है कि सामान्य रूप से कैस्केडिंग ड्रॉप-downs के माध्यम से मुलाकात की जाएगी मंच उपयोगकर्ताओं का वर्णन. उदाहरण के लिए, मैं दो ड्रॉप-डाउन नियंत्रण है:

  • अमेरिका की सूची. राज्य अमेरिका
  • अमेरिका की सूची. शहरों.

जिम्मेदार UI प्रदाताओं के रूप में, हम इसे इस तरह संचालित करने के लिए चाहते हैं:

  • पॉल एक अमेरिकी चुनता है. ड्रॉप-डाउन से राज्य.
  • इस शहर कि करने के लिए चयनित राज्य से संबंधित केवल उन शहरों को फ़िल्टर करने के लिए ड्रॉप-डाउन का कारण बनता है.
  • पॉल इस फ़िल्टर हुई सूची में से एक शहर का चयन करता है.

इस सुविधा के लिए कोई आउट-ऑफ़-द-बॉक्स समर्थन नहीं है. वास्तव में, वहाँ कोई OOB समर्थन नहीं प्रत्यक्ष इंट्रा-फार्म संचार के किसी भी प्रकार के लिए है. इस प्रोग्राम के जरिए कहीं और प्रपत्र पर फ़ील्ड परिवर्तन की प्रतिक्रिया में फ़ील्ड्स छिपने/सक्षम/अक्षम शामिल.

करने के लिए संभव समाधान और इन का वर्णन करने के लिए इस आलेख के वास्तविक उद्देश्य के विकल्प हैं के रूप में मैं उन्हें जानता हूँ:

  1. एक कस्टम स्तंभ प्रकार का विकास. एक कस्टम-स्तंभ-डेवलपर के रूप में, आप "दुनिया पर पूर्ण नियंत्रण है" उस कस्टम स्तंभ का. तुम इस तरह एक कैस्केडिंग ड्रॉप-डाउन कार्यान्वित कर सकते हैं.
  2. वर्कफ़्लो उपयोग करने पर विचार. कुछ मामलों में, आप स्वचालित रूप से फ़ील्ड किसी अन्य फ़ील्ड के मान पर आधारित कोई मान असाइन करने के लिए चाहते हैं. इस मामले में, आप सामान्य रूप से एक परिकलित स्तंभ का उपयोग करने की कोशिश करेंगे, लेकिन कुछ टाइम्स, यह सिर्फ काम नहीं मिलेगा. SharePoint डिज़ाइनर वर्कफ़्लो कोड और दृश्य स्टूडियो में छोड़ने एक अपेक्षाकृत प्रशासन के अनुकूल विकल्प है. यदि आप इस मार्ग से जाना, द्वारा संबोधित किया इस मुद्दे के बारे में पता होना इस अनुच्छेद (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. ईवेंट हैंडलर्स: वर्कफ़्लो की तरह, यह एक तथ्य के बाद समाधान है. आपका ईवेंट हैंडलर एक .NET असेंबली है (सी #, VB.NET) नियंत्रण के लिए जो SharePoint गुजरता. आप विकसित वस्तु सूची के डेटा तक पहुँच गया है (और पूरे ऑब्जेक्ट मॉडल) और किसी भी आवश्यक परिकलन कर सकते हैं.
  4. कस्टम प्रविष्टि प्रपत्र बनाने के लिए SharePoint डिज़ाइनर का उपयोग करें. मैं इस दृष्टिकोण के साथ प्रत्यक्ष अनुभव नहीं है, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. अपने ASP.NET डेटा प्रविष्टि समारोह रोल (एक खड़े अकेले वेब पेज या वेब पार्ट के रूप में) और कि बजाय का उपयोग करें.

अगर किसी को दूसरे और/या बेहतर विकल्प जानता है, कृपया एक टिप्पणी पोस्ट और मैं इस पोस्ट के मुख्य भाग को अद्यतन हूँ.

<अंत />

Technorati टैग:

हाँ/नहीं (चेक बॉक्स) सामग्री क्वेरी वेब पार्ट में फ़िल्टरिंग

हाँ के लिए एक क्वेरी के लिए फ़िल्टर करने के लिए/कोई चेक बॉक्स "पीजी मील का पत्थर" हकदार, CQWP इस तरह कॉन्फ़िगर करें:

छवि

यह उन सवालों के स्पष्ट-एक बार तुम-पता है-यह, लेकिन hard-to-find-an-answer-to की एक और एक है: कैसे एक हाँ पर फ़िल्टर करने के लिए/सामग्री क्वेरी वेब पार्ट का उपयोग कर कोई चेक बॉक्स.

पहले खोज परिणाम मैं खोज शब्द "फ़िल्टर हाँ/नहीं सामग्री क्वेरी वेब पार्ट का उपयोग कर खोजें" बाहर फ्लैट गलत है, तो मैंने सोचा कि मैं इस वहाँ ऊपर डाल दिया और देखो अगर यह ठेठ खोज परिणामों में ग़लत परिणाम की जगह कर सकते हैं.

यह काफी आसान है: यह सच है मान = "1" और झूठी मान "1 के बराबर नहीं" (सुंदर रेट्रो, असल में).

ऊपर के उदाहरण में, मैं हाँ/नहीं"साइट स्तंभ प्रकार का बनाया (चेक बॉक्स)" नामांकित "पीजी मील का पत्थर'. मैं इसे एक डॉक्टर लायब्रेरी पर जोड़ा गया, कुछ दस्तावेज़ अपलोड किया गया, एक जोड़ी के लिए मान सेट करें और इसे परीक्षण किया.

<अंत />