Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Часто задаваемые вопросы (FAQ) :  ИРБИС Irbis
Исключительно важный раздел форума, который необходимо прочитать всем, кто только начинает работать с Ирбисом. Если ваши знания не так широки, как вам хотелось бы, тогда обязательно прочитайте этот раздел. Если вы не нашли, что искали, то воспользуйтесь поиском по форуму, и, скорее всего, вы найдете ответ на свой вопрос среди существующих сообщений. 
Форматы с переменными метками
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 20, June, 2015 14:29

В БД ЭК каталога создал произвольный словарь дисциплины. В качестве термина словаря выступает название дисциплины.
Строка в ТВП:
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/)/
В результате в поле данных всегда попадает первое повторение поля, а не данные из того повторения поля, в котором содержится термин словаря.
Предположительно, не учитывается повторение (ОСС):
Выдержка из документации (Приложение4, Раздел 13)
Цитата:
В некоторых режимах работы системы применяются форматы, в которых используются, так называемые, переменные метки (например, при вводе дан-ных через словарь – т.н. форматы для переноса данных). Исходным для таких форматов обязательно является термин словаря.
Переменные метки обозначаются в таких форматах в виде *** (три сим-вола «звездочка»). Форматы с переменными метками используются следую-щим образом:
- определяется первая ссылка для исходного термина (о ссылках см. в Приложении 5): а именно, соответствующие номер документа (MFN), метка поля (TAG) и повторение (OCC);
- все переменные метки в формате заменяются на значение найденной метки поля (TAG) и форматированию подвергается документ с найденным номером (MFN);
- в качестве результата форматирования берется строка с номером OCC (нумерация начинается с 1); если нет строки с таким номером, результатом форматирования является пустая строка.
Подскажите, пожалуйста, в чем ошибка. Как добиться того, чтобы в поле данных попадало соответствующее повторение поля.

Re: Форматы с переменными метками
Пользователь: Alio (IP-адрес скрыт)
Дата: 21, June, 2015 09:07

В строке твп нет символа %

Re: Форматы с переменными метками
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 21, June, 2015 23:26

Добавил в строку символ "%" и так:
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/)
по прежнему в данные попадает только первое повторение поля.
+
В файле отбора LN1 каждая строка состоит из 5 параметров:
1 - порядковый номер записи (MFN)
2 - идентификатор поля
3 - повторение поля
4 - последовательный номер термина
5 - данные
Таким образом, в файл будет писаться не номер повторения поля, где встречается термин, а номер в повторяющиеся группе.
Требуется чтобы в количество ссылок соответствовало количеству документов в БД. Это необходимо для того, чтобы до получения выходной формы, знать сколько будет документов в итоге.



Редактировано 1 раз. Последний раз 22.06.2015 01:34 пользователем woodyfon.

Re: Форматы с переменными метками
Пользователь: Alio (IP-адрес скрыт)
Дата: 22, June, 2015 10:02

Неправильно...

Re: Форматы с переменными метками
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 22, June, 2015 12:22

Изменил строку ТВП следующим образом:
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/)/

При тестировании использовал произвольное поле в РЛ (wss). Система заработала должным образом. Но при использовании такого режима ввода при получении выходных форм, по прежнему вводится только первое повторение поля.
Также изображение словаря в поле "Параметры печати" (рис.1) отличается от изображения словаря при вводе данных непосредственно в запись (рис. 2).
Как добиться "правильного" ввода данных в окно выбора параметров печати?
+
Проблема похожа из темы Создание словаря. Учет номеров повторений поля



Редактировано 3 раз. Последний раз 22.06.2015 14:25 пользователем woodyfon.

Вложения: Image001.png (101.1KB)   Image 002.jpg (180.2KB)  
Re: Форматы с переменными метками
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 22, June, 2015 17:08

Вложенные форматы при печати выходных форм не работают. Баг?!
В одной строке прописал:
DBN,DSCT=,(if '***'='69102' then '^A'&uf('DVUZ,!IDD='v691^i'!,v3^a'),'^B'v691^i fi/)
работает должнім образом.

Re: Форматы с переменными метками
Пользователь: Alio (IP-адрес скрыт)
Дата: 23, June, 2015 08:57

Не понял...

Re: Форматы с переменными метками
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 23, June, 2015 12:40

Создаю выходную форму с опросным листом (параметры печати). В качестве РЛ выступает файл list.wss. Правку и редактирование провожу в соответствующем редакторе. РЛ Имеет 4 поля. Режим ввода для первого поля 2 - ввод с помощью словаря. В поле "Доп. информация" указываю имя БД, префикс инверсии, формат в таком виде:
DBN,DSC=,@!name
Такая конструкция должным образом не работает: все время вводится первое повторение поля из записи, на которую ссылается термин словаря, а не соответствующее повторение поля. Но если написать:
DBN,DSCT=,(if '***'='69102' then '^A'&uf('DVUZ,!IDD='v691^i'!,v3^a'),'^B'v691^i fi/)
Система начинает работать. Такая ситуация отнюдь не наблюдается при вводе данных в РЛ wss из модуля каталогизатора (в плоскости ввода вызывается РЛ подполей).
Также касательно изображения словаря в РЛ опроса: Изображение при печати в модуле КО не содержит столбца посяснение, е сли ввод осуществляется с помощью словаря (режим ввода 2).
Надеюсь, стало понятнее.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.