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

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

  1. Darker

    Darker Гость

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

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    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 Lotus team
    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.046
    Симпатии:
    18
    Darker
    я предложил варианты, которые действую сразу на всю базу, так как меняется дизайн, делать такое под индивидуальных юзеров считаю злом ;)

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

    Darker Гость

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

    ToxaRat Чёрный маг
    Lotus team

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

    azat20 Well-Known Member

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

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