Механизм Drag&drop Во Вьюшке Лотуса.

Статус
Закрыто для дальнейших ответов.

savl

Lotus team
28.10.2011
2 136
105
#1
Добрый день.
Искал данную тему на форме, часть информации нашел, но в целом не подходит.

Ситуация такая:
есть потребность перемещать документы в пределах вьюшки ака файлы в папках Windows...
Выделили перетащили вверх/вниз - порядок изменился, так как поменяются поля сортировки.

Сделал пока кнопки вверх/вниз работают на ура, НО
Если документов в представлении более 20 (а их будет даже больше), то с самого низа тащиться вверх очень долго.

Кнопки это действительно хорошо и просто, но все же вопрос:
можно ли реализовать полноценный d&d документов в представлении?

я вот механизм представляю, но с реализацией туго... надо определять новую позицию документа(-ов)... кроме как получения координат курсора пока идей нет...

Может у кого есть советы по этому вопросу? может кто сталкивался или слышал...
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#2
сделай кнопку в самый вверх, в вверх на 10 пунктов :facepalm:
 

nvyush

Lotus team
22.04.2009
2 317
0
#3
Можно сделать кнопку "Переместить перед документом" и перемещать выделенные галочками документы (получение — notesDatabase.UnprocessedDocuments) перед документом, выделенным курсором (получение — notesDatabase.GetDocumentByID(notesUIView.CaretNoteID))
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Интересно, а кнопками как работает?
Допустим, сделали числовое поле и сортируем по нему.
Тогда при перемещении вниз/вверх нужно менять индекс не только этих документов, но и всех последующих.
Например, перетаскиваем один документ с 20-го на 1-е место. Поле придётся менять у всех 20 документов. А если их будет куда больше и в базе работает больше одного пользователя, то хочется пожелать удачи. :)

Добавлено: ЗЫ. А как в папках Windows это работает?
 
O

oshmianski

#5
Medevic
не, это плохой подход.
лучше брать соседние и присваивать перемещаемому среднюю.
 

savl

Lotus team
28.10.2011
2 136
105
#6
2 oshmianski: Так и делаю, меняю местами.

2 Medevic: пересчет это очень жестоко :)
В Windows если сделать отображение файлов списком или таблицей, то можно выделив файл перетащить его вверх на N позиций.
Главное сортировку выключить)

Вот что-то похожее и хочется сделать.

Есть события D&D для базы и для вьюшки, для последней все примеры на основе календаря.
Вот понимаю, что ответ где-то тут. И чувствую что сделать можно.

2 nvy:
Спасибо, обязательно попробую.
 

nvyush

Lotus team
22.04.2009
2 317
0
#7
Есть события D&D для базы и для вьюшки, для последней все примеры на основе календаря.
Вот понимаю, что ответ где-то тут. И чувствую что сделать можно.
Если верить справке дизайнера, события D&D только для календарных представлений.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 585
271
#8
есть потребность перемещать документы в пределах вьюшки ака файлы в папках Windows...
за многи годы работы с нотуснёй - ниразу не возникало такой странной потребности :)
как и с файлами, даже представить не могу - анакуа?
 

savl

Lotus team
28.10.2011
2 136
105
#9
есть представление, в котором будут документики-поля отчета. И вот от порядка этих документов в представлении будут формироваться столбцы отчета в указанном порядке.

Вот чтобы не кликать 10 раз на кнопку вверх, есть идея (да и личное желание) сделать D&D.
Но это только первый шаг...

в идеале хотели сделать аналог ListBoxView (могу ошибаться в названии элемента)
Это нечто подобное той формы, которая вызывается при выборе адресатов письма.
Правда думаю до этого не дойдет...

И в целом: мне кажется, что я слишком заморочился...
 

nvyush

Lotus team
22.04.2009
2 317
0
#10
в идеале хотели сделать аналог ListBoxView (могу ошибаться в названии элемента)
Это нечто подобное той формы, которая вызывается при выборе адресатов письма.
Правда думаю до этого не дойдет...
На чисто лотусовом ГУИ такое вряд ли реализуемо. Но можно попробовать Java.

Добавлено
есть представление, в котором будут документики-поля отчета. И вот от порядка этих документов в представлении будут формироваться столбцы отчета в указанном порядке.
Странная какая-то у Вас реализация. Описание отчёта лучше хранить в одном документе, например, в виде xml.
 

susinmn

Well-known member
16.10.2007
529
3
#11
А с помощью контекстного меню?
1. Кликаем на документ правой кнопкой, выбираем в меню *запомнить/перетащить(как назовете)* -> запоминаем UNID
2. Кликаем на другой документ правой кнопкой, выбираем в меню *вставить перед* или *вставить после* тек. документа
 

savl

Lotus team
28.10.2011
2 136
105
#12
Странная какая-то у Вас реализация. Описание отчёта лучше хранить в одном документе, например, в виде xml.
поля отчета настраиваемые. можно сделать 2 поля, можно 3 и в разном порядке вывода, к примеру:
вывести фио можно будет так:
1. ф.и.о.
2. и.ф.о.
3. и.ф.
4. ф.и.



susinmn:
хм... слабо представляю, но идея мне нравиться.
 

nvyush

Lotus team
22.04.2009
2 317
0
#13
поля отчета настраиваемые. можно сделать 2 поля, можно 3 и в разном порядке вывода, к примеру:
вывести фио можно будет так:
1. ф.и.о.
2. и.ф.о.
3. и.ф.
4. ф.и.
Что мешает хранить настройки полей отчёта в одном документе?
susinmn:
хм... слабо представляю, но идея мне нравиться.
Для вывода действий представления в контекстном меню нужно в свойствах действия взвести галку Include in right mouse button menu.
 

savl

Lotus team
28.10.2011
2 136
105
#14
приболел немного ;)

nvy , можете пояснить: Что мешает хранить настройки полей отчёта в одном документе?

я не представляю, как тогда они будут формировать порядок полей в отчете.
 

nvyush

Lotus team
22.04.2009
2 317
0
#15
я не представляю, как тогда они будут формировать порядок полей в отчете
Например, имена полей отчёта хранятся в многозначном поле настроечного документа, порядок имён полей определяет их порядок появления в отчёте. Можно в других многозначных полях хранить признаки видимости полей отчёта, их типы, шрифты и т.п.
Другой вариант — хранить шаблон отчёта в виде xml, погуглите/почитайте в справке дизайнера про xml, xslt.
 
Статус
Закрыто для дальнейших ответов.