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

LuMee

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

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#2
Попробовал с другого конца зайти - непосредственно в Action'е, создающем "ОтветНаОтвет", проверять текущий документ, но так и не сообразил, как узнать, какой же документ выбран во вью (подходящих формул и методов NotesUIView не нашел).
"Правильной дорогой идете, товарищи!"
Эту Акцию вообще можно на "собаках" сделать:
@If(@IsAvailable($REF); @Command([Compose];"";"Ответ на ответ"); @Prompt([ok];"Error";"Это не ответ!"))
 

LuMee

Well-Known Member
02.05.2006
477
0
#3

LuMee

Well-Known Member
02.05.2006
477
0
#4
Такой вопрос - а средствами 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

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

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

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#7
Такой вопрос - а средствами 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 не указан