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

Тема в разделе "Lotus - Программирование", создана пользователем savl, 8 ноя 2011.

Статус темы:
Закрыта.
  1. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Добрый день.
    Искал данную тему на форме, часть информации нашел, но в целом не подходит.

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

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

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

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

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

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    сделай кнопку в самый вверх, в вверх на 10 пунктов :facepalm:
     
  3. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Можно сделать кнопку "Переместить перед документом" и перемещать выделенные галочками документы (получение — notesDatabase.UnprocessedDocuments) перед документом, выделенным курсором (получение — notesDatabase.GetDocumentByID(notesUIView.CaretNoteID))
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Интересно, а кнопками как работает?
    Допустим, сделали числовое поле и сортируем по нему.
    Тогда при перемещении вниз/вверх нужно менять индекс не только этих документов, но и всех последующих.
    Например, перетаскиваем один документ с 20-го на 1-е место. Поле придётся менять у всех 20 документов. А если их будет куда больше и в базе работает больше одного пользователя, то хочется пожелать удачи. :)

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

    oshmianski Гость

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

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    2 oshmianski: Так и делаю, меняю местами.

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

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

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

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если верить справке дизайнера, события D&D только для календарных представлений.
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    за многи годы работы с нотуснёй - ниразу не возникало такой странной потребности :)
    как и с файлами, даже представить не могу - анакуа?
     
  9. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    есть представление, в котором будут документики-поля отчета. И вот от порядка этих документов в представлении будут формироваться столбцы отчета в указанном порядке.

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

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

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    На чисто лотусовом ГУИ такое вряд ли реализуемо. Но можно попробовать Java.

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

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    А с помощью контекстного меню?
    1. Кликаем на документ правой кнопкой, выбираем в меню *запомнить/перетащить(как назовете)* -> запоминаем UNID
    2. Кликаем на другой документ правой кнопкой, выбираем в меню *вставить перед* или *вставить после* тек. документа
     
  12. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    поля отчета настраиваемые. можно сделать 2 поля, можно 3 и в разном порядке вывода, к примеру:
    вывести фио можно будет так:
    1. ф.и.о.
    2. и.ф.о.
    3. и.ф.
    4. ф.и.



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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Что мешает хранить настройки полей отчёта в одном документе?
    Для вывода действий представления в контекстном меню нужно в свойствах действия взвести галку Include in right mouse button menu.
     
  14. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    приболел немного ;)

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

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Например, имена полей отчёта хранятся в многозначном поле настроечного документа, порядок имён полей определяет их порядок появления в отчёте. Можно в других многозначных полях хранить признаки видимости полей отчёта, их типы, шрифты и т.п.
    Другой вариант — хранить шаблон отчёта в виде xml, погуглите/почитайте в справке дизайнера про xml, xslt.
     
Загрузка...
Статус темы:
Закрыта.

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