• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы 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

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

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