Delphi e Lotus Notes: scorrere i documenti di una vista

Innanzitutto occorre importare la libreria:

Domino_TLB

poi dichiarare le variabili:

_session:TNotesSesion;
_notesdb:IDatabase;
_views: OleVariant;
_view: IView;
_documents: IDocumentCollection;
_document: IDocument;

ed ecco un pò di codice di esempio:

begin
 
  CoInitializeEx(nil, COINIT_APARTMENTTHREADED);
 
  try
 
      // Creo la sessione
      _session := TNotesSession.Create(nil);
      // La inizializzo con la mia password notes
      _session.Initialize('password');
 
      // Creo l'oggetto database 
      _notesdb := _session.GetDatabase('server','database',False);
 
      // Ecco come ottenere l'elenco di tutte le viste
      _views := _notesdb.Views;
      for I := 0 to VarArrayHighBound(_views, 1) - VarArrayLowBound(_views, 1) do
      begin
        _view := IView(IUnknown(_views[I]));
        writeln(_view.Name);
       end;
 
      // Esempio di utilizzo della proprietà GetAllDocumentsByKey di una vista
      _view := _notesdb.GetView('Lamiavista');
      if _view <> nil then
      begin
        _documents := _view.GetAllDocumentsByKey('Valore della chiave',true);
        //adesso che ho una collezione di documenti, la ciclo, ed estraggo il
        // valore del campo 'pippo' di ogni documento
        _document := _documents.GetFirstDocument;
        while _document <> nil do
        begin
          writeln(String(_document.GetItemValue('pippo')[0]));
          _document := _documents.GetNextDocument(_document);
        end;
      end;
 
    readln;
end;

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>