Friday, 15 July 2011

javascript - Time-driven trigger not working in Google Spreadsheet -


मेरे पास एक सरल कोड है जो निम्न प्रकार की तरह दिखता है:

  function setValue () {var Col = "E"; Var sh = स्प्रेडशीट ऐप.टैक्टिव स्प्रेडशीट (); Var मान = sh.getRange ("शीट 2!" + कोला + "1:" + कोला) .getValues ​​() var सीटी = 0; जबकि (मान [सीटी] [0]! = "") {सीटी ++; } सीटी ++; Sh.getRange (col + ct) .setValue (गणित.फ़्लूर ((मठ। यादृच्छिक () * 10) + 1)); };  

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

स्क्रिप्ट संपादक ... -> संसाधन -> आपके सभी ट्रिगर -> समय-चालित -> मिनट टाइमर < / Em>

और यहां तक ​​कि यह कोड भी डाल:

  ScriptApp.newTrigger ("setValue")। Timebased ()। बाद (1 * 60 * 1000) .create ( );  

जो hypothetically कार्य को ट्रिगर करने के लिए एक मिनट के बाद एक निश्चित समय बीत चुका है। इनमें से कोई भी काम नहीं है, और मुझे पता नहीं क्यों क्या इस समारोह में हर मिनट आग लगाने का कोई अन्य तरीका है? चूंकि समारोह में परिवर्तन पर भी (लेकिन यह केवल एक वैकल्पिक) है, वहाँ एक स्क्रिप्ट है जो उत्पादन और परिवर्तन पर शीट पर प्रभाव जो अंततः इस फ़ंक्शन को ट्रिगर करेगा

फ़ंक्शन को setValue () के अलावा कोई अन्य नाम दें , क्योंकि यह एपीआई में पहले से ही एक विधि नाम है, जो शायद कंपाइलर को भ्रमित करता है।

आप ट्रिगर मेनू का उपयोग करने में सक्षम होना चाहिए, आपका कोड बस ठीक करने के बाद मैं फ़ंक्शन का नाम बदल चुका हूं।

बीटीडब्ल्यू आप हर मिनिट्स () विधि चाहते हैं यदि आप इसे प्रोग्रामेटिक रूप से करना चाहते हैं।

  ScriptApp.newTrigger ("myfunction") .timebased () .everyMinutes (1) ।सर्जन करना();  

और अगर आप चाहते हैं कि इस फ़ंक्शन को आग लग जाए तो स्प्रेडशीट में कोई परिवर्तन हो, तो आप केवल

  फ़ंक्शन पर एडिट (ई) {myfunction () का उपयोग करेंगे ; }  

No comments:

Post a Comment