Re: автосчетчик
Пользователь:
Serega89 (IP-адрес скрыт)
Дата: 16, April, 2010 10:41
Я сделал следующее:
Пользователь: ochagova (IP-адрес скрыт)
Дата: 26, October, 2009 11:04
Вы можете сами это организовать, например:
1. заводите запись читателя с идентификатором MAXREADER
2. выставляете начальное значение, например, в поое 22 - 1/2009
3. Сделайте инверсию, например - 22 0 if v30: 'maxreader' then "MAXI="v22 fi
4. В лист ввода поля 30 подцепите ввод по словарю: MAXI=
5. добавьте в autoin.gbl RDR строки, увеличивающие номер в записи AXREADER:
CORREC
'*'
v30
'RI=MAXREADER'
XXXXXXXXXXXXXXXXXXX
DEL
1
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
ADD
1
&uf('G0/',v1001)
REP
1
1
f(val(v1)+1,0,0)
XXXXXXXXXXXXXXXXXXX
IF
if val(v1)>val(&uf('G0/',v22)) then '1' fi
REP
22
1
v1,&uf('G1/',v22)
FI
DEL
1001
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
DEL
1
*
XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
END
Но по моему, счетчик увеличивается на единицу даже тогда, когда существующая запись просто корректируеся. И мне надо чтобы номера были не 1/2009, 2/2009... , а 190001, 190002...
Я в autoin.gbl записал просто
CORREC
'*'
v30
'RI=MAXREADER'
XXXXXXXXXXXXXXXXXXX
REP
22
1
f(rsum(v22';1'),0,0)
Счетчик вроде бы работает, но при сохранении выдает сообщение Дублетный инв. номер 1, т.е. одинаковый номер с MAXREADER.
но увелечение на 1 происходит.
Дак вот вопрос:
1) Как сделать чтобы при корриктеровке существующей записи номер не увеличивался
2)Как сделать чтобы Не выходила ошибка