Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lotus Notes/Domino: Программирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.84/177: Рейтинг темы: голосов - 177, средняя оценка - 4.84
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
#1

Аналог Like

19.08.2010, 13:06. Просмотров 31884. Ответов 28
Метки нет (Все метки)

всем привет, подскажите, как мне искать в документе необходимые слова в поле

Код (Delphi):
search = "Form="KR" & Num="1" & Corr="БАНК"
colldoc = db.Search(search, null, 0);
к примеру поле "кореспондент"="АО "КРЕДИТ БАНК" или "кореспондент"="АО "АЛЬЯНС БАНК"
в этом случае эти документы должны быть найдены по этому поиску, есть ли функция типа как LIKE ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2010, 13:06
Ответы с готовыми решениями:

Аналог Консоли
Господа мне нужно реализовать фишку - аналог консоли с бегущим текстом. Смысл:...

Аналог Picklistcollection
Есть Xpage формочка - Карточка сотрудника, в ней есть поле - Организация,...

Аналог @dblookup в Lotusscript
Мне надо по событию OnChange - поля Pole_1, поменять значение поля - Pole_2....

Аналог @success на ЛотусСкрипте.
ПРоблемка вот в чём.необходимо выполнять некоторую проверку содержания полей...

Аналог Dekart Logon
Есть такая программка Dekart Logon. В каком направлении покопаться, чтобы...

28
Xotyt
0 / 0 / 0
Регистрация: 04.08.2008
Сообщений: 408
19.08.2010, 13:12 #2
@Like
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 13:19 #3
Цитата Сообщение от xalet
@Like
пробовал так:

Код (C++):
search = "Form="KR" & Num="1" & @Like(Corr)="БАНК"
пишет


Notes error: Formula Error
0
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
19.08.2010, 13:22 #4
всегда существует оценка эффективности...
если набор большой - возможно DbSearch
а ежели - нет - то выборку можно "втянуть" и искать в ней
притом не все варианты возможны для поиска (т.е. всего-лишь надо <начало фразы>* или *<конецфразы>)
можно решить и индексом (сгенерив мультивалюйное поля - для поиска, с вариантами)

Добавлено:


