Добрый день, уважаемые профессионалы данного форума!!!
Столкнулся вот с такой задачей:
1. Вот структура БД:
База: Учетные данные
0|Системный номер|Ц|10|||
1|Уровень доступа|УД||||
2|Фамилия|Т|40||ИФ;АП|
3|Собственное имя|Т|40||ИФ|
4|Отчество|Т|40||ИФ|
9|Сведения об изменении ФИО|П|||МН|Л23
10|Относится к сведениям об изменении ФИО|О|||МН|Л24
База: Сведения об изменении фамилии, собственного имени, отчества
0|Системный номер|Ц|10|||
1|Уровень доступа|УД||||
2|Причина смены ФИО|С||Причина смены ФИО|ИФ|
4|Сведения об изменении ФИО|П|||МН|Л110
3|Относится к лицу|О|||МН|Л19
5|Дата внесения данных|Т|100000||НК|
Необходимо в статистический отчет вывести всю информацию о смене фамилии, собственного имени, отчестве конкретного лица. Например, если человек менял несколько раз фамилию, то в статистическом отчете должна быть информация обо всех предыдущих фамилиях и т.д.
Ранее, в базе были поля «фамилия», «прежняя фамилия» и т.д., использовал вот такую формулу:
Код:@fam := УД2
if УД16#"" then @fam := @fam<<@ENDOFLINE<<"("<<УД16<<")"
@name := УД3
if УД17#"" then @name := @name<<@ENDOFLINE<<"("<<УД17<<")"
@otch := УД4
if УД18#"" then @otch := @otch<<@ENDOFLINE<<"("<<УД18<<")"
@FIO:=@fam<<@ENDOFLINE<<@name<<@ENDOFLINE<<@otch<<@ENDOFLINE;
@ret:=@FIO;
Но с учетом того, что у меня появилась промежуточная база «Сведения об изменении фамилии, собственного имени, отчества» данная формула не подходит.
Пробовал:
Код:@fam := УД2
@ret:=CAT(УД34_У1,
[
CAT(У12_УД, @fam1 := "("<<УД2<<")"
]
))
@name := УД3
@ret:=CAT(УД34_У1,
[
CAT(У12_УД, @name1 := "("<<УД3<<")"
]
))
@otch := УД4
@ret:=CAT(УД34_У1,
[
CAT(У12_УД, @otch1 := "("<<УД4<<")"
]
))
@FIO:=@fam<<@ENDOFLINE<<@fam1<<@ENDOFLINE<<@name<<@ENDOFLINE<<@name1<<@otch<<@ENDOFLINE<<@otch1;
@ret:=@FIO;
На выходе получаю:
ИВАНОВ
Иван
Иванович
Подскажите пожалуйста как быть в данной ситуации? В формулах я не силен. Спасибо.