【发布时间】:2016-09-30 02:05:44
【问题描述】:
我是 Lotus Notes 的初学者。我有一个关键字查找表和一个编辑历史字段。每个更改都记录在编辑历史字段中。编辑历史显示如下:
日期:2016 年 2 月 10 日 用户名) FROM: 关键字::关键字值 TO:关键字::关键字值
日期:2016 年 5 月 29 日 用户名) FROM: 关键字::关键字值 TO:关键字::关键字值
编辑历史记录中的追加位于上一次编辑的下方,因此以升序显示。如何按降序对编辑历史进行排序?或者是否可以在先前的编辑历史之上插入新的编辑历史以使其按降序排列?如果是,我该怎么做?预先感谢您的所有帮助。 :)
在我的 EditHistory 多值字段中,我有以下代码:
@If(@IsDocBeingLoaded & @IsNewDoc; @Return(""); @True);
@If(!@IsDocBeingSaved; @Return(@Sort(EditHistory;[Descending]));
@Trim(@Subset(@Sort(EditHistory;[Descending]) ; -100)))
在声明中:
Dim FieldValues() As String
在我的表单中,我有这些:
Sub EditHistorylist
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim source As NotesUIDocument
Dim fieldnum As Integer
Dim entry As String
Dim histo As Variant
Set source = workspace.CurrentDocument
For fieldnum = 0 To Ubound(FieldValues)
If FieldValues(fieldnum,1) <>source.fieldgettext(FieldValues(fieldnum,0)) Then
entry = Chr(10) + "DATE:" + Date$+Chr(10)+ "USER:" + session.CommonUserName +_
Chr(10)+ "FROM:" + FieldValues(fieldnum,0) + "::" + FieldValues(fieldnum,1)+_
Chr(10)+ "TO:" + FieldValues(fieldnum,0) + "::" + source.fieldgettext(FieldValues(fieldnum,0)) +_
Chr(10) + Chr(95) + Chr(95) + Chr(95)
Call source.FieldAppendText("EditHistory",Chr(10)+entry)
End If
Next
End Sub
文档事件:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
If Not Source.IsNewDoc Then
Call EditHistorylist
End If
End Sub
Sub Postmodechange(Source As Notesuidocument)
'build array of current values
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim form As NotesForm
Dim fieldnum As Integer
Dim counter As Integer
Set db = session.CurrentDatabase
Set doc = Source.Document
Set form = db.GetForm(doc.Form(0))
fieldnum = Ubound(form.fields)
Redim FieldValues(fieldnum,1)
counter = 0
Forall field In form.fields
FieldValues(counter,0) = field
FieldValues(counter,1) = source.fieldgettext(field)
counter = counter + 1
End Forall
End Sub
【问题讨论】:
-
给我们看看你用来写历史的代码,然后我们可以展示如何修改方向......没有代码,没有帮助!
-
在我的 EditHistory 多值字段中,我有这个代码 @If(@IsDocBeingLoaded & @IsNewDoc; @Return(""); @True); @If(!@IsDocBeingSaved; @Return(@Sort(EditHistory;[Descending])); @Trim(@Subset(@Sort(EditHistory;[Descending]) ; -100)))
-
在声明中: Dim FieldValues() As String 在我的表单中我有这些: Sub EditHistorylist Dim session As New NotesSession Dim workspace As New NotesUIWorkspace Dim source As NotesUIDocument Dim fieldnum As Integer Dim entry As String Dim histo As Variant Set source = workspace.CurrentDocument For fieldnum = 0 To Ubound(FieldValues)
-
If FieldValues(fieldnum,1) source.fieldgettext(FieldValues(fieldnum,0)) Then entry = Chr(10) + "DATE:" + Date$+Chr(10)+ " USER:" + session.CommonUserName + Chr(10)+ "FROM:" +FieldValues(fieldnum,0) + "::" + FieldValues(fieldnum,1)+Chr(10)+ "TO:" + FieldValues(fieldnum ,0) + "::" + source.fieldgettext(FieldValues(fieldnum,0)) + Chr(10) + Chr(95) + Chr(95) + Chr(95) 调用 source.FieldAppendText("EditHistory",Chr (10)+entry) End If Next End Sub
-
Sub Querysave(Source As Notesuidocument, Continue As Variant) If Not Source.IsNewDoc Then Call EditHistorylist End If End Sub
标签: lotus-notes lotusscript lotus lotus-formula