Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Система ИРБИС в целом :  ИРБИС Irbis
 
Предложение: АРМ Каталогизатор как сервер автоматизации
Пользователь: S-presso (IP-адрес скрыт)
Дата: 11, September, 2013 08:32

Хочу предложить разработчикам ИРБИС64 реализовать в АРМ Каталогизатор новый функционал, связанный с его работой в качестве сервера автоматизации (OLE-сервера). Это позволило бы разработчикам приложений для Ирбис (и, в частности, мне) выполнять нужные команды в работающем в фоновом режиме АРМе (и запускать его экземпляр в случае необходимости) из собственных программ с помощью простого API. Подобные возможности присутствуют во многих профессиональных пакетах программ, в частности Microsoft Office и Abbyy FineReader. О том, как можно организовать взаимодействие пользовательской программы с FineReader (в обе стороны без необходимости использования Microsoft Word), я, если повезёт выбраться, расскажу на ближайшей конференции. К сожалению, взаимодействие с Ирбис пока работает только в одну сторону - вы можете вызывать на выполнение собственные плагины из АРМ Каталогизатор и, если повезёт, передавать оттуда новую запись, но пока отсутствует возможность выполнения команд АРМа из работающего в автономном режиме программного модуля.

Поясню на конкретном примере разработки библиографического редактора. Мне бы хотелось, чтобы экземпляр моего редактора был постоянно работающим процессом в системе, как Word или тот же FineReader. (В принципе, внеся небольшие изменения, я уже добился его работы в качестве сервера автоматизации и вызова его окна с передачей текущей записи из пользовательского плагина, вызываемого из АРМ Каталогизатор, но уж очень мудрёно получается - пришлось бы отдельно инсталлировать библиоредактор и прописывать его плагин на каждой клиентской машине, где он будет работать, а мне хотелось бы этого избежать.) Т.е. чтобы он был независимым от Ирбиса или других АБИС приложением. С помощью механизма OLE/COM нажатием одной кнопки в библиоредакторе можно было бы передать сформированную в процессе обработки текста библиографическую запись в работающий параллельно (или запускаемый по требованию) АРМ Каталогизатор или какой-нибудь другой АРМ произвольной АБИС, поддерживающий этот механизм. Я бы на месте разработчиков реализовал также все действия, для которых имеются соответствующие пакетные команды для АРМов Администратор. Ещё можно было бы сделать таким образом вызов команды печати КК (табличных форм). Например, реализовать на этой основе плагин для печати карточек на отдельную статью: выделить галочкой нужный пункт оглавления, проанализировать это выделение в плагине и вызвать из него же окно текстового редактора с нужной карточкой - с применением соответствующего формата "Статья на отдельную карточку", в котором будет использован unifor с функцией пользовательской DLL, которая возвратит номер отмеченного пункта (выбранной статьи). Чтобы делать это сейчас штатными средствами ИРБИС64, мне приходится каждый раз перед вызовом нужного формата ("Статья на отдельную карточку") сохранять запись, предварительно заполнив в оглавлении служебное поле "№ статьи для копирования", указав номер нужной статьи, или же использовать для этого собственную доработку - [irbis.gpntb.ru]. В первом случае имеем слишком много лишних кликов мышкой и необходимость заполнения служебного поля, во втором - много возни с установкой (Лев Зиновьевич подтвердит) и нереализованную (увы!) функцию непосредственной печати на принтере.

В общем, я постарался показать, как с помощью механизмов сервера автоматизации можно было бы решить некоторые проблемы пользователей. Возможно, в моём описании всё это выглядит достаточно сложным, но на самом деле это не так. О создании сервера автоматизации на базе обычного приложения C++ Builder (для Delphi - аналогично) можно почитать, например, здесь: [citforum.ru].



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