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

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

Glorfin

#1
Необходимо закрыть открытый документ, если в данный момент ui фокус не на нем, т.е. есть несколько открытых документов, необходимо из текущего документа закрыть другой, открытый в данный момент документ. ссылка на него имеется (он - ответный на первый).

... - отправка главного документа. Если есть открытые ответные документы, их необходимо закрыть
' находим все документы, в которых есть unid данного документа (ответы)
Set dc = db.FTSearch( curdoc.id(0), 0)
Set ftdoc = dc.GetFirstDocument
While Not ftdoc Is Nothing
по нотес документу получаем нотесUIдокумент
Set ftuidoc = ws.EditDocument(False, ftdoc, False,,False)

Call ftuidoc.Close(True)

Set nextftdoc = dc.GetNextDocument (ftdoc )
Set ftdoc=nextftdoc
Set nextftdoc=Nothing
Wend
При этом каждый ответный документ повторно открывается и закрывается, первая же его инстанция остается открытой (если она была открыта в начале действия)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Set ftuidoc = ws.EditDocument(False, ftdoc, False,,False)
Явно запятой не хватает.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#3
я так понимаю, вы хотите закрыть не активную в данный момент закладку-окно? :D
 

Omh

Lotus team
04.07.2007
2 210
1
#4
Глюкаво, но может работать:
переключиться на неактивное окно с помощью ws.EditDocument с параметром NewInstance = False
Получить после переключения uidoc и попытатся закрыть.

Но я бы на такую хрень не стал бы полагаться.
Не надо было столько открывать :D
 
G

Glorfin

#5
Но я бы на такую хрень не стал бы полагаться.
Не надо было столько открывать :D
дык юзверь наоткрывает ответов, главный док отправит, а на панельке ответики остаются висеть.. минусы - при отправке главного дока, в ответах меняется поле "кто рассматривает в данный момент" и если тот же юзверь их просто прикроет потом - все ок. а если подправит - быть непонятке или конфликту..
переключиться на неактивное окно с помощью ws.EditDocument с параметром NewInstance = False - дык так ведь и делаю.. не работаит.

Set ftuidoc = ws.EditDocument(False, ftdoc, False,,False)
Явно запятой не хватает.
хде ?? (работаит ведь..)

я так понимаю, вы хотите закрыть не активную в данный момент закладку-окно? ;)
абсолютно в тютечьку!
 

nvyush

Lotus team
22.04.2009
2 317
0
#8
Glorfin
Чтоб не дёргать все доки подряд стоит добавить проверку, открыт ли док в ui
Код:
if ftdoc.IsUIDocOpen then
Set ftuidoc = ws.EditDocument(False, ftdoc, False,,,False) 
ftuidoc.Close
end if
...
 
G

Glorfin

#9
Glorfin
Чтоб не дёргать все доки подряд стоит добавить проверку, открыт ли док в ui
Код:
if ftdoc.IsUIDocOpen then
Set ftuidoc = ws.EditDocument(False, ftdoc, False,,,False) 
ftuidoc.Close
end if
...
Это да. красоту я уже навел. просто когда столкнулся с тем что ws.EditDocument возвращает мне тот документ что надо (в дебагере смотрю), в свойствах того же ws.EditDocument стоит newInstance=false, и тем не менее открывается еще одна инстанция, и она же закрывается.. было немного странно.. За вчера проверил варианты комбинаций параметров [returnNotesUIDocument] и [newInstance] - результат был не то чтобы предсказуем и однозначен.. ну да ладно. (Может все дело в том как написано в хелпе - attempts to return the NotesUIDocument... пытается :lol: )
 

nvyush

Lotus team
22.04.2009
2 317
0
#10
Это да. красоту я уже навел. просто когда столкнулся с тем что ws.EditDocument возвращает мне тот документ что надо (в дебагере смотрю), в свойствах того же ws.EditDocument стоит newInstance=false, и тем не менее открывается еще одна инстанция, и она же закрывается.. было немного странно.. За вчера проверил варианты комбинаций параметров [returnNotesUIDocument] и [newInstance] - результат был не то чтобы предсказуем и однозначен.. ну да ладно. (Может все дело в том как написано в хелпе - attempts to return the NotesUIDocument... пытается :lol: )
Возможно проблема в том, что док открыт на редактирование, а его пытаются повторно открыть на чтение (это гипотеза, сам не проверял).
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#11
Возможно проблема в том, что док открыт на редактирование, а его пытаются повторно открыть на чтение
если через РТ поле в котором линки, то док открываться будет всегда на новой закладке и это не побороть, если только свои функции повер гиперлинка не писать