Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Задачки для любознательных :  ИРБИС Irbis
 
Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, January, 2013 12:43

Задача 1:
Как вывести все значения (не пояснения) из справочника (*.mnu) в окно просмотра?
Задача 2:
Как вывести N-ое значение справочника?

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 17, January, 2013 16:02

Вывод всех кодов справочника
(if &unifor('+5T900t.mnu')<>'' then &unifor('+5T900t.mnu') fi/)

Вывод всех расшифровок справочника
(if &unifor('+5F900t.mnu')<>'' then &unifor('+5F900t.mnu') fi/)

Вывод шестого элемента справочника
&uf('s0'),
(if &unifor('+5T900t.mnu')<>'' then if &uf('s1a')='5' then &unifor('+5T900t.mnu') fi fi/)

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, January, 2013 16:09

У меня решение задачи 1 идентичное.
Цитата:
&uf('s0'),
(if &unifor('+5T900t.mnu')<>'' then if &uf('s1a')='5' then &unifor('+5T900t.mnu') fi fi/)
В окне просмотра будет пусто. Счетчик же не увеличивается.

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 17, January, 2013 16:14

Вы в генераторе форматов проверяли? Все выводится.

Re: Работа со справочником
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 17, January, 2013 16:20

или так
&uf('+7W10#'(if &unifor('+5T900t.mnu')<>'' then &unifor('+5T900t.mnu') fi/)),

&uf('Ag10#6')

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, January, 2013 16:31

Вы правы, опять забыл перезапустить сервер. Только сравнивать надо с порядковым номером значения в справочнике, а не +1. Вывести второ, значит сравниваем 2.
Хм... Не знал, что можно объединить и вывод, и инкремент в функции универсального счетчика.
Я немного по другому сделал.
Вывод третьего значения:
&uf('+7W10#'),
(if &uf('+5Tmhrm.mnu')<>'' then &uf('+7U10#1'), if f(rsum(g10|;|),0,0)='3' then &uf('+5Tmhrm.mnu') fi fi/),
Решил реализовать через глобальные перемнные, отказавшись от "древней" функцмм, как говорит Alio.

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 17, January, 2013 16:33

чем делать счетчик - это уже мелочи, суть не в нем, а в самой раскодировки справочника

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, January, 2013 22:20

Цитата:
Дунаевская
или так
&uf('+7W10#'(if &unifor('+5T900t.mnu')<>'' then &unifor('+5T900t.mnu') fi/)),

&uf('Ag10#6')
Изящное решение.
Цитата:
Gena
чем делать счетчик - это уже мелочи, суть не в нем, а в самой раскодировки справочника
Все-таки пытаемся следовать рекомендациям Александра Иосифовичаsmiling smiley

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 04, June, 2013 13:43

Как из справочника создать словарь и посмотреть его термины?



Редактировано 1 раз. Последний раз 04.06.2013 13:47 пользователем woodyfon.

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 04, June, 2013 13:50

словарь из справочника никак не создать. Словарь - термины, выдернутые или сформированные на записях. Они формируются и ассоциируются с записями, а не с какими-то ресурсами

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 04, June, 2013 14:05

