netsuite
सहेजे गए खोजों में सूत्र स्तंभों का शोषण
खोज…
परिचय
Netsuite फॉर्मूला में Oracle SQL CASE स्टेटमेंट
CASE स्टेटमेंट का उपयोग करते हुए, दूसरे कॉलम में पाए गए मानों के आधार पर कॉलम में एक अभिव्यक्ति को सशर्त रूप से प्रदर्शित करें, उर्फ "मेरा राज्य एक के लिए"। उदाहरण में, परिणाम प्राप्त होता है जब लेनदेन की स्थिति Pending Fulfillment
या Partially Fulfilled
:
CASE DECODE( {status}, 'Pending Fulfillment', 1, 'Partially Fulfilled', 1, 0 )
WHEN 1 THEN
अभिव्यक्ति -1
END
एक नियमित अभिव्यक्ति का उपयोग करके एक पदानुक्रमित रिकॉर्ड नाम पार्स करना
एक नियमित अभिव्यक्ति का उपयोग करते हुए, एक रिकॉर्ड नाम पार्स करें जो पदानुक्रमित हो सकता है। नाम में अंतिम बृहदान्त्र के लिए अभिव्यक्ति दिखती है। यह लौटता है जो बृहदान्त्र या पूरे नाम का अनुसरण करता है यदि कोई नहीं:
regexp_substr( {name} , '[^:]*$' )
कई क्षेत्रों को समेट कर एक जटिल स्ट्रिंग बनाएँ
उदाहरण पैरेंट रिकॉर्ड के नाम, इस रिकॉर्ड के नाम और इस रिकॉर्ड के ज्ञापन से एक स्ट्रिंग बनाता है।
{createdfrom} || ' ' || {name} || ' ' || {memo}
DIV तत्व सम्मिलित करके एक कॉलम के लिए CSS (स्टाइलशीट) को कस्टमाइज़ करें
'<div style="font-size:11pt">' ||
अभिव्यक्ति || '</div>'
स्ट्रिंग फ़ार्मुलों को भ्रष्टाचार और इंजेक्शन हमलों से बचाएं
स्ट्रिंग सूत्र फ़ील्ड में, विचार करें कि कुछ मानों में सबस्ट्रिंग हो सकते हैं जो HTML जैसे ब्राउज़र को देखते हैं। जब तक यह जानबूझकर नहीं है, तब तक मूल्यों को भ्रष्टाचार से बचाना महत्वपूर्ण है। इंजेक्शन के हमलों से बचने के लिए यह उपयोगी है: यह किसी को एक वेब क्रम में टिप्पणी फ़ील्ड में HTML दर्ज करने से रोकता है जिसे बाद में ग्राहक सेवा प्रतिनिधि के डेस्क पर व्याख्या की जाती है।
htf.escape_sc(
अभिव्यक्ति )
URL से गुजरते समय फ़ील्ड मानों को भ्रष्टाचार से बचाएं
utl_url.escape(
अभिव्यक्ति )
SQL मामले विवरण में `mainline` के मूल्य का परीक्षण करें
सहेजे गए खोज सूत्र में, mainline
के संभावित मानों को HTML संदर्भ में उपयोगी बनाया गया है। जब mainline
सही होती है, तो {mainline}
का मान 1-कैरेक्टर स्ट्रिंग *
(तारांकन) होता है। जब mainline
झूठी होती है, तो {mainline}
का मान 6-वर्ण स्ट्रिंग
(गैर-ब्रेकिंग स्पेस, HTML एक चरित्र इकाई संदर्भ के रूप में एन्कोडेड)। इन स्ट्रिंग मानों की तुलना SQL संदर्भ में स्ट्रिंग शाब्दिकों से की जा सकती है।
CASE
WHEN {mainline} = '*' THEN
अभिव्यक्ति-जब-सच है
WHEN {mainline} = ' ' THEN
अभिव्यक्ति-जब-झूठी
END
जटिल, वास्तविक दुनिया जैसी मिसाल
निम्नलिखित उदाहरण यहां कवर की गई कई तकनीकों को जोड़ती है। यह एक कस्टम स्वरूपित कॉलम में एक हाइपरलिंक डालता है, जिस पर क्लिक करने पर, पंक्ति के साथ जुड़ा बिक्री ऑर्डर रिकॉर्ड खुल जाता है। हाइपरलिंक को क्लिक करने पर एक नई विंडो या टैब में रिकॉर्ड खोलने और होवर किए जाने पर टूलटिप प्रदर्शित करने के लिए डिज़ाइन किया गया है। URL में उपयोग किया जाने वाला internalid
क्षेत्र URL एन्कोडिंग से सुरक्षित है। उपलब्ध होने पर ग्राहक का नाम, HTML एन्कोडिंग से सुरक्षित उसी कॉलम में प्रदर्शित किया जाता है।
'<div style="font-size:11pt">'
||
CASE {mainline}
WHEN '*' THEN '<br>' || htf.escape_sc( regexp_substr( {name} , '[^:]*$' ) ) || '<br>'
END
||
'<a alt="" title="Open the order associated with this line." '
||
'href="javascript:void(0);" onClick="window.open('''
||
'https://system.na1.netsuite.com/app/accounting/transactions/transaction.nl?id='
||
utl_url.escape( {internalid} )
||
''' , ''_blank'' )">'
||
{number}
||
'</a>'
||
'</div>'
किसी फ़ील्ड में दिए गए मान के साथ और उसके बिना रिकॉर्ड की गणना करें (लापता और गैर-अनुपस्थित मानों की गणना करें)
Oracle SQL के NVL2()
फ़ंक्शन का उपयोग करके, आप एक प्रदर्शन कॉलम बना सकते हैं जिसमें एक मान होता है यदि एक फ़ील्ड में डेटा होता है और एक फ़ील्ड में डेटा नहीं होने पर दूसरा मान होता है। उदाहरण के लिए, एक इकाई खोज में, एक प्राथमिक ई-मेल पते की उपस्थिति को एक पाठ प्रदर्शन कॉलम में बदल दें:
NVL2( {email} , 'YES' , 'NO' )
यह आपको ईमेल पते की उपस्थिति या अनुपस्थिति से उप-रिकॉर्ड रिकॉर्ड करने देता है:
Field: Internal ID
Summary Type: Count
Field: Formula (Text)
Summary Type: Group
Formula: NVL2( {email} , 'YES' , 'NO' )