Mega Code Archive

 
Categories / Delphi / Ide Indy
 

LotusNotes and Delphi Scaning Personal Address Book

Title: LotusNotes and Delphi: Scaning Personal Address Book Question: How work with LotusNotes via OleAuto Answer: unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Domino_TLB, Menus, ComCtrls; const PASSWD='ur70'; type TForm2 = class(TForm) TV_INFO: TTreeView; MainMenu1: TMainMenu; File1: TMenuItem; Create1: TMenuItem; Init1: TMenuItem; AddressBook1: TMenuItem; Scan1: TMenuItem; procedure Create1Click(Sender: TObject); procedure Init1Click(Sender: TObject); procedure Scan1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; Session:TNotesSession; implementation {$R *.dfm} procedure TForm2.Create1Click(Sender: TObject); begin Session:=TNotesSession.Create(nil); end; procedure TForm2.Init1Click(Sender: TObject); begin Session.Initialize(PASSWD); end; procedure TForm2.Scan1Click(Sender: TObject); var NotesDb:NotesDatabase; addrBook:NotesDatabase; People,People2:NotesView; Person,Person2 :NotesDocument; View:NotesView; Item:NotesItem; AddrBooks:OleVariant; Views:OleVariant; Items:OleVariant; x,y,z:integer; view_name:string; tn,tc:TTreeNode; begin NotesDb:=Session.GetDatabase('','names.nsf',False); AddrBooks:=Session.AddressBooks; for x:=0 to VarArrayHighBound(AddrBooks,1)- VarArrayLowBound(AddrBooks,1) do begin addrBook:=NotesDatabase(IUnknown(AddrBooks[x])); if (addrBook.IsPrivateAddressBook) then begin addrBook.Open; end else addrBook:=nil; if (addrBooknil) then begin Views:=addrBook.Views; for y:=0 to VarArrayHighBound(Views,1)- VarArrayLowBound(Views,1) do begin View:=NotesView(IUnknown(Views[y])); view_name:=View.Name; tn:=tv_info.Items.AddNode(nil,nil,view_name,nil,naAdd); if copy(view_name,1,1)='$' then view_name:=copy(view_name,2,length(view_name)-1); people:=addrBook.GetView(view_name); person:=people.GetFirstDocument; if Personnil then begin Items:=Person.Items; for z:=0 to VarArrayHighBound(Items,1)- VarArrayLowBound(Items,1) do begin Item:=NotesItem(IUnknown(Items[z])); tc:=tv_info.Items.AddChild(tn,Item.Name); people:=addrBook.GetView(view_name); person:=people.GetFirstDocument; while (Personnil) do begin try try tv_info.Items.AddChild(tc,Person.GetFirstItem(Item.Name).Text{Item.Text}); except end; finally Person:=People.GetNextDocument(Person); end; end; end; end; end; end; end; end; end.