обновление

  • Автор темы Автор темы IrinaK
  • Дата начала Дата начала
I

IrinaK

Почему так! Есть форма, в которую вносятся данные, есть форма поиска по полям, когда начинаешь поиск - находит только тех кто был внесен давно (при этом данные вносятся в одну и ту же форму )?! Как обновить форму поиска, чтобы он видел всех!?
 
Что за поиск? Полнотекстовый? Тогда нужно время для обновления индекса.

Или ты про @DbLookup? Тогда используй NoCache:
@DbLookup("" : "NoCache"; ...)
 
Поиск у меня прописан в Библиотеке программ. На одной форме заполняются поля для поиска, после, при нажатии на кнопку поиск, найденные данные отображаются в другой форме в виде таблицы. Но показывает пустую таблицу для тех, чьи данные были введены недавно.
 
если честно, то я не знаю..... Я с Лотусом впервые столкнулась, надо базу сделать.... Вот все что в голову приходит, то и делаю, все с помощью HELPа
 
Ну тогда предлагаю посмотреть код той кнопочки.

Хотя всё равно не понятно. Что такое таблица? Может это представление?
Может это стандартный поиск? Если не знаешь, то пришли скриншот кнопки. :)
 
Вот сам поиск:
Код:
Sub SrhMain
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document


Dim QueryNotes As String		
Dim QueryUser As String		

Dim vSrhObject As Variant
vSrhObject = SrhObject(uidoc.FieldGetText( "cSrhObject" ) )
QueryNotes=vSrhObject(0) 
QueryUser=vSrhObject(1) & Chr(13)

Dim CategoryFieldDesc(0 To 2,0 To 10, 0 To 2)As String			

' 	Б: 0
CategoryFieldDesc(0,0,0) = Fam_FIELD
CategoryFieldDesc(1,0,0) = Fam_DESC
CategoryFieldDesc(2,0,0) = "cSrhFam"
'	Б:	1
CategoryFieldDesc(0,1,0) = Pidp_FIELD
CategoryFieldDesc(1,1,0) = Pidp_DESC
CategoryFieldDesc(2,1,0) = "cSrhSName"
'	Б:	2														
CategoryFieldDesc(0,2,0) = Tel_FIELD
CategoryFieldDesc(1,2,0) = Tel_DESC
CategoryFieldDesc(2,2,0) = "cSrhPhone"	
……………….


Dim CategoryIndex As Integer 
Dim vSrhCategory As Variant
Dim bSrhObject As Integer 

For CategoryIndex = Lbound(CategoryFieldDesc,2) To Ubound(CategoryFieldDesc,2)
bSrhObject = Cint(vSrhObject(2))
If Not(CategoryFieldDesc(0,CategoryIndex,0)="") Then	bSrhObject = 0 
If Not(CategoryFieldDesc (1,CategoryIndex,bSrhObject) = "") Then
vSrhCategory = SrhCategory (doc,CategoryFieldDesc(2,CategoryIndex,bSrhObject),CategoryFieldDesc(0,CategoryIndex,bSrhObject), CategoryFieldDesc(1,CategoryIndex,bSrhObject))
If Not(vSrhCategory(0)="") Then
QueryNotes = QueryNotes & BOOL_OPERATOR_EXT & "(" & vSrhCategory(0) & ")"
QueryUser = QueryUser & vSrhCategory(1) & Chr(13)
End If		
End If
Next
'******************************************	


Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim collectionSearch As NotesDocumentCollection
Set db = session.CurrentDatabase
If Not(db.IsFTIndexed) Then Call db.UpdateFTIndex(True)
Set collection = db.FTSearch(QueryNotes, 0,,FT_FUZZY)	

Call MakeResult(session,db,collection, QueryNotes,QueryUser)	


Exit Sub 
End Sub
 
Полнотекстовый поиск.
Замени
If Not(db.IsFTIndexed) Then Call db.UpdateFTIndex(True)
на Call db.UpdateFTIndex(True)
Правда не факт, что индексация завершится мгновенно. Поэтому можно поставить задержку. Т.е.
Код:
Sleep(5)
Call db.UpdateFTIndex(True)
Хотя тоже не факт, то она завершится...
 
а как сделать, чтобы форма открывалась не на весь экран, а меньше по размеру? Пробовала через DialogBox, мне пишут, что при выборе поля поиска, необходимо сначала закрыть окно, а как же мне тогда посмотреть результаты?
 
Извиняюсь за дубль. :ph34r:

а права на апдейт индекса?
Ну это уже не ко мне. ;)

а как сделать, чтобы форма открывалась не на весь экран, а меньше по размеру? Пробовала через DialogBox, мне пишут, что при выборе поля поиска, необходимо сначала закрыть окно, а как же мне тогда посмотреть результаты?
Наверное, Call MakeResult(session,db,collection, QueryNotes,QueryUser) нужно вынести из DialogBox.
 
а как сделать, чтобы форма открывалась не на весь экран, а меньше по размеру? Пробовала через DialogBox, мне пишут, что при выборе поля поиска, необходимо сначала закрыть окно, а как же мне тогда посмотреть результаты?

А вы что, результат открываете вместо формы поиска? Не новый документ?
 
новый. Открывается новая форма с результатами поиска

Теперь при нажатии на кнопку, открывается форма в DialogBox, но при нажатии на самой форме кнопки Поиск, DialogBox закрывается, а форма с результатами не открывается
 
Теперь при нажатии на кнопку, открывается форма в DialogBox, но при нажатии на самой форме кнопки Поиск, DialogBox закрывается, а форма с результатами не открывается
После этого?
Call MakeResult(session,db,collection, QueryNotes,QueryUser) нужно вынести из DialogBox.
В принципе можно кнопку поиск вообще убрать.
В диалогбоксе только формировать запрос и записывать его в поле документа (в событии QueryClose с проверкой notesUIDocument.DialogBoxCanceled). А уже после нажатия "Ок" в диалог боксе вызывать это. Только вместо QueryNotes брать поле из документа.
Т.е. что-то типа этого:
Код:
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim collection As NotesDocumentCollection
Dim collectionSearch As NotesDocumentCollection
Set db = session.CurrentDatabase
Set doc = db.CreateDocument

If ws.DialogBox(..., doc, ...) then
Call db.UpdateFTIndex(True)
Set collection = db.FTSearch(doc.QueryNotes(0), 0,,FT_FUZZY)
Call MakeResult(session,db,collection, QueryNotes,QueryUser)
end if
 
так я ведь на кнопке Поиск формирую вид таблицы в форме Результат
 
ладно с этим тогда потом разберусь. Не получается. Перестает уже вообще работать. У меня обнаружилась еще одна проблема по всем полям поиск работает, кроме одного пишет : «Notes error: Запрос не распознается (([Form]contains f2)and ((Pos) contains “12”)))»

при этом вформе f2 такое поле есть и свойства у этого поля такие же как и у остальных
 
f2 - это имя поля, или переменная, которая его хранит?
У вас запрос в кавычках? и кавычки возле ”12”.. возьмите запрос в фигурные скобки {}
И расставте пробелы перед contains и and...
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab