Динамическое изменение View

Тема в разделе "Lotus - Программирование", создана пользователем Extraterrestrial, 11 апр 2009.

  1. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Меня интересует, как можно дать возможность пользователю динамически менять вид...
    Во-первых, использовать Shared, private on first use, чтобы изменения у каждого были свои. Правда, насколько я помню, если нет прав дизайнера, то выскакивает ошибка при попытке, например, изменить формулу отбора. Но можно делать изменения агентом через RunOnServer, который подписан дизайнером?
    Второй момент, это то, что нужно после изменения формулы отбора или колонки выйти из вида и зайти в него снова, чтобы эти изменения увидеть. Видимо можно используя notesUIView.Close и notesUIDatabase.OpenView? Правда, пока что не вышло...
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    вот посмотри тут как перегрузка вида делается на лету
    _http://codeby.net/forum/threads/29582.html?view=findpost&p=135109

    чтобы агент на сервере обработал вид, этот вид должен быть на сервере, на локальной реплике без форсирования доступа, по-идее, не нужны права дизайнера, т.к. человек получает полный доступ к базе...
     
  3. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Это только для Embedded View? Embedded View - не совсем хорошая вещь. Например, там сортировки не работают... Может во фреймах что-то попробовать делать? В верхнем фрейме в форме действие, которое после изменения параметров вида переключает на другой вид, а потом возвращает на измененный, тогда, возможно, изменения отобразятся.
     
  4. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Такой вариант прокатил. Теперь только бы это еще заработало в варианте, когда агент меняет вид и когда вид типа Shared, private on first use.
     
  5. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    перестаньте пытаться сделать из LDN - РСУБД
    все это будет сильно тормозить (перестройка индекса)
    не надо делать универсально, можно подогнать под задачу
    надо учитывать объем данных
    может оказаться, что проще вносить изменения а РСУБД (через DECS например) и оттуда получать выборки
     
  6. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Да причем тут РСУБД-то? Я могу и на XPages тоже самое сделать. Не тормозит, всё ОК. У нас не тот объем данных, чтобы тормозило. Причем я так понимаю, что от размера выборки ещё зависит? Может данных и много, но выборка небольшая. В общем, теперь лишь бы это всё заработало с обновлением через агент и с private видами.
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    нет, то был просто пример, а перестроение вида не имеет отношения конкретно к внедрению вида...
    зы: какие это сортировки не работают во внедренном виде?! О.о
     
  8. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Перестроение вида происходит только, если переключиться на другой вид и обратно, никак иначе он не перестраивается после внесения изменений...
    По-моему не работали Click on column header to sort. Не помню точно. Но что-то точно не работало.
     
  9. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Extraterrestrial
    Про второй момент. Переоткрывать не надо, а надо сделать view.Rebuild. Если делать серверным агентом, то и этого не надо.
    А про первый момент есть сомнения, что получится с Shared, private on first use.

    Если данных немного, то делай через папки.
     
  10. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Да? Мне казалось что не помогают ни рифреши, ни рибилды. Попробую. Спасибо.

    Что рифреша достаточно будет? Вот у меня вид открыт этот. Агент отработал. Разве что-то должно измениться в UI само собой?

    Почему?
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    пачимучка :) приватные виды хранятся локально, если нет соотв. права, плюс, не уверен, что серверный агент его увидит вообще...
     
  12. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Мне помогали. :)

    Ничего не надо делать. Просто вызови агент и представление само собой обновится.

    Ну ты сам посуди. К десктопным личным представлениям ты не достучишься, ибо локальные. Если вдруг достучишься к серверным, то как агент узнает какое ему именно брать, ведь их много с одинаковым именем? По одному на каждого пользователя.
     
  13. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Интересно есть ли права у пользователя на изменение дизайна десктопного вида даже если в ACL у него дизайнерских прав нет...

    Где-то должно храниться имя пользователя, иначе и система не различит их, какое выдавать пользователю. Там, наверное, поле типа Readers для этого есть.
     
  14. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    там есть поле-читатели, поэтому я и писал
     
  15. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Надо будет проверить, что в этом поле. А про локальные реплики, мы с локальными репликами не работаем. С моей точки зрения локальный контент - это одна сплошная головная боль...
    И я склоняюсь в пользу десктопных видов, так как в базе хранить слишком много видов может быть накладно. Вопрос только как пользователь сможет менять дизайн десктопного вида, есть ли у него права.
     
  16. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Вообще есть у кого-то опыт работы с десктопными видами, программное изменение их дизайна?

    У меня выдает ошибку на свойстве notesUIView.View. Вид получить не могу.
     
  17. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    к таким размазанным вопросам нужно код прилагать, а то ошибка понятие растяжимое :blink:
     
  18. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Dim uiw As New NotesUIWorkspace
    Dim UIview As NotesUIView
    Dim view As NotesView
    Set UIview=uiw.CurrentView
    Set view=UIview.View

    Попробовал через getView, ошибка не возникает, но и ничего не меняется, вид прежний. Тот же скрипт работает на обычном виде прекрасно.
     
  19. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а что ты сделать пытаешь в коде? апдейт?..
    так я давал ссылку на пример :blink: короче гря, есть NotesUIWorkspace.ViewRebuild, она работает из вида нормально
     
  20. Extraterrestrial

    Extraterrestrial Well-Known Member

    Регистрация:
    28 фев 2008
    Сообщения:
    267
    Симпатии:
    0
    Я про ошибку пишу, что объект не создается (Set view=UIview.View). Причем тут NotesUIWorkspace.ViewRebuild? Я использую NotesUIWorkspace.ViewRebuild, спасибо, хорошо работает.
    Как достучаться к десктопному виду в бэкэнде через LotusScript?
     
Загрузка...

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