0

我有一个表单(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

4 回答 4

0

因为您需要从视图中获取文档的子组,所以最好在您感兴趣的视图上使用全文搜索。全文搜索的语法可以在这里找到。我会通过数据库 FT 搜索推荐此方法,因为您只对特定视图中的文档感兴趣,而不必对数据库中的所有文档感兴趣。

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

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

于 2012-04-26T05:21:34.670 回答
0

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

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

我避免将全文搜索作为第一种方法,因为就其性质而言,基线是数据库中所有类型的所有文档,因此如果您的数据库很大或包含许多不同类型的文档,它将不会有效。

于 2012-05-15T20:13:15.157 回答
0

如果你想在视图之外进行搜索(因为视图不应该被即时修改),你最好使用全文搜索: NotesDatabase.FTSearch 语法稍微复杂一些,并且不完全兼容与选择公式的可能性。如果数据库不大,您还可以使用 NotesDatabase.Search 方法:与视图相同的语法,但顺序(=慢)搜索。

于 2012-04-25T12:14:04.750 回答
0

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

SF = {SELECT Trim_Date = [} & StartDate.Text & "-" & EndDate.Text & {] & Form = "} & Trimming & {"}
于 2012-04-24T19:43:55.073 回答