【发布时间】:2019-01-29 16:18:01
【问题描述】:
我在 Peoplesoft BI Publisher RTF 模板中的一个字段上有以下代码,它掩盖了银行帐号的最后 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:
这是修改后的代码,以及产生的错误信息:
【问题讨论】:
-
通常显示的是数字的后四位,而不是隐藏的。每当我在任何地方看到帐号时,它总是显示最后四位数字。
-
是的,我不是这个意思,问题是一些帐号少于 4 位。