चर

नोट

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

यदि आपने किसी अन्य प्रोग्रामिंग उपकरण, जैसे Visual Basic या JavaScript का उपयोग किया है, तो आप पूछ रहे होंगे: वेरिएबल कहाँ हैं? Microsoft Power Fx थोड़ा अलग है और इसके लिए अलग प्रस्ताव की आवश्यकता है. जब आप फॉर्मूला लिखते हैं तो चर के लिए पहुंचने के बजाय, खुद से पूछें: मैं किसी स्प्रेडशीट में क्या करूँगा?

अन्य उपकरणों में, आपने स्पष्ट रूप से एक गणना की होगी और परिणाम को एक चर में संग्रहीत किया होगा. तथापि, Power Fx और Excel दोनों इनपुट डेटा परिवर्तनों के साथ स्वचालित रूप से सूत्रों की पुनर्गणना करते हैं, इसलिए आपको सामान्यतः चरों को बनाने और अद्यतन करने की आवश्यकता नहीं होती. यथासंभव इस दृष्टिकोण को अपनाकर आप अपने ऐप को अधिक आसानी से बना, समझ और देख सकते हैं.

कुछ मामलों में, आपको Power Fx में चरों का उपयोग करना होगा, जो व्यवहार सूत्र जोड़कर Excel के मॉडल को विस्तृत करता है. उदाहरण के लिए, ये सूत्र तब चलते हैं, एक उपयोगकर्ता एक बटन का चयन करता है. व्यवहार सूत्र के भीतर, यह अक्सर अन्य सूत्रों में उपयोग किए जाने वाले चर को सेट करने में सहायक होता है.

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

Excel का Power Fx में अनुवाद करें

Excel

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

निम्नलिखित उदाहरण में, कक्ष A3 को सूत्र A1+A2 पर सेट किया गया है. यदि A1 या A2 परिवर्तित किया जाता है, तो A3 परिवर्तन को प्रतिबिंबित करने के लिए स्वचालित रूप से पुनर्गणना करता है. इस व्यवहार के लिए सूत्र के बाहर किसी कोडिंग की आवश्यकता नहीं होती.

Excel में दो संख्याओं के योग की पुनर्गणना का एनिमेशन.

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

Power Fx

Power Fx में आपके द्वारा बनाया गया लॉजिक Excel की तरह व्यवहार करता है. कक्षों को अद्यतन करने के बजाय, आप स्क्रीन पर जहाँ चाहें नियंत्रण जोड़ सकते हैं और सूत्रों में उपयोग के लिए उन्हें नाम दे सकते हैं.

उदाहरण के लिए Power Apps में, आप Label1 नाम के लेबल नियंत्रण और TextInput1 और TextInput2 नाम के दो पाठ इनपुट नियंत्रण, जोड़कर किसी अनुप्रयोग में Excel व्यवहार को दोहरा सकते हैं. यदि आप फिर Text की संपत्ति Label1 को TextInput1.Text + TextInput2.Text, यह हमेशा TextInput1 और TextInput2 में मौजूद सभी संख्याओं का योग दिखाएगा। स्वचालित रूप से।

 Power Fxमें दो संख्याओं के योग की गणना।

ध्यान दें कि Label1 नियंत्रण चयनित है, जो स्क्रीन के शीर्ष पर सूत्र पट्टी पर इसके पाठ सूत्र को दिखा रहा है. यहां हमें सूत्र TextInput1.Text + TextInput2.Text मिलता है। यह सूत्र इन नियंत्रणों के बीच एक निर्भरता बनाता है, जैसे कि Excel कार्यपुस्तिका में कक्षों के बीच निर्भरताएँ बनाई जाती हैं. आइए, TextInput1 के मान को बदलते हैं:

 Power Fxमें दो संख्याओं के योग की गणना करने का एनीमेशन।

Label1 के लिए सूत्र ने स्वचालित रूप से पुनर्गणना हुई, और नया मान दिखाया गया.

