Lotus Notes - автоматическое удаление кнопки после запуска формулы

Мне нужно создать кнопку в стационарной почте Lotus Notes, которая будет вставлять текст, а затем кнопка удаляется из сообщения.

В кнопке у меня есть:

res := @Prompt([OkCancelList]; "Is it OK?"; "Select result"; " ";"OK":"Failed":"");
@If(res ="OK"; 
    @Command([EditGotoField]; "Body") + @Command([EditInsertText]; "Everything is fine); 
    @Command([EditGotoField]; "Body") + @Command([EditInsertText]; "Not so good mate"));

Эта часть работает нормально, но я не уверен, как удалить кнопку после нажатия. Обычно работает @Command([EditClear]), но не в этом случае, когда я использую @Command([EditGoToField]) в формуле.

Я предполагаю, что мне нужно снова использовать GoToField с правильным идентификатором кнопки, а затем запустить EditClear, но я не знаю, где его найти, или есть ли другой способ сделать это... Идеи?

Спасибо.


person Dominik Kořený    schedule 15.02.2017    source источник


Ответы (2)


Предполагая, что у вас есть кнопка в поле Body и больше ничего не должно оставаться
, измените свой код на:

@Command([EditGotoField]; "Body");
@Command([EditSelectAll]);
res := @Prompt([OkCancelList]; "Is it OK?"; "Select result"; " ";"OK":"Failed":"");
@If(res ="OK"; 
     @Command([EditInsertText]; "Everything is fine"); 
    @Command([EditInsertText]; "Not so good mate"));

Он выбирает содержимое Body (включая кнопку) и заменяет его новым текстом.

person Knut Herrmann    schedule 15.02.2017
comment
Что теоретически должно работать, и SelectAll действительно выбирает все в сообщении, но тогда в начале вставляется только текст, а кнопка остается там, ничего не перезаписывается. - person Dominik Kořený; 15.02.2017
comment
Это работает не только в теории :) - вы тестировали это только на моем коде? Я создал новую почту, создал кнопку с этим кодом в поле «Тело», добавил другой текст и нажал кнопку. Остается только текст, вставленный кнопкой, и ничего больше. - person Knut Herrmann; 15.02.2017
comment
да, вы были правы, я, вероятно, где-то ошибся, теперь это работает, спасибо. Есть ли способ перезаписать/удалить только кнопку? Или как выбрать только указанное количество строк в теле? - person Dominik Kořený; 16.02.2017
comment
Только с помощью sendkeys(). Но реализация sendkeys() в LotusScript не работает. Вам нужно будет использовать sendkey() Windows. Но это боль и, вероятно, не стоит усилий в вашем случае. - person Knut Herrmann; 16.02.2017

Предполагая, что ваш документ находится (или может быть переведен в) режим редактирования, вы все равно можете иметь кнопку, но иметь кнопку в своем собственном абзаце (или ячейке таблицы) с формулой скрытия, когда MySpecialButtonPressed!="", а затем включить строку

FIELD MySpecialButtonPressed := @Now;

в коде кнопки.

(Редактировать: изменил тест с =1 на !="", затем изменил установленное значение с 1 на @Now, потому что Notes не хранит логические значения. Если вы не отправляете миллионы таких значений, стоимость использования дат вместо чисел меньше, чем выгода. иметь более конкретную информацию на случай, если она вам понадобится.)

person JSmart523    schedule 02.03.2017