1

Тема: Заполнение инициалов ФИО на основе фамилии на языке формул (@ Formula)

Была довольно тривиальная задача.
Есть на форме поле "FIO" - в которое вводиться "Фамилия Имя Отчество/организация" , организации может не быть.
и нужно в поля:
"notesname"  автоматически ввести - "Фамилия Имя Отчество",
"FIO_1" автоматически ввести -"И.О. Фамилия".

я добавил в  "FIO" на событие Input Translation (инпут трансляция) следующий код - это с отладочной инфой:

x:=@Explode(@ProperCase(@Trim(@ThisValue)); "/");
@Prompt([OK];"x[1]";x[1] );
FIELD notesname:=x[1];
@Prompt([OK];"@Elements x[1] "; @Text(@Elements(  @Explode(@Trim(x[1])))  ) );

@If(
@Elements(  @Explode(@Trim(x[1]))  ) >1;  

@do(
y:=@Explode(@Trim(x[1]); " ");
@Prompt([OK];"y";@Implode(y) );
f:=y[1]; i:=y[2]; o:=y[3];
FIELD  FIO_1  := @Left(i;1) + "." + @Left(o;1)  + "." + f);
@ThisValue
);

x[1]

Поделиться

2

Re: Заполнение инициалов ФИО на основе фамилии на языке формул (@ Formula)

Вот окончательный вариант кода без отладочной инфы:

x:=@Explode(@ProperCase(@Trim(@ThisValue)); "/");
FIELD notesname:=x[1];

@If(
@Elements(  @Explode(@Trim(x[1]))  ) >1;  

@do(
y:=@Explode(@Trim(x[1]); " ");

f:=y[1]; i:=y[2]; o:=y[3];
FIELD  FIO_1  := @Left(i;1) + "." + @Left(o;1)  + "." + f);
@ThisValue
);

x[1]

Поделиться