Ограничение при создании ответов

Тема в разделе "Lotus - Программирование", создана пользователем LuMee, 26 июл 2006.

  1. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Есть у меня вью, в которую отбираются "Основной документ", "Ответ" и "ОтветНаОтвет". Стоит задача: сделать так, чтобы "ОтветНаОтвет" можно было создать только на "Ответ" (т.е., если выбран "Основной документ", ничего не должно происходить).
    Первой мыслью было в QueryOpen "ОтветаНаОтвет" проверять родителя: если Form <> "Ответ", то Continue = False. Однако, как я понимаю, back-end документа в этот момент еще не существует (свойство Document у Source пустое), так что до родителя не добраться.
    Другой вариант - использование NotesUIWorkspace.CurrentDocument в надежде, что там окажется выбранный во вью документ - тоже не прокатил (не оказался :)).
    Попробовал с другого конца зайти - непосредственно в Action'е, создающем "ОтветНаОтвет", проверять текущий документ, но так и не сообразил, как узнать, какой же документ выбран во вью (подходящих формул и методов NotesUIView не нашел).
    Подскажите, как быть?
     
  2. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    "Правильной дорогой идете, товарищи!"
    Эту Акцию вообще можно на "собаках" сделать:
    @If(@IsAvailable($REF); @Command([Compose];"";"Ответ на ответ"); @Prompt([ok];"Error";"Это не ответ!"))
     
  3. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Мда, что-то не подумал об этом :) Попробую
     
  4. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Такой вопрос - а средствами Lotus Script подобное сотворить реально? Дело в том, что может потребоваться чуть более сложная обработка, чем позволяет язык формул.
    Я хотел попробовать вписать в действие такой код:
    Код (Text):
    Dim db As NotesDatabase
    Dim unid As Variant
    Dim doc As NotesDocument
    ...
    unid = Evaluate("@Text(@DocumentUniqueID)")
    Set doc = db.getDocumentByUNID(unid)
    Однако маневр не прокатил - в unid записывается что-то типа "00000000000000000000000000000000"
     
  5. Domino6

    Domino6 Гость

    Сначала получи документ на котором стоиш
    notesDocument = notesSession.DocumentContext

    а потом проверяй его либо по имени формы (поле Form) либо что это респонс (свойтство IsResponse)
     
  6. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    О, вот это похоже именно то, что нужно!
     
  7. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Тут - просто ошибка, контекст для Evaluate не указан
     
Загрузка...

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