Power Fx में, आप न केवल एक नियंत्रण के प्राथमिक मान बल्कि स्वरूपण जैसे गुणों को निर्धारित करने के लिए सूत्रों का उपयोग कर सकते हैं. अगले उदाहरण में, लेबल के रंग गुण के लिए एक सूत्र स्वचालित रूप से ऋणात्मक मानों को लाल में दिखाएगा. यदि फ़ंक्शन एक्सेल से परिचित दिखना चाहिए:

If( Value(Label1.Text) < 0, Color.Red, Color.Black )

सशर्त स्वरूपण का एनिमेशन.

आप विभिन्न प्रकार के परिदृश्यों के लिए सूत्रों का उपयोग कर सकते हैं:

  • आपके डिवाइस के GPS का उपयोग करके एक मानचित्र नियंत्रण, एक सूत्र से आपकी वर्तमान स्थिति को Location.Latitude और Location.Longitude के उपयोग द्वारा दिखा सकता है. जैसे-जैसे आप आगे बढ़ते हैं, मानचित्र स्वचालित रूप से आपके स्थान को ट्रैक करेगा.
  • अन्य उपयोगकर्ता डेटा स्रोत अद्यतन कर सकते हैं. उदाहरण के लिए, आपकी टीम के अन्य लोग एक SharePoint सूची में आइटम अद्यतन कर सकते हैं. जब आप एक डेटा स्रोत रीफ़्रेश करते हैं, तो निर्भर सूत्रों की पुनर्गणना स्वचालित रूप की जाती है, ताकि अद्यतन डेटा प्रतिबिंबित किया जा सके. उदाहरण को आगे बढ़ाते हुए, आप एक गैलरी के आइटम गुण को सूत्र Filter( SharePointList ) पर सेट कर सकते हैं, जो स्वचालित रूप रिकॉर्ड के नए फ़िल्टर किए गए सेट को प्रदर्शित करेगा.

लाभ

ऐप्स बनाने के लिए सूत्रों के उपयोग के कई लाभ हैं:

  • यदि आप Excel जानते हैं, तो आप Power Fx जानते हैं. मॉडल और सूत्र की भाषा समान है.
  • यदि आपने अन्य प्रोग्रामिंग उपकरणों का उपयोग किया है, तो सोचें कि इन उदाहरणों को पूर्ण करने के लिए कितने कोड की आवश्यकता होगी. Visual Basic में, आपको प्रत्येक पाठ-इनपुट नियंत्रण पर परिवर्तन इवेंट के लिए एक इवेंट हैंडलर लिखना होगा. इनमें से प्रत्येक में गणना करने के लिए कोड अनावश्यक है और सिंक से बाहर जा सकता है, या आपको एक सामान्य सबरूटीन लिखना होगा. Power Fx में, आपने इन सभी को एक एकल-पंक्ति सूत्र द्वारा पूरा किया.
  • यह समझने के लिए, कि Label1 का पाठ कहाँ से आ रहा है, आप देखने के लिए सटीक स्थान जानते हैं: पाठ गुण में सूत्र में. इस नियंत्रण के पाठ को प्रभावित करने का कोई अन्य तरीका नहीं है. एक पारंपरिक प्रोग्रामिंग उपकरण में, कोई भी ईवेंट हैंडलर या सबरूटीन, उस प्रोग्राम में किसी भी स्थान से लेबल का मान बदल सकता है. इससे यह ट्रैक करना कठिन हो सकता है, कि चर कब और कहाँ परिवर्तित हो गए.
  • यदि उपयोगकर्ता एक स्लाइडर नियंत्रण परिवर्तित करता है और फिर अपना मन बदलता है, तो वह स्लाइडर को उसके मूल मान में वापस परिवर्तित कर सकता है. और मानो कुछ भी परिवर्तित नहीं हुआ है: ऐप उसी नियंत्रण मानों को दिखाता है जैसे उसने पहले दिखाया था. प्रयोग करते रहने और "क्या होगा, यदि ऐसा हो तो" पूछने के लिए कोई जटिलता मौजूद नहीं है, जैसा कि Excel में भी नहीं होती.

सामान्यतः, यदि आप सूत्र के उपयोग द्वारा प्रभाव बना सकते हैं, तो आप बेहतर स्थिति में होंगे. Power Fx में सूत्र इंजन को अपने लिए कार्य करने दें.

जानें, कि चरों का कब उपयोग करना है

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

दिखाएँ विवरण
पाठ इनपुट कंट्रोल, लेबल और दो बटन वाला अनुप्रयोग. जब ऐप शुरू होता है, तो चलायमान कुल 0 है.

पाठ-इनपुट बॉक्स में लाल बिंदु, उपयोगकर्ता की उंगली का प्रतिनिधित्व करता है, जहां उपयोगकर्ता 77 दर्ज करता है.
पाठ इनपुट नियंत्रण में 77 है, और जोड़ें बटन दबाया जा रहा है. उपयोगकर्ता जोड़ें बटन का चयन करता है.
कुल 77 है, और इसपर एक अन्य 77 जोड़ा जा रहा है. चलायमान कुल में 77 जोड़ा गया है.

उपयोगकर्ता पुनः जोड़ें बटन का चयन करता है.
साफ़ होने से पहले कुल 154 है. चलायमान कुल पर पुनः 77 को जोड़ा गया, परिणामस्वरूप 154 हो गए.

उपयोगकर्ता साफ़ करें बटन का चयन करता है.
कुल साफ़ हो गया. चलायमान कुल को 0 पर रीसेट किया गया.

हमारी जोड़ने वाली मशीन ऐसी चीज़ का उपयोग करती है जो Excel में मौजूद नहीं है: एक बटन का. इस ऐप में, आप चलायमान कुल की गणना के लिए केवल सूत्रों का उपयोग नहीं कर सकते, क्योंकि इसका मान उपयोगकर्ता द्वारा की जाने वाली क्रियाओं की एक श्रृंखला पर निर्भर करता है. इसके बजाय, हमारे चलायमान कुल को रिकॉर्ड किया जाना चाहिए और मैन्युअल रूप से अद्यतन किया जाना चाहिए. इस जानकारी में अधिकांश प्रोग्रामिंग उपकरण चर में संग्रहीत होते हैं.

आपको कभी-कभी मनचाहे तरीके के कार्य करने के लिए अपने ऐप के लिए एक चर की आवश्यकता होगी. लेकिन यह दृष्टिकोण एक चेतावनी के साथ आता है:

  • आपको चलायमान कुल को मैन्युअल रूप से अद्यतन करना होगा. स्वचालित पुनर्गणना आपके लिए यह कार्य नहीं करेगी.
  • चलायमान कुल की गणना अब अन्य नियंत्रणों के मानों के आधार पर नहीं की जा सकती. यह इस बात पर निर्भर करता है कि उपयोगकर्ता ने कितनी बार जोड़ें बटन का चयन किया है, और प्रत्येक बार पाठ-इनपुट नियंत्रण में कौन-कौन से मान थे. क्या उपयोगकर्ता ने दो बार 77 दर्ज किया और जोड़ें चयन किया था, या उन्होंने प्रत्येक जोड़ के लिए 24 और 130 निर्दिष्ट किया था? आप कुल 154 तक पहुँचने के बाद अंतर नहीं बता सकते.
  • कुल में परिवर्तन विभिन्न पथों से आ सकता है. इस उदाहरण में, जोड़ें और साफ़ करें दोनों बटन कुल का अद्यतन कर सकते हैं. यदि ऐप आपकी अपेक्षा के अनुरूप व्यवहार नहीं करता, तो कौन सा बटन समस्या पैदा कर रहा है?

एक ग्लोबल चर का उपयोग करें

हमारी जोड़ने की मशीन बनाने के लिए, हमें ऐसे चर की आवश्यकता होती है, जो चलायमान कुल को होल्ड कर सके. Power Fx के भीतर कार्य करने के लिए सबसे सरल चर ग्लोबल चर हैं.

