Ответы во встроенном представлении

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

Andre

Green Team
29.07.2004
114
1
BIT
2
Правильно в общем подумалось. UNID самого документа хранится в поле тоже. Излишество - возможно, но скорее перестраховка - например при работе с буфером обмена.
 
L

LuMee

Для: Andre
Сегодня наконец доделал удаление документов предолженным способом и столкнулся с такой незадачей: если в представлении остался только один документ, то при его удалении (там используется NotesDocument.Remove) он по-прежнему остается в представлении и во втором фрейме. Обновление (по F9) не помогает, приходится закрывать и заново открывать документ.
Отсюда вопросы:
1. как ловчее обновить встроенную вью (кстати, при создании документов, которые должны в ней отображаться, они тоже не всегда сразу показываются)
2. что делать со вторым фреймом? может его можно как-то бросить на пустую страницу-заглушку или еще чего?
 

Andre

Green Team
29.07.2004
114
1
BIT
2
Для: Andre
Сегодня наконец доделал удаление документов предолженным способом и столкнулся с такой незадачей: если в представлении остался только один документ, то при его удалении (там используется NotesDocument.Remove) он по-прежнему остается в представлении и во втором фрейме. Обновление (по F9) не помогает, приходится закрывать и заново открывать документ.
Отсюда вопросы:
1. как ловчее обновить встроенную вью (кстати, при создании документов, которые должны в ней отображаться, они тоже не всегда сразу показываются)
2. что делать со вторым фреймом? может его можно как-то бросить на пустую страницу-заглушку или еще чего?

Для обновления встроенной view использую метод viewrefresh класса NotesUIWorkspace. При добавлении или при удалении документов embedded view замечательно обновляется.
Со вторым фреймом по идее ничего делать и не нужно - главное, как я понимаю, это отображение документов в embedded view. Высоту второго фрейма поставить в 1 пиксел и его не будет видно.

Единственные грабли на которые я натыкался иногда при обработке - это на ошибку, что-то вроде документ уже открыт. Решалось проверкой на "открытость" этого документа на UI при помощи метода isUIDocOpen класса NotesDocument и в дальнейшем для такого документа убивались все ссылки в памяти и он заново инициализировался.

З.Ы. Еще на Intertrust помнится был занятный пример с использованием очереди сообщений с использованием Notes С API - и базка была с примером. Ежели не стращает и есть желание - можно попробовать прикрутить и такую фичу. Собственно ссылка
 
L

LuMee

Со вторым фреймом по идее ничего делать и не нужно - главное, как я понимаю, это отображение документов в embedded view. Высоту второго фрейма поставить в 1 пиксел и его не будет видно.
Эх, а я уже к этому фрейму привык - довольно удобно показалось. И потом, при данном методе открыть документ из встроенной вьюхи двойным щелчком нельзя, так что приходится во фрейме отображать.
Единственные грабли на которые я натыкался иногда при обработке - это на ошибку, что-то вроде документ уже открыт. Решалось проверкой на "открытость" этого документа на UI при помощи метода isUIDocOpen класса NotesDocument и в дальнейшем для такого документа убивались все ссылки в памяти и он заново инициализировался.
Вот здесь можно поподробнее про убивание ссылок? Что-то не совсем догнал. Ошибка возникает, когда другой пользователь смотрит этот же документ у себя, или просто в ходе перелистываний по вьюхе?
 

Andre

Green Team
29.07.2004
114
1
BIT
2
Эх, а я уже к этому фрейму привык - довольно удобно показалось. И потом, при данном методе открыть документ из встроенной вьюхи двойным щелчком нельзя, так что приходится во фрейме отображать.

Вот здесь можно поподробнее про убивание ссылок? Что-то не совсем догнал. Ошибка возникает, когда другой пользователь смотрит этот же документ у себя, или просто в ходе перелистываний по вьюхе?

Ежели хочется оставить фрейм видимым - то по поводу использования заглушки, может прокатить использованием SetTargetFrame и открытием заглушки при удалении последнего дока. У меня при удалении последнего дока в embView второй автоматом очищается - правда проверял уже на 7, в 5 может быть по другому

Открывать документ двойным щелчком - можно конечно. Никто не запрещает. Для embView - указываем Frame для single click на 1-й закладке свойств EmbeddedView, а для double click - соответственно не указываем. Тогда по одинарному клику - открываем во фрейме, а по двойному - по умолчанию во весь экран или как запрограммируем сами :blink:

Про убивание ссылок - точно не вспомню. Вроде было связано с последующим шифрованием документов. Перебирая документы во view для документа, выделенного в embedded view получал ошибку о невозможности шифрования документа, поскольку он уже открыт (во втором фрейме).
Спасала проверка на isUIDocOpen и в этом случае промежуточное сохранение UNID текущего обрабатываемого документа, убивание сссылки в памяти на этот документ при помощи Delete документ и инициализация его заново.
Есть уверенность, что при обычной навигации без всяких наворотов вроде шифрования - поймать подобную ошибку шансов очень мало, но ежели что, то будь в курсе - не страшно и лекарство имеется :blink:
 
L

LuMee

Для: Andre
Спасиб большое, добрый человек :blink: Сегодня приступлю к окончательной реализации всего этого своего безобразия...
 
L

LuMee

Тихо фигею временами от лотуса
Show must go on: сделал пару копий формы, содержащей встроенную вью (нужны были похожие формы). Они точно так же должны работать со встроенной вью при помощи фреймсета (того же самого).
Какого было мое уныние, когда оказалось, что и в новых, и в старой формах JavaScript перестал работать!
Т.е. при высоте фрейма в 1 пиксель JavaScript его не видит (считает, что null), а при больших высотах (где-то начиная с 5) перестает работать двойной щелчок по документам во встроенной вью. Что делать, ведь до создания новых форм все работало идеально???
 
E

Elena Nefedova

Тихо фигею временами от лотусаShow must go on: сделал пару копий формы, содержащей встроенную вью (нужны были похожие формы).
Может, стоило общую часть форм на подформе разместить? или не получается?
 
L

LuMee

Возможно, но теперь уже поздно - яваскрипт не работает, причем неясно, почему. Раньше 1-пиксельный фрейм находил, теперь почему-то не может.

Напоследок - еще более веселая шутка. Открыл старую копию своей БД (где еще копий форм не создавал) - там этот скрипт тоже уже не работает. Полтергейст?
 
L

LuMee

Мда, похоже от идеи взаимодействия со встроенной вью придется отказаться.. А жалко, было бы удобно.
 
E

Elena Nefedova

Мда, похоже от идеи взаимодействия со встроенной вью придется отказаться.. А жалко, было бы удобно.
Бросьте вы вашу пятерку - вот семерку люди эксплуатируют вовсю или как минимум 6.5.х, да и ганновер уже на подходе :)
И сможете встраивать более одного вида в форму, и действия в них будут доступны.
Да и вообще - много полезных функций по сравнению с пятеркой.
 
L

LuMee

Бросьте вы вашу пятерку - вот семерку люди эксплуатируют вовсю или как минимум 6.5.х, да и ганновер уже на подходе :)
И сможете встраивать более одного вида в форму, и действия в них будут доступны.
Да и вообще - много полезных функций по сравнению с пятеркой.
Если бы я в этом плане что-то решал, то вообще не стал бы с Лотусом связываться (задача там для него не вполне характерная - на .NET или Java с реляционной СУБД было бы в 100 раз удобнее). Увы, заказчик топнул ножкой и велел, чтобы был Лотус, причем 5й, ибо на более свежие денег жалко.
 
Мы в соцсетях:

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