• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Dialogbox вопрос про линк

  • Автор темы Автор темы Cleric84
  • Дата начала Дата начала

Cleric84

Well-known member
03.01.2008
599
0
Всем привет!

вопрос следующий:
есть главний документА, визиваю Dialogbox и создаю новий документБ, делаю документБ документом ответом к документуА + хочу вставить линк на документБ в рт поле документаА. здесь глюк почемуто не хочет вставить линк:)

плюс еще вопрос
можно ли открить линк через Dialogbox?


Код:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim docres As NotesDocument
Dim item As NotesRichTextItem

Set db = ses.CurrentDatabase 
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set item = doc.GetFirstItem("File")
Set docres = New NotesDocument(db)	
docres.Form = "Atach"	
Call ws.DialogBox("Atach", True, True, False, False, False, False, "Приєднання документів", docres, True, False)

Call docres.MakeResponse(doc)
Call docres.Save (True, False)
Call item.AppendDocLink(docres, "")
End Sub
 
КМК, нужно:
1) добавить обработку ошибок, чтоб понять, где глючит.
2) обрабатывать, что вернул ws.DialogBox — ведь пользователь может нажать отмену.
3) проверить, действительно ли "File" является рт итемом. Может сделать так:
Код:
if doc.HasItem("File") then doc.removeItem("File")
set item = new notesRichTextItem(doc, "File")
можно ли открить линк через Dialogbox?
— это о чём?
 
есть ли дефолтная вьюха, вообще код добавления работает без сообщений об ошибке?
кстати, линк ведь к уи-доку текущему добавляется в бекенде.
Возможно, нужен рт-апдейт или бекендное сохранение/переоткрытие, в зависимости от того, что там с документом...
 
nvy

поле действительно рт.
етот скрипт только тестовий, мне нужно увидеть результат. потом добавлю все варианти (что будет если нажать "ок" или "отмену")


Добавлено: OKEN
дефолтная вю есть, код ошибок не видает
 
значит, пробуем item.update и
если уи-документ в режиме редактирования, может помочь uidoc.refresh(True),
если в режиме чтения - пробовать doc.save(True, True) doc.SaveOptions = "0", закрытие и переоткрытие уи-дока (взять doc по униду или из вьюшки).


Добавлено: кстати, столкнулась недавно с интересным глюком (из-за области видимости переменных?).
Код создания и заполнения рт-поля ссылкой и текстом был в одном методе, а бек-сохранение документа - в другом месте, где item было недоступно.
и работало прикольно - создавало 2 рт-айтема - полностью пустой и тот, что нужно...(документ создавался в бекенде и в уи кодом не открывался)
item.update не помогало в данном случае, помогла доступность item в момент сейва.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab