इसके माध्यम से साझा किया गया


डेटा प्रकार

नोट

Microsoft Power Fx कैनवास ऐप्स फॉर्मूला भाषा का नया नाम है। इन आलेखों का काम प्रगति पर है क्योंकि हम कैनवास ऐप से भाषा निकालते हैं, इसे अन्य Microsoft Power Platform उत्पाद के साथ एकीकृत करते हैं, और इसे खुले स्रोत के रूप में उपलब्ध कराते हैं। भाषा के परिचय के लिएMicrosoft Power Fx अवलोकन से शुरू करें।

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

यह लेख उन डेटा प्रकारों के लिए विवरण प्रदान करता है जो कैनवास अनुप्रयोग का समर्थन करते हैं. जब कोई अनुप्रयोग बाहरी डेटा स्रोत से जुड़ता है, तो उस स्रोत के प्रत्येक डेटा प्रकार को कैनवास अनुप्रयोग के लिए डेटा प्रकार में मैप किया जाता है.

डेटा प्रकार वर्णन उदाहरण
बूलियन सही या गलत मान. बिना किसी तुलना के सीधे If, Filter और अन्य कार्यों में उपयोग किया जा सकता है. सत्य
रंग एक अल्फा चैनल सहित रंग का विशेष वर्णन. रंग.लाल
रंग मान( "#102030" )
आरजीबीए( 255, 128, 0, 0.5 )
मुद्रा एक मुद्रा मान जो एक फ्लोटिंग-पॉइंट संख्या में संग्रहीत किया गया. मुद्रा मान मुद्रा-स्वरूपण विकल्पों के साथ संख्या मान के समान हैं. 123
4.56
तारीख अनुप्रयोग के उपयोगकर्ता के समय क्षेत्र में समय के बिना दिनांक. दिनांक( 2019, 5, 16 )
दिनांक समय अनुप्रयोग के उपयोगकर्ता के समय क्षेत्र में समय के साथ दिनांक. DateTimeValue( "16 मई, 2019 1:23:09 PM" )
दशमलव उच्च परिशुद्धता, आधार 10 संचालन और सीमित सीमा वाली संख्या। 123
दशमलव( "1.2345" )
GUID वैश्विक रूप से अद्वितीय पहचानकर्ता. गाइड()
गाइड( "123e4567-e89b-12d3-a456-426655440000 " )
हाइपरलिंक हाइपरलिंक वाला पाठ स्ट्रिंग. "https://powerapps.microsoft.com" ;
छवि यूनिवर्सल रिसोर्स आइडेंटिफ़ायर (URI) पाठ स्ट्रिंग की छवि में .jpeg, .png, .svg, .gif, या अन्य सामान्य वेब-छवि प्रारूप. मेरी छवि ऐप संसाधन के रूप में जोड़ा गया
"https://northwindtraders.com/logo.jpg" ;
"appres://blobmanager/7b12ffa2..."
मिडिया वीडियो या ऑडियो रिकॉर्डिंग के लिए URI पाठ स्ट्रिंग. मायवीडियो ऐप संसाधन के रूप में जोड़ा गया
"https://northwindtraders.com/intro.mp4" ;
"appres://blobmanager/3ba411c..."
संख्या या तैरना मानक परिशुद्धता, आधार 2 संचालन और विस्तृत श्रृंखला वाली एक संख्या। 123
8.903e121
1.234e200
पसंद विकल्पों के सेट से विकल्प, संख्या द्वारा समर्थित. यह डेटा प्रकार संख्यात्मक मान के साथ स्थानीयकृत किए जाने योग्य पाठ लेबल जोड़ता है. अनुप्रयोग में लेबल दिखाई देता है और संख्यात्मक मान तुलना के लिए संग्रहीत और उपयोग किया जाता है. ThisItem.ऑर्डरस्थिति
अभिलेख डेटा मानों का रिकॉर्ड. इस मिश्रित डेटा प्रकार में अन्य डेटा प्रकार के उदाहरण हैं जो इस विषय में सूचीबद्ध हैं. अधिक जानकारी: आतालिकाओं के साथ कार्य करें कर रहे है. { कंपनी: "नॉर्थविंड ट्रेडर्स",
Staff: 35,
NonProfit: false }
रिकॉर्ड संदर्भ टेबल में एक रिकॉर्ड का संदर्भ. इस तरह के संदर्भों का उपयोग अक्सर बहुरूपी लुकअप के साथ किया जाता है. अधिक जानकारी: संदर्भ के साथ कार्य कर रहे है. प्रथम(खाते).स्वामी
मेज़ रिकॉर्ड्स का एक तालिका. सभी अभिलेखों में समान डेटा प्रकारों के साथ अपने फ़ील्ड के लिए समान नाम होना चाहिए और छोड़े गए फ़ील्ड को रिक्त माना जाता है. इस मिश्रित डेटा प्रकार में अन्य डेटा प्रकार के उदाहरण हैं जो इस विषय में सूचीबद्ध हैं. अधिक जानकारी: आतालिकाओं के साथ कार्य करें कर रहे है. मेज़( { प्रथम नाम: "सिडनी",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
मूलपाठ यूनिकोड पाठ स्ट्रिंग. "हैलो वर्ल्ड"
समय ऐप के उपयोगकर्ता के समय क्षेत्र में एक तारीख के बिना एक समय. समय( 11, 23, 45 )
दो विकल्प एक संख्या द्वारा समर्थित, कई विकल्पों में से दो विकल्प. यह डेटा प्रकार बूलियन मान के साथ स्थानीयकृत किए जाने योग्य पाठ लेबल जोड़ता है. अनुप्रयोग में लेबल दिखाई देता है, और बूलियन मान संग्रहीत और तुलना के लिए उपयोग किया जाता है. यहआइटम.करयोग्य
अनटाइप्ड ऑब्जेक्ट एक अघोषित प्रकार का ऑब्जेक्ट. अंतर्निहित ऑब्जेक्ट कोई भी मौजूदा प्रकार हो सकता है और इस तरह के कार्यों का उपयोग करके संगत प्रकारों में परिवर्तित किया जा सकता हैBoolean(), Value(), Table() आदि. अधिक जानकारी के लिए अनटाइप्ड ऑब्जेक्ट और JSON के साथ काम करना देखें. ParseJSON("{ ""फ़ील्ड"" : 1234 }").फ़ील्ड

इन डेटा प्रकारों में से कई समान हैं और एक ही मुख्य प्रतिनिधित्व है, जैसे कि हाइपरलिंक फ़ील्ड को पाठ के रूप में माना जा रहा है. अतिरिक्त डेटा प्रकार प्रपत्रों और अन्य नियंत्रणों में बेहतर डिफ़ॉल्ट अनुभव प्रदान करते हैं.

रिक्त

सभी डेटा प्रकारों में रिक्त का मान हो सकता है (दूसरे शब्दों में, कोई मान नहीं). शब्द "अमान्य" का उपयोग अक्सर इस अवधारणा के लिए डेटाबेस में किया जाता है.

चर या फ़ील्ड को रिक्त सेट करने के लिए Set या Patch फ़ंक्शन के साथ Blank फ़ंक्शन का उपयोग करें. उदाहरण के लिए, सेट (x, रिक्त () ) वैश्विक चर x में किसी भी मान को हटाता है.

IsBlank फ़ंक्शन का उपयोग करके रिक्त मान के लिए परीक्षण करें. Coalesce फ़ंक्शन का उपयोग करके संभव रिक्त मानों को गैर-रिक्त मानों से बदलें.

क्योंकि सभी डेटा प्रकार रिक्त का समर्थन करते हैं, बूलियन और दो विकल्प डेटा प्रकार प्रभावी रूप से तीन संभावित मान हैं.

इन सभी चार प्रकार के डेटा पाठ की पंक्ति यूनिकोड पर आधारित हैं.

एंबेडेड पाठ

फ़ॉर्मूले में एंबेडेड पाठ स्ट्रिंग्स दोहरे उद्धरण चिह्नों में संलग्न हैं. पाठ स्ट्रिंग में एकल दोहरे उद्धरण का प्रतिनिधित्व करने के लिए साथ दो दोहरे उद्धरण चिह्नों का उपयोग करें. उदाहरण के लिए, बटन नियंत्रण के OnSelect गुण में निम्न फ़ॉर्मूले का उपयोग करना:

Notify( "Jane said ""Hello, World!""" )

जब बटन दबाया जाता है तो बैनर में परिणाम होता है जहां पहले और अंतिम दोहरे उद्धरण छोड़े गए हैं (जैसा कि वे पाठ स्ट्रिंग को चित्रित करते हैं) और हैलो, वर्ल्ड के आसपास दोहराए गए दोहरे उद्धरण एकल दोहरे उद्धरण से प्रतिस्थापित किए जाते हैं:

जेन द्वारा कहे गए संदेश

पहचानकर्ता नाम के लिए ऐसे एकल उद्धरण चिह्नों का उपयोग नहीं किया जाता है जिसमें विशेष वर्ण होते हैं और पाठ स्ट्रिंग के भीतर कोई खास महत्व नहीं होता है.

स्ट्रिंग इंटरपोलेशन

पाठ स्ट्रिंग के भीतर सूत्र एम्बेड करने के लिए स्ट्रिंग इंटरपोलेशन का उपयोग करें. Concatenate फ़ंक्शन या & ऑपरेटर का उपयोग करने की तुलना में इसके साथ काम करना और आउटपुट को देखना अक्सर आसान होता है।

टेक्स्ट स्ट्रिंग के आगे डॉलर चिह्न $ लगाएँ और कर्ली ब्रेसेस { } के साथ एम्बेड किए जाने वाले सूत्र को संलग्न करें. टेक्स्ट स्ट्रिंग में कर्ली ब्रेस शामिल करने के लिए, बार-बार कर्ली ब्रेसेस का उपयोग करें: {{ या }}. स्ट्रिंग प्रक्षेप का उपयोग कहीं भी किया जा सकता है जहां एक मानक पाठ स्ट्रिंग का उपयोग किया जा सकता है.

उदाहरण के लिए, वैश्विक चर के साथ इस सूत्र पर विचार करें 3 पर सेट सेब और 4 पर सेट केले :

$"We have {Apples} apples, {Bananas} bananas, yielding {Apples+Bananas} fruit total."

यह सूत्र टेक्स्ट यह स्ट्रिंग लौटाता है We have 3 apples, 4 bananas, yielding 7 fruit total. सेब और केले चरों को गणितीय सूत्र सेब+केले के परिणाम वाले कर्ली ब्रेसिज़ की जगह पाठ में डाला गया है. कर्ली ब्रेसिज़ के आसपास के स्थान और अन्य वर्ण जैसे हैं वैसे ही संरक्षित किए जाते हैं.

एंबेडेड फ़ार्मुलों में कोई भी फ़ंक्शन या ऑपरेटर शामिल हो सकते हैं. केवल इतना ही आवश्यक है कि सूत्र के परिणाम को एक टेक्स्ट स्ट्रिंग के लिए बाध्य किया जा सके. उदाहरण के लिए, यह सूत्र NickName यदि प्रदान किया गया है, या FirstName नहीं है, तो अभिवादन में सम्मिलित होगा:

$"Welcome {Coalesce( NickName, FirstName )}, it's great to meet you!" )

अगर NickName "जो" पर सेट है, तो यह फ़ॉर्मूला यह टेक्स्ट स्ट्रिंग बनाता है स्वागत है जो, आपसे मिलकर बहुत खुशी हुई!. लेकिन अगर NickName है रिक्त और NickName "यूसुफ" है, तो यह सूत्र इसके बजाय प्रिय जोसफ, आपसे मिलकर अच्छा लगा! बनाता है.

स्ट्रिंग इंटरपोलेशन में एम्बेड किए गए फ़ॉर्मूला में मानक टेक्स्ट स्ट्रिंग शामिल हो सकते हैं. उदाहरण के लिए, यदि न तो उपनाम न ही प्रथम नाम उपलब्ध कराया गया था, तब भी हम प्रदान कर सकते थे "दोस्त" एक विकल्प के रूप में:

$"Welcome {Coalesce( NickName, FirstName, "Friend" )}!"

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

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
प्रथम मध्य अंतिम परिणाम
जॉन कुनीसी डो Welcome John Quincy Doe!
जॉन खाली डो Welcome John Doe!
खाली खाली डो Welcome Doe!
खाली खाली खाली Welcome Friend!

नई-पंक्तियां

एंबेडेड टेक्स्ट स्ट्रिंग्स में न्यूलाइन्स हो सकती हैं. उदाहरण के लिए, निम्न के लिए लेबल नियंत्रण के पाठ गुण को सेट करने पर विचार करें:

"Line 1
Line 2
Line 3"

उपरोक्त सूत्र का परिणाम लेबल नियंत्रण में दिखाई गई तीन पंक्तियों में होता है:

एम्बेडेड टेक्स्ट स्ट्रिंग और लेबल नियंत्रण, लाइन 1, लाइन 2 और लाइन 3 के साथ तीन लाइनें दिखाता है।

स्ट्रिंग इंटरपोलेशन के साथ न्यूलाइन्स भी समर्थित हैं, जैसा कि नीचे दिखाया गया है:

$"Line {1}
Line {1+1}
Line {1+1+1}"

उपरोक्त सूत्र का परिणाम समान आउटपुट में होता है:

स्ट्रिंग इंटरपोलेशन सूत्र और लेबल नियंत्रण, लाइन 1, लाइन 2 और लाइन 3 के साथ तीन लाइनें दिखा रहा है।

छवि और मीडिया संसाधन

फ़ाइल मेनू के माध्यम से, आप छवि, वीडियो और ऑडियो फ़ाइलों को अनुप्रयोग संसाधनों के रूप में जोड़ सकते हैं. आयातित फ़ाइल का नाम अनुप्रयोग में संसाधन नाम बन जाता है. इस ग्राफिक में, नॉर्थविंड ट्रेडर्स लोगो, जिसका नाम nwindlogo है, को अनुप्रयोग में जोड़ा गया है:

नॉर्थविंड संसाधन.

किसी अनुप्रयोग में इस संसाधन का उपयोग करने के लिए, इसे छवि नियंत्रण की छवि गुण में निर्दिष्ट करें:

नॉर्थविंड छवि.

छवियों और अन्य मीडिया के लिए URIs

आप उस अंतिम उदाहरण में लेबल नियंत्रण के पाठ गुण को nwindlogo पर सेट करके अधिक गहन खोज कर सकते हैं. लेबल एक पाठ स्ट्रिंग दिखाता है:

नॉर्थविंड पाठ.

कैनवास अनुप्रयोग प्रत्येक छवि या अन्य मीडिया फ़ाइल का संदर्भ देते हैं, चाहे वह URI टेक्स्ट स्ट्रिंग द्वारा क्लाउड में जोड़ा गया हो या अनुप्रयोग संसाधन के रूप में जोड़ा गया हो.

उदाहरण के लिए, छवि छवि नियंत्रण का गुण न केवल अनुप्रयोग संसाधनों को स्वीकार करता है, बल्कि वेब पर छवियों का लिंक भी देता है जैसे कि "https://northwindtraders.com/logo.jpg". गुण इनलाइन छवियों को भी स्वीकार करता है जो इस उदाहरण में डेटा URI योजना का उपयोग करती हैं:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgAAABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"

वह URI दो पर्पल डायमंड का विस्तारित संस्करण प्रदर्शित करता है:

दोहरे हीरे.

यदि आप कैमरा नियंत्रण के फ़ोटो गुण के लिए छवि नियंत्रण का छवि गुण सेट करते हैं, तो आप कैमरा नियंत्रण में कैप्चर की गई नवीनतम छवि दिखा सकते हैं. अनुप्रयोग छवि में मेमोरी में रखता है, और कैमरा नियंत्रण का फोटो गुण छवि के लिए एक URI संदर्भ देता है. चित्र और कैमरे की फ़ोटो गुण "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1" दे सकता है.

आप किसी छवि या किसी अन्य मीडिया फ़ाइल को डेटाबेस में संग्रहीत करने के लिए URI का उपयोग करते हैं. इस तरह, अनुप्रयोग वास्तविक डेटा को तब तक पुनर्प्राप्त नहीं करता है जब तक कि वास्तव में इसकी आवश्यकता न हो. उदाहरण के लिए, Microsoft Dataverse टेबल में अटैचमेंट "appres://datasources/Contacts/table/..." लौटा सकता है, जैसा कि कैमरे के उदाहरण में है, आप छवि नियंत्रण की छवि संपत्ति को इस संदर्भ में सेट करके इस छवि को प्रदर्शित कर सकते हैं, जो बाइनरी डेटा को पुनः प्राप्त करती है.

जब आप एक मीडिया डेटा प्रकार, जैसे छवि, डेटाबेस में सहेजते हैं, तो अनुप्रयोग वास्तविक छवि या मीडिया डेटा भेजता है, URI संदर्भ नहीं.

आकार सीमा

पाठ स्ट्रिंग्स और URI के रूप में, इन डेटा प्रकारों की लंबाई की कोई पूर्व निर्धारित सीमा नहीं है.

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

हालांकि, सभी डेटा आकार अनुप्रयोग में उपलब्ध मेमोरी की मात्रा के अधीन हैं. डेस्कटॉप कंप्यूटर पर चलने वाले ब्राउज़र आमतौर पर 100 मेगाबाइट से अधिक डेटा का समर्थन करते हैं. हालांकि, उपकरण पर उपलब्ध मेमोरी की मात्रा जैसे कि फोन पर बहुत कम हो सकती है, आमतौर पर 30-70 मेगाबाइट्स की सीमा के बीच. यह निर्धारित करने के लिए कि क्या आपका अनुप्रयोग इन सीमाओं के भीतर चलेगा, उन सभी उपकरणों पर सामान्य परिदृश्यों का परीक्षण करें, जिन पर इसे चलना चाहिए.

सर्वोत्तम कार्य प्रणाली के रूप में, जब तक आवश्यक हो, केवल मेमोरी में डेटा रखें. जितनी जल्दी हो सके डेटाबेस में छवियों को अपलोड करें; छवियों को केवल तभी डाउनलोड करें, जब अनुप्रयोग का उपयोगकर्ता उनके लिए अनुरोध करे.

संख्याएं

नोट

Power Apps केवल फ़्लोट का समर्थन करता है और यह सभी संख्याओं का प्रकार है। दशमलव समर्थन जल्द ही जोड़ा जाएगा.

Power Fx दो प्रकार की संख्याओं का समर्थन करता है: दशमलव और फ़्लोट (समानार्थी शब्दों के साथ संख्या और मुद्रा)।

दशमलव अधिकांश व्यावसायिक गणनाओं के लिए सर्वोत्तम है। यह आधार 10 में संख्याओं को सटीक रूप से प्रदर्शित कर सकता है, जिसका अर्थ है कि इसे सटीक रूप से प्रदर्शित किया जा सकता है और गणना के दौरान पूर्णांकन त्रुटियों की संभावना नहीं होगी। 0.1 किसी भी व्यावसायिक आवश्यकता के लिए इसकी रेंज काफी बड़ी है, 1028 तक और 28 अंकों तक की परिशुद्धता। दशमलव अधिकांश Power Fx होस्टों के लिए डिफ़ॉल्ट संख्यात्मक डेटा प्रकार है, जिसका उपयोग तब किया जाता है जब कोई केवल 2*2 लिखता है।

फ्लोट वैज्ञानिक गणनाओं के लिए सर्वोत्तम है। यह 10308 तक की बहुत बड़ी रेंज में संख्याओं का प्रतिनिधित्व कर सकता है। परिशुद्धता 15 दशमलव स्थानों तक सीमित है और गणित आधार 2 पर आधारित है, इसलिए यह कुछ सामान्य दशमलव मानों को सटीकता से प्रस्तुत नहीं कर सकता है। फ्लोट का प्रदर्शन भी उच्च होता है और यदि वह एक कारक है तथा परिशुद्धता महत्वपूर्ण नहीं है तो इसे प्राथमिकता दी जाती है।

दशमलव संख्याएं

दशमलव डेटा प्रकार अक्सर .NET दशमलव डेटा प्रकार का उपयोग करता है। कुछ होस्ट, जैसे कि Dataverse सूत्र कॉलम जो SQL सर्वर में चलाए जाते हैं, SQL सर्वर दशमलव डेटा प्रकार का उपयोग करते हैं।

दशमलव गणित उसी तरह करता है जैसे आपने स्कूल में सीखा था, आधार 10 अंकों का उपयोग करके। यह बहुत महत्वपूर्ण है ताकि बहुत छोटे अंतरों से होने वाली पूर्णांकन त्रुटियों से बचा जा सके जो आधार 2 गणित (जैसा कि Float द्वारा उपयोग किया जाता है) का उपयोग करते समय जमा हो सकती हैं।

सीमा धनात्मक 79,228,162,514,264,337,593,543,950,335 से ऋणात्मक 79,228,162,514,264,337,593,543,950,335 तक है। दशमलव विभाजक को इन संख्याओं के भीतर कहीं भी रखा जा सकता है, जिससे 28 अंकों तक की परिशुद्धता प्राप्त होती है, तथा फिर भी इनका सटीक प्रतिनिधित्व किया जा सकता है। उदाहरण के लिए, 79,228,162,514,264.337593543950335 को सटीक रूप से दर्शाया जा सकता है, जैसा कि 7.9228162514264337593543950335 को भी दर्शाया जा सकता है।

दशमलव संख्याएं

फ्लोट डेटा प्रकार, जिसे संख्या या मुद्रा के रूप में भी जाना जाता है, IEEE 754 डबल-परिशुद्धता फ़्लोटिंग-पॉइंट मानक का उपयोग करता है। यह मानक –1.79769 x 10308 से 1.79769 x 10308 तक काम करने के लिए बहुत बड़ी संख्या में नंबर प्रदान करता है. सबसे छोटा मान जो दर्शाया जा सकता है वह 5 x 10–324 है.

फ़्लोट –9,007,199,254,740,991 (–(253 – 1)) और 9,007,199,254,740,991 (253 – 1) के बीच पूर्ण संख्याओं (या पूर्णांकों) का सटीक रूप से प्रतिनिधित्व कर सकता है। यह सीमा 32-बिट (या 4-बाइट) पूर्णांक डेटा प्रकारों से बड़ी है जो डेटाबेस आमतौर पर उपयोग करते हैं. हालांकि, कैनवास अनुप्रयोग 64-बिट (या 8-बाइट) पूर्णांक डेटा प्रकारों का प्रतिनिधित्व नहीं कर सकते हैं. आप पाठ फ़ील्ड में संख्या को संग्रहीत करना चाहते हैं या किसी पाठ फ़ील्ड में संख्या की प्रतिलिपि बनाने के लिए परिकलित स्तंभ का उपयोग कर सकते हैं, ताकि यह कैनवास अनुप्रयोग में पाठ डेटा प्रकार में मैप हो जाए. इस तरीके से, आप इन मानों को रख, प्रदर्शित और दर्ज कर सकते हैं, साथ ही साथ उनकी तुलना करके यह निर्धारित कर सकते हैं कि वे समान हैं; हालांकि, आप इस रूप में उनकी संख्यात्मक गणना नहीं कर सकते हैं.

फ्लोटिंग-पॉइंट अंकगणित अनुमानित है, इसलिए यह कभी-कभी कई प्रलेखित उदाहरणों के साथ अप्रत्याशित परिणाम दे सकता है. आप फ़ॉर्मूला 55 / 100 * 100 से ठीक 55 और (55 / 100 * 100) - 55 से ठीक शून्य आने की उम्मीद कर सकते हैं. हालांकि, बाद वाला फ़ॉर्मूला 7.1054 x 10–15 देता है, जो बहुत छोटा है लेकिन शून्य नहीं है. यह छोटा अंतर आम तौर पर समस्या का कारण नहीं बनता है, और परिणाम दिखाते समय अनुप्रयोग इसे दूर कर देता है. हालांकि, छोटे अंतर बाद की गणनाओं में मिश्रित हो सकते हैं और गलत उत्तर दे सकते हैं.

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

डिफ़ॉल्ट और रूपांतरण

नोट

Power Apps केवल फ़्लोट का समर्थन करता है और यह सभी संख्याओं का प्रकार है। दशमलव समर्थन जल्द ही जोड़ा जाएगा.

अधिकांश होस्ट डिफ़ॉल्ट रूप से दशमलव का उपयोग करते हैं। Power Fx इसका प्रभाव:

  • सूत्रों में शाब्दिक संख्याएँ. संख्या 1.234 को दशमलव मान के रूप में व्याख्यायित किया जाएगा. उदाहरण के लिए, सूत्र 1.234 * 2 1.234 और 2 को दशमलव के रूप में व्याख्या करेगा और दशमलव परिणाम लौटाएगा।
  • मूल्य फ़ंक्शन. Value( "1.234" ) एक दशमलव मान लौटाएगा. उदाहरण के लिए, सूत्र Value( "1.234" ) * 2 मान फ़ंक्शन पाठ स्ट्रिंग "1.234" की सामग्री को दशमलवके रूप में व्याख्या करेगा।

Float मानों के साथ काम करने के लिए, Float फ़ंक्शन का उपयोग किया जाता है। उपरोक्त उदाहरण को आगे बढ़ाते हुए, Float( 1.234 ) दशमलव को 1.234 फ़्लोट में परिवर्तित कर देगा। Float का उपयोग Value के प्रतिस्थापन के रूप में भी किया जा सकता है, ताकि Float( "1.234" ) जैसे फ़्लोटिंग पॉइंट नंबर वाले स्ट्रिंग को Float value में परिवर्तित किया जा सके, जो तब आवश्यक होता है जब संख्या को Decimal के रूप में प्रदर्शित नहीं किया जा सकता है।

सारांश:

उपयोग दशमलव तैरना
सूत्रों में अक्षरशः संख्याएँ 1.234 Float( 1.234 )
Float( "1.234" )
पाठ स्ट्रिंग से रूपांतरण Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
संख्यात्मक प्रकारों के बीच रूपांतरण Decimal( float ) Float( decimal )
पाठ स्ट्रिंग में रूपांतरण Text( decimal ) Text( float )

संख्यात्मक प्रकारों का मिश्रण

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

उदाहरण के लिए, pac power-fx repl CLI Power Platform को स्थापित करने के बाद का उपयोग करके निम्नलिखित गणना पर विचार करें। चूँकि दोनों संख्याएँ दशमलव हैं, इसलिए गणना दशमलव में की जाती है, और परिणाम पूर्ण परिशुद्धता बनाए रखता है:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

यदि इसके बजाय, दूसरे ऑपरेंड को Float में बदल दिया गया, तो संपूर्ण गणना Float में की जाएगी और छोटा आंशिक भाग खो जाएगा:

>> 1.0000000000000000000000000001 * Float(2)
2

दिनांक, समय, और DateTime

समय क्षेत्र

दिनांक/समय मान इन श्रेणियों में आते हैं:

  • उपयोगकर्ता स्थानीय: ये मान UTC (समन्वित सार्वभौमिक समय) में संग्रहीत किए जाते हैं, लेकिन ऐप उपयोगकर्ता का समय क्षेत्र इस बात को प्रभावित करता है कि ऐप इन मानों को कैसे दिखाता है और ऐप उपयोगकर्ता उन्हें कैसे निर्दिष्ट करता है। उदाहरण के रूप में, एक ही क्षण कनाडा में एक उपयोगकर्ता के लिए अलग-अलग दिखाई देता है, जैसा कि यह जापान में उपयोगकर्ता के लिए करता है.
  • समय क्षेत्र से स्वतंत्र: ऐप इन मानों को समान तरीके से दिखाता है और ऐप उपयोगकर्ता समय क्षेत्र की परवाह किए बिना उन्हें समान तरीके से निर्दिष्ट करता है। वही क्षण कनाडा में उपयोगकर्ता के लिए उसी तरह प्रकट होता है जैसा कि वह जापान में एक उपयोगकर्ता के लिए होता है. अनुप्रयोग निर्माता, जो अपने अनुप्रयोग को अलग-अलग समय क्षेत्र में चलने की उम्मीद नहीं करते हैं, वे इन मानों का उपयोग करते हैं क्योंकि वे समग्र सरल हैं.

यह तालिका कुछ उदाहरण दिखाती है:

दिनांक/समय प्रकार डेटाबेस में मान संग्रहीत किया गया मूल्य प्रदर्शित किया गया और UTC के पश्चिम में 7 घंटे में प्रवेश किया मूल्य प्रदर्शित किया गया और UTC के पूर्व में 4 घंटे में प्रवेश किया
उपयोगकर्ता स्थानीय रविवार,मई19,2019
4:00 पूर्वाह्न
शनिवार,मई18,2019
9:00 अपराह्न
रविवार,मई19,2019
8:00 पूर्वाह्न
समय क्षेत्र स्वतंत्र रविवार,मई19,2019
4:00 पूर्वाह्न
रविवार,मई19,2019
4:00 पूर्वाह्न
रविवार,मई19,2019
4:00 पूर्वाह्न

उपयोगकर्ता स्थानीय दिनांक/समय के लिए, कैनवास अनुप्रयोग ब्राउज़र या डिवाइस के समय क्षेत्र का उपयोग करते हैं, लेकिन मॉडल-चालित अनुप्रयोग Dataverse में उपयोगकर्ता की सेटिंग का उपयोग करते हैं. ये सेटिंग्स आम तौर पर मेल खाती हैं, लेकिन अगर ये सेटिंग्स अलग-अलग होंगी तो परिणाम अलग होंगे.

स्थानीय समय को UTC और फिर वापसी के लिए DateAdd और TimeZoneInformation फ़ंक्शन का उपयोग करें. इन फ़ंक्शन के लिए लेख के अंत में उदाहरण देखें.

सांख्यिक समकक्ष

कैनवास अनुप्रयोग सभी दिनांक/समय मूल्यों को रखते हैं और गणना करते हैं, चाहे उपयोगकर्ता स्थानीय हो या UTC में समय क्षेत्र स्वतंत्र. अनुप्रयोग उपयोगकर्ता को दिखाते समय अनुप्रयोग उपयोगकर्ता के समय क्षेत्र के आधार पर मानों का अनुवाद करता है और जब अनुप्रयोग उपयोगकर्ता उन्हें निर्दिष्ट करता है.

जब एक कैनवस अनुप्रयोग डेटा स्रोत से समय क्षेत्र स्वतंत्र मान पढ़ता है या किसी डेटा स्रोत पर ऐसा मान लिखता है, अनुप्रयोग स्वचालित रूप से अनुप्रयोग के उपयोगकर्ता के समय क्षेत्र की कमी पूरी करने के लिए मान को समायोजित करता है. अनुप्रयोग तब मान को UTC मान के रूप में मानता है, जो अनुप्रयोग में अन्य सभी दिनांक/समय मानों के अनुरूप है. इस कमी को पूरा करने के कारण, मूल समय क्षेत्र स्वतंत्र मान तब प्रकट होता है जब अनुप्रयोग उपयोगकर्ता के समय क्षेत्र के लिए UTC मान समायोजित करता है.

किसी दिनांक/समय मान के लिए अंतर्निहित संख्यात्मक मान तक पहुंचने के लिए आप इस व्यवहार को अधिक बारीकी से Value फ़ंक्शन का उपयोग करके देख सकते हैं. यह फ़ंक्शन 1 जनवरी, 1970 00:00:00.000 UTC के बाद से मिलीसेकंड की संख्या के रूप में दिनांक/समय मान देता है.

क्योंकि UTC में प्रत्येक दिनांक / समय मान होता है, फ़ॉर्मूला Value( Date( 1970, 1, 1 ) ) दुनिया के अधिकांश हिस्सों में शून्य नहीं देता है क्योंकि Date फ़ंक्शन UTC में दिनांक देता है. उदाहरण के लिए, फ़ॉर्मूला UTC से आठ घंटे की भरपाई करने वाले समय क्षेत्र में 28,800,000 देगा. यह संख्या आठ घंटे में मिलीसेकंड की संख्या को दर्शाती है.

ऊपर से हमारे उदाहरण पर लौटना:

दिनांक/समय प्रकार डेटाबेस में मान संग्रहीत किया गया मूल्य प्रदर्शित किया गया और UTC के पश्चिम में 7 घंटे में प्रवेश किया मान फ़ंक्शन रिटर्न
उपयोगकर्ता स्थानीय रविवार,मई19,2019
4:00 पूर्वाह्न
शनिवार,मई18,2019
9:00 अपराह्न
1,558,238,400,000
(रविवार,मई19,2019
4:00 पूर्वाह्न UTC)
समय क्षेत्र स्वतंत्र रविवार,मई19,2019
4:00 पूर्वाह्न
रविवार,मई19,2019
4:00 पूर्वाह्न
1,558,263,600,000
(रविवार,मई19,2019
11:00 पूर्वाह्न UTC)

Unix समय परिवर्तित कर रहा

Unix टाइम 1 जनवरी, 1970 00:00:00 UTC के बाद से सेकंड की संख्या को दर्शाता है. चूंकि कैनवास अनुप्रयोग सेकंड के बजाय मिलीसेकंड का उपयोग करते हैं, आप दोनों को 1,000 से गुणा या विभाजित करके परिवर्तित कर सकते हैं.

उदाहरण के लिए, Unix टाइम 9 सितंबर, 2001, को 01:46:40 बजे UTC को 1,000,000,000 दिखाता है. कैनवास अनुप्रयोग में उस दिनांक/ समय के मान को दिखाने के लिए, इसे मिलीसेकंड में बदलने के लिए उस संख्या को 1,000 से गुणा करें, और फिर Text फ़ंक्शन में इसका उपयोग करें. फ़ॉर्मूला Text( 1000000000 * 1000, DateTimeFormat.UTC ) स्ट्रिंग 2001-09-09T01:46:40.000Z देता है.

हालांकि, यह फ़ंक्शन शनिवार, 8 सितंबर, 2001 18:46:40 देता है यदि आप DateTimeFormat.LongDateTime24 प्रारूप का उपयोग उस समय क्षेत्र में करते हैं, जो UTC से -7 घंटे (UTC के पश्चिम में 7 घंटे) से ऑफसेट है. यह परिणाम स्थानीय समय क्षेत्र के आधार पर DateTime मान को सही ढंग से दिखाता है.

Unix टाइम में बदलने के लिए, मान के परिणाम को 1,000 से विभाजित करें:
RoundDown( मान( UnixTime ) / 1000, 0 )

यदि आपको आगे की गणना के लिए दिनांक मान में Unix टाइम की आवश्यकता है या Power Apps के भीतर प्रदर्शित करना चाहते हैं, तो इस फ़ॉर्मूले का उपयोग करें:
DateAdd( दिनांक( 1970,1,1 ), UnixTime, सेकंड )

SQL Server

SQL सर्वर में Datetime, Datetime2 और अन्य दिनांक/समय डेटा प्रकार होता है जिसमें एक समय-क्षेत्र ऑफसेट शामिल नहीं होता है और यह इंगित नहीं करता है कि वे किस समय-क्षेत्र में हैं. कैनवस अनुप्रयोग मान लेते हैं कि ये मान UTC में संग्रहीत हैं और उन्हें उपयोगकर्ता स्थानीय के रूप में मानते हैं. यदि मान समय-क्षेत्र स्वतंत्र होने के लिए हैं, तो TimeZoneOffset फ़ंक्शन का उपयोग करना UTC अनुवादों के लिए सही है.

अनुप्रयोग के आंतरिक UTC प्रतिनिधित्व के लिए मान को परिवर्तित करते समय कैनवास अनुप्रयोग Datetimeoffset फ़ील्ड में शामिल समय-क्षेत्र जानकारी का उपयोग करते हैं. जब वे डेटा लिखते हैं, तो अनुप्रयोग हमेशा UTC को समय क्षेत्र (शून्य समय क्षेत्र ऑफसेट) के रूप में उपयोग करते हैं.

ISO 8601 अवधि प्रारूप में पाठ स्ट्रिंग्स के रूप में कैनवास अनुप्रयोग SQL सर्वर में समय डेटा प्रकार के मान पढ़ते और लिखते हैं. उदाहरण के लिए, आपको इस स्ट्रिंग प्रारूप का विश्लेषण करना चाहिए और पाठ स्ट्रिंग "PT2H1M39S" को समय मान में बदलने के लिए Time फ़ंक्शन का उपयोग करना चाहिए:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
    Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)

