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

  • Автор темы LuMee
  • Дата начала
L

LuMee

Есть у меня вью, в которую отбираются "Основной документ", "Ответ" и "ОтветНаОтвет". Стоит задача: сделать так, чтобы "ОтветНаОтвет" можно было создать только на "Ответ" (т.е., если выбран "Основной документ", ничего не должно происходить).
Первой мыслью было в QueryOpen "ОтветаНаОтвет" проверять родителя: если Form <> "Ответ", то Continue = False. Однако, как я понимаю, back-end документа в этот момент еще не существует (свойство Document у Source пустое), так что до родителя не добраться.
Другой вариант - использование NotesUIWorkspace.CurrentDocument в надежде, что там окажется выбранный во вью документ - тоже не прокатил (не оказался :)).
Попробовал с другого конца зайти - непосредственно в Action'е, создающем "ОтветНаОтвет", проверять текущий документ, но так и не сообразил, как узнать, какой же документ выбран во вью (подходящих формул и методов NotesUIView не нашел).
Подскажите, как быть?
 
30.05.2006
1 345
12
BIT
0
Попробовал с другого конца зайти - непосредственно в Action'е, создающем "ОтветНаОтвет", проверять текущий документ, но так и не сообразил, как узнать, какой же документ выбран во вью (подходящих формул и методов NotesUIView не нашел).
"Правильной дорогой идете, товарищи!"
Эту Акцию вообще можно на "собаках" сделать:
@If(@IsAvailable($REF); @Command([Compose];"";"Ответ на ответ"); @Prompt([ok];"Error";"Это не ответ!"))
 
L

LuMee

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

Domino6

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

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

LuMee

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

а потом проверяй его либо по имени формы (поле Form) либо что это респонс (свойтство IsResponse)
О, вот это похоже именно то, что нужно!
 
30.05.2006
1 345
12
BIT
0
Такой вопрос - а средствами Lotus Script подобное сотворить реально? Дело в том, что может потребоваться чуть более сложная обработка, чем позволяет язык формул.
Я хотел попробовать вписать в действие такой код:
Код:
Dim db As NotesDatabase
Dim unid As Variant
Dim doc As NotesDocument
...
unid = Evaluate("@Text(@DocumentUniqueID)")
Set doc = db.getDocumentByUNID(unid)
Однако маневр не прокатил - в unid записывается что-то типа "00000000000000000000000000000000"
Тут - просто ошибка, контекст для Evaluate не указан
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!