Я новичок в Lotus Notes. У меня есть форма поиска по ключевым словам и поле истории редактирования. Каждое изменение записывается в поле истории редактирования. История редактирования отображается, как показано ниже:
ДАТА: 10.02.2016 ПОЛЬЗОВАТЕЛЬ: (имя) ОТ: ключевое слово :: значения ключевого слова ДО: ключевое слово :: значения ключевого слова
ДАТА: 29.05.2016 ПОЛЬЗОВАТЕЛЬ: (имя) ОТ: ключевое слово :: значения ключевого слова ДО: ключевое слово :: значения ключевого слова
Добавление в историю редактирования находится под предыдущим редактированием, поэтому оно отображается в порядке возрастания. Как отсортировать историю изменений по убыванию? Или можно вставить новую историю редактирования над предыдущей историей редактирования, чтобы сделать ее в порядке убывания? Если да, то как я могу это сделать? Заранее благодарю вас за вашу помощь. :)
В моем многозначном поле 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