Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Метод ввода 8
Пользователь: Gena (IP-адрес скрыт)
Дата: 15, June, 2010 11:01

На конференции в Судаке был заново открыт метод ввода 8. Оказалось, что описание его в стандартной инструкции не полное. По этому по результатам экспериментов и воспоминаний Александра Иосифовича описываю этот метод ввода.
Этот метод ввода предполагает использование какого-либо внешнего приложения. Само приложение должно быть скопировано в директорию Ирбис. Обмен данными двунаправленный.

Передача данных в Ирбис и из него осуществляется по средствам Буфера обмена с использованием определенных префиксов:
Из Ирбиса данные передаются с префиксом IRBISOUT, а из внешнего приложения в Ирбис с префиксом IRBISIN.

При запуске программы из рабочего листа, ей через буфер обмена передается одна из двух команд:

IRBISOUT0 - предполагает, что ввод вызван или нажатием на кнопку ввода в поле, или по клавише F2. После обработки и возврата данных в Ирбис, они будут помещены в ОДНО ПОВТОРЕНИЕ поля. Если при вызове программы для ввода поле уже не пустое, то следом за приведенной командой передается содержимое поля.

IRBISOUT1 - предполагает, что ввод вызван клавишей F3, а результат надо вернуть в виде набора строк, каждая из которой станет ОТДЕЛЬНЫМ ПОВТОРЕНИЕМ поля. Аналогично передаются в программу данные, если поле не пустое. При наличии нескольких полей и вызове одного из них, будут переданы во внешнюю программу данные только из этого повторения.

В рабочем листе необходимо указать Режим ввода - 8, а в графе Доп. инф-ция - название_программы.exe Запуск осущесествляется как в командной строке(значит возможно указание набора ключей), а путь к программе Ирбис указывает дописыванием перед ней пути к своей директории.

От модератора: прикрепил тему, чтобы было.

Дополнение по поводу кодировок. Я писал свою программу для вызова этим методом на VisualBasic. Для передачи данных в Ирбис 32 никаких преобразований не нужно делать, а для Ирбис 64 необходимо предусмотреть перекодирование в UTF-8.



Редактировано 3 раз. Последний раз 10.05.2011 16:01 пользователем Gena.

Re: Метод ввода 8
Пользователь: Gena (IP-адрес скрыт)
Дата: 10, May, 2011 15:53

Вопрос разработчикам: хотел приладить по мимо модуля ввод данных на основе это режима ввода, еще и модуль обработки данных. Но получается, что данные только добавляются. А хотелось бы, что бы они перезаписывались. Можно ли такое организовать? Только нужно что бы была возможность как дописывать новые повторения поля, так и перезаписывать их.

Re: Метод ввода 8
Пользователь: Alio (IP-адрес скрыт)
Дата: 10, May, 2011 16:36

Во-первых, непонятно, почему Вы используете устаревший метод ввода 8, а не более продвинутый - 14.
Во-вторых, в случае метода 8 для повторяющихся полей - надо вызывать внешнюю программу через F3

Re: Метод ввода 8
Пользователь: Gena (IP-адрес скрыт)
Дата: 10, May, 2011 16:41

У меня так и сделанно: по Ф3 вызывается программа, в которую передаются все значения поля, я отсекаю префик и работаю с повторениями поля. По окончанию работы хочу передать измененный вариант, а не дописать запись новыми.
А даже если и режим 14 - он предполагает замену повторений поля? Или тоже только дописывает новыми?

Re: Метод ввода 8
Пользователь: Alio (IP-адрес скрыт)
Дата: 10, May, 2011 16:51

Gena написал(а):
-------------------------------------------------------
> У меня так и сделанно: по Ф3 вызывается программа,
> в которую передаются все значения поля, я отсекаю
> префик и работаю с повторениями поля. По окончанию
> работы хочу передать измененный вариант, а не
> дописать запись новыми.
> А даже если и режим 14 - он предполагает замену
> повторений поля?
Насколько помню, да.

Или тоже только дописывает
> новыми?

Re: Метод ввода 8
Пользователь: Gena (IP-адрес скрыт)
Дата: 10, May, 2011 17:10

Спасибо, попробую поработать с этим режимом

Re: Метод ввода 8
Пользователь: Alio (IP-адрес скрыт)
Дата: 11, May, 2011 15:07

Сделал доработку для метода ввода 8

Если данные во внешнюю программу передаются в виде

IRBISOUT1<данные>

то возвращаемые данные могут иметь вид:

IRBISIN<данные> - в этом случае повторения поля ДОБАВЛЯЮТСЯ

IRBISIN!<данные> - в этом случае ВСЕ повторения поля ЗАМЕНЯЮТСЯ

Re: Метод ввода 8
Пользователь: Gena (IP-адрес скрыт)
Дата: 16, May, 2011 12:30

Александр Иосифович, скажите, а есть какое-то ограничение на объем передаваемых в Ирбис данных режимом ввода 8? Сталкнулся с такой ситуацией: во внешнюю программу передаются данные(2000 повторений поля 910), вполне корректно обрабатываются и в этом же количестве копируются в буфер обмена для передачи в Ирбис. Но в Ирбисе вместо 2000 полей формируется только 515 полей. С чем это может быть связанно?
Проверил какое кол-во символов нормально уходит - получилос 27706 символов.

Re: Метод ввода 8
Пользователь: Alio (IP-адрес скрыт)
Дата: 16, May, 2011 13:29

Да, для возвращаемых данных есть ограничение - 32000 б.
Если надо, можно увеличить...

Re: Метод ввода 8
Пользователь: Alio (IP-адрес скрыт)
Дата: 16, May, 2011 13:53

Снял ограничение для ИРБИС64. (Выслал на почту)

Re: Метод ввода 8
Пользователь: Gena (IP-адрес скрыт)
Дата: 16, May, 2011 15:11

Большое спасибо

Re: Метод ввода 8
Пользователь: Lavrinovich (IP-адрес скрыт)
Дата: 22, June, 2012 10:01

А можно привести пример такого внешнего приложения?

irbis_arbat@mail.ru



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