ग्लोबल चर कैसे कार्य करते हैं:

  • आप ग्लोबल चर का मान Set फ़ंक्शन से सेट करते हैं. Set( MyVar, 1 ) ग्लोबल चर MyVar को मान 1 पर सेट करता है.
  • आप Set फ़ंक्शन से उपयोग किए गए नाम को संदर्भित करते हुए ग्लोबल चर का उपयोग करते हैं. इस मामले में, MyVar1 देगा.
  • ग्लोबल चर किसी भी मान को होल्ड कर सकते हैं, जिसमें स्ट्रिंग, संख्याएँ, रिकॉर्ड, और तालिकाएँ शामिल हैं.

आइए एक ग्लोबल चर के उपयोग द्वारा अपनी जोड़ने वाली मशीन का पुनर्निर्माण करें:

  1. एक पाठ-इनपुट नियंत्रण नामतः TextInput1, और दो बटन, नामतः Button1 और Button2 जोड़ें.

  2. Button1 के पाठ गुण को "जोड़ें" पर सेट करें और Button2 के पाठ गुण को "साफ करें" पर सेट करें.

  3. चल रहे योग को अद्यतन करने के लिए जब भी कोई उपयोगकर्ता जोड़ें बटन चुनता है, तो OnSelect गुण को इस फॉर्मूला पर सेट करें:

    सेट करें (रनिंगटोटल, रनिंगटोटल + टेक्स्टइनपुट1.टेक्स्ट)

    इस सूत्र के अस्तित्व ही से RunningTotal एक ग्लोबल चर के रूप में स्थापित होता है, जो + ऑपरेटर के कारण एक संख्या को होल्ड रखता है. आप ऐप में कहीं भी RunningTotal संदर्भित कर सकते हैं. जब भी उपयोगकर्ता इस ऐप को खोलता है, तब RunningTotal का प्रारंभिक मान रिक्त होता है.

    जब उपयोगकर्ता प्रथम बार जोड़ें बटन का चयन करता है, और Set चलता है, तो RunningTotal मान RunningTotal + TextInput1 पर सेट होता है.

    जोड़ें बटन के OnSelect गुण को Set फंक्शन पर सेट किया गया है.

  4. चल रहे योग को 0 पर सेट करने के लिए जब भी उपयोगकर्ता साफ करें बटन चुनते हैं, तो OnSelect गुण को इस फॉर्मूला पर सेट करें:

    Set( RunningTotal, 0 )

    साफ़ करें बटन के OnSelect गुण को Set फंक्शन पर सेट किया गया है.

  5. एक लेबल नियंत्रण जोड़ें और इसके पाठ गुण को RunningTotal पर सेट करें.

    इस सूत्र की पुनर्गणना स्वचालित रूप से हो जाएगी और उपयोगकर्ता को इसके परिवर्तनों के रूप में RunningTotal का मान दिखाई देगा, जो उपयोगकर्ता द्वारा चयनित बटनों के आधार पर होगा.

    लेबल का पाठ गुण चर के नाम पर सेट है.

  6. ऐप का पूर्वावलोकन करें, और ऊपर वर्णित हमारी जोड़ने वाली मशीन हमारे पास मौजूद है. पाठ बॉक्स में एक संख्या दर्ज करें और कई बार जोड़ें बटन दबाएँ. तैयार होने पर, Esc कुंजी का उपयोग करके लेखन अनुभव पर वापस लौटें.

    पाठ-इनपुट नियंत्रण में एक मान होता है, और लेबल में चलायमान कुल शामिल होता है.

  7. ग्लोबल चर का मान दिखाने के लिए, फ़ाइल मेनू का चयन करें, और बाएँ हाथ के फलक में चर चयन करें.

    फ़ाइल मेनू में चर विकल्प.

  8. जिन स्थानों पर चर परिभाषित और उपयोग किए गए हैं, उन सभी स्थानों को दिखाने के लिए, इसका चयन करें.

    उस स्थान की सूची, जहाँ चर का उपयोग किया गया है.

चरों के प्रकार

Power Fx के पास दो प्रकार के वेरिएबल होते हैं:

चर प्रकार Scope विवरण स्थापित करने वाले फ़ंक्शन
ग्लोबल चर ऐप उपयोग में सरलतम. संख्या, पाठ स्ट्रिंग, बूलियन, रिकॉर्ड, तालिका आदि को होल्ड करता है, जिसे ऐप में कहीं से भी संदर्भित किया जा सकता है. Set
संग्रह App एक तालिका होल्ड करता है, जिसे ऐप में कहीं से भी संदर्भित किया जा सकता है. तालिका की सामग्री को संपूर्ण के रूप में सेट किए जाने के बजाए संशोधित किए जाने की अनुमति देता है. बाद में उपयोग के लिए स्थानीय डिवाइस पर सहेजा जा सकता है. Collect
ClearCollect

जब Power Apps में उपयोग किया जाता है, तो एक तीसरे प्रकार का चर होता है:

चर प्रकार Scope विवरण स्थापित करने वाले फ़ंक्शन
संदर्भ चर स्क्रीन स्क्रीन पर मानों को पास करने के लिए शानदार, बहुत कुछ अन्य भाषाओं में एक प्रक्रिया पर पैरामीटर जैसा. केवल एक स्क्रीन से संदर्भित किया जा सकता है. UpdateContext
Navigate

चर बनाएँ और निकालें

जब चर Set, UpdateContext, Navigate, Collect, या ClearCollect फ़ंक्शन में दिखाई देते हैं, तो सभी चर अंतर्निहित रूप से बनाए जाते हैं. एक चर और उसके प्रकार की घोषणा करने के लिए, आपको इसे अपने ऐप में कहीं भी किसी भी फ़ंक्शन में केवल शामिल करना होगा. इनमें से कोई भी फ़ंक्शन चर नहीं बनाता; वे केवल चरों को मानों से भरते हैं. आप चरों को स्पष्ट रूप से घोषित नहीं करते, क्योंकि आप किसी अन्य प्रोग्रामिंग उपकरण में हो सकते हैं और सभी टाइपिंग उपयोग से अंतर्निहित होती हैं.

उदाहरण के लिए, आपके पास बटन नियंत्रण हो सकता है, जिसमें OnSelect सूत्र Set( X, 1 ) के बराबर है. यह सूत्र X को एक चर के रूप में स्थापित करता है, जिसका प्रकार संख्या है. आप सूत्रों में X का उपयोग एक संख्या के रूप में कर सकते हैं, और आपके ऐप खोलने के बाद, परंतु आपके बटन चयन करने से पहले उस चर का मान रिक्त होता है. जब आप बटन का चयन करते हैं, तो X को मान 1 देते हैं.

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

आप किसी चर को अंतर्निहित रूप से स्थापित करने वाले सभी Set, UpdateContext, Navigate, Collect, या ClearCollect फ़ंक्शन को निकालकर उस चर को निकालते हैं. इन फ़ंक्शन के बिना, चर का अस्तित्व नहीं होता. आपको चर के किसी भी संदर्भ को हटाना होगा, क्योंकि उनके कारण एक त्रुटि होगी.

चर जीवनकाल और प्रारंभिक मान

ऐप के चलने के दौरान सभी चर मेमोरी में होल्ड किए जाते हैं. ऐप के बंद होने के बाद, चरों द्वारा होल्ड किए गए मान खो जाते हैं.

आप Patch या Collect फ़ंक्शन के उपयोग द्वारा चर की सामग्री को डेटा स्रोत में संग्रहीत कर सकते हैं. आप SaveData फ़ंक्शन के उपयोग द्वारा संग्रहों के मानों को स्थानीय डिवाइस पर भी संग्रहीत कर सकते हैं.

जब उपयोगकर्ता ऐप खोलता है, तो सभी चरों का प्रारंभिक मान रिक्त होता है.

चरों को पढ़ना

आप चर का मान पढ़ने के लिए उसके नाम का उपयोग करते हैं. उदाहरण के लिए, आप एक चर को इस सूत्र से परिभाषित कर सकते हैं:

Set( Radius, 12 )

