के माध्यम से साझा करें


RecordOfऔर कार्य Type

इस पर लागू होता है: कैनवास ऐप्स

उपयोगकर्ता परिभाषित फ़ंक्शन और अप्रकारित मानों के साथ उपयोग के लिए उपयोगकर्ता परिभाषित प्रकार का निर्माण करता है।

महत्त्वपूर्ण

  • ये कार्य प्रायोगिक हैं।
  • प्रायोगिक सुविधाएं उत्पादन में उपयोग के लिए नहीं होतीं और हो सकता है कि वे पूर्ण न हों। ये सुविधाएँ आधिकारिक रिलीज़ से पहले उपलब्ध होती हैं ताकि आप शीघ्र पहुँच प्राप्त कर सकें और प्रतिक्रिया दे सकें। अधिक जानकारी: कैनवास ऐप में प्रयोगात्मक, पूर्वावलोकन और रिटायर्ड फ़ीचर्स समझें
  • यह व्यवहार केवल तभी उपलब्ध होता है जब उपयोगकर्ता-परिभाषित प्रकारसेटिंग्स > आगामी सुविधाएँ > प्रायोगिक में प्रायोगिक सुविधा चालू होती है (यह डिफ़ॉल्ट रूप से बंद होती है).
  • आपकी प्रतिक्रिया बहुमूल्य है. प्रयोगात्मक सुविधाओं के सामुदायिक मंच पर हमें बताएँ कि आप क्या सोचते हैं। Power Apps

विवरण

Power Fx में प्रत्येक फ़ंक्शन उन मानों के प्रकारों को परिभाषित करता है जिन्हें पैरामीटर के रूप में पास किया जा सकता है और आउटपुट के प्रकार को भी परिभाषित करता है। जब आप कोई सूत्र लिखते हैं तो उसके प्रकारों की जाँच की जाती है और यदि वे अपेक्षित से मेल नहीं खाते तो त्रुटियाँ दिखाई जाती हैं। संपादक द्वारा प्रकारों का उपयोग फ़ंक्शन में क्या पास किया जाए, इसके लिए अच्छे विकल्प सुझाने और त्रुटियों का यथाशीघ्र पता लगाने के लिए भी किया जाता है।

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

Type फ़ंक्शन गतिशील मूल्यों के साथ काम करना भी आसान बनाता है। ParseJSON, IsType और AsType फ़ंक्शंस के साथ, एक गतिशील मान को एक टाइप किए गए ऑब्जेक्ट में परिवर्तित किया जा सकता है जिसमें कॉलम को अब उपयोग के बिंदु पर व्यक्तिगत रूप से टाइप करने की आवश्यकता नहीं है।

Type फ़ंक्शन अपने एकमात्र तर्क के रूप में एक टाइपस्पेसिफिकेशन लेता है। सबसे सरल प्रकार विनिर्देशन किसी मौजूदा प्रकार को संदर्भित करना है, उदाहरण के लिए 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 में एक नामित सूत्र के साथ किया जा सकता है।

सिंटैक्स

RecordOf(टेबलप्रकार)

  • TableType – आवश्यक. तालिका का प्रकार नाम. यह किसी प्रकार के विनिर्देश को स्वीकार नहीं करता है, इसे किसी तालिका के लिए पहले से परिभाषित प्रकार का नाम होना चाहिए।

Type(टाइपस्पेसिफिकेशन)

  • प्रकार विनिर्देश – आवश्यक. एक प्रकार का विनिर्देशन.

उदाहरण

Type फलन

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 रिकॉर्ड की तरह किया जा सकता है।

RecordOf फलन

फ़ंक्शन उदाहरण में 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 ) );