Search

wowa

Well-known member
01.02.2007
845
0
#1
Для примера:
searchFormula$ = {Form = "Project"}
Set collection = db.Search(searchFormula$, Nothing,0)

Подскажите, Если у меня будет форма называться project, оно же не найдет ниодного документа... как быть?
У меня просто есть button, где я ввожу нужное имя формы и + имя поля со значением. Дак вот если же я введу где-н с большой буквы , то оно не найдет ничего.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
Используйте
searchFormula$ = {@LowerCase( Form ) = } & {"} & lcase("Project") & {"}
...
 

wowa

Well-known member
01.02.2007
845
0
#3
Для: Morpheus
пасиб, думал насчет @LowerCase, но что-то не сообразил как его вставить...
Ща попробую!

не, тут я немного не так сказал....
если же форма называется "Project", а я введу project (и наоборот) то оно ничего не найдет!
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
Для: wowa
А Вы пробовали?
Суть в том чтобы привести и поле Form и вопрос в нижний регистр

searchFormula$ = {@LowerCase( Form ) = } & {"} & lcase("Project") & {"}

@LowerCase( Form ) - приводит в документе имя формы к ниж. регистру
lcase("Project") - приводит запрос к нижнему регистру

Как вариант можно ко всему исчо и @Contains
 

wowa

Well-known member
01.02.2007
845
0
#5
Плохова-то
Дело в том, что я беру строку запроса из поля....

stSearchFormula = uidoc.FieldGetText("GXE_SpInf_SelectionDoc_TX")
Set dcCollection = dbsrc.Search(stSearchFormula$, Nothing,0)
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
Для: wowa
А что именно Вы берёт из полу какую часть запроса или весь? что мешает привести всё к ниджнему регистру???
 

wowa

Well-known member
01.02.2007
845
0
#7
запрос у меня допустим такой:
имя_формы = "форма1" & поле_1 = значение_поля1 & поле_2 = значение_поля2 .......


stSearchFormula = Lcase(uidoc.FieldGetText ("GXE_SpInf_SelectionDoc_TX"))
Set dcCollection = dbsrc.Search(stSearchFormula$, Nothing,0)

Этот же код не правильный?
Что-то я не знаю как это можно все заделать
 
F

fvoice

#8
Search возвращает пустую коллекцию?

В дебаггере проверьте dbsrc, действительно ли это та БД.

Что значит имя_формы = "форма1" , нужно form={форма1}

form={форма1}&поле_1={значение_поля_1}&поле_2={значение_поля_2}
если:
форма1 - название формы
поле_1 - название поля, содержимое которого будет сравниваться с значение_поле_1
значение_поля_1 - та строка с которой сравнивается значение поле_1

form=форма1&поле_1=значение_поля_1&поле_2=значение_поля_2
если:
форма1 - название поля, куда вносится название формы
поле_1 - название поля, содержимое которого будет сравниваться с значение_поле_1
значение_поля_1 - название поля, с содержимым которого будет сравниваться значение поле_1
 

wowa

Well-known member
01.02.2007
845
0
#9
Смысл я понял, вот только как это сделать не соображаю
В поле вот такой запрос:

Form= "Fo-Notes" & InfD_d_DBServer_TX="Local"

Мне же надо не вручную написать вот это:

searchFormula$ = {@LowerCase( Form ) = } & {"} & lcase("Fo-Notes") & {"} & {@LowerCase( InfD_d_DBServer_TX ) = } & {"} & lcase("Local") & {"}
 

morpheus

скриптописец
07.08.2006
3 915
1
#10
Для: wowa
Мой Вам совет зделать отдельные поля для

Искать в такойто форме : поле1
искать в таком поле: поле2
искать такоето значение: поле3


Соответсвенно, создавать поисковую строку Вам будет легче!

з.ы. Сматрите на скриншот моих поисковых полей, надеюсь украинский язык не будет сильной помехой, если что спрашивайте
 

Вложения

wowa

Well-known member
01.02.2007
845
0
#11
Для: Morpheus
пасиб!
Я думал об этом и раньше. Но мне нужно получить только один единственный документ. Следовательно для выборки может понадобиться и 2 и 3 поля и больше.
Их не фиксированное количество!
 

morpheus

скриптописец
07.08.2006
3 915
1
#12
Для: wowa
Ну и что ? ну так можно зделать мульти поле. У меня например поле с именами форм - мульти - там может быть 10... 100 , да сколько угодно форм, вот и всё!

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

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

Вложения

wowa

Well-known member
01.02.2007
845
0
#13
Для: Morpheus
А нельзя ли как-н с помощью цикла сделать из
Form= "Fo-Notes" & InfD_d_DBServer_TX="Local"
вот это:
{@LowerCase( Form ) = } & {"} & lcase("Fo-Notes") & {"} & {@LowerCase( InfD_d_DBServer_TX ) = } & {"} & lcase("Local") & {"}
 

wowa

Well-known member
01.02.2007
845
0
#15
И подскажи мне, пожалуйста...
у меня есть поле chekbox? выбрал 2 значения...
как мне эти значения забрать?
stChosenFields = uidoc.FieldGetText("GXE_SpInf_CheckListField_TX")
Так оно забирает и записывает в строку, а как бы мне массивом забрать?
:D
 

morpheus

скриптописец
07.08.2006
3 915
1
#16
Код:
stChosenFields =Implode( uidoc.Document.GXE_SpInf_CheckListField_TX, ":" )
- получиться строка типа
значение1:значение2:значение3 - это и есть массив для собак!

здугой способ -Evaluate
Код:
Dim stChosenFields as variant
stChosenFields = Evaluate( "GXE_SpInf_CheckListField_TX", uidoc.Document )
третий вариант циклом
Код:
 Dim i as integer
Dim arrMy() as String
Redim arrMy( Ubound( uidoc.Document.GXE_SpInf_CheckListField_TX ) ) as String

for i = 0 to Ubound( uidoc.Document.GXE_SpInf_CheckListField_TX ) 
stChosenFields(i) = uidoc.Document.GXE_SpInf_CheckListField_TX(i)
next
если есть ошибки - сори, код писалл прямо тут с памяти