Notesdatabase.search

yerke

Well-Known Member
28.08.2007
392
0
#1
сабж

NotesDatabase.Search не находит документы по параметру
а документ в базе есть и все его поля заполнены правильно, которые указываются в параметре поиска

это глюк лотуса?
 
E

Elena Nefedova

Гость
#2
Можно сделать вьюху с такой же точно формулой и проверить, отображается ли там документ.
Формулу нужно куда-нибудь вывести во время выполнения программы, чтобы ни в каком символе не ошибиться
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#3
Для отлаживания я обычно добавляю по одному параметру поиска, начиная с имени формы. Сразу видно, где ошибка.
 

yerke

Well-Known Member
28.08.2007
392
0
#4
Для отлаживания я обычно добавляю по одному параметру поиска, начиная с имени формы. Сразу видно, где ошибка.
так и сделал
по полю ForLang не находит документы
Код:
sf={SELECT form="Raspredelenie"}+_
+{ & (@LowerCase(@Trim(@Text(ForLang)))="все" | @LowerCase(@Trim(@Text(ForLang)))+"."="}+Lcase(Trim(Cstr(cdoc.Lang(0))))+{")}
'=
Set disdcol=kdb.Search(sf, Nothing, 0)
ForLang может содержать "Все" или "Каз" или "Рус"
Lang может содержать "каз." или "рус."

p.s.
раньше по этому параметру все работало нормально
вдруг перестал
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#5
Возьми в скобки:
Код:
+{ & ((@LowerCase(@Trim(@Text(ForLang)))="все") | (@LowerCase(@Trim(@Text(ForLang)))+"."="}+Lcase(Trim(Cstr(cdoc.Lang(0))))+{"))}
 

yerke

Well-Known Member
28.08.2007
392
0
#6
из горизонтального скрола ниче не вижу (зачем офтоп этот горизонтальный скрол)

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

уже 100 раз проверил
все поля в документах правильно заполнены
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#7
Вот это
Код:
@LowerCase(@Trim(@Text(ForLang)))="все"
и вот это
Код:
@LowerCase(@Trim(@Text(ForLang)))+"."="}+Lcase(Trim(Cstr(cdoc.Lang(0))))+{")
Возьми в скобки. На всякий случай.
Может поле ForLang многозначное?
 
E

Elena Nefedova

Гость
#8
через принт и дебаггер получил точный текст поиска
и спользовал его на новой вьюхе
так же документ не отбирается
Я бы сделала теперь, как Medevic вначале советует - по одному условию добавляла бы в selection formula вида, пока не отловила бы, когда документ пропадает :)
 

yerke

Well-Known Member
28.08.2007
392
0
#9
спасибо всем
проблема решена

оказыватся трабла была в опечатке
 
D

Darker

Гость
#10
yerke, kalaisyn! В твоей форме "Raspredelenie", случайно таких полей нет EduPeriod,Profession,Faculty,Degree,EduForm,Discipline,Credit?
Если да, то это база называется "Архив учебных планов", у нас она юзается
 

yerke

Well-Known Member
28.08.2007
392
0
#11
yerke, kalaisyn! В твоей форме "Raspredelenie", случайно таких полей нет EduPeriod,Profession,Faculty,Degree,EduForm,Discipline,Credit?
Если да, то это база называется "Архив учебных планов", у нас она юзается
есть некоторые поля из выше перечисленного
у нас это где :wacko:
в Караганде?
 
D

Darker

Гость
#12
Да в Караганде, есть базы "Контингент", "Офис-регистратор" или "Кредитная система", "Отдел кадров".
Случаем не у нас взято?
 

yerke

Well-Known Member
28.08.2007
392
0
#13
Да в Караганде, есть базы "Контингент", "Офис-регистратор" или "Кредитная система", "Отдел кадров".
Случаем не у нас взято?
да нет
например модуль "Отдел регистрации" (У нас так называется)
я написал с нуля сам
а остальные модули у других пацанов, тож сами писали