2017-02-09 29 views
0

Я пытаюсь получить выбранные письма из Lotus Notes через OLE. До сих пор я делал это так:Lotus Notes получает только выбранные письма через OLE

UIView := FLNotes.CURRENTVIEW; 
UIDocuments := UIView.DOCUMENTS; 

    for counter := 1 to UIDocuments.Count do begin 
    if counter = 1 Then 
     aDocument := UIDocuments.GETFIRSTDOCUMENT 
    else 
     aDocument := UIDocuments.GETNEXTDOCUMENT(aDocument); 

    ProcessDokument (aDocument) 

Когда я внутри этой точки зрения почты он работает, как ожидалось, я получаю только письма я ставлю галочку рядом (так что я получаю 2 письма) enter image description here сейчас Я хочу, чтобы искать для конкретной почты, который имеет «СЭМ» где-то, и я перейти на вкладку поиска:

enter image description here

Теперь у меня есть проблема, что мой код возвращает все видимые документы, а не только один я выбрал. Здесь я не выбрал ни одного из них, но все же мой цикл for запускается 7 раз для каждого документа.

Мой вопрос, почему все документы обрабатываются, даже я не выбрал ни одного из них, особенно, почему поведение отличается от того, когда я нахожусь внутри почтового ящика. И есть ли способ идентифицировать только те, которые я выбрал?

С уважением

ответ

0

Ответ таков, что после полнотекстового поиска, вы на самом деле не в представлении. Вы находитесь в полнотекстовом списке результатов поиска, который выглядит как вид, но на самом деле это наложение поверх представления. Если вы можете увидеть фактическое представление, будут выбраны документы, которые находятся в списке результатов!

В списке NotesUIWorkspace class нет способа получить текущий список результатов полного текстового поиска (и класс NotesUIFTSearchResults для его представления), поэтому я не верю, что есть какой-либо способ получить доступ к документам которые вы вручную выбрали в списке результатов.

Что вы можете сделать - это получить данные для всех документов в списке результатов, построить диалоговое окно и показать это пользователю, позволить пользователю выбирать документы в диалоговом окне, а не в результате перечислите себя, а затем активируйте свой код на тех, которые выбрал пользователь, - но не видя своего кода и не зная, что он пытается сделать в вашей процедуре ProcessDokument(), я не знаю, разумно это или нет.