Gena,
Уточню условие.
Имеется некий справочник (mnu), состоящий из многих значений и пояснений (более 45 тыс.). Необходимо сформировать словарь (добавить новую строку в табличке переформатирования).
Также осуществить поиск термина на наличие.
+
Если БД полностью опустошена, то словари не актуализируются вовсе.
Пробовал применить конструкцию:
/*Дисциплина из справочника DISC.mnu
3333 0 (if &uf('+5FDISC.mnu')<>'' then "DSCPL="&uf('+5FDISC.mnu') fi/),
но она не работает.



Редактировано 1 раз. Последний раз 04.06.2013 14:08 пользователем woodyfon.

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 04, June, 2013 14:26

Еще раз повторяю. Все данные в словаре появляются после актуализации записи и выполнении на ней форматов из файла ФСТ. Каждый термин словаря всегда связан с одной или несколькими записями в этой БД. Не может быть термина словаря без записи. Хотите забросить эти данные в словарь? Создайте одну запись, в которую все эти данные будут загружены и уже по ним создавайте словарь.

Вы, часом, не с проверкой фонда воюете?

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 04, June, 2013 14:29

ФОрмирую БД VUZ для задачи Книгобеспеченность. Сформировал справочник дисциплин, но проще будет работать с данными, если значения и пояснения будут в виде словарей. Может проще будет, если сделать начальный импорт дисциплин, предварительно сформировав файлик импорта? Тем более, что имеется отдельная БД кафедр с перечнем дисциплин.



Редактировано 1 раз. Последний раз 04.06.2013 14:31 пользователем woodyfon.

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 04, June, 2013 14:39

А, вспомнил... Вы давно говорили, что делали свою собственную БД для решения этой задачи. Не понимаю, что вы хотите загружать, что у вас по задачам ККО 45 тысяч записей. Хотите импортировать данные - посмотрите структуру записей и делайте по аналогии. У вас как-то очень запутанно получается. Ощущение, что вы еще не решили как именно создавать БД ВУЗ и хотите экспериментально это выяснять.

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 04, June, 2013 15:09

Абсолютно правы!
Выяснил, что Книгобеспеченность нужно начать с наполнения БД VUZ, но как это правильно и быстро сделать пока не понимаю.
Экспериментальным путем выяснилось, что все таки можно создать словарь из справочника. Предварительно нуобходимо создать хотя бы одну запись и отталкиваться уже от тех данные, которые есть - необязательно, чтобы в термины попадали данные из записи. В словарь могут попасть какие угодно данные.
Например, по полю РЛ.
1000 0 if 'DSCPL':v920 then (if &uf('+5TDISC.mnu')<>'' then "DSCPL="&uf('+5FDISC.mnu') fi/) fi



Редактировано 1 раз. Последний раз 04.06.2013 15:14 пользователем woodyfon.

Re: Работа со справочником
Пользователь: Gena (IP-адрес скрыт)
Дата: 04, June, 2013 18:51

Вы не с того конца начинаете. Попробуйте немного локально поиграть со вносом данных в АРМ КО. Вам сейчас нужно понять какие записи и какие поля имеют первостепенное значение, а что может формироваться автоматически. Забегая наперед, могу сказать, что первостепенная запись олько одна - DISC, и в ней находится вся информация, которая необходима для того, что бы решить задачу КО. Вот ее вам и надо создавать. Если у вас имеются данные для этой записи, то сформируйте их в текстовом формате, загрузите в Ирбис, а потом все остальные записи сформируются из них. Я так неоднократно делал. Возможно вы пытаетесь конвертнуть данные из АСУ ВУЗ?

Re: Работа со справочником
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 04, June, 2013 20:55

Кроме как вносить данные в КО через АРМ-Книгобеспеченность не знаю. Через АРМ КО они вообще не вносятся.
Не подскажите, что такое цикл дисциплин и уровень компонента?

Re: Работа со справочником
Пользователь: FNS (IP-адрес скрыт)
Дата: 13, May, 2016 21:43

Не буду создавать новую тему, обрисую ситуацию в этой.

Имеется стандартный справочник разделов знаний в формате:
http://img.prntscr.com/img?url=http://i.imgur.com/3AftMxl.png
В ini файле установлен режим раскодировки через справочник, так как в переводе в режим стандартный, пропадает колонка пояснения в словаре.
Хочу немного переделать вывод словаря в вид:
http://img.prntscr.com/img?url=http://i.imgur.com/rvfjfNk.png

Для этого внес изменения в db_name.fst и db_name.ifs
60 0 MHL, (if p(v60) then 'RZN=',&uf('+7W1#'&uf('G0]'&uf('G2['&uf("Krzn.mnu|"v60)))),&uf('+7R1') fi/)
и соответственно
60,60 0 MHL, (if p(v60) then 'RZN=',&uf('+7W1#'&uf('G0]'&uf('G2['&uf("Krzn.mnu|"v60)))),&uf('+7R1') fi/)

Собственно вопрос, как вставить пояснение взятое из того же справочника &uf('+7W2#'&uf('G0['&uf("Krzn.mnu|"v60))),&uf('+7R2') ?? Возможно ли это вообще?



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