У некоторых пользователей ИРБИС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.