फिर आप जिन स्थानों पर एक संख्या का उपयोग कर सकते हैं, वहाँ किसी भी स्थान पर Radius का उपयोग कर सकते हैं, और वह 12 द्वारा प्रतिस्थापित कर दिया जाएगा:

Pi() * Power( Radius, 2 )

यदि आप एक संदर्भ चर को ग्लोबल चर या संग्रह के समान नाम देते हैं, तो संदर्भ चर वरीयता लेता है. तथापि, यदि आप बहुविकल्पी ऑपरेटर[@Radius] का उपयोग करते हैं, तो आप अभी भी ग्लोबल वेरिएबल या संग्रह को संदर्भित कर सकते हैं.

किसी संदर्भ चर का उपयोग करें (केवल Power Apps)

आइए, देखें कि हमारी जोड़ने वाली मशीन एक ग्लोबल चर के बजाय एक संदर्भ चर के उपयोग द्वारा कैसे बनाई जाएगी.

संदर्भ चर कैसे कार्य करते हैं:

  • आप UpdateContext या नेविगेट करें फ़ंक्शन का उपयोग करके संदर्भ चर को अनुमान से स्थापित और सेट करते हैं. जब ऐप प्रारंभ होता है, तो सभी संदर्भ चरों का एक प्रारंभिक मान रिक्त होता है.
  • आप संदर्भ चरों को रिकॉर्ड के साथ अद्यतन करते हैं. अन्य प्रोग्रामिंग उपकरणों में, आप असाइनमेंट के लिए सामान्यतः "=" का उपयोग करते हैं, जैसा कि "x = 1" में करते हैं. संदर्भ चर के लिए, इसके बजाय { x: 1 } का उपयोग करें. जब आप एक संदर्भ चर का उपयोग करते हैं, तो रिकॉर्ड सिंटैक्स के बिना सीधे उसके नाम का उपयोग करें.
  • जब आप स्क्रीन दिखाने के लिए नेविगेट करें फ़ंक्शन का उपयोग करते हैं, तो आप संदर्भ चर भी सेट कर सकते हैं. यदि आप एक स्क्रीन को एक प्रक्रिया या सबरूटीन के प्रकार मानकर सोचते हैं, तो यह दृष्टिकोण अन्य प्रोग्रामिंग उपकरणों में पास होने वाले पैरामीटर जैसा दिखाई देता है.
  • नेविगेट करें को छोड़कर, संदर्भ चर एकल स्क्रीन के संदर्भ तक सीमित हैं, जहां उनको उनका नाम दिया जाता है. आप उन्हें इस संदर्भ के बाहर उपयोग या सेट नहीं कर सकते.
  • संदर्भ चर किसी भी मान को होल्ड कर सकते हैं, जिसमें स्ट्रिंग, संख्याएँ, रिकॉर्ड, और तालिकाएँ शामिल हैं.

