1

Тема: Свой поиск по базе данных в Lotus

Создаем  папку shared, private on fist use, к примеру имя FoldSearch.
Отображается как ключик с "1" наверху.
Для каждого юзера будет создаваться своя такая папка.
Увидеть все такие приватные папки можно только в домино администраторе у базы в списке видов.


В папке создаем кнопочку:

Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim workspace As New NotesUIWorkspace
    Dim view As NotesView
    Dim vc As NotesViewEntryCollection
    Set db = session.CurrentDatabase
    Set view = db.GetView("FoldSearch")
    Call view.AllEntries.RemoveAllFromFolder("FoldSearch")
    Call workspace.DialogBox ("fSearch", False, True,True, False, True, False, "найдётся всё !!!", session.CurrentDatabase.CreateDocument(),True,True)
End Sub

Поделиться

2

Re: Свой поиск по базе данных в Lotus

На форме размещаем, к примеру, поля для поиска
Дата регистрации  Date1
Заголовок  sЗАГОЛОВОК
и кнопку "искать"  с кодом:

Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim formula As String
    Set db = session.CurrentDatabase
    
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = ws.CurrentDocument
    
    formula$ =""
    
    If uidoc.FieldGetText("Date1")<>"" Then ' нач дата регистрации дока
    formula$ = formula$+{[ДАТА_РЕГИСТРАЦИИ]>=}  & uidoc.FieldGetText("Date1")            
    End If

    If uidoc.FieldGetText("sЗАГОЛОВОК")<>"" Then ' ЗАГОЛОВОК
        If formula$ <> "" Then
            
            formula$ = formula$+{ AND [ЗАГОЛОВОК] CONTAINS "} &  uidoc.FieldGetText("sЗАГОЛОВОК")& {"}    
        Else    
            formula$ = formula$+{[ЗАГОЛОВОК] CONTAINS "} & uidoc.FieldGetText("sЗАГОЛОВОК")  & {"}        
        End If    
    End If    



    Set dc = db.AllDocuments
    Call dc.FTSearch(formula$,0)
    
    Call dc.PutAllInFolder("FoldSearch")
    
    '-----------------------закрытие---------------------------------'
    Dim uidb As NotesUIDatabase
    Set uidb = ws.CurrentDatabase
    Call uidoc.Close
    Call uidb.OpenView("FoldSearch")
    Call ws.viewrefresh
End Sub

Поделиться

3

Re: Свой поиск по базе данных в Lotus

Вот еще пример поиска по полю:

If uidoc.FieldGetText("sДело")<>"" Then ' Дело 
        If formula$ <> "" Then
formula$ = formula$+{ AND [IDDelo]=} &  uidoc.FieldGetText("sIDDelo")            
        Else    
            
formula$ = formula$+{[IDDelo]=} &  uidoc.FieldGetText("sIDDelo")
        End If
    End If

А ранее пробовал искать так:

formula$ = formula$+{[СОДЕРЖАНИЕ]= "} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {" OR [СОДЕРЖАНИЕ_]= "} & uidoc.FieldGetText("sСОДЕРЖАНИЕ") & {"}
Set dc=db.Search(formula$,Nothing,0)

Поделиться

4

Re: Свой поиск по базе данных в Lotus

Вот еще полезный хелп с тонкостями поиска в лотусе:
ww-10.lotus.com/ldd/ddwiki.nsf/dx/Searching_for_Documents

Поделиться