急!!! 依条件查询有问题: 只有时间条件可以用,其余的条件如是"ALL"结果会全出来,可是若条件不是"ALL"就没有结果,显示没有符合条件的文件
Sub Click(Source As Button)
Dim Condition As String
Dim SourceDocNo As Integer
Dim EC As NotesViewEntryCollection
Dim ResultEntry As NotesViewEntry
Dim Folder As NotesView
Dim customerconditon As String
Dim projnocondition As String
Dim partnumcondition As String
Dim applicantdepcondition As String
Dim componentcondition As String
Dim applicantcondition As String
Dim cpsstatuscondition As String
Dim originalpocondition As String
Set uidoc = WorkSpace.CurrentDocument
Set doc = uidoc.document
If uidoc.fieldgettext("customer") = "ALL" Then
customerconditon = ""
Else
For i = 0 To Ubound(doc.customer)
If customerconditon = "" Then
customerconditon = "Field spscustomer =" & doc.customer(i)
Else
customerconditon = customerconditon &" or"&"Field spscustomer =" & doc.customer(i)
End If
Next
End If
If uidoc.fieldgettext("projno") = "ALL" Then
projnocondition = ""
Else
For i = 0 To Ubound(doc.projno)
If projnocondition = "" Then
projnocondition = "Field spsprojno =" & doc.projno(i)
Else
projnocondition = projnocondition &" or "&"Field spsprojno =" & doc.projno(i)
End If
Next
End If
If uidoc.fieldgettext("partnum") = "ALL" Then
partnumcondition = ""
Else
For i = 0 To Ubound(doc.partnum)
If partnumcondition = "" Then
partnumcondition = "Field spspartnum =" & doc.partnum(i)
Else
partnumcondition = partnumcondition &" or "&"Field spspartnum =" & doc.partnum(i)
End If
Next
End If
If uidoc.fieldgettext("applicantdep") = "ALL" Then
applicantdepcondition = ""
Else
For i = 0 To Ubound(doc.applicantdep)
If applicantdepcondition = "" Then
applicantdepcondition = "Field spsapplicantdep =" & doc.applicantdep(i)
Else
applicantdepcondition = applicantdepcondition &" or "&"Field spsapplicantdep =" & doc.applicantdep(i)
End If
Next
End If
If uidoc.fieldgettext("component") = "ALL" Then
componentcondition = ""
Else
For i = 0 To Ubound(doc.component)
If componentcondition = "" Then
componentcondition = "Field spscomponent =" & doc.component(i)
Else
componentcondition = componentcondition &" or "&"Field spscomponent =" & doc.component(i)
End If
Next
End If
If uidoc.fieldgettext("applicant") = "ALL" Then
applicantcondition = ""
Else
For i = 0 To Ubound(doc.applicant)
If applicantcondition = "" Then
applicantcondition = "Field spsapplicant =" & doc.applicant(i)
Else
applicantcondition = applicantcondition &" or "&"Field spsapplicant=" & doc.applicant(i)
End If
Next
End If
If uidoc.fieldgettext("cpsstatus") = "ALL" Then
cpsstatuscondition = ""
Else
For i = 0 To Ubound(doc.cpsstatus)
If cpsstatuscondition = "" Then
cpsstatuscondition = "Field spscpsstatus =" & doc.cpsstatus(i)
Else
cpsstatuscondition = cpsstatuscondition &" or "&"Field spscpsstatus=" & doc.cpsstatus(i)
End If
Next
End If
If uidoc.fieldgettext("originalpo") = "ALL" Then
originalpocondition = ""
Else
For i = 0 To Ubound(doc.originalpo)
If originalpocondition = "" Then
originalpocondition = "Field spsoriginalpo =" & doc.originalpo(i)
Else
originalpocondition = originalpocondition &" or "&"Field spsoriginalpo=" & doc.originalpo(i)
End If
Next
End If
If customerconditon <> "" Then
Condition = "(" & customerconditon & ")"
End If
If projnocondition <> "" Then
If Condition<> "" Then
Condition = Condition & " and "& "(" &projnocondition & ")"
Else
Condition = "(" & projnocondition & ")"
End If
End If
If partnumcondition <> "" Then
If Condition <> "" Then
Condition = Condition & " and "& "(" & partnumcondition & ")"
Else
Condition = "(" & partnumcondition & ")"
End If
End If
If applicantdepcondition <> "" Then
If Condition <> "" Then
Condition = Condition & " and "& "(" & applicantdepcondition & ")"
Else
Condition = "(" & applicantdepcondition & ")"
End If
End If
If componentcondition <> "" Then
If Condition <> "" Then
Condition = Condition & " and "& "(" & componentcondition & ")"
Else
Condition = "(" & componentcondition & ")"
End If
End If
If applicantcondition <> "" Then
If Condition <> "" Then
Condition = Condition & " and "& "(" & applicantcondition & ")"
Else
Condition = "(" & applicantcondition & ")"
End If
End If
If cpsstatuscondition <> "" Then
If Condition <> "" Then
Condition = Condition & " and "& "(" & cpsstatuscondition & ")"
Else
Condition = "(" & cpsstatuscondition & ")"
End If
End If
If originalpocondition <> "" Then
If Condition <> "" Then
Condition = Condition & " and "& "(" & originalpocondition & ")"
Else
Condition = "(" & originalpocondition & ")"
End If
End If
On Error Resume Next
If uidoc.fieldgettext("start") <> "" And uidoc.fieldgettext("end") <> "" Then
Select Case uidoc.fieldgettext("type")
Case "Issue date"
Condition = Condition & " AND ((FIELD IssueDate > " & Cdat(uidoc.fieldgettext("start")) & " OR FIELD IssueDate = " & Cdat(uidoc.fieldgettext("start")) & ")" & _
" AND " & "(FIELD IssueDate < " & Cdat(uidoc.fieldgettext("end")) & " OR " & "FIELD IssueDate = " & Cdat(uidoc.fieldgettext("end")) & "))"
Case "Effective date"
Condition = Condition & " AND ((FIELD EffectiveDate > " & Cdat(uidoc.fieldgettext("start")) & " OR FIELD EffectiveDate = " & Cdat(uidoc.fieldgettext("start")) & "))" & _
" AND " & "(FIELD EffectiveDate < " & Cdat(uidoc.fieldgettext("end")) & " OR " & "FIELD EffectiveDate = " & Cdat(uidoc.fieldgettext("end")) & ")"
Case "ALL"
Condition = Condition &_
" AND (((FIELD IssueDate > " & Cdat(uidoc.fieldgettext("start")) & " OR FIELD IssueDate = " & Cdat(uidoc.fieldgettext("start")) & ")" & " AND " & "(FIELD IssueDate < " & Cdat(uidoc.fieldgettext("end")) & " OR " & "FIELD IssueDate = " & Cdat(uidoc.fieldgettext("end")) & "))" & _
"OR ((FIELD EffectiveDate > " & Cdat(uidoc.fieldgettext("start")) & " OR FIELD EffectiveDate = " & Cdat(uidoc.fieldgettext("start")) & ")" & " AND " & "(FIELD EffectiveDate < " & Cdat(uidoc.fieldgettext("end")) & " OR " & "FIELD EffectiveDate = " & Cdat(uidoc.fieldgettext("end")) & ")))"
End Select
End If
Condition = Trim(Condition)
If Left(Condition,3) = "AND" Then
Condition = Trim(Right(Condition,Len(Condition)-3))
End If
Set View = DB.GetView("scrviewSPSOutput")
Set Folder = DB.GetView("FolderSPSSurvey")
SearchDocNo = view.FTSearch(Condition,0)
If Err <> 0 Then
Print "[Error #" & Cstr(Err) & "]: " & Error$
End If
Set EC = View.AllEntries
If EC.Count = 0 Then
Messagebox "沒有發現任何文檔符合搜尋條件!!",64,"搜尋完成"
Exit Sub
End If
Call EC.PutAllInFolder("FolderSPSSurvey")
Call workspace.ViewRefresh
End Sub
问题点数:0、回复次数:5Top
1 楼Amanged(堕落的魔鬼)回复于 2003-11-04 17:22:00 得分 0
你这个有点烦,是什么结构?如果是B/S 我可以给你一个比较简单的。。。。Top
2 楼Brenda()回复于 2003-11-04 19:43:38 得分 0
好,是B/S的,你给我个简单的吧.谢谢!!Top
3 楼Brenda()回复于 2003-11-06 10:51:42 得分 0
高手快赐教吧Top
4 楼grassky(梁枫)回复于 2003-11-07 09:46:11 得分 0
可以在域中用公式获取查询条件啊,那样的话代码就不会这么复杂了Top
5 楼Brenda()回复于 2003-11-07 10:53:09 得分 0
没办法啊,要求用个套表来根据条件查询同时要显示结果,然后在汇出,Top




