रिकॉर्डऑफ और टाइप फ़ंक्शन
इस पर लागू होता है: कैनवास ऐप्स
उपयोगकर्ता परिभाषित फ़ंक्शन और अप्रकारित मानों के साथ उपयोग के लिए उपयोगकर्ता परिभाषित प्रकार का निर्माण करता है।
महत्त्वपूर्ण
- ये कार्य प्रायोगिक हैं।
- प्रायोगिक सुविधाएं उत्पादन में उपयोग के लिए नहीं होतीं और हो सकता है कि वे पूर्ण न हों। ये सुविधाएँ आधिकारिक रिलीज़ से पहले उपलब्ध होती हैं ताकि आप शीघ्र पहुँच प्राप्त कर सकें और प्रतिक्रिया दे सकें। अधिक जानकारी: कैनवास ऐप में प्रयोगात्मक, पूर्वावलोकन और रिटायर्ड फ़ीचर्स समझें
- यह व्यवहार केवल तभी उपलब्ध होता है जब उपयोगकर्ता-परिभाषित प्रकारसेटिंग्स > आगामी सुविधाएँ > प्रायोगिक में प्रायोगिक सुविधा चालू होती है (यह डिफ़ॉल्ट रूप से बंद होती है).
- आपकी प्रतिक्रिया बहुमूल्य है. Power Apps प्रयोगात्मक सुविधाओं के समुदाय मंच में हमें बताएँ कि आप क्या सोचते हैं।
विवरण
Power Fx में प्रत्येक फ़ंक्शन उन मानों के प्रकारों को परिभाषित करता है जिन्हें पैरामीटर के रूप में पास किया जा सकता है और आउटपुट के प्रकार को भी परिभाषित करता है। जब आप कोई सूत्र लिखते हैं तो उसके प्रकारों की जाँच की जाती है और यदि वे अपेक्षित से मेल नहीं खाते तो त्रुटियाँ दिखाई जाती हैं। संपादक द्वारा प्रकारों का उपयोग फ़ंक्शन में क्या पास किया जाए, इसके लिए अच्छे विकल्प सुझाने और त्रुटियों का यथाशीघ्र पता लगाने के लिए भी किया जाता है।
अपने स्वयं के उपयोगकर्ता परिभाषित फ़ंक्शन बनाते समय, आपको इनपुट और आउटपुट प्रकार निर्दिष्ट करने की आवश्यकता होती है। दशमलव या पाठ जैसे सरल प्रकारों के लिए यह आसान है क्योंकि ये मूल प्रकार पूर्वनिर्धारित हैं। अधिक जटिल प्रकारों, जैसे रिकॉर्ड या तालिकाओं के लिए, प्रकार बनाने के लिए Type फ़ंक्शन का उपयोग करें.
Type फ़ंक्शन अप्रकारित ऑब्जेक्ट्स के साथ काम करना भी आसान बनाता है। ParseJSON, IsType, और AsType फ़ंक्शनों के साथ, एक अप्रकारित ऑब्जेक्ट को एक टाइपित ऑब्जेक्ट में परिवर्तित किया जा सकता है, जिसमें उपयोग के बिंदु पर स्तंभों को अलग-अलग टाइप करने की आवश्यकता नहीं होती है।
Type फ़ंक्शन TypeSpecification को अपने एकमात्र तर्क के रूप में लेता है। सबसे सरल प्रकार विनिर्देशन किसी मौजूदा प्रकार को संदर्भित करना है, उदाहरण के लिए Type( Text )
. किसी रिकॉर्ड या तालिका के लिए प्रकार विनिर्देशन, शाब्दिक मानों के साथ रिकॉर्ड या तालिका को परिभाषित करने के समान है, जहां मानों को प्रकार नामों से प्रतिस्थापित किया जाता है। उदाहरण के लिए, {Name: "Jane"}
को Type( {Name: Text} )
के साथ टाइप किया जाएगा। तालिकाओं को वर्गाकार कोष्ठकों से निर्दिष्ट किया जाता है, Table फ़ंक्शन से नहीं, और केवल एक रिकॉर्ड प्रदान किया जा सकता है। उदाहरण के लिए, [1,2,3]
को Type( [Number] )
के साथ टाइप किया जाएगा।
तालिका प्रकार से रिकॉर्ड प्रकार निकालने के लिए RecordOf फ़ंक्शन का उपयोग करें। उदाहरण के लिए, Type( RecordOf( Library ) )
लाइब्रेरी से किसी एक पुस्तक का प्रकार लौटाएगा। रिकॉर्ड प्रकार से तालिका प्रकार बनाने के लिए, रिकॉर्ड प्रकार को वर्गाकार कोष्ठकों में लपेटें। उदाहरण के लिए, Type( [ Book ] )
लाइब्रेरी को परिभाषित करता है।
RecordOf का उपयोग केवल Type फ़ंक्शन के भीतर ही किया जा सकता है।
Type फ़ंक्शन और इसके द्वारा लौटाया गया प्रकार मान Power Fx में केवल विशिष्ट स्थानों पर ही उपयोग किया जा सकता है, जैसे कि ParseJSON का दूसरा तर्क। कैनवास ऐप्स में, Type फ़ंक्शन का उपयोग App.Formulas में नामित सूत्र के साथ किया जा सकता है.
सिंटैक्स
रिकॉर्डऑफ़( टेबल टाइप )
- TableType – आवश्यक. तालिका का प्रकार नाम. यह किसी प्रकार के विनिर्देश को स्वीकार नहीं करता है, इसे किसी तालिका के लिए पहले से परिभाषित प्रकार का नाम होना चाहिए।
प्रकार( प्रकारविनिर्देश )
- प्रकार विनिर्देश – आवश्यक. एक प्रकार का विनिर्देशन.
उदाहरण
प्रकार फ़ंक्शन
App.Formulas में निम्नलिखित परिभाषाओं पर विचार करें:
Library =
[ { Title: "A Study in Scarlet", Author: "Sir Arthur Conan Doyle", Published: 1887 },
{ Title: "And Then There Were None", Author: "Agatha Christie", Published: 1939 },
{ Title: "The Marvelous Land of Oz", Author: "L. Frank Baum", Published: 1904 } ];
// Type definition for a single book
BookType := Type( { Title: Text, Author: Text, Published: Number } );
// Type definition for a table of books
LibraryType := Type( [ BookType ] );
ध्यान दें कि कैसे वास्तविक शीर्षक टेक्स्ट "A Study in Scarlet"
को प्रकार विनिर्देश में प्रकार नाम Text
से प्रतिस्थापित किया गया है, जो किसी भी टेक्स्ट मान के लिए एक प्लेसहोल्डर है।
BookType
प्रकार का एक पैरामीटर या वेरिएबल Library
में से किसी एक पुस्तक को धारण कर सकता है, जबकि LibraryType
संपूर्ण तालिका को धारण कर सकता है। इन प्रकारों के साथ, हम इन उपयोगकर्ता परिभाषित कार्यों को परिभाषित कर सकते हैं:
SortedBooks( books: LibraryType ): LibraryType =
SortByColumns( Library, Author, SortOrder.Ascending, Title, SortOrder.Ascending );
PublishedInLeapYear( book: BookType ): Boolean =
Mod( book.Published, 4 ) = 0 And
(Mod( book.Published, 100 ) <> 0 Or Mod( book.Published, 400 ) = 0);
आप किसी पुस्तक वाले JSON स्ट्रिंग को पार्स करने के लिए BookType
का भी उपयोग कर सकते हैं:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
BookType
को ParseJSON के दूसरे तर्क के रूप में उपयोग करने से एक टाइप किया गया रिकॉर्ड प्राप्त होता है, जिसका उपयोग किसी अन्य Power Fx रिकॉर्ड की तरह किया जा सकता है।
रिकॉर्डऑफ फ़ंक्शन
Type फ़ंक्शन उदाहरण में, आप BookType
से शुरू करते हैं और इसके चारों ओर एक तालिका लपेटकर LibraryType
निर्माण करते हैं। हम इन प्रकारों को उलट कर परिभाषित कर सकते थे:
// Type definition for a table of books
RecordOfLibraryType := Type( [ { Title: Text, Author: Text, Published: Number } ] );
// Type definition for a single book
RecordOfBookType := Type( RecordOf( RecordOfLibraryType ) );