• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Модификация документа через Action

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

phantom76

Необходимо добавлять комментарии к доку без перевода его в режим редактирования пользователем, через Action с панели.

Код:
Sub Click(Source As Button)
On Error Goto handler
Dim w As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim subdoc As NotesDocument
Dim docChanged As Boolean
Dim db2 As NotesDatabase
Dim ses As New NotesSession
Set db2= ses.CurrentDatabase


Set w = New NotesUIWorkspace
Set uidoc = w.CurrentDocument
uidoc.AutoReload = False
Set doc = uidoc.document
Set subdoc = New NotesDocument(db2)
'Call w.EditDocument(True)
docChanged = w.DialogBox("(comments)", True, True, False, False, False, False, "Введите комментарии", subdoc,False,False)
If docChanged Then
If subdoc Is Nothing Then
' ничего
Msgbox "Empty"
Else

Call doc.ReplaceItemValue("sub_com",subdoc.GetItemValue("sub_com2")(0))
Call doc.Save (True, True)
'Call uidoc.save
'Call w.EditDocument(False)
Call uidoc.refresh
'Call uidoc.Reload
End If

End If
Exit Sub
handler:
Messagebox "Ошибка :" & Error & " в строке " & Cstr(Erl()),16, "Ошибка"
Exit Sub
End Sub

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

Call w.EditDocument(True)
.....................................
Call uidoc.save
Call w.EditDocument(False)

как-то не очень кажется "красивым" , что можно придумать?
 
A

Akupaka

придется закрыть уидок и открыть заново
 
P

phantom76

а как это сделать из кнопки?


спасибо нашел...
 
A

Akupaka

Я на всякий случай, дабы в будущем избежать стандартного вопроса
а я бы советовал не делать этого по-умолчанию, т.к. контролируемое сохранение не всегда предусмотришь, а пользователи случайно могут закрыть документ по Esc и начать волать, что во всем виноваты программисты ))
 
A

abbatik

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

Обрати внимание на начало предложения: "Если не хочешь чтобы спрашивало...", слово если дает право выбора делать или не делать автору разработки :)
 
P

phantom76

Я на всякий случай, дабы в будущем избежать стандартного вопроса :)
а его бы и не было, ибо этот момент был уже пройден без вопросов :)

по такому же принципу возможно организовать добавление атачментов к документу? Как сделать это с формы вопросов не вызывает, а вот из Action, пока не представляю полностью..
 
P

phantom76

про кривое отображение я помню, а какие есть еще альтернативы? делить на управляемые секции форму и давать модифицировать только свои области?
 
A

Akupaka

есть конструктивные альтернативы, например, вложения хранить в отдельных документах, которые вообще не открываются на УИ, при открытии такого дока, открывается вложение. отображать эти доки во внедренном виде основного документа. там свой гемор, но в общем удобно, а если вложения занимают много места, то можно их совсем в отдельную БД вынести...
 
A

abbatik

есть конструктивные альтернативы, например, вложения хранить в отдельных документах, которые вообще не открываются на УИ, при открытии такого дока, открывается вложение. отображать эти доки во внедренном виде основного документа. там свой гемор, но в общем удобно, а если вложения занимают много места, то можно их совсем в отдельную БД вынести...

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

phantom76

а что посоветуете насчет архитектуры?
коротко:
база некоторых заявок - оператор однократно создает ее и заполняет - здесь все понятно...
далее заявку последовательно обрабатывают несколько сотрудников, при этом они имеют право вносить только комментарии и прикреплять файлы - с внесением комментариев и логированием все ясно, присоединять файлы можно и через спец. поле с последующим перебросов в поле хранения, но просят чтобы прикрепленные файлы можно было ассоциировать с владельцами,
т.к. оптимальная структура типа: дата - автор - комментарий - файлы(если есть).

по части с файлами как реализовать? закинуть всю эту структуру в RT поле как строку? и это поле хранить непосредственно в основном доке.
второй вариант: коменты делать респонсами и через ембедед вью в основной док?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Делать респонсами. После завершения обработки, можно слить всё в один документ.
 
A

Akupaka

я бы предложил вариант хранения вложений в отдельных доках, причем не используя стандартной связи (дочерних), а связывать их по своему ключу, например по униду документа, к которому создается вложение...
это если не нужно городить иерархии ответов на вложения... если же нужно иметь "ответить" на вложение, то тогда можно сделать дочерние связи только между вложениями, но к основному доку не связывать...
правда, при репликации это будет немного сложнее формулой описывать (если используется избирательная репликация), но при правильно организованных полях доступа и ключах репликации, сложностей не должно возникнуть...
почему лучше не использовать связи - могут порушиться (по непонятных мне причинах), и из-за этого может не работать репликация всей базы...
сталкивался на практике, найти причину не смог, повезло, что формулу репликации удалось переделать без правки документов...
 
P

phantom76

Спасибо за рекомендации!

Как тогда если не респонсы лучше отобразить из в основном документе? еще момент прямые ссылки на вложения как я понимаю не удастся сделать?
 
A

abbatik

Спасибо за рекомендации!

Как тогда если не респонсы лучше отобразить из в основном документе? еще момент прямые ссылки на вложения как я понимаю не удастся сделать?

Отобразить можно через эмембед вью, откатегоризовав его по ключевому ID.

А в чем у тебя проблема с ссылками?
 
P

phantom76

да нет у меня нет проблем :)
заказчик может изъявить желание иметь возможность открыть прикрепленные доки без лишних движений, так как если бы они были непосредственно вложены в основной документ... -но я думаю смогу объяснить ему что не все возможно..
 
Мы в соцсетях:

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