मिश्रण दिनांक और समय की जानकारी

दिनांक, समय, और दिनांकसमय के अलग-अलग नाम हैं, लेकिन वे सभी दिनांक और समय के बारे में एक ही जानकारी रखते हैं।

दिनांक मान में इसके साथ समय की जानकारी शामिल हो सकती है, जो आमतौर पर आधी रात होती है. समय मान में तारीख की जानकारी हो सकती है, जो आमतौर पर 1 जनवरी, 1970 है. Dataverse भी केवल दिनांक फ़ील्ड के साथ समय की जानकारी संग्रहीत करती है, लेकिन डिफ़ॉल्ट रूप से केवल दिनांक की जानकारी दिखाती है. इसी तरह, कैनवास अनुप्रयोग कभी-कभी डिफ़ॉल्ट प्रारूप और नियंत्रण निर्धारित करने के लिए इन डेटा प्रकारों के बीच अंतर करते हैं.

दिनांक और समय मानों को सीधे जोड़ना और घटाना अनुशंसित नहीं है क्योंकि समय-क्षेत्र और अन्य रूपांतरण भ्रामक परिणाम पैदा कर सकते हैं. या तो पहले दिनांक/समय मान को मिलीसेकंड में परिवर्तित करने के लिए Value फ़ंक्शन का उपयोग करें और अनुप्रयोग उपयोगकर्ता के समय क्षेत्र को ध्यान में रखें या इनमें से किसी एक मान को जोड़ने या घटाने के लिए DateAdd और DateDiff फ़ंक्शन का उपयोग करें.

