Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
Часто задаваемые вопросы (FAQ) :  ИРБИС Irbis
Исключительно важный раздел форума, который необходимо прочитать всем, кто только начинает работать с Ирбисом. Если ваши знания не так широки, как вам хотелось бы, тогда обязательно прочитайте этот раздел. Если вы не нашли, что искали, то воспользуйтесь поиском по форуму, и, скорее всего, вы найдете ответ на свой вопрос среди существующих сообщений. 
Страницы: 12>>
Страница: 1 из 2
Глобальная корректировка
Пользователь: AngryCat (IP-адрес скрыт)
Дата: 12, March, 2014 12:22

Здраствуйте. Работаю в Ирбисе совсем недавно. Мне нужно кое что заменить с помощью глобальной корректировки
в поле 910^B.
Например вместо Б/Ф-1/ЦУ нужно чтобы было просто Б/Ф/ЦУ.
Пробовал прописывать такой код, но безрезультатно:

(if p(v910) then if v910^B<>'' then if &uf('+97',v910^B)='Б/Ф-1/цу' then '-1' else v910^B fi else # fi fi/)

Заранее благодарен.

Re: Глобальная корректировка
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, March, 2014 15:00

Сценарий глобальной корректировки:
CHA
910
*
'Б/Ф-1/ЦУ'
'Б/Ф/ЦУ'
Применимо для всех повторений поля.

Re: Глобальная корректировка
Пользователь: AnnaLa (IP-адрес скрыт)
Дата: 15, September, 2014 12:32

Помогите и мне, пожалуйста. Мне нужно перенести информацию из поля 3:Ссылка (URL-адрес) в поле 951:ссылка-внешний объект, подполе URL. После чего поле 3 удалить.

Re: Глобальная корректировка
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 15, September, 2014 16:29

Обусловимся, что ссылка в ирбисе находиться в подполе 951^i (внешний интернет-ресурс)
Сценарий глобальной корректировки
ADD
951
XXXXXXXXXXXXXXXXXXX
|^I|v3
XXXXXXXXXXXXXXXXXXX
DEL
3
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
Предварительно необходимо сделать резервную копию записей БД и проверить сценарий.

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 16, September, 2014 12:00

На случай, если поле 3 повторяющееся, надо написать:

(|^I|v3/)

Re: Глобальная корректировка
Пользователь: AnnaLa (IP-адрес скрыт)
Дата: 16, September, 2014 13:03

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

Re: Глобальная корректировка
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 16, September, 2014 15:07

Это сторонняя разработка - формально-логический контроль (жесткое условие наличия поля 3). Вам надо подправить файл dbnflc.pft.

Re: Глобальная корректировка
Пользователь: AnnaLa (IP-адрес скрыт)
Дата: 16, September, 2014 16:45

спасибо! все получилось )

Re: Глобальная корректировка
Пользователь: Lenka_X777 (IP-адрес скрыт)
Дата: 15, October, 2014 14:43

Подскажите пожалуйста, не получается сделать глобальную корректировку Баз данных,неактивный диапазон MFN, хотя на других клиентских ПК получается.

Вложения: GDl.pdf (132KB)  
Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 15, October, 2014 15:54

Это было в какой-то старой версии, но исправлялось. У вас какая версия? Обновления к версии брали.

Re: Глобальная корректировка
Пользователь: Lenka_X777 (IP-адрес скрыт)
Дата: 15, October, 2014 16:27

Версия 2007.1

Re: Глобальная корректировка
Пользователь: Lenka_X777 (IP-адрес скрыт)
Дата: 15, October, 2014 16:28

Обновление не брали

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 16, October, 2014 10:41

Так возьмите. Может уже в вашей версии это исправлено.

Re: Глобальная корректировка
Пользователь: Lenka_X777 (IP-адрес скрыт)
Дата: 17, October, 2014 08:26

Спасибо, уже все работает, разобралась...просто обновила IrbisGbl

Re: Глобальная корректировка
Пользователь: ssa_admin (IP-адрес скрыт)
Дата: 23, October, 2014 14:29

Подскажите, пожалуйста, как можно во всей базе удалить строки
907^C^ГодМесяцДень^B

Заранее спасибо :)

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 23, October, 2014 15:24

Все строки поля 907 или выборочно?

Re: Глобальная корректировка
Пользователь: ssa_admin (IP-адрес скрыт)
Дата: 23, October, 2014 15:30

у нас в 907 поле есть строки такого вида:
907^CПК^A20141023^Bимя_пользователя
то их конечно нужно оставить, но много строк типа:
907^C^ГодМесяцДень^B
их хотелось бы убрать. Дата меняется, а остальное статично

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 24, October, 2014 10:57

"типа" - непонятно. Удалить строки, где пустые подполя ^C и ^B?

Re: Глобальная корректировка
Пользователь: ssa_admin (IP-адрес скрыт)
Дата: 24, October, 2014 11:38

простите, что непонятно сформулировал.
Да, удалить строки, где пустые подполя ^C и ^B

Re: Глобальная корректировка
Пользователь: ochagova (IP-адрес скрыт)
Дата: 27, October, 2014 11:39

DEL
907
F
(if p(v907) then if v907^C='' and v907^B='' then '1' else '0' fi fi/)

Re: Глобальная корректировка
Пользователь: ssa_admin (IP-адрес скрыт)
Дата: 27, October, 2014 13:04

Спасибо, работает :)

