带日期选择器的选择公式

时间:2012-04-24 19:06:19

标签: lotus-notes lotus-domino lotusscript

我有一个表单(TrimQuery),它有2个可编辑的日期选择器字段(Start_Date和End_Date)和一个按钮。按下按钮,我需要从另一个表单(Trim Track)中提取一个预先存在的视图(All Trim Tracking),该表单轮询一个字段(Trim_Date)并显示我在(TrimQuery)表单中指定的日期之间的所有文档使用日期选择器。我已经发布了以下代码。

还有另一种查看两个日期之间文档的方法吗?我认为我的大部分问题都在于我用代码发布的选择公式,但我知道这是不正确的。我试图从其他例子中获取一些代码。请分开来。我感谢任何帮助。感谢。

Sub Click(Source As Button)

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim workspace As NotesUIWorkspace
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim StartDate As NotesItem
Dim EndDate As NotesItem
Dim Trimming As String

Trimming = "Trim Track"

Set StartDate = doc.GetFirstItem("Start_Date")
Set EndDate = doc.GetFirstItem("End_Date")
Set uidoc=workspace.CurrentDocument
Set db=session.CurrentDatabase
Set view=db.GetView("All Trim Tracking")

SF = {SELECT Trim_Date = "} & StartDate.Text & "&" & EndDate.Text & {" | (Form = }& Trimming & {")} <==I realize this is incorrect, I don't know the correct formula.

If StartDate.Text <> "" And EndDate.Text <> "" Then
view.SelectionFormula = SF
Else
view.SelectionFormula="select @all"
End If

End Sub

4 个答案:

答案 0 :(得分:0)

您可以在选择公式中表示日期范围:

SF = {SELECT Trim_Date = [} & StartDate.Text & "-" & EndDate.Text & {] & Form = "} & Trimming & {"}

答案 1 :(得分:0)

如果你想在视图外进行搜索(对于视图不应该动态修改),你最好使用全文搜索:NotesDatabase.FTSearch语法稍微复杂一点,与选择配方的可能性不完全兼容。如果数据库不大,您还可以使用NotesDatabase.Search方法:与视图相同的语法,但顺序(=慢)搜索。

答案 2 :(得分:0)

因为您需要从视图中获取一组文档,所以最好使用您感兴趣的Full-text search on the view。可以找到全文搜索的语法here。我建议通过数据库FT搜索,因为您只对特定视图中的文档感兴趣,而不一定是数据库中的所有文档。

搜索完成后,您还没有具体说明如何查看文档。用于搜索结果的唯一逻辑UI结构将是文件夹,否则您将面临一个漫长而复杂的过程来创建管理数据的自定义UI。您可以将视图嵌入搜索表单本身(您也可以链接文件夹),或在dialogbox中显示该文件夹。

处理文件夹时,您需要记住删除文件夹的内容,然后填充它。唯一的缺点是,如果您使用的是公用文件夹,则不能让多个用户同时执行此操作。或者,您可以在首次使用时将文件夹设为私有。查看NotesDocumentCollection.PutAllInFolder和NotesDocumentCollection.RemoveAllFromFolder以帮助您管理文件夹内容。

答案 3 :(得分:0)

我不会使用LotusScript来改变视图选择公式,主要是因为使用此类代码的任何人都会改变视图的设计,即使通过服务器ID签名的代理完成,如果多个用户也可能遇到问题正在同时访问日期选择器代码。

我将使用所需的最小排序列数创建sorted via,并扫描匹配文档的开头并使用notesViewEntry方法结束。我经常使用它,速度非常快,即使是大量的文档,也很容易将它变成一个列表供用户选择。

作为第一种方法,我避开全文搜索,因为基本属性是数据库中所有类型的所有文档,因此如果您的数据库很大或包含许多不同类型的文档,它将无效。 / p>

相关问题