विकल्प और हां/नहीं

विकल्प और दो-विकल्प डेटा प्रकार एक ऐप उपयोगकर्ता को चुनने के लिए दो या अधिक विकल्प प्रदान करते हैं. उदाहरण के लिए, एक ऑर्डर स्थिति विकल्प नया, शिप किया गया, इनवॉइस किया गया और बंद विकल्प प्रदान कर सकता है. दो-विकल्प डेटा प्रकार केवल दो विकल्प प्रदान करता है.

ये दोनों डेटा प्रकार पाठ-स्ट्रिंग संदर्भ में अपने लेबल दिखाते हैं. उदाहरण के लिए, यदि नियंत्रण की टेक्स्ट संपत्ति उस विकल्प को संदर्भित करने वाले फॉर्मूला पर सेट है, तो एक लेबल नियंत्रण ऑर्डर-स्थिति विकल्पों में से एक दिखाता है. विकल्प लेबल को विभिन्न स्थानों में अनुप्रयोग उपयोगकर्ताओं के लिए स्थानीयकृत किया जा सकता है.

जब कोई अनुप्रयोग उपयोगकर्ता विकल्प का चयन करता है और उस परिवर्तन को सहेजता है, तो अनुप्रयोग डेटा को डेटाबेस में पहुंचाता है, जो उस डेटा को उस प्रतिनिधित्व में संग्रहीत करता है जो भाषा से स्वतंत्र है. विकल्प में एक विकल्प को संख्या के रूप में प्रेषित और संग्रहित किया जाता है, और दो-विकल्प डेटा प्रकार में एक विकल्प को बूलियन मान के रूप में प्रेषित और संग्रहित किया जाता है.