Re: Глобальная корректировка
Пользователь: Natty (IP-адрес скрыт)
Дата: 09, December, 2014 14:22

Здравствуйте!
Никак не могу разобраться, в чем дело. Необходимо сменить статус издания (910^A) с С на 0.
Сценарий корректировки:
CHA
910^A
*
C
0
однако в итоге выводится ошибка формата: 99-!C.

Re: Глобальная корректировка
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 09, December, 2014 15:15

Лучше использовать оператор замены REP, поскольку данные уже есть.
В Вашем случае ноль и статус С необходимо заключить в одинарные кавычки.
CHA
910^A
*
'C'
'0'



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

Re: Глобальная корректировка
Пользователь: Дунаевская (IP-адрес скрыт)
Дата: 09, December, 2014 15:24

Если введено подполе ^1 (число записей), то статус С будет сохраняться.
Нужно дополнительно удалить и ^1

Re: Глобальная корректировка
Пользователь: Natty (IP-адрес скрыт)
Дата: 09, December, 2014 15:35

woodyfon, Дунаевская, спасибо огромное!

Re: Глобальная корректировка
Пользователь: marusa (IP-адрес скрыт)
Дата: 11, December, 2014 14:03

Здравствуйте!
Помогите мне, пожалуйста, разобраться.
В глобальной корректировке моя конструкция работает правильно:
ADD
317
XXXXXXXXXXXXXXXXXXX
(if v910^q<>'' and p(v910^b) then |^A|v910^q |^!|v910^b fi)
XXXXXXXXXXXXXXXXXXX
Заносит в базу и наименование коллекции, и инвентарный номер,
а в конструкции:
ADD
317
XXXXXXXXXXXXXXXXXXX
(if v910^q<>'' and p(v910^b) then |^A|&unifor("Kcoll.mnu!"v910^q) |^!|v910^b fi)
XXXXXXXXXXXXXXXXXXX
в запись не вносится раскодированное наименование коллекции, записывается только инвентарный номер.
Может быть, я не поняла смысл |&unifor("Kcoll.mnu!"......., и надо делать это как-то по-другому.
Заранее благодарна за помощь.

Re: Глобальная корректировка
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 11, December, 2014 16:08

Структура любого справочника следующая: нечетные строки - это значение, четные строки - пояснение, каждый справочник должен иметь конец, состоящий из двух строк (1 строка - *****, 2 строка - пустая ). Общее количество строк - это четное число.
Функция раскодировки через справочник &uf('K... возвращает пояснения. Также следует иметь в виду, что условные литералы выводятся при условии существования в записи в соответствующих полей или подполей. Поэтому Вам необходимо изменить код: либо добавить фиктивный вывод поля, либо ввести дополнительные условия:
(if v910^q<>'' and v910^b<>'' then if &uf('Kcoll.mnu!'v910^q)<>'' then '^A'&uf('Kcoll.mnu!'v910^q),'^!'v910^b fi fi).
Вы не указали, что необходимо делать, если значение подполя 910^q не удалось раскодировать через справочник. ВОзможно просто указать это значение в подполе.
Например,
(if v910^q<>'' and v910^b<>'' then if &uf('Kcoll.mnu!'v910^q)<>'' then '^A'&uf('Kcoll.mnu!'v910^q),'^!'v910^b else '^A'v910^q,'^!'v910^b fi fi)

Re: Глобальная корректировка
Пользователь: marusa (IP-адрес скрыт)
Дата: 11, December, 2014 16:39

Здравствуйте!
Пожалуйста объясните мне, почему моя конструкция работает:
ADD
317
XXXXXXXXXXXXXXXXXXX
(if v910^q<>'' and p(v910^b) then |^A|v910^q |^!|v910^b fi)
XXXXXXXXXXXXXXXXXXX ,
а другой вариант не записывает раскодированное наименование коллекции, записывается только инвентарный номер. В чем моя ошибка?
ADD
317
XXXXXXXXXXXXXXXXXXX
(if v910^q<>'' and p(v910^b) then |^A|&unifor("Kcoll.mnu!"v910^q) |^!|v910^b fi)
XXXXXXXXXXXXXXXXXXX

Re: Глобальная корректировка
Пользователь: АрПи (IP-адрес скрыт)
Дата: 11, December, 2014 16:50

двойные кавычки на одинарные заменить попробуйте :)


&unifor("Kcoll.mnu!"v910^q) ==> &unifor('Kcoll.mnu!'v910^q)



Редактировано 1 раз. Последний раз 11.12.2014 16:51 пользователем АрПи.

Re: Глобальная корректировка
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 11, December, 2014 17:03

marusa,
Цитата:
(if v910^q<>'' and p(v910^b) then |^A|&unifor("Kcoll.mnu!"v910^q) |^!|v910^b fi)
Вы, наверное, не полностью прочитали мое сообщение. В своей конструкции Вы используете условный литерал для выводы пояснения значения подполя 910^q. В этом случае в подполя 317^A ничего не запишется. Вам надо изменить его с применениям фиктивного вывода поля:
(if v910^q<>'' and v910^b<>'' then |^A|d910&unifor("Kcoll.mnu!"v910^q) |^!|v910^b fi).
Не понимаю, зачем использовать условный литерал, если Вы делаете вывод в том случае, если условие выполняется. Можно сразу применять безусловный литерал.

Страницы: 12>>
Страница: 1 из 2


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