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

phantom76

Lotus team
25.02.2005
360
4
#1
Необходимо добавлять комментарии к доку без перевода его в режим редактирования пользователем, через 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)

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
Я на всякий случай, дабы в будущем избежать стандартного вопроса
а я бы советовал не делать этого по-умолчанию, т.к. контролируемое сохранение не всегда предусмотришь, а пользователи случайно могут закрыть документ по Esc и начать волать, что во всем виноваты программисты ))
 

abbatik

Lotus team
20.10.2008
277
0
#8
а я бы советовал не делать этого по-умолчанию, т.к. контролируемое сохранение не всегда предусмотришь, а пользователи случайно могут закрыть документ по Esc и начать волать, что во всем виноваты программисты ))
Обрати внимание на начало предложения: "Если не хочешь чтобы спрашивало...", слово если дает право выбора делать или не делать автору разработки :)
 

phantom76

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#11
по такому же принципу возможно организовать добавление атачментов к документу?
приатачить файл в бэкэнде можно, но будет криво отображаться (серая иконка файла, а не иконка файла в системе)
 

phantom76

Lotus team
25.02.2005
360
4
#12
про кривое отображение я помню, а какие есть еще альтернативы? делить на управляемые секции форму и давать модифицировать только свои области?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#13
есть конструктивные альтернативы, например, вложения хранить в отдельных документах, которые вообще не открываются на УИ, при открытии такого дока, открывается вложение. отображать эти доки во внедренном виде основного документа. там свой гемор, но в общем удобно, а если вложения занимают много места, то можно их совсем в отдельную БД вынести...
 

abbatik

Lotus team
20.10.2008
277
0
#14
есть конструктивные альтернативы, например, вложения хранить в отдельных документах, которые вообще не открываются на УИ, при открытии такого дока, открывается вложение. отображать эти доки во внедренном виде основного документа. там свой гемор, но в общем удобно, а если вложения занимают много места, то можно их совсем в отдельную БД вынести...
Угу, этот способ особо хорош в базах где много документов и тяжелые формы.
 

phantom76

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#16
Делать респонсами. После завершения обработки, можно слить всё в один документ.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#17
я бы предложил вариант хранения вложений в отдельных доках, причем не используя стандартной связи (дочерних), а связывать их по своему ключу, например по униду документа, к которому создается вложение...
это если не нужно городить иерархии ответов на вложения... если же нужно иметь "ответить" на вложение, то тогда можно сделать дочерние связи только между вложениями, но к основному доку не связывать...
правда, при репликации это будет немного сложнее формулой описывать (если используется избирательная репликация), но при правильно организованных полях доступа и ключах репликации, сложностей не должно возникнуть...
почему лучше не использовать связи - могут порушиться (по непонятных мне причинах), и из-за этого может не работать репликация всей базы...
сталкивался на практике, найти причину не смог, повезло, что формулу репликации удалось переделать без правки документов...
 

phantom76

Lotus team
25.02.2005
360
4
#18
Спасибо за рекомендации!

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

abbatik

Lotus team
20.10.2008
277
0
#19
Спасибо за рекомендации!

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

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

phantom76

Lotus team
25.02.2005
360
4
#20
да нет у меня нет проблем :)
заказчик может изъявить желание иметь возможность открыть прикрепленные доки без лишних движений, так как если бы они были непосредственно вложены в основной документ... -но я думаю смогу объяснить ему что не все возможно..