Crystal reports 在crystal reports 2008中屏蔽没有固定长度的字段

Crystal reports 在crystal reports 2008中屏蔽没有固定长度的字段,crystal-reports,report,crystal-reports-2008,Crystal Reports,Report,Crystal Reports 2008,我在crystal reports中有一个显示客户姓名的字段。但是,要求仅显示前5个字符,其中包括间距。第5个字符后面的任何字符都将转换为*,间距应显示为空格。由于名称字段不同,如何实现这一点 目前我只有这个,它显示前5个字符,并用* Replace({Command.CUST_NAME},MID({Command.CUST_NAME},6),"*") 不幸的是,Crystal似乎不支持正则表达式 所以,我要做一个函数。试试这个: stringvar input := {Command.CUS

我在crystal reports中有一个显示客户姓名的字段。但是,要求仅显示前5个字符,其中包括间距。第5个字符后面的任何字符都将转换为
*
,间距应显示为空格。由于名称字段不同,如何实现这一点

目前我只有这个,它显示前5个字符,并用
*

Replace({Command.CUST_NAME},MID({Command.CUST_NAME},6),"*")

不幸的是,Crystal似乎不支持正则表达式

所以,我要做一个函数。试试这个:

stringvar input := {Command.CUST_NAME};
stringvar output := MID(input, 1, 5);
numbervar i;
for i:=5 to Length (input) step 1 do (
    stringvar aChar := MID(input, i, 1);
    if aChar <> " " then aChar := "*";
    output := output + aChar;
);
output
stringvar输入:={Command.CUST_NAME};
stringvar输出:=MID(输入,1,5);
一号;
对于i:=5到长度(输入)步骤1 do(
stringvar aChar:=MID(输入,i,1);
如果是aChar“”,则aChar:=“*”;
输出:=输出+aChar;
);
输出
如果{Command.CUST_NAME}小于5个字符,您可能需要处理