Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Печать штрих-кодов в И64
Пользователь: DiManiac (IP-адрес скрыт)
Дата: 16, March, 2006 15:41

Вопрос перенесен из ветки "Версия 2006.1"

Ранее, для ИРБИСа 32, нами была разработана программа печати штрих-кодов.
Программа эта во время работы напрямую обращалась к базе И32 и считывала оттуда интересующие нас поля интересующих нас записей.
При переходе на И64 это стало невозможно, но появилась возможность вызывать любую dll из формата.
Мы начали обдумывать технологию работы при использовании новых возможностей и придумали следующую схему...


Создаем новое подполе ^s поля 910 (в соотв. wss-файле).
Далее работа библиографа (Б.) происходит так:
1) Он заходит в запись;

2) В нужных повторениях (для которых нужны штрих-коды) подполя 910^s Б. ставит ключевое слово. Пусть GEN;

3) Б. сохраняет запись. Отрабатывается autoin, который делает

ADD
910^h
*
if 910^s='GEN' then &unifor('genshk') fi
#########################
REP
910^s
*
'PRINT'
#########################



&unifor('genshk') - условное обозначение, на самом деле тут вызывается с некими параметрами dll, возвращающая нам штрих-код этого повторения.

4) Б. переключает формат отображения на "Печать штрих-кодов";

5) В формате прописано

&unifor('printshk',(if v910^s='PRINT' then v910,'$$' fi/))

Дальше вызываемая по этому юнифору программа сама разбирается в полученной строке, разбирает ее по повторениям и выводит какой-то интерфейс.

6) Библиограф должен еще раз сохранить запись, так как в autoin есть еще и такая строка:

DEL
910^s
*
if 910^s='PRINT' fi
#########################



Верна ли принципиально такая схема?

Еще один вопрос немного не в тему - на шагах 3 и 6 условные операторы можно оставить в теле команд ГК ADD и DEL или их надо написать как отдельные команды ГК IF и FI?



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