0
사용자가 선택한 값을 찾기 위해 문서의 특정 필드를 검색하는 코드가 있습니다.이 코드는 폴더에 해당 문서를 배치합니다. 코드가 작동하지만 날짜 필드를 사용하여 동일한 작업을 수행하는 방법을 고수했습니다. 나는 날짜 범위 내에서 문서를 찾을 수 있어야합니다. 누구든지이 일을하는 법을 도와 줄 수 있습니까? 당신은 사업자 FTSearch 날짜 필드에 대한 =
/<
/>
/<=
/>=
을 사용할 수 있습니다날짜 필드가있는 FTSearch 사용
Sub Initialize
On Error GoTo ErrHandler
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim RemoveView As NotesView
Dim RemoveDoc As NotesDocument
Dim RemoveEntry As NotesViewEntryCollection
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesView
Dim j As Integer
Dim DialogDoc As NotesDocument
Set db = session.CurrentDatabase
Folder$ = "(UseOfForceSearch)"
'Clear folder before inputting current search results.
Set RemoveView = db.GetView(Folder$)
Set RemoveDoc = RemoveView.GetFirstDocument
If Not (RemoveDoc Is Nothing) Then
Set RemoveEntry = RemoveView.AllEntries
Call RemoveEntry.RemoveAllFromFolder(Folder$)
End If
If Not (db.IsFTIndexed) Then
answer = MessageBox(" Sorry. This database is not full-text indexed." + "Do you want to create an index?", MB_YESNO)
If (answer = IDYES) Then
Call db.UpdateFTIndex(True)
End If
End If
Set DialogDoc = db.Createdocument
searchForm$ = "$Force"
Form$ = "ReportDialog" 'Ask user for specifics of search using ReportDialog
Title$ = "Use of Force Search Criteria"
DialogDoc.Form = Form$
DialogDoc.StartDate = DialogDoc.StartDate(0)
DialogDoc.EndDate = DialogDoc.EndDate(0)
DialogDoc.Field1 = DialogDoc.Field1(0)
DialogDoc.Value1 = DialogDoc.Value1(0)
DialogDoc.Field2 = DialogDoc.Field2(0)
DialogDoc.Value2 = DialogDoc.Value2(0)
DialogDoc.Field3 = DialogDoc.Field3(0)
DialogDoc.Value3 = DialogDoc.Value3(0)
DialogDoc.Field4 = DialogDoc.Field4(0)
DialogDoc.Value4 = DialogDoc.Value4(0)
DialogDoc.Field5 = DialogDoc.Field5(0)
DialogDoc.Value5 = DialogDoc.Value5(0)
DialogDoc.Logic1 = DialogDoc.Logic1(0)
EnterDialog:
If (ws.DialogBox(Form$, True, True, False, True, False, False, Title$,DialogDoc,True)) Then
Else
Exit Sub
End If
SDate$ = CStr(DialogDoc.StartDate(0))
EDate$ = CStr(DialogDoc.EndDate(0))
Field1$ = UCase(CStr(DialogDoc.Field1(0)))
Field2$ = UCase(CStr(DialogDoc.Field2(0)))
Field3$ = UCase(CStr(DialogDoc.Field3(0)))
Field4$ = UCase(CStr(DialogDoc.Field4(0)))
Field5$ = UCase(CStr(DialogDoc.Field5(0)))
Oper$ = "contains"
Value1$ = UCase(CStr(DialogDoc.Value1(0)))
Value2$ = UCase(CStr(DialogDoc.Value2(0)))
Value3$ = UCase(CStr(DialogDoc.Value3(0)))
Value4$ = UCase(CStr(DialogDoc.Value4(0)))
Value5$ = UCase(CStr(DialogDoc.Value5(0)))
Logic1$ = UCase(CStr(DialogDoc.Logic1(0)))
Logic2$ = UCase(CStr(DialogDoc.Logic2(0)))
Logic3$ = UCase(CStr(DialogDoc.Logic3(0)))
Logic4$ = UCase(CStr(DialogDoc.Logic4(0)))
Set Date1 = New NotesDateTime(SDate$)
Set Date2 = New NotesDateTime(EDate$)
Date1ForReport$ = Date1.DateOnly
Date2ForReport$ = Date2.DateOnly
datemax = Date2.timedifference(Date1)
DaysBetween = datemax \ 86400
If(DaysBetween > (366 * 1)) Then
MessageBox "Date range cannot exceed 1 year.",48,"Error:"
GoTo EnterDialog
End If
For i = 1 To 1
searchForm$ = "(FIELD Form contains $Force) and "
Expr1$ = "FIELD " + Field1$ + " " + Oper$ + " " + Value1$
Expr2$ = "FIELD " + Field2$ + " " + Oper$ + " " + Value2$
Expr3$ = "FIELD " + Field3$ + " " + Oper$ + " " + Value3$
Expr4$ = "FIELD " + Field4$ + " " + Oper$ + " " + Value4$
Expr5$ = "FIELD " + Field5$ + " " + Oper$ + " " + Value5$
FinalExpr$ = searchForm$ + Expr1$
If(Logic1$ <> "") Then
FinalExpr$ = FinalExpr$ + " " + Logic1$ + " " + Expr2$
ElseIf (Logic2$ <> "") Then
FinalExpr$ = FinalExpr$ + " " + Logic1$ + " " + Expr2$ + " " + Logic2$ + " " + Expr3$
ElseIf (Logic3$ <> "") Then
FinalExpr$ = FinalExpr$ + " " + Logic1$ + " " + Expr2$ + " " + Logic2$ + " " + Expr3$ + " " + Logic3$ + " " + Expr4$
ElseIf (Logic4$ <> "") Then
FinalExpr$ = FinalExpr$ + " " + Logic1$ + " " + Expr2$ + " " + Logic2$ + " " + Expr3$ + " " + Logic3$ + " " + Expr4$ + " " + Logic4$ + " " + Expr5$
End If
FinalExpr$ = FinalExpr$
Print "Searching..."
' the number 16384 means fuzzy search
Set dc = db.FTSearch(FinalExpr$,0,,16384)
Folder$ = "(UseOfForceSearch)"
Call dc.PutAllInFolder(Folder$,True)
Next
Print "Search Completed with " + CStr(dc.Count) + " results."
Set view = db.getView(Folder$)
Exit Sub
ErrHandler:
MessageBox "Error" & Str(Err) & ": " & Error$,16,"Error!"
Exit Sub
End Sub
2012 년 1 월 12 일을 사용하는 경우 미국 이외의 국가에서 설정 한 날짜/월/년으로 해석됩니다. –