@-формулы

Тема в разделе "Lotus - Программирование", создана пользователем KatyaVm22, 29 авг 2013.

  1. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    Добрый день!

    Помогите, пожалуйста, разобраться с @-формулами.

    Есть несколько Представлений (Электронная библиотека, Обучение, Материалы), данные забиваются с одной формы (ElectronicLibrary).

    В Представление (Электронная библиотека) создаю действие (Добавить книгу).
    Необходимо, чтобы при нажатии на Добавить книгу - открывалась форма (ElectronicLibrary) с вычисляемым при создании значением полем (Vid) - Электронная библиотека.

    Делаю так:

    @PostedCommand([Compose]; "ElectronicLibrary") & @SetField("Vid"; "Электронная библиотека")

    Форма открывается, а в поле Vid значение Электронная библиотека не появляется.
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    открываешь форму в дизайнере
    ищешь поле Vid, слева находишь пункт DefaultValue, пишешь туда "Электронная библиотека"
    Кнопку меняешь на @Command([Compose]; "ElectronicLibrary")
    З.ы. Книги, книги, книги...
     
  3. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    Поле Vid должно принимать разные значения - Электронная библиотека, Обучение, Материалы и т.д. в зависимости от того из какого представления создается.

    При создание из представления Электронная библиотека - в поле Vid должно быть Электронная библиотека.
    При создание из представления Обучение - в поле Vid должно быть Обучение.
    При создание из представления Материалы - в поле Vid должно быть Материалы.
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    А принимать значения не из этого списка может?
    Скажем, принять значение "Заявки", если создается из представления "Документы" ?
     
  5. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    Нет, нужна жесткая привязка к представлению из которого создается.
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Хм... а форма везде разная? или только ElectronicLibrary?
    Потому что если форма везде своя, то прописать это можно на форме и не мучаться:
    Находим поле Vid, делаем его Computed When Compose, в разделе Value пишет текст который нам нужен для этой формы.

    А вот если форма везде одинаковая, то там чуть подшаманить надо, через Notes.ini
     
  7. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    Форма одна ElectronicLibrary.
    А notes.ini на сервере править или у пользователя?
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Пользователя, сервера не надо. Итак.
    В каждом представлении делаем свою кнопку "Создать", это придется сделать.
    На примере: Электронная библиотека.
    Код ( (Unknown Language)):
    @Environment("Vid";"Электронная библиотека");
    @Command([Compose]; "ElectronicLibrary")
    На форме:
    Находим поле Vid, делаем его Computed When Compose, в разделе Value пишем:
    Код ( (Unknown Language)):
    res:=@Environment("Vid");
    @Environment("Vid";"");
    res
    Попробуйте.
     
  9. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    Большое спасибо :rolleyes:
    Всё получилось
     
  10. Кирилл Шваб

    Кирилл Шваб Well-Known Member

    Регистрация:
    30 июн 2006
    Сообщения:
    144
    Симпатии:
    4
    Если можно заменить @PostedCommand на @Command (т.е. если это не нарушит логику кода) , то можно реализовать проще:

    @Command([Compose]; "ElectronicLibrary");
    @Command([EditGoToField]; "Vid");
    @Command([EditInsertText]; "Электронная библиотека");

    Также не надо забывать что на @Environment требуется разрешения в ECL, т.к. выполняется запись в notes.ini пользователя.
     
  11. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    А на форме полю Vid что задать?
     
  12. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Поле надо будет сделать тогда Editable, и не задавать никакого значения.
    Но после этого его можно будет отредактировать.
     
  13. KatyaVm22

    KatyaVm22 Member

    Регистрация:
    20 авг 2008
    Сообщения:
    17
    Симпатии:
    0
    Спасибо :rolleyes:
    Всё работает )
     
  14. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Есть хорошая формула - @UpdateFormulaContext
    А в примерах практически ваш случай.

    @Command([Compose]; "ElectronicLibrary");
    @UpdateFormulaContext;
    @SetField("Vid"; "Электронная библиотека");
     
  15. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Поле м.б. вычисляемым.
    Проще 1 агент на LotusScript, и 1 SharedAction, встроенный во все необходимые виды с вызовом этого агента.
     
Загрузка...
Похожие Темы - формулы
  1. Луиза
    Ответов:
    3
    Просмотров:
    371
  2. motogarri
    Ответов:
    11
    Просмотров:
    833
  3. Dimok-163rus
    Ответов:
    0
    Просмотров:
    953
  4. Xatiko
    Ответов:
    1
    Просмотров:
    1.508
  5. lmike
    Ответов:
    2
    Просмотров:
    2.390

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