0 / 0 / 0
Регистрация: 30.11.2007
Сообщений: 43
|
|
1 | |
Ссылка на документ.04.12.2007, 09:46. Показов 20592. Ответов 12
Метки нет (Все метки)
В поле (класс NotesRichTextItem) документа
была создана ссылка на другой документ. (Call rtitem.AppendDocLink(ndoc, ndoc.ID(0)) ). Мне нужно узнать существует ли документ на который указывает эта ссылка в БД. Не знаю как "программно" обратиться по ссылке :D. Версия Lotus 5.0. Спасибо за помощь.
0
|
04.12.2007, 09:46 | |
Ответы с готовыми решениями:
12
ссылка на документ Ссылка на документ Ссылка на документ Ссылка на документ |
0 / 0 / 0
Регистрация: 05.07.2007
Сообщений: 102
|
|
04.12.2007, 11:30 | 2 |
Код
Dim session As New NotesSession Dim doc As NotesDocument главный документ на сервере Set doc = ......... Dim rti As NotesRichTextItem поле BugReferences для временного хранения ссылок Set rti = doc.GetFirstItem(BR) If rti Is Nothyng Then Messagebox "Document contains no links",, "No links" uidoc.FieldClear(BR) Call uidoc.Refresh() Exit Sub End If Dim rtnav As NotesRichTextNavigator Set rtnav = rti.CreateNavigator Dim rtlink As NotesRichTextDocLink Set rtlink = rtnav.GetFirstElement(RTELEM_TYPE_DOCLINK) While Not(rtlink Is Nothyng ) If rtlink.DocUNID = String$(32, "0") Then Messagebox "Link does not have a doc component",, "No doc" Exit Sub End If Dim dblink As New NotesDatabase("", "") база данных документа на который указывает ссылка If Not dblink.OpenByReplicaID(session.CurrentDatabase.Server, rtlink.DbReplicaID) Then Messagebox "No local replica",, "Cannot find database" Exit Sub End If Dim linkDoc As NotesDocument документ на который указывает ссылка Set linkDoc = dblink.GetDocumentByUNID(rtlink.DocUNID) If linkDoc Is Nothyng Then Messagebox "Can not find AFER",, "No doc" Exit Sub End If ................. Set rtlink = rtnav.GetNextElement(RTELEM_TYPE_DOCLINK) Wend
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
04.12.2007, 11:45 | 3 |
Для: PavelT100
Версия Lotus 5.0.
0
|
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
|
|
04.12.2007, 11:46 | 4 |
<!--QuoteBegin-PavelT100+5:12:2007, 11:17 -->
<span class="vbquote">(PavelT100 @ 5:12:2007, 11:17 )</span><!--QuoteEBegin-->Dim rtlink As NotesRichTextDocLink [snapback]88450" rel="nofollow" target="_blank[/snapback]?[/quote] Сказал же автор - версия 5ка
0
|
0 / 0 / 0
Регистрация: 30.11.2007
Сообщений: 43
|
|
04.12.2007, 12:18 | 5 |
В 5 версии,как уже было замечено выше, классов NotesRichTextDocLink и NotesRichTextNavigator
к сожелению нет. Вопрос поднимался на многих форумах, такое ощущение,что в 5 версии решения нет...
0
|
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
|
|
04.12.2007, 12:27 | 6 |
Для: olegber
имхо призодит на ум разобрать содержимое рт-поля и искать унид докумета и проверять его на существование
0
|
0 / 0 / 0
Регистрация: 30.11.2007
Сообщений: 43
|
|
04.12.2007, 12:44 | 7 |
Для: Morpheus
Всё перебрал, разобрал. Не нашёл таких свойств или методов в NotesRichTextItem для получения UNID документа. Может быть как-нибудь через дизайн?
0
|
0 / 0 / 0
Регистрация: 21.10.2007
Сообщений: 37
|
|
04.12.2007, 14:29 | 8 |
Может использовать служебное поле $Links
0
|
0 / 0 / 0
Регистрация: 30.11.2007
Сообщений: 43
|
|
04.12.2007, 15:13 | 9 |
Для: serEJa Shabalin
Такого поля нет в этих документах. Ссылки содержатся в поле NotesRichTextItem. Для: serEJa Shabalin Документы создавались не с помощью формы, а примерно так set doc=db.CreateDocument. И следовательно у них нет никаких служебных полей типа $Links,$Revisions... Хотя если их открыть с помощью формы и пересохранить то поле $Links с нужным UNID создаётся (это уже хорошо). Одна проблема документов около 10000
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
04.12.2007, 16:22 | 10 |
Для: olegber
@Command([ToolsRefreshSelectedDocs]) не помогает?
0
|
0 / 0 / 0
Регистрация: 30.11.2007
Сообщений: 43
|
|
04.12.2007, 16:49 | 11 |
Из всего выше сказанного решение моей задачи сводится к следующему:
1)Обновить все документы(например командой @Command([ToolsRefreshSelectedDocs])), чтобы появились поля $links. 2)Из этих полей взять необходимый UNID. Этот метод для меня скорее всего не подойдёт: так как поля (а их около 100) в документах содержат информацию из других БД. и обновлять все документы будет "непрактично". Подругому видимо никак нельзя в 5 версии lotus.
0
|
0 / 0 / 0
Регистрация: 30.11.2007
Сообщений: 43
|
|
05.12.2007, 13:04 | 13 |
Не помогло.. ;)
0
|
05.12.2007, 13:04 | |
05.12.2007, 13:04 | |
Помогаю со студенческими работами здесь
13
Ls Ссылка на документ в базе Ломается ссылка на документ Ссылка на текущий документ (web) Ссылка на родительский документ из Response Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |