Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Комплектатор :  ИРБИС Irbis
 
Страницы: <<12
Страница: 2 из 2
Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 08, April, 2013 08:58

В MAXREADER вы используете поле 22? А оно, случайно не копируется в поле 30 записи MAXREADER? А в DBNFLC.pft вы не вставляли проверку по полю 22? В записи MAXREADER есть значение 200004? В каком поле?



Редактировано 2 раз. Последний раз 08.04.2013 09:02 пользователем ochagova.

Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 24, May, 2016 08:12

Добрый день.
ИРБИС64 2014.1
Установила автоматический идентификатор читателя "MAXREADER" в БД RDR в поле 17.
Аutoin.gbl изменила, всё работает, но при каждом сохранении любой записи БД, идентификатор в MAXREADER увеличивается на 1.
У нас идентификаторы выстроены таким образом, что совпадают с MFN записи.
Подскажите, как решить проблему? Спасибо.

Вложения: autoin.gbl (11.2KB)  
Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 25, May, 2016 11:57

Надо немного сложнее. А именно:
CORREC
'*'
v30
'RI=MAXREADER'

DEL
1
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
1
XXXXXXXXXXXXXXXXXXX
if v1001<>'' then f(val(v1001)+1,0,0) fi
XXXXXXXXXXXXXXXXXXX
IF
if val(v1)>val(v17) then '1' fi
REP
17
1
v1

FI
DEL
1
*


END

Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 26, May, 2016 12:34

ochagova написал(а):
-------------------------------------------------------
> Надо немного сложнее. А именно:
> CORREC
> '*'
> v30
> 'RI=MAXREADER'
>
> DEL
> 1
> *
> XXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXX
> ADD
> 1
> XXXXXXXXXXXXXXXXXXX
> if v1001<>'' then f(val(v1001)+1,0,0) fi
> XXXXXXXXXXXXXXXXXXX
> IF
> if val(v1)>val(v17) then '1' fi
> REP
> 17
> 1
> v1
>
> FI
> DEL
> 1
> *
>
>
> END

Благодарю! Всё работает отлично!

Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 06, June, 2016 08:06

Добрый день! Вернулась ещё раз к вопросу автоматического формирования идентификатора...
В БД RDR всё работает.
Создана ещё одна БД массовых мероприятий по образцу RDR. Установить автосчётчик поля (30:) не получается... Он не увеличивается на 1 с каждой новой записью. В чём может быть проблема? Спасибо.

Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 06, June, 2016 09:55

Добавлю.
В БД RDR счётчик сейчас тоже отказывается увеличиваться на 1... и у каждому новому читателю присваивает одинаковый идентификатор.
Подскажите, пожалуйста, что делать?



Редактировано 1 раз. Последний раз 07.06.2016 08:03 пользователем Nata.

Вложения: autoin.gbl (11.4KB)  
Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 08, June, 2016 10:12

Проверьте - не заблокирована ли запись MAXREADER? Что чтоит у нее в по ле 17? должно быть - макс.номер + 1

Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 09, June, 2016 07:56

ochagova написал(а):
-------------------------------------------------------
> Проверьте - не заблокирована ли запись MAXREADER?
> Что чтоит у нее в по ле 17? должно быть -
> макс.номер + 1
Запись не заблокирована, даже если делаю принудительную разблокировку, всё остаётся как прежде... Макс. номер в поле отслеживаю - с ним всё в порядке. При формировании новых записей в БД - идентификатор копируется из записи MAXREADER и не увеличивается на 1.

Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 09, June, 2016 08:25

У вас не в порядке файл autoin.gbl. Видимо, вы правите его ручками. Посмотрите как он выглядит в редакторе - doc1. Оператор CORREC у вас вообще не работает.
Если уж вводите руками, то следите, чтобы не было никаких пробелов до и после названия операторов

Вложения: Doc1.docx (44.5KB)  
Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 09, June, 2016 08:30

ochagova написал(а):
-------------------------------------------------------
> У вас не в порядке файл autoin.gbl. Видимо, вы
> правите его ручками. Посмотрите как он выглядит в
> редакторе - doc1. Оператор CORREC у вас вообще не
> работает.
> Если уж вводите руками, то следите, чтобы не было
> никаких пробелов до и после названия операторов
Действительно, правлю ручками...
Пойду исправлять. Спасибо!

Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 09, June, 2016 10:03

Файл исправила в редакторе.
Теперь такая ситуация:
первая новая запись в БД - идентификатор равен значению записи MAXREADER (например, 10001),
вторая новая запись в БД - идентификатор увеличился на 1 и стал равен 10002,
третья новая запись в БД - идентификатор имеет вид 1000110003,
четвёртая и последующие записи - идентификатор не изменяется и имеет вид 1000110003.

Вернула вот эту конструкцию:
ADD
30

if a(v30) then &uf('D,!RI=MAXREADER!,v17') fi

CORREC
'*'
''
'RI=MAXREADER'

REP
17
1
f(val(v17)+1,0,0)

END

Всё работает, но вернулась старая проблема с увеличением идентификатора при любом сохранении в записях.



Редактировано 2 раз. Последний раз 10.06.2016 09:35 пользователем Nata.

Вложения: autoin.gbl (11.6KB)  
Re: автосчетчик
Пользователь: Nata (IP-адрес скрыт)
Дата: 16, June, 2016 08:21

Проблема актуальна...
В чём может быть причина?

Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 16, June, 2016 11:00

У вас выпал оператор удаления транзитного поля 1001 в блоке CORREC. Т.е. перед оператором END вставьте
DEL
1001
*
XXXXXX
XXXXXX

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 17, November, 2016 11:24

Подскажите пожалуйста, а число для автосчетчика может только с цифр от 1 до 9 начинаться? Возможно каким-то образом сделать чтобы с 0 шло?
Так как нужны номера формата 000001, 000002, 000003,...,002345 и т.д. Потому что, если счетчик ставить на значения с нуля в MAXREADER, то он все равно сбрасывается на 1,2,3...

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 22, November, 2016 13:25

И еще вопрос. Как правильно составить задание на глобальную корректировку, чтобы перенумеровать идентификаторы всех читателей? То есть удалить все существующие идентификаторы и назначить новые от 0000001 до 0035372. Пробовал назначить команды по примеру автосчетчика, но не получается.



Редактировано 1 раз. Последний раз 22.11.2016 13:25 пользователем KrVs.

Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 23, November, 2016 10:51

Мне кажется, вам надо освоить такую технологию - Служба ГЛОБАЛЬНЫХ СЧЕТЧИКОВ. Она описана в релизе к 2015. Ведь MAXREADER был придуман в отсутствии такой самостоятельной технологии.

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 24, November, 2016 08:37

ochagova написал(а):
-------------------------------------------------------
> Мне кажется, вам надо освоить такую технологию -
> Служба ГЛОБАЛЬНЫХ СЧЕТЧИКОВ. Она описана в релизе
> к 2015. Ведь MAXREADER был придуман в отсутствии
> такой самостоятельной технологии.

Большое спасибо! Но как понял, эта технология работает только для версии 2015.1 и выше. А у нас версия 2011.1. Поэтому, к сожалению, это не будет работать. Придется самому писать и делать корректировку. А это пока не понял, как лучше сделать.

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 25, November, 2016 10:01

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

Вложения: error_schet.doc (697KB)  
Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 25, November, 2016 11:12

Записи могут удаляться только по причине ФЛК. А если отключать ФЛК?

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 01, December, 2016 09:20

ochagova написал(а):
-------------------------------------------------------
> Записи могут удаляться только по причине ФЛК. А
> если отключать ФЛК?

Если отключить все ФЛК, то становится гораздо лучше, меньше записей удаляется. Но все равно по непонятной причине некоторые записи удаляются. Допустим, задаю корректировку 200 записей, и 10 из них в середине удалились опять.

То есть тогда можно на время корректировки просто убрать ФЛК?

А ошибка -608 это ничего страшного? В записи MAXREADER. Можно ее игнорировать? Вроде ничего не происходит, все работает.



Редактировано 1 раз. Последний раз 01.12.2016 09:48 пользователем KrVs.

Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 01, December, 2016 10:01

-608 - это находясь в какой-то записи, вы ее же вызываете на корректировку оператором CORREC. Ничего страшного, просто надо где-то поставить условный оператор IF, т.е. выполнять для всех записей, которые не MAXREADER
А почему в отсутствии ФЛК происходят удаления - непонятно, надо разбираться. ФЛК, конечно, можно отключать, но при этом не будет контроля на дублетные поля 30. Если все работает правильно, то дублетов быть не должно. Но вдруг запись MAXREADER заблокируется? Тогда в ней не будет сдвигаться номер и один и тот же ИД будет присваиваться записям. Т.е. перед запуском надо проверять состояние записи MAXREADER.

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 09, January, 2017 09:05

Еще возник один вопрос. Теперь при выборе идентификатора читателя, он очень долго висит и прокручивает, когда открываешь словарь для выбора. Появлется все правильно, как и положено, одно число, последний введенный идентификатор (который записан в MAXREADER) +1, но очень долго висит и крутится. Непонятно почему такое происходит. Вроде должно все быстро работать, так как из записи MAXREADER системе только число взять надо, и все. Но чем больше записей в RDR, тем больше висит. На первый такого не было, когда проверял.

Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 09, January, 2017 09:14

При выборе или при сохранении? Если при выборе, то MAXCREADER непричем, т.к. он работает в автовводе (?) при сохранении записи. При выборе задержка бывает на формировании окна полного просмотра. Это бывает связано с большим кол-м поля 40.

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 09, January, 2017 09:48

При выборе идентификатора из словаря.
Повторения поля 40 по идее тоже влиять не должны, так как все делаю на новом читателе.
То есть нужно записать нового читателя, становимся на новый MFN, выбираем поле 30, словарь, и начинает долго крутится, минуты две, потом появляется идентификатор в словаре.
Первый скриншот этот как раз при ожидании. Вот так крутятся песочные часы минут две. Потом появляется идентификатор, второй скриншот.

Вложения: w1.jpg (74.4KB)   w2.jpg (64KB)  
Re: автосчетчик
Пользователь: ochagova (IP-адрес скрыт)
Дата: 09, January, 2017 14:27

Тогда надо проверять словарь. Во-первых, вы в RDR.fst ничего не добавляли? Во-вторых, меняли метод ввода в поле 30, что у вас там стоит?
В-третьих, сделайте реорганизацию словаря или создайте его заново.

Re: автосчетчик
Пользователь: KrVs (IP-адрес скрыт)
Дата: 10, January, 2017 13:05

Большое спасибо! Сделал создание словаря заново и все стало хорошо.
Теперь идентификатор появляется моментально.

А в RDR.fst добавлено все как тут в инструкции, для создания автосчетчика:
70 0 if v30: 'MAXREADER' then "MAXI="v70 fi

В методе ввода в поле 30 стояло подключение словаря:
Режим ввода:2 (Ввод через словарь); Доп. инф-ия: ,MAXI=,

Но теперь сделал просто авдоввод при сохранении записи, чтобы автоматически идентификатор проставлялся, без выбора из словаря. Так еще проще.

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


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