Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Удаление символа в BI Publisher  [new]
3ePuK
Member

Откуда:
Сообщений: 4
Всем привет.
Просьба подсказать как можно удалить последний символ из полученного результата в BI Publisher?
Для получения результата у меня используется следующее выражение:
<?for-each@inlines: Phone[PhActFlg='Y']?><?PhoneNum?>, <?end for-each?><?for-each@inlines: Email[EmFlg='Y']?><?Email?>, <?end for-each?><?for-each@inlines: Address[AddrType='5']?><?Address?>, <?end for-each?>
Причем в результате может быть как 10 записей, так и ни одной. Мне требуется удалить последнюю запятую, которая будет даже при выводе одной записи.
20 май 19, 16:33    [21889019]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
K790
Member

Откуда:
Сообщений: 634
3ePuK,

trim не подойдет?
<?xdoxslt:rtrim(field,',')?>
20 май 19, 16:54    [21889033]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
3ePuK
Member

Откуда:
Сообщений: 4
K790,

у меня не получилось, так как все мое выражение не считывается командой rtrim, либо я неправильно написал синтаксис:
<?xdoxslt:rtrim(<?for-each@inlines: Phone [PhoneActiveFlg=’Y’]?><?PhoneNum?>, <?end for-each?><?for-each@inlines: Email?><?EmailAddr?>, <?end for-each?><?for-each@inlines: Addresses[AddressType=’6’]?><? Address?>, <?end for-each?>,',')?>
21 май 19, 10:45    [21889497]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
K790
Member

Откуда:
Сообщений: 634
3ePuK,

функция применяется к атрибуту, а не ко всей строке.
21 май 19, 11:46    [21889556]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
3ePuK
Member

Откуда:
Сообщений: 4
K790,

В том и проблема, что я не могу найти функцию, которая бы изменила результирующую строку...
21 май 19, 11:56    [21889570]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
K790
Member

Откуда:
Сообщений: 634
3ePuK,

"пораскиньте" уже мозгами, как варианты:
итерацию цикла писать в переменную(variable) и trim.
каждое поле проверить на null и trim + последнее поле trim
21 май 19, 12:56    [21889648]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9278
Сложную конкатенацию и логику (if'ы) лучше все же переносить в модель данных.
Функциями XSL можно многое изобразить, но больно грамоздко и сложно отлаживать/саппортить.

IMHO & AFAIK
21 май 19, 14:06    [21889745]     Ответить | Цитировать Сообщить модератору
 Re: Удаление символа в BI Publisher  [new]
3ePuK
Member

Откуда:
Сообщений: 4
В итоге у меня получилось вот такое:
<?for-each@inlines: Phone [PhActFlg=’Y’]?><?xdoxslt:set_variable($_XDOCTX, 'inf_var',concat(PhoneNum,’, ’))?><?xdoxslt:set_variable($_XDOCTX, ‘inf_res’, concat(xdoxslt:get_variable($_XDOCTX,'inf_res'),xdoxslt:get_variable($_XDOCTX,'inf_var')))?><?end for-each?>
<?for-each@inlines: Email[EmFlg='Y']?><?xdoxslt:set_variable($_XDOCTX, 'inf_var',concat(Email,’, ’))?><?xdoxslt:set_variable($_XDOCTX, ‘inf_res’, concat(xdoxslt:get_variable($_XDOCTX,'inf_res'),xdoxslt:get_variable($_XDOCTX,'inf_var')))?><?end for-each?>
<?for-each@inlines: Address[AddrType=’5’]?><?xdoxslt:set_variable($_XDOCTX, 'inf_var',concat(Address,’, ’))?><?xdoxslt:set_variable($_XDOCTX, ‘inf_res’, concat(xdoxslt:get_variable($_XDOCTX,'inf_res'),xdoxslt:get_variable($_XDOCTX,'inf_var')))?><?end for-each?>
<?substring(xdoxslt:get_variable($_XDOCTX, 'inf_res'),1,string-length(xdoxslt:get_variable($_XDOCTX, 'inf_res'))-2)?>

Выглядит некрасиво, тяжело поддерживаемое, но на данном этапе главное что работает.
22 май 19, 12:24    [21890539]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить