Модификация документа через 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)

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


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

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

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

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

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

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

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

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

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

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