Восстановление связи

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

OlgaI

#1
Существовали два связанных между собой документа (исх. ответ со вх. запросом). Один из документов (исх. ответ) был скопирован на локальную БД, соответственно связь у него потерялась (не то чтоб потерялась, просто ссылка идет уже на совершенно другой вх. документ, находящийся также на локальной БД). Теперь я попыталась вернуть этот документ обратно в основную БД, также путем копирования, но связь с нужным вх. документом не восстановилась.
Возможно, ли восстановить утерянную связь?
Заранее спасибо.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#2
что есть "связь"? стандартная лотусевая через $REF?
в любом случае, скорее всего кодить придется
 

RAJ

Well-known member
17.01.2007
440
0
#4
Агент на выделенных дочерних документах.
При запуске выбираем вьюху, а в ней главный док и нажимаем ОК

Код:
Sub Initialize
Dim NS As New NotesSession
Dim NDC As NotesDocumentCollection
Dim NDC_Parent As NotesDocumentCollection
Dim NUIWS As New NotesUIWorkspace
Dim ND_Parent As NotesDocument
Dim ND As NotesDocument
Dim Views As Variant
Dim NamesV() As String
Dim View As NotesView

Set Db=Ns.CurrentDatabase
Set NDC = Db.UnprocessedDocuments
If NDC Is Nothing Then
Print "Необходимо выделить документы!!!"
Exit Sub
Else
If NDC.Count = 0 Then
Print "Необходимо выделить документы!!!"
Exit Sub
End If
End If

'Выбор вьюхи из которой удобно выбирать документ, который будет родительским
Views = Db.Views
Redim NamesV(0)
For i% = 0 To Ubound(Views)
Set View = Views(i%)
If i% = 0 Then
Redim NamesV(0)
NamesV(0) = View.Name
Else
Redim Preserve NamesV(Ubound(NamesV)+1)
NamesV(Ubound(NamesV)) = View.Name
End If
Next

ResultNames = Evaluate({@Sort("} + Implode(NamesV, {":"}) + {"; [ASCENDING])})
NameV$ = NUIWS.Prompt(PROMPT_OKCANCELLIST, "Выбор вида...", "Выберите вид из которого будет выбираться родительский документ:", "", ResultNames)
If NameV$="" Then Exit Sub

'Выбор родительского документа
Set NDC_Parent = NUIWS.PickListCollection(3, False, Db.Server, Db.FilePath, NameV$, "Выбор родительского документа...", "Выберите один документ")
Set ND_Parent = NDC_Parent.GetFirstDocument
For i% = 1 To NDC.Count
Set ND = NDC.GetNthDocument(i%)
Call ND.MakeResponse(ND_Parent)
Call ND.Save( True, True )
Next

End Sub
 

hosm

* so what *
18.05.2009
2 442
6
#6
Implode (Join) появился вроде в 6-ке только, для 5-ки надо написать свою функцию, сливающую массив в строку.
Если лень, то можно, в принципе, обойтись без сортировки и выводить несортированный список представлений :lol:
Кстати, внимательней с Evaluate, если в имени представления есть \
 
Статус
Закрыто для дальнейших ответов.