Имя формы

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

olegber

#1
Добрый день.
Дизайн БД:
1) два Frameset
а) левый состоит из меню выбора
б) в правом отображаются формы, в которых пользователь может сделать какие-либо действия(документы не создаются)
Вопрос:
Как мне можно получить имя формы которая сейчас активна во втором frameset?
Это имя формы должно участвовать в событии(PostOpen).
Lotus 5.0
 
S

Sandr

#2
Ну, Вы же каким то образом эту форму туда пихаете? Значит Вы знаете какая там форма...Если Вы меняете форму во фреймсете, то этим же действием вы пишите куда нибудь имя этой формы.. в профайл или в нотес.ини...
Просто получить имя формы из фреймсета не так просто... ;)
 
O

olegber

#3
Для: Sandr

Описываю по-подробнее
1)Левый frame:
Frame - DefaultTargetForLinksInFrame- "Правый frame"
Frame-Content-Value-"Страница".
На "странице" присутствуют рисунки + Hotspot
У Hotspot есть Content-Value-"Имя формы"
Нажимаем на Hotspot и форма отображается в правом frameset
ЧТО ИМЕЕМ:
-Форма открылась в "правом frame"
-На этой форме есть кнопка.
-Нажимаем на кнопку и взависимоти от имени формы(НЕ ЗНАЮ КАК ПОЛУЧИТЬ) выполняем определённые действия.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
<!--QuoteBegin-olegber+21:12:2007, 13:12 -->
<span class="vbquote">(olegber @ 21:12:2007, 13:12 )</span><!--QuoteEBegin-->-На этой форме есть кнопка.
-Нажимаем на кнопку и взависимоти от имени формы(НЕ ЗНАЮ КАК ПОЛУЧИТЬ) выполняем определённые действия.
[snapback]90866" rel="nofollow" target="_blank[/snapback]​
[/quote]
На каждой форме должна быть своя кнопка. Или я его-то не понимаю.
 
S

Sandr

#5
-Форма открылась в "правом frame"
-На этой форме есть кнопка.
-Нажимаем на кнопку и взависимоти от имени формы(НЕ ЗНАЮ КАК ПОЛУЧИТЬ) выполняем определённые действия.
Ну а что, сожно получить форму текущего документа? или я тоже чего-то не понимаю? Я думал, что Вам нужно получить имя правой формы, для кнопок в лефой форме, тогда это было бы сложней, но в ситуации описанной Вами - это проще простого...

Форма в правом фрейме, на ней кнопка. Имя формы - это значение поля Form... Получите его и все...
 
O

olegber

#7
Для: Sandr
Может я просто чего-то не учёл, если это проще-простого..
Но как это сделать?
(Документ не сохраняется: у всех форм saveoptions="0")
Если через
set doc=uidoc.Document
formname=doc.Form(0)
То не работает... :angry:
Может в классе NotesUIDocument есть какой-нибудь метод, возращающий имя формы?
или в NotesUiWorkSpace?
(lotus 5.0)



Для: fvoice
Смотрел
There are two ways to access a form:
To get all the forms in a database, use the Forms property in NotesDatabase.
To get a form by its name, use the GetForm method in NotesDatabase.
Это всё не то, так как надо получить имя формы "которая сейчас на экране"(текущая)
 
S

Sandr

#8
Для: Sandr
Может я просто чего-то не учёл, если это проще-простого..
Но как это сделать?
(Документ не сохраняется: у всех форм saveoptions="0")
Если через
set doc=uidoc.Document
formname=doc.Form(0)
То не работает... :angry:
Может в классе NotesUIDocument есть какой-нибудь метод, возращающий имя формы?
или в NotesUiWorkSpace?
(lotus 5.0)
Если Вы это пишите на постОупене, то должно работать...

Код:
formName = Source.document.getItemvalue("Form")(0)
Или используйте собаку...
 
O

olegber

#10
Для: Sandr
НЕ работает. Я уже проверял.
Поле form создаётся внутренним механизмом lotus при сохранении документа.
Т.е. пока не сохранил (или сам не создал-его нет).
Может как-нибудь обновить document чтобы созадлось поле.

