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

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 17 сен 2010.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    есть такой код
    Код (LotusScript):
    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" и дизайн папки одинаковые

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну, как вариант, можно пробежаться по пропертям NotesView и NotesViewColumn которые они содержат.
    Я думаю, этого будет достаточно.
     
  4. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    nvy
    с DXL не очен понятно, разве вью можно обработать DXLExporter-ом, оно же для БД, документов, рт полей

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

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.077
    Симпатии:
    300
    а что по-вашему вью - эфирное тело? :)
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Set view = db.GetView("MyView")
    Set docView = db.GetDocumentByUNID(view.UniversalID) '???
    Далее DXL-экспорт в поток, получаем строку, "выкусываем", то, что относится к дизайну, сравниваем. В принципе, наверное можно также сравнивать дату последнего обновления. Если у эталонной вьюхи дата обновления позже, значит дизайн изменился.
     
Загрузка...

Поделиться этой страницей