Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/82: Рейтинг темы: голосов - 82, средняя оценка - 4.93
tykhyy

Editdocument (read-only) в специальном фрейме и со специальной формой

17.09.2009, 02:20. Показов 15105. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи, коллеги! // версия 8.5

Терпение мое иссякло и зрение подсело, но так и не смог добить проблему.

Имею:
1. Основную и вспомогательную формы для документа.
2. Фреймсет из двух фреймов (top и bottom).
3. View (верхний фрейм), в котором перечислены документы (очень лакончино).

4. !! Огромное желание сделать так, чтобы при нажатии (single click) на документ во View в нижнем фрейме открывалась дополнительная форма, где будет более подробно освещатся контент документа - именно в режиме просмотра, именно в специально сделанной для этого форме, а не в основной.

(А вот картинка!)




Для всего этого в событии "onSelect" (гендерная дискриминация, а что если не он селект, а она?..) я прописываю замысловатый кодец и ставлю "фрейм по умолчанию" для вспомогательной формы (которая снизу на картинке, там будет вычисляемый текст!) чтобы она всегда открывалась снизу! (эксперимент с SetTargetFrame тоже провалился...)

Что происходит в коде? Сколько я понимаю, так вот просто открыть документ с помощью "чужой" формы не получится (а зря, я им скажу, зря!), посему я копирую его содержимое в новый документ и прописываю ему нужную форму ("CollabPreview").

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

Но не тут то было! В результате подлец Лотус начинает открывать исходный фреймсет в новом окне - честно заполняя при этом вспомогательную форму данными из дубликата нужного документа и... плодя новые окошки бесконечно, ибо в них также появляется моё View, где сразу же происходит событие "onSelect"...

Пробовал я поэкспериментировать и с последним параметром ("newInstance" ставим в False), но в ответ - тишина, вернее, сообщение о том, что форма по умолчанию не найдена... Почему "по умолчанию"? Зачем? Я, видно, что-то концептуально не догоняю, ведь явным образом прописывается нужная форма!..

В общем, поможите калеке, а то откажусь от этой затеи и уйду в горы, наверное, жить... Спасибо за понимание!

// и вообще, почему бы не позволить пихать документ контекстом для страницы (Page)?..

[codebox]Sub Onselect(Source As Notesuiview)
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uiview As NotesUIView

Set uiview = ws.CurrentView

Set db = s.CurrentDatabase
Set doc = db.GetDocumentByID( uiview.CaretNoteID )

Dim new_doc As New NotesDocument( db )

Call doc.CopyAllItems( new_doc )

new_doc.Form = "CollabPreview"

Call ws.EditDocument( False, new_doc, True, , False )
End Sub[/codebox]
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.09.2009, 02:20
Ответы с готовыми решениями:

Можно ли из страницы в одном фрейме обратиться к элементу на странице в другом фрейме?
Имеется фреймсет с двумя фреймами. Можно ли из страницы в одном фрейме обратиться к элементу страницы в другом фрейме? Если можно -...

Как узнать URL доумента в фрейме, который в другом фрейме?
Если загрузить в WebBrowser страничку с фреймами, то узнать URL документов, загрженных в них можно обращаясь к каждому фрейму через его...

Как создать якорь во фрейме, и использовать его в другом фрейме
Такая ситуация, у меня два фрейма, слева у меня Содержание, справа Текст Так вот все заголовки я отметил, в соответствии с содеражнием. И...

8
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
17.09.2009, 07:44
Попробуйте сделать так:
Нижний фрейм обзываете NotesPreview. Во вью в свойстве Form Formula прописываете название доп.формы. В результате по сингл клику в превью отображается доп.форма. Затем на Queryopendocument вешаете такой код:

continue = false
Set doc = <взять текущий док во вью>
doc.Form = "основная форма"
ws.EditDocument(false, doc)
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
17.09.2009, 10:07
ндаа, однозначно топиксайтер не умеет работать с превью....
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
17.09.2009, 10:33
так научи!
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
17.09.2009, 11:29
Akupaka
открываем дизайнером ПЯ - там всё сделано, делаем по аналогии
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
17.09.2009, 13:45
Для новичка ПЯ открывать не стоит, там сразу убьешься от кол-ва всяких разных фич и элементов дизайна ;)
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
17.09.2009, 14:26
А что если композитные приложения использовать?
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 641
17.09.2009, 18:50
Цитата Сообщение от Azat
А что если композитные приложения использовать?
Для данного конкретного случая - нет никакой необходимости. А если захочется усложнить (себе жизнь в том числе ) - тогда можно и композитные.
0
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
18.09.2009, 12:49
Цитата Сообщение от K-Fire
А если захочется усложнить (себе жизнь в том числе
проще ПЯ открыть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2009, 12:49
Помогаю со студенческими работами здесь

Ws.editdocument
код: Set docResp = db.CreateDocument docResp.Form = &quot;Response To Response&quot; docResp.DocID=doc.DocID(0) docResp.IDLog=doc.IDLog(0)...

Ws.settargetframe и Ws.editdocument
Коллеги, такой вопрос. Столкнулся с проблемой программного открытия документа (через NotesUIWorkspace.EditDocument) в указанном фрейме...

@command([editdocument]) не срабатывает
не везде а именно на конкретноой форме, когда нажимаю кнопку &quot;Редактировать&quot; формулой @Command() то почемуто выскакивает сообщение...

Set Uimydoc=ws.editdocument(true, Mydoc)
привет всем собсвенно сабж 1) доки с едитабл рич тескст полями поля содержат текст формулы и рисунки 2) отбираю эти доки и в...

Editdocument (true) Для Класса Notesdocument ?!
Добрый день. Подскажите, как мне открыть все выделенные документы из вида в режиме &quot;редактируемый&quot; и потом, просто сохранить. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru