• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

вопрос по Dialgbox

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

savl

Lotus Team
28.10.2011
2 606
313
BIT
244
События диалоговой формы вообще не срабатывают! У кого-то бывал такой глюк? Заранее спасибо
Это не глюк, это реальность. Правда я столкнулся с этим еще на 8.5.2 FP2 или FP1, но точно 8.5.2
Надо пересматривать код из Событий и разнести его по кнопкам Ok/Cancel
Другого варианта для себя тогда не нашел.
 
A

Anonimous

Спасибо, savl ) Скрыл в Dialogbox стандартные кнопки OK и Cancel, нарисовал на диалоговой форме две другие типа OK и Cancel, перенес код события QueryClose на кнопку OK - и пошло как надо. Выходит, в Lotus 8.5.3 события форм типа QueryClose и другие точно не шевелятся. Ну сюрпризы!!
 
A

Anonimous

Вот, сделал такое открытие - касательно проблем с диалогами.
Дело в том, что у меня на машине на одном локальном диске установлен Lotus 8.5.3, админ-клиент-дизайнер. На другом локальном диске Лотус 6.5.4, только клиент. Он нужен для работы с одной базой, очень важной, но на более поздних версиях из-за С++ документы в ней нельзя редактировать (исторически так сложилось). А еще у меня Windows 7.
Так вот, когда я удалил Лотус 6.5.4, Лотус 8.5.3 стал как шелковый, и в диалоговых окнах все эти события сразу зашевелились без проблем!
Установил заново 6.5.4 на другой диск (и установочник, и все с ним связанное - все на другом диске). И проблема с диалогами вернулась вместе с другими глюками. Может кто-нибудь может посоветовать, как "подружить" две разных версии на разных дисках на одном компе? Если не в тему, дайте, плиз, ссылочку в личку.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну вообще, если нужен дополнительный клиент ниже 8-й версии - его лучше просто копировать, а не инсталлировать. Тогда и глюков не будет.
И Windows тут не играет роли.
Сейчас у меня инсталлированная 9 и копированная 6.5.4. Проблем не наблюдается. И все события формы отлавливаются
Я лично не пользуюсь "рукописными" кнопками. Диалоговые вполне справляются.

Код:
Set docCur=ws.CurrentDocument.Document
Это не очень хороший метод. Такого лучше не писать. Как этот метод работает - известно только в IBM наверное. Таким образом можно получить совершенно любой из открытых документов на данный момент (сталкивался лично). Лучше получать документ из постопена и "протягивать" куда нужно.

А вообще: котлеты отдельно - мухи отдельно.
Диалог - место для сбора информации, а не внесения в основной документ. Разделяйте логику!

Код:
eval = Evaluate({v := @DbLookup ("":""; @Environment("INTSwitch" + "S":"F");"DBLookup";
"INTIncomingAccounts";"Address"); @If(@IsError(v); ""; v);})
If eval(1) = "" Then Msgbox {Список недоступен.}: Exit Sub
Set dbIncomingAccount = session.GetDatabase(eval(0), eval(1))

Код:
vNameMTR = Evaluate({@Trim(Results)},docCur)
Жесть. ИМХО(сабаководы скорей всего не согласятся).
 

savl

Lotus Team
28.10.2011
2 606
313
BIT
244
у меня сбытия все равно не срабатывают. Клиент один стоит 8.5.3 других не было. Установка всегда чистая.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 790
157
BIT
107
У меня таких траблов не было никогда, в т.ч. на 8.5.3 (работаю с ней с самого начала), ни с 9.

Добавлено: Может onEvent стоит где-то на подформе и False в Continue прописывает?
 

savl

Lotus Team
28.10.2011
2 606
313
BIT
244
неа, самое банальное на postopen:
Код:
Set currDoc = Source.Document
и то не отрабатывает, а другие события мне как правило не нужны.
Вернее уже не нужны, на "Ок" вешаю проверки полей, а после закрытия обработка дальше.
 
Мы в соцсетях:

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