Хитрая кнопочка!

  • Автор темы Автор темы SOFTOBZOR.ru
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Для: Medevic
вот что в ссылке "notes:///__C22572130022D9F5.nsf/0/96DA7EF594E1FF04C225722C0034B3C0?OpenDocument". как считаешь, куда полезет?
 
notes://Что-то мне подсказывает, что вот здесь должен быть указан сервер/__C22572130022D9F5.nsf/0/96DA7EF594E1FF04C225722C0034B3C0?OpenDocument

Лично у меня так.
 
Господа кто подскажет почему не работает это.

Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db2 AS NotesDatabase

Set uidoc = ws.CurrentDocument
Set db2 = New NotesDatabase("","Temp/base.nsf")
Set doc = db2.CreateDocument()
doc.Form = "Blanck"
doc.Link = uidoc.Document.UniversallID
Call ws.EditDocument(True, doc, False)

На сервере база лежит в data/Temp/base.nsf
На кнопку заколбасил выше приведенный код, в base.nsf есть форма Blanck и поле RichText Link
При клике на кнопку мне пишит что БД не может быть открыта.
Что я делаю не правильно.
 
Код:
Function GetOtherDb() As NotesDatabase
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim osdoc As NotesDocument
Set osdoc = GetApplicationProfileDoc(sess.CurrentDatabase)
If Not osdoc Is Nothing Then
Set db = sess.GetDatabase(osdoc.otherServer(0), osdoc.otherPath(0), False)
If Not db Is Nothing Then
If db.IsOpen Then
Set GetOtherDb = db
Else
Set GetOtherDb = Nothing
End If
Else
Set GetOtherDb = Nothing
End If		
Else
Set GetOtherDb = Nothing
End If	
End Function

Вот такая функция вернет вам БД, с которой уже можно спокойно работать. Если в документе профиля указан верный путь до базы, то функция будет возвращать NotesDatabase всегда.
 
<!--QuoteBegin-SOFTOBZOR.ru+23:12:2006, 23:00 -->
<span class="vbquote">(SOFTOBZOR.ru @ 23:12:2006, 23:00 )</span><!--QuoteEBegin-->Что я делаю не правильно.
[snapback]51592" rel="nofollow" target="_blank[/snapback]​
[/quote]
Имя сервера не указано:
<!--QuoteBegin-SOFTOBZOR.ru+23:12:2006, 23:00 -->
<span class="vbquote">(SOFTOBZOR.ru @ 23:12:2006, 23:00 )</span><!--QuoteEBegin-->Set db2 = New NotesDatabase("","Temp/base.nsf")
[snapback]51592" rel="nofollow" target="_blank[/snapback]​
[/quote]


<!--QuoteBegin-K-Fire+24:12:2006, 12:04 -->
<span class="vbquote">(K-Fire @ 24:12:2006, 12:04 )</span><!--QuoteEBegin-->Вот такая функция вернет вам БД, с которой уже можно спокойно работать. Если в документе профиля указан верный путь до базы, то функция будет возвращать NotesDatabase всегда.
[snapback]51610" rel="nofollow" target="_blank[/snapback]​
[/quote]
По-моему, она вернет ошибку в этой строке. :)
<!--QuoteBegin-K-Fire+24:12:2006, 12:04 -->
<span class="vbquote">(K-Fire @ 24:12:2006, 12:04 )</span><!--QuoteEBegin-->Set osdoc = GetApplicationProfileDoc(sess.CurrentDatabase)
[snapback]51610" rel="nofollow" target="_blank[/snapback]​
[/quote]
 
Имя сервера не указано:

Пустая строка - значит будет использоваться текущий сервер, для клиентского кода это Local. Хотя вполне может быть что из-за этого у товарища и не работает.


По-моему, она вернет ошибку в этой строке.

Set osdoc = GetApplicationProfileDoc(sess.CurrentDatabase)

О да, вернет :)
 
Для: oshmianski
Согласен с Medevic, у меня тоже так зделано, недоверяю я как то этим ссылкам, с ID удобнее работать ПАТОМ будет
С одной стороны, в описанном мной способе формирования ссылки, можно в <Computed Text> прописывать какой угодно сервер, бд, док, представление и т.д. Это теоритически. Я сам использовал такой метод только единожды и то, не сильно извращался и не проверял все возможные способы.
С другой стороны, должен соглавится с вами относительно доверия к подобным ссылкам, ибо глючили не единожды (не в предложенном мною способе, а при использовании их из сторонних программуль). Да и, если уж совсем честно, то кнопка со скриптом предпочтительнее выглядит, ибо можно контролировать сам процесс, так сказать.
По сему, спасибо за идею, сам до этого не додумался.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!