У вью и папки одинаковый дизайн

yerke

Well-known member
28.08.2007
392
0
#1
есть такой код
Код:
Sub Postopen(Source As Notesuidatabase)
'=
Dim ses As NotesSession
Dim cdb As NotesDatabase
Dim roles As Variant
Dim is_reg As Boolean
Dim foldername As String
Dim nm As NotesName
Dim accPriv As Long
'=
'=создать рабочие папки для каждого регистратора=
Set ses=New NotesSession
Set cdb=ses.CurrentDatabase
'=
roles=cdb.QueryAccessRoles(Cstr(ses.UserName))	
is_reg=False
'=
Forall role In roles
If Cstr(role)="[REGISTRAR]" Then
is_reg=True
Exit Forall
End If
End Forall
'=
If is_reg Then
'=
accPriv = cdb.QueryAccessPrivileges(Cstr(ses.UserName))
'=
If ((accPriv And DBACL_CREATE_PRIV_FOLDERS_VIEWS) > 0) And _
((accPriv And DBACL_CREATE_SHARED_FOLDERS_VIEWS) > 0) Then
'=
Set nm=ses.CreateName(Cstr(ses.UserName))
foldername="(REG-FOL-ONE-"+Cstr(nm.Common)+")"
Call cdb.EnableFolder(foldername)
Evaluate({@IfError(@UpdateViewDesign("}+foldername+{"; "IUPs"); "");})
Print {Folder "}+foldername+{" created.}
'=
End If	
'=
End If
'=
End Sub
здесь создаю папку (дизайн у папки по умальчанию такая же как у вьюшки, где есть опция Default Design....):
Call cdb.EnableFolder(foldername)

потом на папку накатываю дизайн определенной вьюшки, в нашем случае вью "IUPs"
Evaluate({@IfError(@UpdateViewDesign("}+foldername+{"; "IUPs"); "");})

так вопрос
как проверить дизайн вьюшки "IUPs" и дизайн папки одинаковые

если это можно было бы каким то способом определить,
то можно было бы не каждый раз использовать это:
Код:
Evaluate({@IfError(@UpdateViewDesign("}+foldername+{"; "IUPs"); "");})
так как оно силно жрет ресурсы
 

Omh

Lotus team
04.07.2007
2 210
1
#3
Ну, как вариант, можно пробежаться по пропертям NotesView и NotesViewColumn которые они содержат.
Я думаю, этого будет достаточно.
 

yerke

Well-known member
28.08.2007
392
0
#4
nvy
с DXL не очен понятно, разве вью можно обработать DXLExporter-ом, оно же для БД, документов, рт полей

Omh
Была идея такая

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

nvyush

Lotus team
22.04.2009
2 317
0
#6
Set view = db.GetView("MyView")
Set docView = db.GetDocumentByUNID(view.UniversalID) '???
Далее DXL-экспорт в поток, получаем строку, "выкусываем", то, что относится к дизайну, сравниваем. В принципе, наверное можно также сравнивать дату последнего обновления. Если у эталонной вьюхи дата обновления позже, значит дизайн изменился.