Search

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 11 июл 2007.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для примера:
    searchFormula$ = {Form = "Project"}
    Set collection = db.Search(searchFormula$, Nothing,0)

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Используйте
    searchFormula$ = {@LowerCase( Form ) = } & {"} & lcase("Project") & {"}
    ...
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    пасиб, думал насчет @LowerCase, но что-то не сообразил как его вставить...
    Ща попробую!

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    А Вы пробовали?
    Суть в том чтобы привести и поле Form и вопрос в нижний регистр

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

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

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

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Плохова-то
    Дело в том, что я беру строку запроса из поля....

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    А что именно Вы берёт из полу какую часть запроса или весь? что мешает привести всё к ниджнему регистру???
     
  7. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    запрос у меня допустим такой:
    имя_формы = "форма1" & поле_1 = значение_поля1 & поле_2 = значение_поля2 .......


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

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

    fvoice Гость

    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
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Смысл я понял, вот только как это сделать не соображаю
    В поле вот такой запрос:

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

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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    Мой Вам совет зделать отдельные поля для

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


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

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

    Вложения:

    • Search.jpg
      Search.jpg
      Размер файла:
      194,6 КБ
      Просмотров:
      69
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    пасиб!
    Я думал об этом и раньше. Но мне нужно получить только один единственный документ. Следовательно для выборки может понадобиться и 2 и 3 поля и больше.
    Их не фиксированное количество!
     
  12. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    Ну и что ? ну так можно зделать мульти поле. У меня например поле с именами форм - мульти - там может быть 10... 100 , да сколько угодно форм, вот и всё!

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

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

    Вложения:

    • Search.jpg
      Search.jpg
      Размер файла:
      260,9 КБ
      Просмотров:
      70
  13. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    А нельзя ли как-н с помощью цикла сделать из
    Form= "Fo-Notes" & InfD_d_DBServer_TX="Local"
    вот это:
    {@LowerCase( Form ) = } & {"} & lcase("Fo-Notes") & {"} & {@LowerCase( InfD_d_DBServer_TX ) = } & {"} & lcase("Local") & {"}
     
  14. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: wowa
    можно, но изврат!
    кстити можно попробовать не цикл а замену строки использовать.
    не... наверное всётаки изврат!
     
  15. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    И подскажи мне, пожалуйста...
    у меня есть поле chekbox? выбрал 2 значения...
    как мне эти значения забрать?
    stChosenFields = uidoc.FieldGetText("GXE_SpInf_CheckListField_TX")
    Так оно забирает и записывает в строку, а как бы мне массивом забрать?
    :D
     
  16. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Код (Text):
    stChosenFields =Implode( uidoc.Document.GXE_SpInf_CheckListField_TX, ":" )
    - получиться строка типа
    значение1:значение2:значение3 - это и есть массив для собак!

    здугой способ -Evaluate
    Код (Text):
    Dim stChosenFields as variant
    stChosenFields = Evaluate( "GXE_SpInf_CheckListField_TX", uidoc.Document )
    третий вариант циклом
    Код (Text):
     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
    если есть ошибки - сори, код писалл прямо тут с памяти
     
  17. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Morpheus
    Большое спасибо!
    Выручил.
    Лови плюсик
     
Загрузка...
Похожие Темы - Search
  1. kmm96
    Ответов:
    1
    Просмотров:
    25
  2. Amfion
    Ответов:
    10
    Просмотров:
    156
  3. kuklofon
    Ответов:
    1
    Просмотров:
    132
  4. seoman2
    Ответов:
    6
    Просмотров:
    521
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    401

Поделиться этой страницей