69101 0 mhl, &uf('+7W100#'),(if p(v691) then if v691^i<>'' then &uf('+7U100#'v691^i) fi fi),&uf('+7G100'),(if p(g100) then 'DSC='&uf('DVUZ,!IDD='g100'!,v3^a') fi/)Режим ввода данных 2 - с помощью словаря. Доп. информация (в рабочем листе выбора данных при печати табличной формы):
,DSC=,@!nameСодержимое файла !name.pft:
mhl, (if '***'='69101' then '^A'v691^d fi/)/В результате в поле данных всегда попадает первое повторение поля, а не данные из того повторения поля, в котором содержится термин словаря.
Цитата:Подскажите, пожалуйста, в чем ошибка. Как добиться того, чтобы в поле данных попадало соответствующее повторение поля.В некоторых режимах работы системы применяются форматы, в которых используются, так называемые, переменные метки (например, при вводе дан-ных через словарь – т.н. форматы для переноса данных). Исходным для таких форматов обязательно является термин словаря.
Переменные метки обозначаются в таких форматах в виде *** (три сим-вола «звездочка»). Форматы с переменными метками используются следую-щим образом:
- определяется первая ссылка для исходного термина (о ссылках см. в Приложении 5): а именно, соответствующие номер документа (MFN), метка поля (TAG) и повторение (OCC);
- все переменные метки в формате заменяются на значение найденной метки поля (TAG) и форматированию подвергается документ с найденным номером (MFN);
- в качестве результата форматирования берется строка с номером OCC (нумерация начинается с 1); если нет строки с таким номером, результатом форматирования является пустая строка.
69101 0 mhl, &uf('+7W100#'),(if p(v691) then if v691^i<>'' then &uf('+7U100#'v691^i) fi fi),&uf('+7G100'),(if p(g100) then 'DSC='&uf('DVUZ,!IDD='g100'!,v3^a'),|%|d691 fi/)
69101 0 mhl, &uf('+7W100#'),(if p(v691) then if v691^i<>'' then &uf('+7U100#'v691^i) fi fi),&uf('+7G100'),(if p(g100) then 'DSC='&uf('DVUZ,!IDD='g100'!,v3^a') fi,|%|d691/)по прежнему в данные попадает только первое повторение поля.
69102 0 mhl, &uf('+7W200#'),if &uf('Av691^i#1')<>'' then &uf('+7W200#'&uf('Av691^i#1')),'DSCT='&uf('DVUZ,!IDD='&uf('Av691^i#1')'!,v3^a') fi, (if p(v691) then if v691^i<>'' then if &uf('Ag200#1'):v691^i then else &uf('+7W200#'s(&uf('Ag200#1'),|_|v691^i)),'DSCT='&uf('DVUZ,!IDD='v691^i'!,v3^a') fi fi fi,|%|d691/)Содержимое файла: !name.pft:
mpl,(if '***'='69102' then '^D'&uf('DVUZ,!IDD=v691^i'!,v3^a'),'^I'&uf('DVUZ,!IDD='v691^i'!,v3^0') fi/)/
DBN,DSCT=,(if '***'='69102' then '^A'&uf('DVUZ,!IDD='v691^i'!,v3^a'),'^B'v691^i fi/)работает должнім образом.
DBN,DSC=,@!nameТакая конструкция должным образом не работает: все время вводится первое повторение поля из записи, на которую ссылается термин словаря, а не соответствующее повторение поля. Но если написать: