Представление

Тема в разделе "Lotus - Программирование", создана пользователем Xalet, 15 сен 2009.

  1. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Здравствуйте.

    Есть база данных в ЛН. В ней документы, в документах поле с датой. Надо сделать вьюшку в которой отобразить документы за выбранный период. Вроде все довольно просто, один но, надо в столбике отметить галочками документы, которые модифицировались после периода. Я так понимаю, надо сделать столбик с формулой, а потом эту формулу заменять. Или есть другие способы? Да и формулу пока менять у меня не особо то получается.

    Заранее спасибо.
     
  2. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Чтоб отметить галками документы во вьюшке, можно сделать агент на @-формулах, указать его тип операции "Select documents in view" (в правом нижнем углу дизайнера) и в теле агента написать SELECT <условие отбора>.
    Или надо иконку в виде галочки?
     
  3. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Именно. Зелененькую такую... Чтобы можно было отсортировать при желании или категоризировать.
    Хотя вариант с обычными галочками тоже неплохо, как-то забыл я про него.
     
  4. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Аккуратней, опять пахнет выборкой и/или значениями, зависимыми от времени. :)
    Тогда вопросы:
    Как часто меняется период?
    Могут ли несколько пользователей одновременно менять период?
    Происходит ли это в общей или личной БД?
    Допустимо ли применение приватных вьюх, хранимых на сервере (SPOFU)?
     
  5. amigolinx

    amigolinx Гость

    Если и только если выполняются/избегаются все предостережения из поста TIA , то можно сделать требуемое следующим образом:
    1. на нужный столбец, например, первый повесить свойство "Отображать значения как значки"
    2. прописать в него формулу типа @If(@Date(@Modified) > @TextToTime("01.01.2009"); 82; 0)
    3. создать кнопку для вьюхи с кодом
    Код (Text):
    Sub Click(Source As Button)
    Dim ws As New NotesUIWorkspace 

    Dim view As NotesView  
    Set view = ws.CurrentView.View

    Dim vc As NotesViewColumn
    Set vc = view.Columns(0)

    Dim fd As String
    fd = ws.Prompt(PROMPT_OKCANCELEDIT, "Date pick", "Enter date value", "01.01.2009")

    If vc.IsFormula Then
    vc.Formula = {@If(@Date(@Modified) > @TextToTime("} + fd + {"); 82; 0)}
    End If
    Call ws.ViewRebuild
    End Sub
    НО! При этом даже вьюха локальной базы с парой десятков документов перестраивается около 1 секунды. Можете себе представить, во что это выльется для сервака...
     
  6. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Постоянно. Выбирается руками.

    Да. И отсюда ответы на осстальные вопросы. Только десктопный вариант мб.

    Вроде разобрался, как это реализовать... Буде пробовать.

    Спасибо за ответы.
     
  7. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Тогда можно через профиль передавать период.
     
  8. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Нельзя вообщето... Функции не работают в столбиках.
     
  9. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Как, вообще функции не работают? А мужики то и не знают... :)
    Я имел ввиду механизм, который используется для условной раскраски строк вьюшки. Посмотри в почтовой БД фолдер "($Inbox).
     
  10. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если мне не изменяет память, то профиль в данном случае будет один на всех. Тут разве что его кэширование поможет.
     
  11. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Смысле, один профиль на вьюшку - да. А вьюшка SPOFU. Т.е. одна на пользователя. Каждый пользователь свой профиль и пусть правит для установки периода. Точнее, формулы проверки, что @Modified > верхней границы периода.

    Это конечно решение, но не нравится оно мне. Сервер прилично нагрузится. Лучше что-то типа поиска делать или отчёта.
     
  12. sirin

    sirin Гость

    У меня тоже вопросик по теме: есть представление с документами кучи отделов. как открыть представление для пользователя, чтобы он видел документы только своего отдела? Очень прошу, помогите, но пожалуйста, пишите попроще, а то я не совсем понимаю ваш сленг :-(((
     
  13. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Сделать категоризированное представление. Первая колонка (категория) пусть содержит идентификаторы отделов. Делаем форму (или page), в ней встроенное представление. У представления есть св-во "Show single category". В это св-во пишем формулу, которая для текущего пользователя вычислит идентификатор его отдела. При открытии формы (страницы) пользователем, отобразятся значения из категории, соответствующей вычисленному идентификатору отдела. Ещё способ - посмотрите хелп по @SetViewInfo. По назначению она тоже подходит, только вот есть ряд неприятных глюков, из-за которых я не люблю ею пользоваться.
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В последнее время стал ловить странный глюк с внедрёнными представлениями. Заключается в том, что иногда начинает отображаться строка категории (пустая). Двойной клик по ней сворачивает категорию, все доки скрываются. Пользователь в шоке. Второй раз кликнуть не все догадываются.
    Как лечить - не знаю, проявляется на клиенте 8.0.2.
     
  15. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    А ещё если долго держать документ с внедрённым представлением открытым, а с БД параллёльно ведётся работа, иногда получается, что встроенная вьюшка начинает отображать не свою категорию :eek:
     
Загрузка...

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