Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Моделирование справочников с помощью словарей
Пользователь: Alio (IP-адрес скрыт)
Дата: 12, April, 2007 12:39

У некоторых пользователей ИРБИС64 возникла проблема - использовать справочники, в которых должны находиться данные в UNICODE (например, диакриты западно-евпопейских языков, греческие буквы и т.п.). Напрямую эта проблема не решается, поскольку в ИРБИС64 справочники могут содержать данные ТОЛЬКО в ANSI-кодировке.

ПРедлагается решение этой проблемы, основанное на моделировании справочников с помощью словарей. Заключается оно в следующем:

1. Создается специальная БД (в АРМе Администратор как ПРОИЗВОЛЬНАЯ БД) - например, SPRV.
2. В БД SPRV создается РЛ SPRV.WS, в который включаются повторяющиеся поля с метками 1, 2, 3, 4, 5 и т.д. - каждое из которых используется для моделирования ОДНОГО справочника. Каждое поле содержит два подполя A и B, которые моделируют соответственно ЗНАЧЕНИЕ и ПОЯСНЕНИЕ соответствующего справочника (создается РЛ подполей SPRV.WSS). В результате - в БД можно ввести необходимые справочники (с диакритами и т.д.). При этом для моделирования справочников можно использовать единственную запись (вся БД будет содержать единственный MFN) или сколько угодно - значения это не имеет.
3. Создается таблица инвертирования для БД SPRV - SPRV.FST.
Если поле с меткой n моделирует справочник, для которого необходима сортировка по ЗНАЧЕНИЮ, то в FST включается строка следующего вида

n 0 (|Sn=|Vn^A,| - |Vn^B,|%|Dn/)

Если поле с меткой n моделирует справочник, для которого необходима сортировка по ПОЯСНЕНИЮ, то в FST включается строка следующего вида

n 0 (if Vn^B<>'' then |Sn=|Vn^B,| - |Vn^A fi,|%|Dn/)

Для избыточности можно включать и то и другое

(Несортированных справочников в этом случае быть НЕ МОЖЕТ)

После создания/изменения FST для БД SPRV, разумеется, словарь создается заново.
4. Для элементов данных, которые должны вводится с помощью моделируемых справочников, в соответствующих РЛ полей или подполей делаются изменеия, а имеенно, меняются РЕЖИМ ВВОДА и ДОП.ИНФ-ЦИЯ, вместо

1 n.mnu

указывается

2 SPRV,Sn=,(V***^A/)


ВОТ И ВСЕ. Единственное возможное неудобство - данные в таких смоделированных справочниках будут показываться в верхнем регистре, НО вводиться будут так как надо, т.е. в исходном виде.

Шаблон такой БД - SPRV - создан. Кому надо, обращайтесь на alio@gpntb.ru (Те, кто будут ее получать от меня в готовом виде, должны, разумеется, самостоятельно внести имя этой БД в DBNAM2.MNU и DBNAM1.MNU)



Редактировано 1 раз. Последний раз 12.04.2007 12:40 пользователем Alio.



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