आइए, एक संदर्भ चर के उपयोग द्वारा हमारी जोड़ने वाली मशीन का पुनर्निर्माण करें:

  1. एक पाठ-इनपुट नियंत्रण नामतः TextInput1, और दो बटन, नामतः Button1 और Button2 जोड़ें.

  2. Button1 के पाठ गुण को "जोड़ें" पर सेट करें और Button2 के पाठ गुण को "साफ करें" पर सेट करें.

  3. चल रहे योग को अद्यतन करने के लिए जब भी कोई उपयोगकर्ता जोड़ें बटन चुनता है, तो OnSelect गुण को इस फॉर्मूला पर सेट करें:

    अपडेटकॉन्टेक्स्ट( { RunningTotal: RuningTotal + TextInput1.Text } )

    इस सूत्र के अस्तित्व ही से RunningTotal एक संदर्भ चर के रूप में स्थापित होता है, जो + ऑपरेटर के कारण एक संख्या को होल्ड रखता है. आप इस स्क्रीन में कहीं भी RunningTotal संदर्भित कर सकते हैं. जब भी उपयोगकर्ता इस ऐप को खोलता है, तब RunningTotal का प्रारंभिक मान रिक्त होता है.

    जब उपयोगकर्ता प्रथम बार जोड़ें बटन का चयन करता है, और UpdateContext चलता है, तो RunningTotal मान RunningTotal + TextInput1 पर सेट होता है.

    जोड़ें बटन की ऑनसेलेक्ट प्रॉपर्टी।

  4. चल रहे योग को 0 पर सेट करने के लिए जब भी उपयोगकर्ता साफ करें बटन चुनते हैं, तो OnSelect गुण को इस फॉर्मूला पर सेट करें:

    UpdateContext( { RunningTotal: 0 } )

    पुनः UpdateContext का उपयोग सूत्र UpdateContext( { RunningTotal: 0 } ) के साथ किया जाता है.

    क्लियर बटन की ऑनसेलेक्ट प्रॉपर्टी।

  5. एक लेबल नियंत्रण जोड़ें और इसके पाठ गुण को RunningTotal पर सेट करें.

    इस सूत्र की पुनर्गणना स्वचालित रूप से हो जाएगी और उपयोगकर्ता को इसके परिवर्तनों के रूप में RunningTotal का मान दिखाई देगा, जो उपयोगकर्ता द्वारा चयनित बटनों के आधार पर होगा.

    लेबल का पाठ गुण.

  6. ऐप का पूर्वावलोकन करें, और ऊपर वर्णित हमारी जोड़ने वाली मशीन हमारे पास मौजूद है. पाठ बॉक्स में एक संख्या दर्ज करें और कई बार जोड़ें बटन दबाएँ. तैयार होने पर, Esc कुंजी का उपयोग करके लेखन अनुभव पर वापस लौटें.

    पाठ-इनपुट नियंत्रण एक मान दिखाता है, और लेबल चलायमान कुल दिखाता है.

  7. आप स्क्रीन पर नेविगेट करते समय आप एक संदर्भ चर का मान सेट कर सकते हैं. यह "संदर्भ" या "पैरामीटर" को एक स्क्रीन से दूसरे स्क्रीन पर पास करने के लिए उपयोगी होता है. इस तकनीक को प्रदर्शित करने के लिए, एक स्क्रीन सम्मिलित करें, एक बटन सम्मिलित करें, और इसके OnSelect गुण को इस सूत्र पर सेट करें:

    Navigate( Screen1, None, { RunningTotal: -1000 } )

    एक बटन का OnSelect गुण.

    जब आप Screen1 दिखाने, और संदर्भ चर RunningTotal को -1000 पर सेट करने, दोनों का चयन करते हैं, तो उस समय Alt कुंजी दबाए रखें.

    Screen1 खुला है.

  8. संदर्भ चर का मान दिखाने के लिए, फ़ाइल मेनू का चयन करें, और फिर बाएँ हाथ के फलक में चर चयन करें.

    फ़ाइल मेनू पर चर विकल्प.

  9. जिन स्थानों पर संदर्भ चर परिभाषित और उपयोग किए गए हैं, उन्हें दिखाने के लिए, इसका चयन करें.

    उस स्थान की सूची, जहाँ एक चर का उपयोग किया गया है.

संग्रह का उपयोग करें

अंततः, आइए एक संग्रह के साथ हमारी जोड़ने वाली मशीन बनाने पर नज़र डालें. चूँकि एक संग्रह एक तालिका होल्ड करता है जिसे संशोधित करना आसान है, अतः हम इस जोड़ने वाली मशीन को इस प्रकार बनाएँगे कि प्रत्येक मान के दर्ज किए जाते ही, वह उनका एक "पेपर टेप" रखती है.

संग्रह कैसे कार्य करते हैं:

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

