netsuite
Utnyttja formelkolumner i sparade sökningar
Sök…
Introduktion
Oracle SQL CASE-uttalande i en Netsuite-formel
Med hjälp av ett CASE-uttalande kan du villkorligt visa ett uttryck i kolumnen baserat på värden som finns i en annan kolumn, alias "mitt rike för en OR". I exemplet erhålls resultatet när transaktionens status är Pending Fulfillment
eller Partially Fulfilled
:
CASE DECODE( {status}, 'Pending Fulfillment', 1, 'Partially Fulfilled', 1, 0 )
WHEN 1 THEN
uttryck-1
END
Analysera ett hierarkiskt postnamn med ett vanligt uttryck
Använd ett vanligt uttryck och analysera ett postnamn som kan vara hierarkiskt. Uttrycket letar efter den sista kolon i namnet. Det returnerar vad som följer kolon, eller hela namnet om inget:
regexp_substr( {name} , '[^:]*$' )
Bygg en komplex sträng genom att sammanfoga flera fält
Exemplet bygger en sträng från namnet på överordnad post, namnet på denna post och memo för denna post.
{createdfrom} || ' ' || {name} || ' ' || {memo}
Anpassa CSS (stilark) för en kolumn genom att infoga ett DIV-element
'<div style="font-size:11pt">' ||
uttryck || '</div>'
Skydda strängformler från korruption och injektionsattacker
I ett strängformulärfält, tänk på att vissa värden kan innehålla underlag som ser till webbläsaren som HTML. Om inte detta är avsiktligt är det viktigt att skydda värdena mot korruption. Detta är användbart för att undvika injektionsattacker: det förhindrar att någon skriver HTML i ett kommentarfält i en webborder som senare tolkas på skrivbordet hos kundservicerepresentanten.
htf.escape_sc(
uttryck )
Skydda fältvärden från korruption när du går igenom en URL
utl_url.escape(
uttryck )
Testa värdet på "mainline" i ett SQL CASE-uttalande
I en sparad sökformel är de möjliga värdena på mainline
utformade för att vara användbara i ett HTML-sammanhang. När mainline
är sant är värdet på {mainline}
strängen med 1 tecken *
(asterisk). När mainline
är falsk är värdet på {mainline}
6-teckensträngen
(icke-brytande utrymme, HTML kodat som en karaktärsreferens). Dessa strängvärden kan jämföras med strängbokstäver i ett SQL-sammanhang.
CASE
WHEN {mainline} = '*' THEN
uttryck-när-sant
WHEN {mainline} = ' ' THEN
uttryck-när-falsk
END
Komplexa verkliga exempel
Följande exempel kombinerar flera av de tekniker som behandlas här. Den sätter en hyperlänk i en anpassad formaterad kolumn som, när man klickar på, öppnar försäljningsorderposten som är associerad med en rad. Hyperlänken är utformad för att öppna posten i ett nytt fönster eller flik när du klickar på det, och för att visa ett verktygstips när du håller muspekaren. Det internalid
fältet som används i URL: n är skyddat från URL-kodning. Kundnamnet, när det är tillgängligt, visas i samma kolumn, skyddad från HTML-kodning.
'<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>'
Räkna poster med och utan ett värde som anges i ett fält (räkna saknade och icke-saknade värden)
Med hjälp av Oracle NVL2()
-funktion kan du skapa en visningskolumn som innehåller ett värde om ett fält innehåller data och ett annat värde om ett fält inte innehåller data. Till exempel, i en enhetssökning, förvandla närvaron av en primär e-postadress till en textvisningskolumn:
NVL2( {email} , 'YES' , 'NO' )
Detta gör att du kan räkna poster subtalerade av närvaron eller frånvaron av en e-postadress:
Field: Internal ID
Summary Type: Count
Field: Formula (Text)
Summary Type: Group
Formula: NVL2( {email} , 'YES' , 'NO' )