Editable View

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

  1. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    ...
    То как alexas1 предагает сделать, является именно продолжением той самой темы, иначе это не реализовать.
    Может тогда действительно перейти на xPage? Просто в клиенте ругих альтернатив вроде как и нет, только лишние действия.
    С другой стороны они заставляют соображать, нужно ли это делать или нет, особенно если они необязательны.

    хм... есть одна мысль... но нужен ответ:
    Сколько сотрудников максимально доступно для выбора?
    Как определяете/ограничиваете нужный список?
     
  2. maliy

    maliy Well-Known Member

    Регистрация:
    20 мар 2007
    Сообщения:
    134
    Симпатии:
    0
    Пока нет возможности, в будущем возможно....
    есть список пользователей, человек 50. во вью их вывожу, и не как не ограничиваю, можно отослать хоть всем..
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Да нет, не прокатила идея.
     
  4. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    maliy Хотите делать креативный дизайн - делайте. Не тратьте время на "притягивание за уши" шаблонных контролов, если Ваша логика сильно выходит за рамки того, для чего они предназначены.
    В классических нотусах только View, кастомизируется под более или менее произвольную интерфейсную логику (если необходимо использовать "репиторы" данных).

    Кста, почему нет возможности ипользовать хэпаги? Совсем старые клиенты? ("21 век же на дворе" :) )
     
  5. maliy

    maliy Well-Known Member

    Регистрация:
    20 мар 2007
    Сообщения:
    134
    Симпатии:
    0
    alexas1, дело не в дизайне, а в функционале. Поэтому и ищу варианты.
    xPage - я пока в глаза не видел. И переделывать существующее на xPage в данный момент нет времени. Есть пару задач- которые нужно сделать, о них я выше писал, одну задачу с вашей помощью сделал, остальные - буду думать.
    Про 21 век - имел ввиду что на других платформах - эти задачи решаются на шаблонных контролах, а здесь приходится извращаться, задачи исходят не из моих прихотей, а от пользователей, и вот пользовательские пожелания я перекладываю вот в такие(как на картинке на пред.странице к примеру) варианты, которые повторюсь на других платформах - решаются стандартными контролами, а в обычном лотусе нужно извращаться...
     
  6. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    maliy как обеспечить функционал Вы уже знаете. Вам не нравится именно дизайн интерфейса - Non-User-Friendly с ненужными кликами. И это правильно.
    "Про 21 век - имел ввиду что на других платформах - эти задачи решаются на шаблонных контролах"(с) - и здесь так-же. Только Вы пытаетесь использовать давно устаревшую технологию (по мнению IBM и моего тоже). Вся "новая технология" - в Xpeges.
    Что-бы их использовать, готовые базы переделывать не надо. Добавляется только новый интерфейс на Xpages где необходимо.
    Кодинг его дизайна ничем не отличается от обычных вэб-страничек. Хэпаги прекрасно работают в клиенте, за что вендору огромный респект.

    А по поводу решения этой конкретной задачи, "стандартными" средствами и с Вашими запросами, альтернативы тому что я предложил, нет. Уж поверьте.
    Или переходите с PickList на EmbeddedView или смиритесь.
     
  7. maliy

    maliy Well-Known Member

    Регистрация:
    20 мар 2007
    Сообщения:
    134
    Симпатии:
    0
    В продолжение темы
    http://codeby.net/ipb.html?s=&sh...st&p=247146,
    сделал View, первую колонку поставил галочку Editable column. Во View в событии
    Inviewedit
    Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
    Dim doc As NotesDocument
    Dim caret As String

    caret = Source.CaretNoteID
    If caret = "0" Then Exit Sub


    Set db = Source.View.Parent
    Set doc = db.GetDocumentByID(caret)


    If doc.field1(0) ="не главный" Then
    Call doc.ReplaceItemValue("field1", "главный")
    Else
    Call doc.ReplaceItemValue("field1", "не главный")
    End If
    Call doc.Save(1,1)

    End Sub
    то есть по нажатию в области по документам на 1 колонке у меня меняется "главный"/"не главный", кстати если открыть эту View в PickList, то тоже меняется. Теперь вопрос: мне нужно оставить главным только одну запись, если предыдущая тоже "главный", то нужно поменять на "не главный", в итоге я так понимаю нужно где то временно хранить Unid предыдущего клик-нутого документа, как это правильно организовать?или тупиковый вариант?
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    у меня вот вопрос: с данным функционалом на данном сервере будет работать одновременно только 1 пользователь?
     
  9. maliy

    maliy Well-Known Member

    Регистрация:
    20 мар 2007
    Сообщения:
    134
    Симпатии:
    0
    OKEN,
    Нет, предполагается несколько пользователей.
     
  10. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    тогда вариант менять поле в документе не очень подходит, ибо >1 пользователя могут выбирать одновременно из одной вьюхи совершенно разных людей и будет в итоге каша.
     
  11. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    Нормальный вариант.
    Сохраняйте все Ваши кэши в профильном доке (частном профайле). И проблемы с многопользовательностью, которую упомянула OKEN не будет. У меня, обычно, для каждого юзера есть свой профайл (без формы), который так и называется cache. Если, то, что запоминаете, не нужно надолго, можете профайл не сохранять - все работы с ним будут происходить в памяти, так что, всё шустро.
     
  12. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    alexas1 Чего-то я не понимаю, а во вьюхе-то можно эти данные из кеша отобразить визуально?
    Т.е. автор говорит, что пользователи видеть хотят, что выбрали - Петя выбрал главным Иванова, Вася при этом выбрал Петрова, Саша - Сидорова, а вот Катя - никого не хочет выбирать главным.
    Что будет во вьюхе в пиклисте в итоге отображаться у каждого из них?
     
  13. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    Не из этого кэша нет.
    Автор говорит только про организацию логики выбора (только юниды нужные, временно, для скрипта, хранить) и записи результатов в доки, из которых и будет нужное отображаться.
    Я так понял.
    т.е. хранить выбор в доке в многозначном поле со значением для каждого юзера и фильтрацией (в общем-то категоризацией) в виде по юзеру.
    Так можно. Делал.

    Прям из профайла в вид визуализировать можно. Только это будет единственный на всю базу общий для всех профайл.
    Практически плохо применимо - несколько раз пытался натянуть эту возможность - плохо. Фактически происходит полное перестроение индекса, при каждом открытии вьюхи - тормоза нереальные.
     
  14. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    выше по ссылке в топике "мелких вопросов" хотел визуальный чекбокс или что-то подобное. Визуализацию нужную более-менее легко в веб можно сделать, и , кажется, проще будет в икспеджах, чем со стандартным механизмом лотуса.
     
  15. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    точно, Xpages лучше. Тяжко от классики в вэб уходить многим. Инерция. Лучше, конечно, сразу "правильные" технологии использовать.
     
Загрузка...

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