Копирование ричтекст полей

Xalet

Well-Known Member
08.08.2008
410
0
#1
Есть две формы с ричтекст полями. Одна для заполнения, другая для печати. Надо перенести значения полей с первой во вторую. Со всеми полями проблем нет, а с ричтекстом никогда не работал и как-то не получается. Помогите =)

Спасибо.
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#2
CopyItemToDocument?
Может переоткрыть надо что-то?
Подробнее плз :rolleyes:
 

Xalet

Well-Known Member
08.08.2008
410
0
#3
В общем потупил чктка =) Сделал сам. Надо было всего лишь:

Call uidoc.GotoField( "uzklTekstas" )
Call uidoc.SelectAll
Call uidoc.Copy

Set prt = workspace.ComposeDocument("", "", "PrintFormUzklausa")

Call prt.GotoField( "prtUzklTekstas" )
Call prt.Paste
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#4
а зачем переносить-то?..
такой вариант не подойдет?
сделай вид, в котором будут отображаться доки на печать, т.е. оригинальные, созданные по форме1 (форма для заполнения)
в виде есть FormFomula, в ней пропиши формулу, результат которой будет равен имени/алиасу формы2 (форма для печати)
а на форме2 размести поля как надо...
при открытии дока из этого вида, будет использована форма2...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#5
В общем потупил чктка =) Сделал сам. Надо было всего лишь:

Call uidoc.GotoField( "uzklTekstas" )
Call uidoc.SelectAll
Call uidoc.Copy

Set prt = workspace.ComposeDocument("", "", "PrintFormUzklausa")

Call prt.GotoField( "prtUzklTekstas" )
Call prt.Paste
Буфер портить еще.
Достаточно получить NotesRichTextItem и скопировать в новый документ. Можно еще Refresh(True) сделать.
 

Xalet

Well-Known Member
08.08.2008
410
0
#6
В общем смысл такой, документ просто заполняется и в нем есть кнопка распечатать. Документ, для заполнения выглядит не так, как на печати, соответственно печатная форма другая. По нажатии кнопочки, поля копируются во вторую, она распечатывается и закрывается (не сохраняясь естественно). Есть вариант, что позже будет по тому же сценарию вываливаться сразу в вордовский шаблон и тот в свою очередь печататься.
Ну и кроме печатанья на ту же кнопку вешаются еще дополнительные действия...
Пока я делаю для печатанья всегда так, но я в ноутсах новичек, и если есть более простые способы, я с удовольствие о них почитаю...
Отписывайтесь. Спасибо.

Буфер портить еще.
Достаточно получить NotesRichTextItem и скопировать в новый документ. Можно еще Refresh(True) сделать.
пример в студию =)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#7
дык, я тебе о том и говорю :rolleyes: что не за чем переносить поля туда-сюда, достаточно чтобы было две формы - одна для заполнения, вторая для печати. та, что для печати, должна иметь вид печатной формы, и содержать те поля (с теми же именами, что на первой форме), что должны быть распечатаны...

вид для печати - как описано выше...

должно работать как надо :blink:
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#8
Да без проблем. :rolleyes:

Код:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim ni As NotesItem

Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Call uidoc.Refresh(True)
Set ni = uidoc.Document.GetFirstItem("uzklTekstas")
Set doc = db.CreateDocument()
Call doc.ReplaceItemValue("Form", "PrintFormUzklausa")
Call ni.CopyItemToDocument(doc, "prtUzklTekstas")
Call ws.EditDocument(False, doc, False)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#9
xalet
C прибалтики чтоль?
Какие-то названия у форм латышско-литовские...
 

Xalet

Well-Known Member
08.08.2008
410
0
#12
Medevic
Спасибо, всё работает...
Хотя я вроде точно так же изначально и пытался, но ничего не получилось =) Видимо опыта маловато.