Поиск…


Вступление

В столбцах столбцов в сохраненных результатах поиска можно использовать многие функции Oracle SQL и HTML. Примеры показывают, как эти функции могут быть использованы, а также ошибки, которых следует избегать.

Оператор Oracle SQL CASE в формуле Netsuite

Используя оператор CASE, условно выведите выражение в столбце на основе значений, найденных в другом столбце, например «мое царство для OR». В этом примере результат получается, когда статус транзакции находится в 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}

Настройте CSS (таблицу стилей) для столбца, вставив элемент DIV

'<div style="font-size:11pt">' || выражение || '</div>'

Защита строковых формул от коррупции и инъекций

В поле формулы строчки учтите, что некоторые значения могут содержать подстроки, которые выглядят в браузере подобно HTML. Если это не преднамеренно, важно защитить ценности от коррупции. Это полезно, чтобы избежать атак инъекций: он не позволяет кому-то вводить HTML в поле комментариев в веб-заказе, который позже интерпретируется на столе представителя службы поддержки клиентов.

htf.escape_sc( выражение )

Защищать значения полей от коррупции при прохождении через URL-адрес

utl_url.escape( выражение )

Проверьте значение `mainline` в выражении SQL CASE

В сохраненной формуле поиска возможные значения mainline предназначены для использования в контексте HTML. Когда mainline истинно, значением {mainline} является 1-символьная строка * (звездочка). Когда mainline false, значение {mainline} - это 6-символьная строка &nbsp; (неразрывное пространство, HTML кодируется как ссылка на символ). Эти строковые значения можно сравнить со строковыми литералами в контексте SQL.

CASE
WHEN {mainline} = '*' THEN выражение-когда-true
WHEN {mainline} = '&nbsp;' THEN выражение-когда-false
END

Комплексный, похожий на реальный пример

Следующий пример объединяет несколько методов, рассмотренных здесь. Он помещает гиперссылку в пользовательский форматированный столбец, который при щелчке открывает запись заказа клиента, связанную со строкой. Гиперссылка предназначена для открытия записи в новом окне или вкладке при нажатии и отображения всплывающей подсказки при зависании. Поле internalid используемое в URL-адресе, защищено от кодирования 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>'

Записывайте записи с помощью и без значения, указанного в поле (количество отсчетов отсутствует и не пропущенные значения)

Используя функцию NVL2() Oracle SQL, вы можете создать столбец отображения, который содержит одно значение, если поле содержит данные и другое значение, если поле не содержит данных. Например, в поиске Entity переведите присутствие первичного адреса электронной почты в столбец отображения текста:

NVL2( {email} , 'YES' , 'NO' )

Это позволяет подсчитывать записи, подсчитанные по наличию или отсутствию адреса электронной почты:

Field: Internal ID
Summary Type: Count

Field: Formula (Text)
Summary Type: Group
Formula: NVL2( {email} , 'YES' , 'NO' )


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow