Как узнать в какой папке лежит письмо?

  • Автор темы SkinGreek
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

SkinGreek

#1
Всем привет.
Речь идет о mail8.ntf
встала задача выводить в таблице писем еще и папку в которой находится данное письмо.
Я все никак не могу найти где взять информацию о том к какой папке прикреплено письмо.Да и если можно примерно накидать как вытягивать эту информацию в колонку предстваления.
Посоветуйте плз как вытащить эту инфу.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
SkinGreek
Читайте хэлп по поводу

Class notesDocument => property FolderReferences
 
S

SkinGreek

#3
ага, видел, ток не могу понять как это использовать в колонке представления, ведь в колонке LS использовать нельзя:)
Был удивлен что в $FolderRefInfo не нашел необходимой инфы.а именно информация что док принадлежит фолдеру.Где эта инфа хранится да еще чтоб была доступна для формул не ясно:(
В объектной модели еще как то можно разобраться, она привычна глазу,а вот работа с формулами мне еще не привычна да и с методом хранения и обработки данных моск еще не смирился и не осознал.
Тыкните носом плз в алгоритм решения задачи, уж дальнейшее буду раскапывать
 
S

SkinGreek

#4
Мнда чем дальше тем веселее...
Попробовал несколько вариантов, но не один не подошел...
Вариант 1
в определение колонки в представлении поставил
Код:
folder_names_list:=@DbColumn("";"";"($FolderInfo)";1);
folder_unids_list:=@DbColumn("";"";"($FolderInfo)";2);
@Replace( @Text($FolderRef); folder_unids_list; folder_names_list)
Но в документации написано что в view column нельзя юзать @DbColumn...Это меня удивило почему я не могу собирать доп инфу из других представлений.
Вариант 2
Сделал computed field для последующего вывода ее в представлении. В нем записал эту формулу.
Обновить ее возможно только в Edit Mode,а перемещение происходит, само собой, без открытия дока на редактирование.
Вариант 3
Сделал обычное текстовое поле для последующего вывода ее в представлении.
Обновление этого поля делаю в Shared Actions связанных с перемещением дока в фолдер вызывая агента через
Код:
@Command([ToolsRunMacro];"(wFolderMoveDoc)")
Код агента
Код:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument

Set db = s.CurrentDatabase
Set col = db.UnprocessedDocuments
Set doc = col.GetFirstDocument
While Not(doc Is Nothing)
Call doc.ReplaceItemValue("InFolder", doc.FolderReferences)
Call doc.Save(False, False)
Set doc = col.GetNextDocument(doc)
Wend
End Sub
При Add срабатывает норм, при Move ожидаемые проблемы так как выделенных доков уже нет в текущем фолдере предполагаю запоминать список фолдеров в обработчике событий QueryAddToFolder, и в последующем в агенте обновляющего текстовое поле пробегать по сохраненной коллекции документов.
Но проблема встала вновь...Как я перехвачу перенос документов методом DragAndDrop? Я попытался обработать событие PostDragDrop. Оно не обработалось и в доке написано что это ивент срабатывает только в calendar view.
Это все специально сделано для того чтоб разработчикам не скушно было? Или я что-то не знаю что облегчило бы мне жизнь?
Подскажите плз.Я уже в ступор в какой-то впал :) Я уверен что в лотусе такую задачу возможно решить, единственное, сколько изврата надо будет сделать для этого. Мне кажеться я и так уже наизвращался как только мог:(
Задача резко облегчилась бы если бы было событие PostAddToFolder, и его отсутствие мне не понятно.
 
S

SkinGreek

#5
Намекните хоть, как можно перехватить это событие,или не в этой версии нотеса?)
 
Статус
Закрыто для дальнейших ответов.