'Агент: Берется поле рич текст, ищется в нем информацию и сохраняется в поле с типом дата (предварительно преобразовываются данные)
'1) Берет все выделенные документы, и по очереди обрабатывает их
'2) В каждом выделенном документе берет поле Рич текст и записывает ее в строковую переменную
'3) Разбивает данную строковую переменную на элементы массива и соответственно загоняет все в массив
'4) Ищет по полученному массиву слово Дата и возвращает индекс данного элемента
'5) Прибавляет к индексу данного элемента 2, (полученный индекс будет являться индексом даты (числа))
'6) Берет по данному индексу элемент из массива, удаляет у данного элемента символы переноса строки в начале и конце элемента
'7) Записывает полученную даты в поле Дата Рождения и сохраняет документ
Sub Initialize
'Обработчик ошибок
On Error Goto errorhandler
Dim ws As NotesUIWorkspace
Dim uiview As NotesUiView
Dim ses As Notessession
Dim db As NotesDatabase, mailDb As NotesDatabase
Dim coll As NotesDocumentCollection
Dim doc As NotesDocument, mailDoc As NotesDocument
'Счетчик
Dim i%
'Переменные полей
Dim item3 As NotesRichTextItem
Dim item4 As NotesItem
'Массив строк для разбияния и сохранения в нем текста из поля рич текст
Dim ret As Variant
'Индекс элемента Дата в массиве
Dim nash_result As Variant
'Индекс самой даты в массиве
Dim nash_result_1 As Variant
'Переменная для хранения полученной даты
Dim temp As String
Set ws = New NotesUIWorkspace
Set uiview = ws.CurrentView
Set coll = uiview.Documents
'Для каждого отмеченного документа выполянет действия
If coll.Count > 0 Then
For i%=1 To coll.Count
Set doc = coll.GetNthDocument(i%)
'Берет поле Рич текст
Set item3 = doc.GetFirstItem( "Body" )
'Записывает весь текст из поля рич текст с строковую переменную
plainText$ = item3.GetFormattedText( True, 10 )
'Разбивает текстовую переменную на элементы массива
ret = Split (plainText$, , -1, 0)
'Убирает у элементов пробелы (на свякий случай)
ret = Fulltrim (ret)
'Получает индекс элемента (слова Дата) в массиве строк
nash_result = Arraygetindex( ret, "Дата" ,0 )
'Прибавляет к полученному индексу 2, таким образом получаем индекс даты рождения (цифры)
nash_result_1 = nash_result + 2
'Сохраняем дату рождения в переменную temp
temp = ret(nash_result_1)
'Удаляем лишние переносы строки (спереди и сздаи нашей даты, дата- 10 символов)
temp = Left(temp, 12)
temp = Right(temp, 10)
'Записываем полученную даты в поле Дата рождения
Set item4 = doc.ReplaceItemValue("birthday_edit", temp)
Call doc.Save( True, True )
Next
Else
Msgbox "Выберите документы"
End If
errorhandler:
If Err <> False Then
Msgbox "Ошибка: " +Error$ + Chr(10) + " Код ошибки: " + Cstr(Err) + Chr(10) + "Строка ошибки: "+ Cstr(Erl)+ Chr(10) + "Передайте эту информацию разработчику.", 0 +16, "Ошибка"
Exit Sub
End If
End Sub