замаскировать поле без фиксированной длины в отчетах Crystal 2008 - PullRequest
1 голос
/ 13 июня 2019

У меня есть поле в отчетах Crystal, в котором отображаются имена клиентов.однако требуется только отобразить первые 5 символов, включая пробел.все, что придет после 5-го символа, будет преобразовано в *, а интервал будет отображаться как пробел.как меняется поле имени, как мне это сделать?

в настоящее время у меня есть только это, которое отображает первые 5 символов и заменяет только 6-й символ на *

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

1 Ответ

1 голос
/ 13 июня 2019

К сожалению, кажется, что 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

Возможно, вам придется обрабатывать, если {Command.CUST_NAME} меньше 5 символов.

...