Подмена параметра в методе Queryopen

Автор Тема: Подмена параметра в методе Queryopen  (Прочитано 9703 раз)

Lariel

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • E-mail
Привет.

Столкнулся на днях с интересной проблемой. Может быть кто-то тоже сталкивался.

При открытии документа в его методе

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)

в параметр Source - передается совсем другой документ, т.е. передается документ из другой базы совсем (из почтовой)
у которого другой метод Queryopen и т.е. попадает документ который вообще не имеет отношения к открываемому документу.

Какой-то интеренсый "глюк" что-ли ? Как такое может быть вообще.

Удалял cache.ndk, desktop, bookmarks, - переустанавливал клиент - ничего не помагает

Самое интересное вот что:
  • если переустановить клиент lotus на этой машине, то при первом открытии документа - ошибки с подменой параметра не возникает
    а если дальше перезапусить клиент то ошибка появиться и будет повторяться уже всегда.
  • если в ACL базы изменить уровень пользователя с Редактора на дизайнера - то ошибка с подменой параметра тоже исчезает
  • на других компьютерах под этим iD-пользователя - все работает корректно т.е. глюк проявляется только на оной конкретной машине
[/li][/list]

/list]

Lotus Notes. 7.0.2 + Windows XP SP2

Даже не знаю - это что какая-то проблема с интерпретаром Lotus Script ? [/list]

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Подмена параметра в методе Queryopen
« Ответ #1 : 07 Июнь 2010, 09:52:08 »
Добрый день!

Точно из другой базы? Что выдает Source.Document.ParentDatabase?

Lariel

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • E-mail
Re: Подмена параметра в методе Queryopen
« Ответ #2 : 07 Июнь 2010, 20:54:58 »
Да точно из другой - имено через свойство Source.Document.ParentDatabase - и понял что база другая и документ другой

Хотя в итоге открывается именно тот документ который пользователь открывал на который щелкал,
 но в отладчике видно что через параметр проходит другой джокумент
и соответствено код уже становиться писать бесмыслено т.к. в паремт передан "непонятный" документ

А куда делся настоящий документ ? - загадка

Lariel

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • E-mail
Re: Подмена параметра в методе Queryopen
« Ответ #3 : 07 Июнь 2010, 21:48:02 »
Строго говоря, если я правильно понял суть этого "глюка" - программный код вообще может никакого не быть -
тут важен именно факт что в процессе отладки в метод в параметр пападает уже другой "левый" документ,
и этот неверное значения параметрп может передаваться уже программному коду.


Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
REM Source - этот нее тот документ на который щелкал пользователь и вообще из другой базы

----> а программный код уже чего тут анализировать раз Source не тот на которомщелкали
End Sub

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Подмена параметра в методе Queryopen
« Ответ #4 : 07 Июнь 2010, 23:57:29 »
На виде есть Form Formula?
Как текущая база связана с другой?

Lariel

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
    • E-mail
Re: Подмена параметра в методе Queryopen
« Ответ #5 : 08 Июнь 2010, 06:10:27 »
В параметр Source - пападает документ из одной и той же базы, значек которой находится на на рабочем столе - это почтовая база пользователя.
А в формула отбора в представлении такая:

SELECT  (Status = "")  & (Form = "Request")

В итоге-то открывается правильный документ т.е. тот на котором щелкал пользователь в представлении,
но вот в событии QeryOpen - перехватить и обработать этот документ нет возможности т.к. в его параметре Source документ из другой базы.

lotusnotes.ru

  • Global Moderator
  • Старший специалист
  • *****
  • Сообщений: 260
    • Просмотр профиля
    • E-mail
Re: Подмена параметра в методе Queryopen
« Ответ #6 : 14 Октябрь 2010, 17:32:46 »
Фантастика!
Попробуйте создать PMR запрос