Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
РЕЖИМА ВВОДА – 14
Пользователь: Vladimir Kim (IP-адрес скрыт)
Дата: 26, June, 2006 14:00

Здравствуйте!

Возникла сложность использования такой соблазнительной возможности, как 14 режим ввода.

Мне нужно сгенерировать ШК (v910^h) для конкретной v910 записи, т.к. Формат ШК зависит от статуса (0,U). Я сделал 14 формат для поля H в 910.wss вида:

BarCode,Generae,v910.

Но в функцию Generate мне приходят все повторения поля 910, а мне нужно только конкретное 910 поле для которого происходит генерация ШК. * не помогает, т.к. выдает только само поле 910^h. &uf('+90') тоже не помогает, т.к. выдает всегда 0.

В общем вопрос такой - как можно передать конкретное повторение поля 910 в функцию (которое мы редактируем), а не все повторения?

PS: Сейчас пока генерация ШК у нас реализована несколько заумно, путем проставлении * в нужные поля и вызова внешней dll функции формирования ШК через кнопку на Toolbar... А было бы так здорово - нажал кнопочку "..." и ШК готов! :)

С уважением, Владимир Ким
---------------------------
Инженер-программист НБ МИФИ

Re: РЕЖИМА ВВОДА – 14
Пользователь: Карауш (IP-адрес скрыт)
Дата: 26, June, 2006 14:16

Может попробовать при вызове функции использовать pft конструкцию, типа:
(if v910^h='бебебе' then v910^h, v910^a/)
и уже сформированную последовательность разгребать?

Re: РЕЖИМА ВВОДА – 14
Пользователь: Vladimir Kim (IP-адрес скрыт)
Дата: 26, June, 2006 14:39

Добрый день!

>Может попробовать при вызове функции использовать pft конструкцию, типа:
>(if v910^h='бебебе' then v910^h, v910^a/)
>и уже сформированную последовательность разгребать?

Сдесь проблема в том, что поле v910^h изначально пустое (ведь для него мы и генерим ШК).

Конечно можно поставить в это поле * (или другую сигнатуру) и повесить на "..." поиск и обработку "звездочек" во всей записи. И мы действительно рассматривали такую возможность. Однако в этом случае может легко случится следующая ситуация:

1. Я поставил * в 910h но не нажал "..."
2. Я перешел к другой 910 записи, в поле 910h ничего ставить не стал (или тоже поставил *), но нажал просто кнопку "...".
Т.о. будет складываться каверзная ситуация (со стороны аспектов психологического восприятия интерфейсов и человеческого фактора) - я нажимаю кнопку "..." для одного поля, а генерация происходит для другого. Или для обоих сразу, хотя я не заказывал генерацию для первого. Или нужно будет накручивать логику проверки корректности и оповещения пользователя, что он "плохой человек", что в свою очередь плохо на них действует.

По этому мы намерено вывели генерацию как одну большую кнопку на панели инструментов - что бы человек подсознательно чувствовал область действия кнопки и не возникало лишних вопросов и обвинений в адрес отдела компьюторизации библиотеки :)

А вот если бы с помощью 14 режима ввода можно было бы запрогроммировать кнопку "..." так, что бы можно было бы передать текущее повторение 910 поля, то вся головная боль решилась бы сама собою. Потому как работа кнопки будет "..." интуитивно понятная, ее функциональность ожидаема и ее работа будет без каких либо фокусов и неочивидных изменениях в других полях.

С уважением, Владимир Ким
---------------------------
Инженер-программист НБ МИФИ



Редактировано 1 раз. Последний раз 26.06.2006 14:44 пользователем Vladimir Kim.

Re: РЕЖИМА ВВОДА – 14
Пользователь: Alio (IP-адрес скрыт)
Дата: 27, June, 2006 10:27

Можно предложить следующее.
Передавать во внешнюю функцию дополнительную опцию через ВЫХОДНОЙ буфер. Сейчас через первый байт выходного буфера передается тип ввода (2/3) - можно во втором байте указывать номер текущего повторения текущего поля...

Re: РЕЖИМА ВВОДА – 14
Пользователь: Vladimir Kim (IP-адрес скрыт)
Дата: 28, June, 2006 11:57

Добрый день!

>Можно предложить следующее.
>Передавать во внешнюю функцию дополнительную опцию через ВЫХОДНОЙ буфер.
>Сейчас через первый байт выходного буфера передается тип ввода (2/3) - можно
>во втором байте указывать номер текущего повторения текущего поля...

Ок, пусть будет так! :) Ждем реализации!

Если можно давать свои предложения, то конечно было бы очевидее, если бы все это можно было бы задать через сам PFT. Например, если я пишу (v910/) то передаются все повторения, если пишу просто v910 то передается только конкретное (подполе которого мы редактируем). Таким образом можно было бы обойтись без второго дополнительного байта. Но если это невозможно, тогда можно и как Вы предложили, главное что бы было!

С уважением, Владимир Ким
---------------------------
Инженер-программист НБ МИФИ

Re: РЕЖИМА ВВОДА – 14
Пользователь: Alio (IP-адрес скрыт)
Дата: 28, June, 2006 14:50

Vladimir Kim написал(а):
-------------------------------------------------------
> Ок, пусть будет так! :) Ждем реализации!
>
> Если можно давать свои предложения, то конечно
> было бы очевидее, если бы все это можно было бы
> задать через сам PFT. Например, если я пишу
> (v910/) то передаются все повторения, если пишу
> просто v910 то передается только конкретное
> (подполе которого мы редактируем). Таким образом
> можно было бы обойтись без второго дополнительного
> байта. Но если это невозможно, тогда можно и как
> Вы предложили, главное что бы было!

Язык форматирования - это универсальное средство в рамках ИРБИС, и он не может подгоняться под частную проблему (это все равно как орфографию подгонять под конкретный стиль общения)...
Номер повторения будет передаваться в виде строки, начиная со второго байта выходного буфера....

>
> С уважением, Владимир Ким
> ---------------------------
> Инженер-программист НБ МИФИ

Re: РЕЖИМА ВВОДА – 14
Пользователь: Vladimir Kim (IP-адрес скрыт)
Дата: 03, July, 2006 17:46

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

Все отлично, все прекрасно получилось! :)

С уважением, Владимир Ким
---------------------------
Инженер-программист НБ МИФИ



Редактировано 1 раз. Последний раз 03.07.2006 17:46 пользователем Vladimir Kim.



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