Для: Medevic
<!--QuoteBegin-Medevic+21:12:2007, 14:03 -->
<span class="vbquote">(Medevic @ 21:12:2007, 14:03 )</span><!--QuoteEBegin-->Создать CWC-поле "Form".
[snapback]90879" rel="nofollow" target="_blank[/snapback]​
[/quote]
А можно по подробнее( где это в helpe искать?)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#11
<!--QuoteBegin-olegber+21:12:2007, 14:09 -->
<span class="vbquote">(olegber @ 21:12:2007, 14:09 )</span><!--QuoteEBegin-->А можно по подробнее( где это в helpe искать?)
[snapback]90882" rel="nofollow" target="_blank[/snapback]​
[/quote]
Создать Computed When Composed поле с формулой "Form".
Искать не знаю где.
 
O

olegber

#12
Для: Medevic
Не работает
Если вы про поле FORM, то:
<!--QuoteBegin-olegber+21:12:2007, 14:09 -->
<span class="vbquote">(olegber @ 21:12:2007, 14:09 )</span><!--QuoteEBegin-->НЕ работает. Я уже проверял.
Поле form создаётся внутренним механизмом lotus при сохранении документа.
Т.е. пока не сохранил (или сам не создал-его нет).
Может как-нибудь обновить document чтобы создалось поле.
[snapback]90882" rel="nofollow" target="_blank[/snapback]​
[/quote]
А функции в lotus 5 такой вроде нет, которая бы возвращала имя формы..
 
S

Sandr

#13
Попробуйте собакой. Хотя, то что Вы говорите похоже на фантастику... Значение поля Form можно получить ДО сохранения документа... в том числе и на постоупене..
Если вам нужно скриптом, то сделайте так

Код:
dim eva as variant
eva = Evaluate("Form")
formName = eva(0)
 
O

olegber

#14
<!--QuoteBegin-Sandr+21:12:2007, 14:33 -->
<span class="vbquote">(Sandr @ 21:12:2007, 14:33 )</span><!--QuoteEBegin-->Попробуйте собакой. Хотя, то что Вы говорите похоже на фантастику... Значение поля Form можно получить ДО сохранения документа... в том числе и на постоупене..
[snapback]90890" rel="nofollow" target="_blank[/snapback]​
[/quote]
Неужели это у вас работает, может быть дело в том что у меня lotus 5.0?

Даже если debugger'ом проработать скрипт PostOpen(с простым кодом типа Set uidoc =Source) то видно,что в source.Document.Items отсутствует поле Form.
Странно как-то это.. :angry:

Собакой тоже не выходит, нет такого поля в документе..
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#15
Для: olegber
Как происходит переключение форм? Может сделать на скрипте, чтобы передать имя формы?
 
O

olegber

#16
Для: Medevic
<!--QuoteBegin-olegber+21:12:2007, 13:12 -->
<span class="vbquote">(olegber @ 21:12:2007, 13:12 )</span><!--QuoteEBegin-->Описываю по-подробнее
1)Левый frame:
Frame - DefaultTargetForLinksInFrame- "Правый frame"
Frame-Content-Value-"Страница".
На "странице" присутствуют рисунки + Hotspot
У Hotspot есть Content-Value-"Имя формы"
Нажимаем на Hotspot и форма отображается в правом frameset
ЧТО ИМЕЕМ:
-Форма открылась в "правом frame"
-На этой форме есть кнопка.
-Нажимаем на кнопку и взависимоти от имени формы(НЕ ЗНАЮ КАК ПОЛУЧИТЬ) выполняем определённые действия.
[snapback]90866" rel="nofollow" target="_blank[/snapback]​
[/quote]
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#17
Для: olegber
Понятно. Почему бы не использовать Action Hotspot. Там можно на скрипте писать.

И всё таки не понятно. На форме уже есть кнопка. Зачем кнопке знать имя формы, если имя знал дизайнер когда создавал кнопку? Имя формы не поменяется же.

Кстати, имя формы можно явно прописать как default value (или просто value в случае computed-поля) в поле на форме.
 
O

olegber

#18
Для: Medevic
Если не найду способа получить имя текущей формы, то придётся расматривать такой вариант..
Но это наверно будет тоже непросто..Пока даже и не представляю как это сделать..
 
O

olegber

#19
<!--QuoteBegin-Medevic+21:12:2007, 14:58 -->
<span class="vbquote">(Medevic @ 21:12:2007, 14:58 )</span><!--QuoteEBegin-->Кстати, имя формы можно явно прописать как default value (или просто value в случае computed-поля) в поле на форме.
[snapback]90899" rel="nofollow" target="_blank[/snapback]​
[/quote]
Оптимальный вариант. :angry:
Спасибо за помощь.
 

Omh

Lotus team
04.07.2007
2 210
1
#20
Я бы вообще сказал, что иметь поле Form на форме с default'ным значением равному имени/псевдониму формы - хороший тон программирования.