Повторяющиеся данные?

  • Автор темы Renegat
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

Renegat

#1
Подскажите новичку
как вводить данные и проверять не повторяются ли они, если да то выводить сообщение и не сохранять. примерный код я уже нашел

tmp:=@If(@IsError(@DbLookup("":"NoCache";"";"vDolgn"; cDolgn; "UNID"));"";@DbLookup("":"NoCache";"";"vDolgn"; cDolgn; "UNID"));
@If(cDolgn=""; @Failure("Введите наименование должности"); @Length(cDolgn)>254; @Failure("Количество символов в поле не должно превышать числа 254"); tmp=""|tmp=UNID; @Success; @Failure("Данная должность уже есть в справочнике"))

cDolgn-поле, vDolgn-представление, UNID-скрытое поле в форме (значение - @Text(@DocumentUniqueID))
но зачем UNID нужен не понял?
обясните как все работает?
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
Откуда Вы выдрали этот текст?
Он ищет в виде документ с введённой такой же должностью и проверяет -одинаковые у тек. документа и у найденного UNID ( Это зделано для того что бы документ как таковой можно было сохранять более одного раза, а то как найдёт сам себя - вот надо проверять тот же унид или нет )

надеюсь понятно выразился
 
R

Renegat

#3
из одной базы там проверка введенных данных!
я попробовал ее написать на другую но ошибку на повторный ввод он не выводит. почему? что нужно еще сделать?
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
...okup("":"NoCache";"ИМЯ_СЕРВЕРА":"ПУТЬ_К_БАЗЕ.nsf";"vDol....

Вот так, а вообще посмотрите хэлп по поводу @DbLookup - там примеры есть
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
<!--QuoteBegin-Renegat+4:07:2007, 12:28 -->
<span class="vbquote">(Renegat @ 4:07:2007, 12:28 )</span><!--QuoteEBegin-->как вводить данные и проверять не повторяются ли они, если да то выводить сообщение и не сохранять
[snapback]71279" rel="nofollow" target="_blank[/snapback]​
[/quote]
Сделать в Input Translation @Unique(@Trim(@ThisValue)) и ничего проверять не надо.
 
R

Renegat

#6
<!--QuoteBegin-Morpheus+4:07:2007, 15:10 -->
<span class="vbquote">(Morpheus @ 4:07:2007, 15:10 )</span><!--QuoteEBegin-->...okup("":"NoCache";"ИМЯ_СЕРВЕРА":"ПУТЬ_К_БАЗЕ.nsf";"vDol....

Вот так, а вообще посмотрите хэлп по поводу @DbLookup - там примеры есть
[snapback]71296" rel="nofollow" target="_blank[/snapback]​
[/quote]

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


<!--QuoteBegin-Medevic+4:07:2007, 15:13 -->
<span class="vbquote">(Medevic @ 4:07:2007, 15:13 )</span><!--QuoteEBegin-->Сделать в Input Translation @Unique(@Trim(@ThisValue)) и ничего проверять не надо.
[snapback]71297" rel="nofollow" target="_blank[/snapback]​
[/quote]

а куда это вставлять надо?
 
R

Renegat

#8
поле редактирумое, но лотус у меня на русском версии 6.5
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
<!--QuoteBegin-Renegat+4:07:2007, 12:18 -->
<span class="vbquote">(Renegat @ 4:07:2007, 12:18 )</span><!--QuoteEBegin-->там все в одной и той же базе (поэтому я думаю путь к базе не требуется), а код я взял совсем из другой базы
[snapback]71299" rel="nofollow" target="_blank[/snapback]​
[/quote]
тьфу, я не правильно понял

2Medevic
А при чем тут уникью - реч идёть о том что бы значение не повторялось в другом документе в тек. базе( это насколько понял )
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
<!--QuoteBegin-Morpheus+4:07:2007, 13:28 -->
<span class="vbquote">(Morpheus @ 4:07:2007, 13:28 )</span><!--QuoteEBegin-->А при чем тут уникью - реч идёть о том что бы значение не повторялось в другом документе в тек. базе( это насколько понял )

[snapback]71303" rel="nofollow" target="_blank[/snapback]​
[/quote]
Тогда не причем. Неправильно понял. :D
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#11
Один из вариантов. Вставляется в Input Validation поля. По-русски не знаю как называется.
Код:
@If(@IsNull(@ThisValue); @Failure("Пустое значение"); @If(@IsNull(@Trim(@Replace(@Transform(@ThisValue; "x"; @DbLookup("":"NoCache"; ""; "vDolgn"; x; "UNID"; [FailSilent])); @Text(@DocumentUniqueID); @Nothing))); @Success; @Failure("Есть такая буква!")))
 
R

Renegat

#12
разкажу так! есть форма где надо вводить должности и если ввести должность которая имеется в базе то выводить ошибку!

и в проложенным вверху коде я не понял как тут идет сравнение (т.е. поиск уже имеющихся данных и сравнение с вводимой должностью)?
 
R

Renegat

#13
спасибо!
но я все не понял? что такое "х"? это символ?
зачем использовать UNID?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#14
<!--QuoteBegin-Renegat+4:07:2007, 14:45 -->
<span class="vbquote">(Renegat @ 4:07:2007, 14:45 )</span><!--QuoteEBegin-->но я все не понял? что такое "х"? это символ?
[snapback]71320" rel="nofollow" target="_blank[/snapback]​
[/quote]
"x" - переменная. Глянь хелп по @Transform.

<!--QuoteBegin-Renegat+4:07:2007, 14:45 -->
<span class="vbquote">(Renegat @ 4:07:2007, 14:45 )</span><!--QuoteEBegin-->зачем использовать UNID?
[snapback]71320" rel="nofollow" target="_blank[/snapback]​
[/quote]
Уже ответили выше. Чтобы исключить из проверки текущий документ.
Или что значит использовать?
 
Статус
Закрыто для дальнейших ответов.