Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование и администрирование IBM Lotus Domino/Notes


Здравствуйте!

Сегодня первый выпуcк рассылки о Lotus Domino/Notes.
Я занимаюсь администрированием данной системы и разработкой приложений уже длительное время.
Цель рассылки: формирование целевой аудитории из читателей, которые интересуются данным программмным продуктом, обмен знаниями.
Планируется, что рассылка будет выходить еженедельно.


Рассмотрим пример загрузки данных из файла MS Excel в приложение Lotus Notes:

Sub Click(Source As Button)
On Error Goto ErrSt

' в файле Excel первый столбец - это ключ - идентификатор.
' При загрузке проверяем - если в приложении Lotus уже есть документ с идентификатором данной строки Excel - то обновляем данные, иначе создаем новый документ.

Dim Obj As Variant
Dim wsh1 As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim FileName As String
Dim temp As Variant
Dim wkb As Variant
Dim wsh2 As Variant
Dim i,j As Integer
Dim view As NotesView

temp = ws.OpenFileDialog(0,"Title","","c:\")

If Isempty(temp) Then Exit Sub

FileName = temp(0)

Set db = session.CurrentDatabase
Set obj=CreateObject("Excel.Application")
Set wkb=obj.Workbooks.Add(FileName)
wkb.Activate

Set wsh1=obj.Worksheets(1)
Call wsh1.Select

i = 2
Do Until (Cstr(Obj.Cells(i, 1).Text) = "")

If Cstr(Obj.Cells(i, 1).Text) = "" Then
Call ws.ViewRefresh
Exit Sub
End If

Dim s As String
Dim DC As NotesDocumentCollection

s = {Form = "NameForm" & Field1 = "} & Trim(Cstr(Obj.Cells(i, 1).Text)) & {"}

Set DC = db.Search(s,Nothing,0)

If Not Dc.Count > 0 Then

Set doc = db.CreateDocument
Call doc.ReplaceItemValue("Form","NameForm")
Call doc.ReplaceItemValue("Field1",Trim(Cstr(Obj.Cells(i, 1).Text)))
Call doc.ReplaceItemValue("Field2",Trim(Cstr(Obj.Cells(i, 2).Text)))
Call doc.Save(True,True)
Else
Set doc = DC.GetFirstDocument

' <ЗДЕСЬ ДАЛЕЕ ПИШЕМ ОБРАБОТКУ ДЛЯ ДОКУМЕНТОВ, КОТОРЫЕ УЖЕ ЕСТЬ В ПРИЛОЖЕНИИ LOTUS. ОБНОВЛЯЕМ ИХ ПРИ НЕОБХОДИМОСТИ.>

i = i +1
Print " Обработка данных " & Trim(Cstr(Obj.Cells(i, 1).Text))
Loop

Call ws.ViewRefresh
obj.Visible=True
obj.UserControl=True
obj.Quit

EndSub:
Exit Sub
ErrSt:
Msgbox "Error! Загрузка данных " & Err() & " at line " & Erl() & ": " & Error()

If Not Isempty(obj) Then
obj.Quit
End If
Resume EndSub
End Sub



Полезные ссылки:
http://www-10.lotus.com/ldd/nd85forum.nsf?OpenDatabase
http://www.intertrust.ru/main/news/news_comp/541/
http://www.intertrust.ru/main/partners/pnews/523/
http://www.notesnet.ru/library/docid/193DED

До встречи на страницах рассылки.
my e-mail: 12345Lotus@gmail.com

В избранное