Lotus Notes con Delphi

Abre la base de datos de Lotus Notes  names.nsf y muestra su libro de direcciones.






unit
Unit1;





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;








Abre la base de datos names.nsf y muestra el libro de direcciones





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
(addrBook <>
nil)
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
Person <>
nil
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 (Person <> nil) 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.


No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...