Цитата Сообщение от Didokz
search = "Form="KR" & Num="1" & @Like(Corr)="БАНК"
а просто написать в отборе тестовой вьюшеке - не судьба?
или открыть хэлп по формуле....
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 13:38 #5
так геморно, мне надо в БД искать документы по вх.номерам и по кореспондентам
я не хочу каждый документ открывать, "втянуть" и искать, пусть сервер это делает
db.Search(...
пишу на C# импользуя СОМ библиотеки, про @Uppercase узнал уже )))
search = "Form=KR & Num=" + InNumber.Text + " & @Uppercase(Corr)=" + Korespondent.Text.ToUpper() + "";
я сам в Лотусе не пишу и дизайнера(хелп по нему в т.ч) у меня нету
0
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
19.08.2010, 13:47 #6
Подойдет @Contains.
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 13:51 #7
ещё одна проблема:
colldoc = db.Search(search, null, 0);
doc = colldoc.GetFirstDocument();
поле RegDate в документе отображается как дд.мм.гггг
я проверял, почему не срабатывает думал:
MessageBox.Show(doc.GetFirstItem("RegDate").Text);
возвращает дд.мм.гггг чч.мм.сс
как правило юзер время не помнить и не вводят, как искать такую дату
0
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
19.08.2010, 13:57 #8
Понял только с третьего прочтения.
@Date(RegDate) вернёт только дату.
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 14:11 #9
Цитата Сообщение от Medevic
Понял только с третьего прочтения.
@Date(RegDate) вернёт только дату.
а в каком формате возварщает ? дд.мм.гггг или мм.дд.гггг ?
че то у меня при поиске с датой не срабатывает поиск, без даты работает
search = "Form="KR" & Num="1" & @Date(RegDate)="23.12.2009" & @Contains(@LowerCase(Corr);" + Korespondent.Text.ToLower() + ")";
0
tmyky
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
19.08.2010, 14:16 #10
http:///ipb.html?s=&sh...st&p=178713
почиталиб про алтернативы и применимасть вашего подхода
0
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
19.08.2010, 14:20 #11
В формате даты.
Дату надо брать в квадратные скобки.
@Date(RegDate)=[23.12.2009]

Добавлено: Ну а более правильно:
@Date(RegDate)=@Date(2009; 12; 23)
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 14:23 #12
г-н lmike, вы просто мимо идите,сюда не заглядывайте
0
mvyush
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
19.08.2010, 14:28 #13
Цитата Сообщение от Didokz
сам в Лотусе не пишу и дизайнера(хелп по нему в т.ч) у меня нету
http://www.appleesl.com/help/help8_designe...in?OpenFrameset
https://www.ibm.com/developerworks/lotus/do...dominodesigner/
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 14:34 #14
Цитата Сообщение от Medevic
В формате даты.
Дату надо брать в квадратные скобки.
@Date(RegDate)=[23.12.2009]

Добавлено: Ну а более правильно:
@Date(RegDate)=@Date(2009; 12; 23)
с кв.скобками ошибка в формуле говорит, я же использую в db.search()
a

Код (Delphi):
search = "Form="KR" & Num="1" & @Date(RegDate)="2009.12.23" & @Contains(@LowerCase(Corr);" + Korespondent.Text.ToLower() + ")";
не возвращает ничего
0
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
19.08.2010, 14:40 #15
Если берешь в квадратные скобки, то вводить дату надо в региональном формате. т.е. [23.12.2009].
Поэтому лучше использовать @Date(2009; 12; 23). Параметры - год, месяц, число.
0
mvyush
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
19.08.2010, 14:59 #16
Didokz
Что-то мне кажется с кавычками Вы намудрили. В ЛС запрос скорее всего выглядел бы так:

LotusScript
1
search = {Form="KR" & Num="1" & @Date(RegDate)=@Date(2009; 12; 23) & @Contains(@LowerCase(Corr);"} + Korespondent.Text.ToLower() + {")}
с учётом того, что в ЛС {} — ещё один вид кавычек.
Может так получится:

Код (Delphi):
search = "Form=\"KR\" & Num=\"1\" & @Date(RegDate)=@Date(2009; 12; 23) & @Contains(@LowerCase(Corr);\"} + Korespondent.Text.ToLower() + "\")";
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 15:17 #17
Цитата Сообщение от Medevic
Если берешь в квадратные скобки, то вводить дату надо в региональном формате. т.е. [23.12.2009].
Поэтому лучше использовать @Date(2009; 12; 23). Параметры - год, месяц, число.
дело в том что дата у меня переменный,берется с текстбокса InDate.Text
но я могу в этом в текстбоксе настроит дату как хочу, могу гггг.мм.дд или дд.мм.гггг, соответственно, при поиске док-в по дате:
если я настрою дд.мм.гггг

Код (Delphi):
search = "@Date(RegDate)=[" + InDate.Text + "]...;
а если формат
гггг.мм.дд
то

Код (Delphi):
search = "@Date(RegDate)=@Date(" + InDate.Text + ")...;
далее
colldoc = db.Search(search, null, 0); и т.д.
я вас правильно понял ?

Добавлено:


Цитата Сообщение от nvy
Didokz
Что-то мне кажется с кавычками Вы намудрили. В ЛС запрос скорее всего выглядел бы так:

LotusScript
1
search = {Form="KR" & Num="1" & @Date(RegDate)=@Date(2009; 12; 23) & @Contains(@LowerCase(Corr);"} + Korespondent.Text.ToLower() + {")}
с учётом того, что в ЛС {} — ещё один вид кавычек.
Может так получится:

Код (Delphi):
search = "Form=\"KR\" & Num=\"1\" & @Date(RegDate)=@Date(2009; 12; 23) & @Contains(@LowerCase(Corr);\"} + Korespondent.Text.ToLower() + "\")";
с кавычками проблем нет, так как если убрать из опций поиска дату,работает

Код (Delphi):
search = "Form=KR & Num=" + InNumber.Text +" & @Contains(@LowerCase(Corr);" + Korespondent.Text.ToLower() + ")";
0
Mydyvys
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
19.08.2010, 15:18 #18
Лучше давать дату по частям. Чтобы не было проблем с форматом. Типа такого:

Код
search = "@Date(RegDate)=@Date(" + Year(InDate) + "; " + Month(InDate) + "; " + Day(InDate) + ")...;
0
Dydokz
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 50
19.08.2010, 15:51 #19
Цитата Сообщение от Medevic
Лучше давать дату по частям. Чтобы не было проблем с форматом. Типа такого:

Код
search = "@Date(RegDate)=@Date(" + Year(InDate) + "; " + Month(InDate) + "; " + Day(InDate) + ")...;
вот посмотрите

пишет Notes error: Formula Error (@Date(RegDate)=@Date(2009.12.23))

Добавлено:
0
mvyush
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
19.08.2010, 15:57 #20
@Date(2009.12.23), @Year(2009.12.23), @Month(2009.12.23), @Day(2009.12.23) — не хватает кавычек/скобок.
0
19.08.2010, 15:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2010, 15:57

Аналог Principal на внешнюю почту...
Делаю так Set maildoc = New NotesDocument(db) maildoc.SendTo = &quot;Внешний...

Аналог Outline*а для Xpage
Подскажите в какую сторону капнуть для реализации аналогичной вещи в xPage....

аналог Notesuidocument.currentfield в Web
привет всем есть форма в базе база предназначена для веб а как можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru