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

iivvnn

Active member
07.09.2011
37
0
#1
Есть поле Body (RichText). В нем ссылки на документы (из другой базы) в виде doclink. Как мне скриптом (кнопкой акции) пройтись по все этим ссылкам, взять для каждой обьект NotesDocument и внести изменения в него в этом же скрипте?
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 233
18
#3
или DXML тогда и репику базы и унид выхватить можно :rolleyes:
и значёк перерисовать :huh:
 

Omh

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

Код:
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
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#5
Довольно старая самописная функция.
Возвращает array of string из первого линка из RT поля (документа + имя RT поля из параметров).
Сейчас бы я её переписал немного по другому: не люблю когда возвращается variant.
Но, собственно, и так работает :)
осталась лишняя строка
Dim DstDb As New NotesDatabase("", "")
видимо была проверка на наличие документа ;)