• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как сделать, что бы открытый из формы док стал его респонсом

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

Sandro

Понимаю, что наверняка идиотский вопрос, но с лотусом неделю всего общаюсь. Есть форма в форме встроенная вьюшка , кнопка 'Добавить'. При нажатии кнопки открывается форма (@Command([Compose];"";"f_plan")), как сделать что бы открытый из формы новый документ стал респонсом и как сделать что бы во вьюшке отображались только респонсы родительского документа ?

Или как ещё можно реализовать такой функционал, что бы в документе была вьюшка со списком порождённых из этого документа документов ?
 
N

nvyush

Понимаю, что наверняка идиотский вопрос, но с лотусом неделю всего общаюсь. Есть форма в форме встроенная вьюшка , кнопка 'Добавить'. При нажатии кнопки открывается форма (@Command([Compose];"";"f_plan")), как сделать что бы открытый из формы новый документ стал респонсом и как сделать что бы во вьюшке отображались только респонсы родительского документа ?

Или как ещё можно реализовать такой функционал, что бы в документе была вьюшка со списком порождённых из этого документа документов ?
1) В свойствах формы для ответного документа нужно установить тип Response или Response to Response (первая вкладка свойств).
2) См. <a href="https://codeby.net/threads/32816.html">Как лучше сделать в форме историю ответных документов?</a>
 
S

Sandro

Пишет что не выделен документ на который надо сделать ответ ((( Я так понимаю, делая @Command([Compose];"";"f_plan"), что открывается новая форма не связанная с прежним документом
 
K

Klido

у меня именно в указанном тобой случае на кнопе висит @Command([ToolsRunMacro];"(АгентДобавить)")

и код агента примерно такой (через диалог), не идеал, но как-то так :(

Код:
	Dim WS As New NotesUIWorkspace
Dim ND As NotesDocument
Dim Continue As Boolean
Dim doc As notesdocument

Set ND= ws.CurrentDocument.Document
Set doc = New notesdocument(ws.currentdatabase.database)
Call doc.MakeResponse(ND) 
Continue=ws.DialogBox("ФормаРеспонса",True,True,False,False,False,False,"Введите данные",doc,True,False,True)
If Not Continue Then
Call doc.RemovePermanently(True)
Exit Sub		
End If

doc.form="ФормаРеспонса"	
Call doc.ComputeWithForm(True,False)
Call doc.Save(True,True)
WS.CurrentDocument.Refresh
 
N

nvyush

Пишет что не выделен документ на который надо сделать ответ ((( Я так понимаю, делая @Command([Compose];"";"f_plan"), что открывается новая форма не связанная с прежним документом
Кнопку "Добавить" повесить на форму родительского документа или использовать ЛС-код типа приведённого выше.
Родительский документ перед созданием респонсов следует сохранить
 
K

Klido

Родительский документ перед созданием респонсов следует сохранить
в случае кода можно и не сохранять сразу, данные с полей в респонсы можно с UIдока взять, но при закрытии родительского на сохранении лучше проверять и прописывать в респонсы по необходимости...
 
S

Sandro

Спасиб , за ответ, но что то работает всё криво совсем (((
Делаю так

Код:
Sub Click(Source As Button)

Dim WS As New NotesUIWorkspace
Dim ND As NotesDocument
Dim Continue As Boolean
Dim doc As notesdocument

Set ND= ws.CurrentDocument.Document
Set doc = New notesdocument(ws.currentdatabase.database)
Call doc.MakeResponse(ND) 
Continue=ws.DialogBox("f_plan")
If Not Continue Then
Call doc.RemovePermanently(True)
Exit Sub 
End If

doc.form="f_plan" 
Call doc.ComputeWithForm(True,False)
Call doc.Save(True,True)
WS.CurrentDocument.Refresh 

End Sub

Респонс заполняем , жмём ОК , в результате Док во вьюху SELECT form="f_plan" не попадает, смотрю во вьюхе @All они там есть но поля пустые ((( Ничего не понимаю, как так может быть
 
N

nvyush

Из справки:
flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] )

notesDocument - NotesDocument. Optional. A document to be opened instead of the current document.

Мне лень считать запятые, попробуй так (число запятых считай сам):
Continue=ws.DialogBox("f_plan",,,,,,doc)
Также следует проверить, нет ли на форме поля SaveOptions со значением "0"
 
S

Sandro

Спасиб, за ответ , что то я ступил. Теперь правда новая трабла, нажимаю кнопочку ОК на DialogBox пишет "Команда документа не доступна", ну думаю ладно, делаю свою кнопку, делаю на клик @Command([FileSave]) - пишет База данных уже содержит документ с этим идентификатором (UNID), Док при этом создаётся но во вьюшке для этой формы я его не вижу, делаю @Command([FileSaveNewVersion]) -пишет "Команда документа не доступна"

ЧЕЛОВЕКИ , может скинет кто базу с подобным функционалом? БУДУ НУ ООООЧЕНЬ благодарен
 
S

Sandro

Да вот именно что я копипастом всё делаю, но пишет упорно "Команда не найдена" :lol:
Да ничего такого нет всё вроде по умолчанию
 
H

hosm

Klido - замечание:
код из поста №4 работает 100%
Set ND= ws.CurrentDocument.Document
Set doc = New notesdocument(ws.currentdatabase.database)
Call doc.MakeResponse(ND)

Лучше получать базу по документу, тем более, что делаем его респонсом:
Код:
Set doc = New notesdocument(ND.ParentDatabase)

Sandro
WS.CurrentDocument.Refresh работает в режиме редактирования, в режиме чтения документ берется по униду и переоткрывается.
"Команда документа не доступна" иногда бывает при прогонке кода под отладчиком либо в случае, когда в данном контексте команда не работает и не применима. Обычно контекст применения команды описан в хелпе.
"Команда не найдена" - это что-то новенькое :lol:
 
S

Sandro

Ура заробило !!!! Точно нельзя объекты было обновлять. Всем спасиб
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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