Программное копирование элементов из формы 1 в форму 2

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

RooS

#1
Есть задача, создать документ напр, form 2, нужно из документа form 1 скопировать прикрепленные файлы (атачменты) и сабформу, которые находятся на форме form 1.
каким способом это можно сделать?
спасибо заранее..
 
R

RooS

#3
мне не надо копировать все поля формы... copyitems тоже не пойдет....
мне надо скопировать subform в другой документ, в другой бд, где в дизайне этой подформы нет, просто скопировать сабформу со всеми данными в richtext поле....
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Метод notesDocument.RenderToRTItem.

Это если я правильно понял, что скопировать надо в ричтекст-поле, а не с ричтекст-полем.
 
R

RooS

#5
да, скопировать в ричтекст поле.... но как мне получить subfom?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#6
RooS
Зачем тебе?
Делается просто. Заменяешь форму на нужную перед вызовом метода:
Call notesDocument.ReplaceItemValue("Form", "Форма с необходимыми полями")
Call notesDocument.RenderToRTItem(...)

И документ копируется по этой форме.
Главное, notesDocument не сохранить потом. Или форму обратно вернуть.
 
R

RooS

#7
Либо я чиво то не понимаю, либо я неправильно выразился...
вобщем есть form1 на ней есть subform1.
нужно из form1 скопировать subform1 на form2 в richtext поле.
этот механизм есть, но написан был старыми разработчиками, они хранили код в LSS, которого к сожалению нет.


Формы в разных БД..
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Я не понимаю, что скопировать надо. Дизайн или данные?
 
R

RooS

#9
данные... только сабформы во второй бд нет.
грубо говоря так: выделить сабформу, скопировать ее и вставить в другом доке в ричтекст поле...
визуально с их кодом так и происходит: выделение сабформы, и вставка в поле..
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#10
Тогда делаешь форму(не subform) - копию subform1. Называешь её, например, subform1.
Потом:
Call notesDocument.ReplaceItemValue("Form", "subform1")
Call notesDocument.RenderToRTItem(ричтекст-поле)
 
S

Sandr

#11
Вот тока не получится этиданные обрабатывать... РендерТуРичТекст - аболютно бесполезная фича... Еще не находил применения ей.. и врядли найду...

Или я её готовить не умею? Дайте рецепт, кто умеет...
 
R
#14
я так сделал, и не работает:

Dim sod as NotesRichTextItem
Set sod = New NotesRichTextItem(NewDoc, "Sod") ' NewDoc - документ, в который надо скопировать. sod - ричтекст поле
Call curdoc.ReplaceItemValue("Form","RDHead1") ' CurDoc - док, где храниться данные.
Call CurDoc.RenderToRTitem(sod)
 
S

Sandr

#15
RooS
переоткройте документ, в который пихаете форму...
 
R
#17
тот док, куда копируем создается до вызова метода...
а уже в конце открывается: Call ws.EditDocument(False , NewDoc)
 
Y

Yakov

#20
"Ручной" вариант. Пользователь выделяет нужный фрагмет, нажимает кнопку с кодом типа:
Код:
Dim uiWorkspace As NotesUIWorkspace
Dim source As NotesUIDocument
Dim target As NotesUIDocument
Set source = uiWorkspace.CurrentDocument
Call source.Copy()
Set target = uiWorkspace.ComposeDocument("", "", "Form2")
Call target.GotoField("Body")
Call target.Paste()