Crystal Reports中的掩码地址

时间:2015-06-27 08:53:21

标签: crystal-reports

我正在创建Crystal Reports的报告,该报告将根据为报告设置的参数来屏蔽地址字段。我知道这可以用公式来完成。我可以用硬编码值成功掩盖。但是我需要像密码屏蔽这样的东西。例如,如果地址为D/302 ABC apartment,则应显示为X/XXX XXX XXXXXXXXX。只有要屏蔽的字符和数字才能屏蔽空格和特殊字符。此外,屏蔽数据的长度应与实际数据匹配。

3 个答案:

答案 0 :(得分:1)

我认为你可以使用这样的公式:

Local StringVar str := "";
Local NumberVar strLen := Length({User.Address});
Local NumberVar i;
For i := 1 To strLen Do
(
   if (ChrW({User.Address}[i]) in (AscW("A") to AscW("Z"))) or (ChrW({User.Address}[i]) in (AscW("a") to AscW("z"))) or (ChrW({User.Address}[i]) in (AscW("0") to AscW("9"))) Then
       str := str + "X"
   else 
       str := str + {User.Address}[i];
);
str

答案 1 :(得分:0)

逻辑是正确的..我通过使用Mid函数而不是chrW()做了同样的事情。也不需要使用asw()。只需使用范围运算符。

答案 2 :(得分:0)

逻辑是正确的..我通过使用Mid函数而不是chrW()做了同样的事情。另外你可以使用公式作为ReplicateString(“X”,len(地址)); 唯一的问题是空间也会被掩盖