У меня есть следующий код в поле в шаблоне RTF Peoplesoft BI Publisher, где оно маскирует последние 4 цифры номера банковского счета.
<?xdofx:lpad('',length(Bank_Account__)-4,'*')?>
<?xdoxslt:rtrim(xdoxslt:right(Bank_Account__,4))?>
Проблема в том, что иногда общая длина номера банковского счета составляет менее 4 цифр, и когда это происходит, это вызывает ошибку отрицательного массива в функции lpad.
Могу ли я обернуть вокруг него какую-то условную инструкцию IF, где она проверит длину номера банковского счета и, если он длиннее 5 цифр, чем маскирует последние 4 цифры, иначе (для номеров банковских счетов меньшечем 5 цифр) просто замаскируйте последние 2 цифры.Как бы это выглядело?
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Я должен добавить, что существующий код выше уже включен в следующуюОператор IF:
<?if@inlines:Bank_Account__!=''?>
Таким образом, весь оператор выглядит следующим образом:
<?if@inlines:Bank_Account__!=''?>
<?xdofx:lpad('',length(Bank_Account__)-4,'*')?>
<?xdoxslt:rtrim(xdoxslt:right(Bank_Account__,4))?>
<?end if?>
Я просто хотел бы добавить условную логику для проверки длины банковского счета и последующего выполнения любого из вышеперечисленныхмаскировка.
РЕДАКТИРОВАТЬ 2: Вот мои настройки с вашими предлагаемыми изменениями, но я не думаю, что у меня есть правильная вложенная логика, и синтаксис также может быть проблемой.
Редактировать 3:
Вот модифицированный код и полученное сообщение об ошибке: