Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Комплектатор :  ИРБИС Irbis
 
создание сценария поиска
Пользователь: whim (IP-адрес скрыт)
Дата: 03, November, 2009 03:55

Здравствуйте!
Для АРМа Комплектатор необходимо создать дополнительный сценарий поиска "Технология"(как в АРМе Каталогизатор, т.е дата - Ф.И.О.). Мною это было реализовано следующим образом.
В файле IRBISP.ini с помощью редактора ini файлов и сценариев поиска была добавлена строчка во все вкладки(заказ, поступление, выбытие и подписка), где в качестве названия было "Технология" и префикс TH=. Затем в файле CMPL.fst 907 0 (|TH=|v907^A |-| v907^B/) (|TH=|v907^B |-| v907^A/). Затем был создан заново словарь.В результате на всех четырех вкладках в комплектаторе появился вид поиска "Технология" и этот словарь на всех четырех вкладках содержит одинаковые данные. В связи с этим вопрос: Как сделать так, чтоб, например, на вкладке поступление выводились только дата и Ф.И.О. относящимся к поступлениям. На вкладке заказ - только дата и Ф.И.О. оформления заказа и т.д. Скорее всего надо редактировать какие-то другие файлы ТВП...если так, напишите, пожалуйста, какие. И еще была идея назначить разные префиксы, но и она пока не привела к нужному результату



Редактировано 2 раз. Последний раз 03.11.2009 09:07 пользователем whim.

Re: создание сценария поиска
Пользователь: ochagova (IP-адрес скрыт)
Дата: 03, November, 2009 10:10

Конечно, надо делать разные префиксы и присоединять в INI в разные секции (см. DOC1)

Вложения: Doc1.doc (56KB)  
Re: создание сценария поиска
Пользователь: whim (IP-адрес скрыт)
Дата: 03, November, 2009 10:20

Завела разные префиксы, например, для подписки P, в ТВП cmpl.fst написала
907 0 if v920:'OJK' then|P=|v907^A |-| v907^B/,|P=|v907^B |-| v907^A/fi все осталось без изменения, т.е. я не знаю по какому признаку делать отбор, по названию рабочего листа не работает или может у меня в этом формате ошибка?



Редактировано 1 раз. Последний раз 03.11.2009 10:26 пользователем whim.

Re: создание сценария поиска
Пользователь: whim (IP-адрес скрыт)
Дата: 03, November, 2009 10:32

ну, вот теперь, кажется "сила разума" победила "метод тыка"
вроде работает :)



Редактировано 1 раз. Последний раз 03.11.2009 10:39 пользователем whim.

Re: создание сценария поиска
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 03, November, 2009 10:44

whim написал(а):
-------------------------------------------------------
> Завела разные префиксы, например, для подписки P,
> в ТВП cmpl.fst написала
> 907 0 if v920:'OJK' then|P=|v907^A |-|
> v907^B/,|P=|v907^B |-| v907^A/fi все осталось без
> изменения, т.е. я не знаю по какому признаку
> делать отбор, по названию рабочего листа не
> работает или может у меня в этом формате ошибка?

Чтобы в каждый префикс не попадали все даты, надо учитывать 907^C(этап работы). Введите коды для нужных этапов и при формировании каждого префикса анализируйте 907^C

Re: создание сценария поиска
Пользователь: whim (IP-адрес скрыт)
Дата: 05, November, 2009 02:58

А я ориентировалась на рабочий лист, а в секции заказы, выбытие и поступление на статус экземпляра
(if v920:'J' then |P=|v907^A |-| v907^B/,|P=|v907^B |-| v907^A/ else if v910^A :'2' then |Z=|v907^A |-| v907^B/,|Z=|v907^B |-| v907^A/ else if v910^A:'0' then |R=|v907^A |-| v907^B/,|R=|v907^B |-| v907^A/ fi fi fi)

Re: создание сценария поиска
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 05, November, 2009 09:32

whim написал(а):
-------------------------------------------------------
> А я ориентировалась на рабочий лист, а в секции
> заказы, выбытие и поступление на статус
> экземпляра
> (if v920:'J' then |P=|v907^A |-|
> v907^B/,|P=|v907^B |-| v907^A/ else if v910^A :'2'
> then |Z=|v907^A |-| v907^B/,|Z=|v907^B |-| v907^A/
> else if v910^A:'0' then |R=|v907^A |-|
> v907^B/,|R=|v907^B |-| v907^A/ fi fi fi)

Логика ошибочная: 910 может содержать разные статусы одновременно, и формат тоже: группа содержит два независимых повторяющихся поля (907 и 910), и неповторяющееся 920. Советую все-таки задействовать этапы работы.

Re: создание сценария поиска
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 09, September, 2010 13:27

Необходимо создать новый сценарий поиска для БД RDR (поиск по дате записи в библиотеку).
Сделал следующее:
1). Добавил в файле RDR.INI новый префикс DV.
2). Добавил в файле RDR.FST строку
51 0 (|DV=|v51/)
3). Далее Актуализайия -> Создать словарь заново -> полностью
Заработало. Но сделав несколько пробных поисков и вручную по БД (БД маленькая всего 15 записей), сравнил, и получил неудовлетворительный результат.
Человек банально забыл ввести Дату записи в библиотеку.И поэтому это не отобразилось в результатах поиска. Далее решил проверить введено ли что-нибудь в поле 51 через конструкцию if. Ничего не получилось. Скорее всего неправильно ввожу формат. Расскажите плиз про форматы в файлах *.FST. Как пример вводимого формата, навожу строку
(if p(v51) then "DV=""ТЕСТ" fi/)

Re: создание сценария поиска
Пользователь: Gena (IP-адрес скрыт)
Дата: 09, September, 2010 14:20

woodyfon написал(а):
-------------------------------------------------------
> Необходимо создать новый сценарий поиска для БД
> RDR (поиск по дате записи в библиотеку).
> Сделал следующее:
> 1). Добавил в файле RDR.INI новый префикс DV.
> 2). Добавил в файле RDR.FST строку
> 51 0 (|DV=|v51/)
> 3). Далее Актуализайия -> Создать словарь заново
> -> полностью
> Заработало. Но сделав несколько пробных поисков и
> вручную по БД (БД маленькая всего 15 записей),
> сравнил, и получил неудовлетворительный
> результат.
> Человек банально забыл ввести Дату записи в
> библиотеку.И поэтому это не отобразилось в
> результатах поиска.

Простите, а как вы хотели? По другому как бы быть и не может - программа показывает только те данные, которые в ней жестко ассоциированы или с введенными данными, или с совершаемыми операциями. Если данные не внесены, то вы и не получите результата.


Далее решил проверить введено
> ли что-нибудь в поле 51 через конструкцию if.
> Ничего не получилось. Скорее всего неправильно
> ввожу формат. Расскажите плиз про форматы в файлах
> *.FST. Как пример вводимого формата, навожу
> строку
>
> (if p(v51) then "DV=""ТЕСТ" fi/)
>


попробуйте так:

(if p(v51) then 'DV=ТЕСТ' fi/)

Текстовые константы отображаются в двойных кавычках только в тех случаях, когда за ними идет оператор вывода поля и это поле не пустое.

Re: создание сценария поиска
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 09, September, 2010 14:38

Значит, не сильно понял, как работает поиск. Изначально, я думал, что результат выводиться грубо говоря в присвоенном префиксе в зависимости от условия, если таково есть.

Помогла следущая конструкция с использованием фиктивного вывода поля
51 0 (|DV=|v51,if a(v51) then "DV=ТЕСТ"n51 fi/)
Или словами. Поле 51 является полем для ввода даты записи в библиотеку в формате YYYYMMDD. Поиск по словарю осуществляется так: вывод содержимого поля 51 всегда, в том случае если поле пустое вывод слова ТЕСТ (можно написать, что НЕ ВВЕДЕНА ДАТА ЗАПИСИ). одинаковое содержимое поля записи суммируется и выводится цифра.



Редактировано 1 раз. Последний раз 09.09.2010 15:31 пользователем woodyfon.

Re: создание сценария поиска
Пользователь: Gena (IP-адрес скрыт)
Дата: 09, September, 2010 16:30

woodyfon написал(а):
-------------------------------------------------------
> Значит, не сильно понял, как работает поиск.
> Изначально, я думал, что результат выводиться
> грубо говоря в присвоенном префиксе в зависимости
> от условия, если таково есть.

По сути так и есть. У вас не получилось сразу из-за того, что вы не указали вывод при отсутствии поля n51, или соответствующие литералы.


> Помогла следущая конструкция с использованием
> фиктивного вывода поля
>
> 51 0 (|DV=|v51,if a(v51) then "DV=ТЕСТ"n51 fi/)

Я не сразу понял, что вам нужно выводить или дату, или тест, но выводить всегда.


> Или словами. Поле 51 является полем для ввода даты
> записи в библиотеку в формате YYYYMMDD. Поиск по
> словарю осуществляется так: вывод содержимого поля
> 51 всегда, в том случае если поле пустое вывод
> слова ТЕСТ (можно написать, что НЕ ВВЕДЕНА ДАТА
> ЗАПИСИ). одинаковое содержимое поля записи
> суммируется и выводится цифра.

Последнее предложение совсем не понятно

Re: создание сценария поиска
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 09, September, 2010 21:52

Последнее написал "для себя", чтобы не забыть. Типа блога smiling smiley



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