Взять Документ По Doclink

Тема в разделе "Lotus - Программирование", создана пользователем iivvnn, 11 июн 2012.

  1. iivvnn

    iivvnn Active Member

    Регистрация:
    7 сен 2011
    Сообщения:
    37
    Симпатии:
    0
    Есть поле Body (RichText). В нем ссылки на документы (из другой базы) в виде doclink. Как мне скриптом (кнопкой акции) пройтись по все этим ссылкам, взять для каждой обьект NotesDocument и внести изменения в него в этом же скрипте?
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    см. NotesRichTextDocLink class
     
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    или DXML тогда и репику базы и унид выхватить можно :rolleyes:
    и значёк перерисовать :huh:
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Довольно старая самописная функция.
    Возвращает array of string из первого линка из RT поля (документа + имя RT поля из параметров).
    Сейчас бы я её переписал немного по другому: не люблю когда возвращается variant.
    Но, собственно, и так работает :)

    Код (LotusScript):
    Private Function GetRTLinkInfo(doc As NotesDocument, ItemName As String) As Variant
    '(0) - Db server
    '(1) - Db ReplicaID
    '(2) - View UNID
    '(3) - Document UNID
    On Error Goto Errh

    Dim rv(3) As String
    lsf_GetRTLinkInfo = rv

    If doc Is Nothing Then Exit Function
    If ItemName = "" Then Exit Function

    Dim RTItem As NotesRichTextItem

    On Error Resume Next
    Set RTItem = doc.GetFirstItem(ItemName)
    On Error Goto Errh

    If Not RTItem Is Nothing Then
    If RTItem.Type = 1 Then
    Dim RTNav As NotesRichTextNavigator
    Dim RTLink As NotesRichTextDocLink

    Set RTNav = RTItem.CreateNavigator
    If RTNav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
    Dim DstDb As New NotesDatabase("", "")

    Set RTLink = RTNav.GetElement

    Dim ServerName As String
    Dim DbReplicaID As String
    Dim ViewUNID As String
    Dim DocUNID As String

    ServerName = RTLink.ServerHint
    DbReplicaID = RTLink.DBReplicaID
    ViewUNID = RTLink.ViewUnID
    DocUNID = RTLink.DocUnID
    End If
    End If
    End If

    rv(0) = ServerName
    rv(1) = DbReplicaID
    rv(2) = ViewUNID
    rv(3) = DocUNID

    GetRTLinkInfo = rv

    Exit Function
    Errh:
    Call ErrHandler
    Exit Function
    End Function
     
  5. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    осталась лишняя строка
    Dim DstDb As New NotesDatabase("", "")
    видимо была проверка на наличие документа ;)
     
Загрузка...
Похожие Темы - Взять Документ По
  1. student55
    Ответов:
    0
    Просмотров:
    1.911
  2. San40S
    Ответов:
    5
    Просмотров:
    3.072
  3. ToxaRat
    Ответов:
    3
    Просмотров:
    2.293
  4. Dragon108
    Ответов:
    5
    Просмотров:
    3.111
  5. phantom76
    Ответов:
    7
    Просмотров:
    3.714

Поделиться этой страницей