आइए, एक संग्रह के उपयोग द्वारा हमारी जोड़ने वाली मशीन को पुनः बनाएँ:

  1. एक पाठ इनपुट नियंत्रण नामतः TextInput1, और दो बटन, नामतः Button1 और Button2 जोड़ें.

  2. Button1 के पाठ गुण को "जोड़ें" पर सेट करें और Button2 के पाठ गुण को "साफ करें" पर सेट करें.

  3. चल रहे योग को अद्यतन करने के लिए जब भी कोई उपयोगकर्ता जोड़ें बटन चुनता है, तो OnSelect गुण को इस फॉर्मूला पर सेट करें:

    Collect( PaperTape, TextInput1.Text )

    इस सूत्र का मात्र अस्तित्व से ही PaperTape एक संग्रह के रूप स्थापित हो जाता है, जो पाठ स्ट्रिंग की एकल-स्तंभ तालिका होल्ड करता है. आप इस ऐप में कहीं भी PaperTape संदर्भित कर सकते हैं. जब भी कोई उपयोगकर्ता इस ऐप को खोलता है, PaperTape एक रिक्त तालिका होती है.

    जब यह सूत्र चलता है, तो यह संग्रह के अंत में नया मान जोड़ता जाता है. चूँकि हम एकल मान जोड़ रहे हैं, अतः Collect स्वचालित रूप से इसे एकल-स्तंभ तालिका में रखता है, और स्तंभ का नाम है Value है, जिसका उपयोग आप बाद में करेंगे.

    ऑनसेलेक्ट प्रॉपर्टी जोड़ें बटन।

  4. जब उपयोगकर्ता साफ़ करें बटन का चयन करता है, तब पेपर टेप साफ़ करने के लिए, इसके OnSelect गुण को इस सूत्र पर सेट करें:

    Clear( PaperTape )

    ऑनसेलेक्ट प्रॉपर्टी क्लियर बटन।

  5. चलायमान कुल प्रदर्शित करने के लिए, एक लेबल जोड़ें, और इसके पाठ गुण को इस सूत्र पर सेट करें:

    Sum( PaperTape, Value )

    टेक्स्ट प्रॉपर्टी लेबल.

  6. जोड़ने वाली मशीन चलाने के लिए, पूर्वावलोकन खोलने के लिए F5 दबाएँ, पाठ-इनपुट नियंत्रण में संख्याएँ दर्ज करें, और बटन चयन करें.

    पाठ-इनपुट नियंत्रण एक मान दर्शाता है, और लेबल चलायमान कुल दर्शाता है.

  7. डिफ़ॉल्ट कार्यस्थान पर वापस लौटने के लिए, Esc कुंजी दबाएँ.

  8. पेपर टेप प्रदर्शित करने के लिए, एक डेटा तालिका नियंत्रण सम्मिलित करें और उसके आइटम गुण को इस सूत्र पर सेट करें:

    PaperTape

    दाएं-हाथ के फलक में, फ़ील्ड संपादित करें चुनें और फिर फ़ील्ड जोड़ें चुनें, मान कॉलम चुनें और फिर इसे दिखाने के लिए जोड़ें का चयन करें.

    डेटा तालिका, जो संग्रह में जोड़े गए मानों को दिखाती है.

  9. आपके संग्रह में मानों को देखने के लिए, फ़ाइल मेनू पर संग्रह का चयन करें.

    PaperTape संग्रह का पूर्वावलोकन.

  10. अपने संग्रह को संग्रहीत और पुनर्प्राप्त करने के लिए, दो अतिरिक्त बटन नियंत्रण जोड़ें, और उनके पाठ गुण को लोड करें और सहेजें पर सेट करें. लोड करें बटन के OnSelect गुण को इस सूत्र पर सेट करें:

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    आपको पहले यह संग्रह खाली करना होगा, क्योंकि LoadData संग्रहीत मानों को संग्रह के अंत में जोड़ देगा.

    ऑनसेलेक्ट प्रॉपर्टी लोड बटन।

  11. सहेजें बटन के OnSelect गुण को इस सूत्र पर सेट करें:

    SaveData( PaperTape, "StoredPaperTape" )

    ऑनसेलेक्ट प्रॉपर्टी सेव बटन।

  12. F5 कुंजी दबा कर पुनः पूर्वावलोकन करें, पाठ-इनपुट नियंत्रण में संख्याएँ दर्ज करें, और बटन चयन करें. सहेजें बटन का चयन करें. ऐप बंद करें और पुनः लोड करें, और अपने संग्रह को पुनः लोड करने के लिए लोड करें बटन का चयन करें.