• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Darker
  • Дата начала
D

Darker

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

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Darker
смотря в какой версии ты пишешь, в 7-ке появились шаред столбцы, вынесешь один, поставишь на нем сортировку и всё ;)
можно DXML пройтись по всем видам и включить сортировку
програмно сэмулировать не знаю как :(
 
A

allex

Код:
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
 
O

Omh

Проперти для колонки, которые позволяют сделать её resortable существуют, как писал allex:
Код:
IsResortAscending
IsResortDescending
Но, мне кажется, программно эмулировать клик на хидер колонки не получится, т.е. применить per-user сортировку не выйдет.

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

Darker

... в 7-ке появились шаред столбцы, вынесешь один, поставишь на нем сортировку и всё wink.gif
можно DXML пройтись по всем видам и включить сортировку
А если несколько юзеров одновременно открывают?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Darker
А если несколько юзеров одновременно открывают?
я предложил варианты, которые действую сразу на всю базу, так как меняется дизайн, делать такое под индивидуальных юзеров считаю злом ;)

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

Darker

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

azat20

насколько я знаю, параметры сортировки вида кэшируется локально
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!