Как программно установить сортировку столбца в представлении

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

Наш партнер Genesis Hackspace
  1. Darker

    Darker Гость

    В базе есть вьюхи для статистики, у которых первые столбцы были категоризированы и отсортированы. В целях оптимизации решил объединить все вьюхи, сделал каждый категоризированный столбец доминирующим при нажатии на его заголовок. В outline-е создал соответствующее ентри для сортировки и сокрытию "ненужных" столбцов. Как программно "сэмулировать" нажатие на заголовок столбца. Просто юзеры дотошные, не хотят лишний раз нажимать на заголовок. Заранее благодарю
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Команда форума Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.137
    Симпатии:
    19
    Darker
    смотря в какой версии ты пишешь, в 7-ке появились шаред столбцы, вынесешь один, поставишь на нем сортировку и всё ;)
    можно DXML пройтись по всем видам и включить сортировку
    програмно сэмулировать не знаю как :(
     
  3. allex

    allex Гость

    Код (Text):
    Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim vc As NotesViewColumn
    Set db = session.CurrentDatabase
    Set view = db.GetView("View A")
    Set vc = view.Columns(0)
    If vc.IsResortToView Then
    vc.IsResortToView = False
    Else
    REM Make sure other IsResort's are off
    vc.IsResortAscending = False
    vc.IsResortDescending = False
    vc.IsResortToView = True
    vc.ResortToViewName = "View B"
    End If
    If vc.IsResortToView Then viewname = vcResortToViewName
    Messagebox "Resort ascending " & vc.IsResortAscending _
    & Chr(13) & "Resort descending " & vc.IsResortDescending _
    & Chr(13) & "Resort to view " & vc.IsResortToView _
    & Chr(13) & viewname,, _
    "User-sorted column options"
    End Sub
     
  4. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Проперти для колонки, которые позволяют сделать её resortable существуют, как писал allex:
    Код (Text):
    IsResortAscending
    IsResortDescending
    Но, мне кажется, программно эмулировать клик на хидер колонки не получится, т.е. применить per-user сортировку не выйдет.

    Можно, конечно, на открытии view убирать сортировки со всех колонок, кроме нужной, но, во-первых, будет тяжко серверу, во-вторых, это не будет per-user settings, ибо view, как я понимаю шаредное.
    Вообщем, лучше так не делать.
     
  5. Darker

    Darker Гость

    А если несколько юзеров одновременно открывают?
     
  6. ToxaRat

    ToxaRat Чёрный маг
    Команда форума Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.137
    Симпатии:
    19
    Darker
    я предложил варианты, которые действую сразу на всю базу, так как меняется дизайн, делать такое под индивидуальных юзеров считаю злом ;)

    если же хочется всё же индивидуализировать, то думаю стоит покопаться на предмет того "как клиент запоминает настройки вида в локальном десктопе" - ведь если мы меняем вид, то при повторном входе в него он "помнит" как мы его меняли - правда это слетает при обновлении дизайна, но эта тема еще никем не раскрыта...
     
  7. Darker

    Darker Гость

    ToxaRat
    действительно, "как клиент запоминает настройки вида в локальном десктопе", никто не нашел где? Просто проблема до сих пор актуальна
     
  8. ToxaRat

    ToxaRat Чёрный маг
    Команда форума Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.137
    Симпатии:
    19
    Darker
    найдешь маякни :D
     
  9. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    насколько я знаю, параметры сортировки вида кэшируется локально
     
Загрузка...

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