लेबल केवल प्रदर्शन उद्देश्यों के लिए हैं. आप लेबलों की सीधी तुलना नहीं कर सकते क्योंकि वे एक भाषा के लिए विशिष्ट हैं. इसके बजाय, प्रत्येक विकल्प में एक गणना होती है जो अंतर्निहित संख्या या बूलियन मान के साथ काम करती है. उदाहरण के लिए, आप इस सूत्र का उपयोग नहीं कर सकते हैं:

If( ThisItem.OrderStatus = "Active", ...

लेकिन आप इस सूत्र का उपयोग कर सकते हैं:

If( ThisItem.OrderStatus = OrderStatus.Active, ...

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

इसके अलावा, दो-विकल्प मान बूलियन मान के रूप में भी व्यवहार कर सकते हैं. उदाहरण के लिए, TaxStatus नामक दो-विकल्प मान में कर योग्य और गैर-कर योग्य लेबल हो सकते हैं, जो क्रमशः सही और गलत के अनुरूप हैं. प्रदर्शित करने के लिए, आप इस सूत्र का उपयोग नहीं कर सकते हैं:

If( ThisItem.Taxable = TaxStatus.Taxable, ...

आप इस समान फ़ॉर्मूले का भी उपयोग कर सकते हैं:

If( ThisItem.Taxable, ...