программно вложить файл

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

sam23

#1
Как сделать что бы некий заранее известный документ можно было прицепить в заранее известное поле.
Например C:/myfile.doc
Нужно прицепить в поле Brif
 

Kizarek86

Lotus team
20.07.2007
864
4
#2
Ну при создании документа цепляй документ в поле. как приатачить документ смотри в поиске, примеров довольно много было на форуме.
 

morpheus

скриптописец
07.08.2006
3 915
1
#3
Взято из хэлпа

Код:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( doc, "Brif" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
Call doc.Save( True, True )
 
S

sam23

#4
Может я что то не так делаю. только начал изучать Lotus.
Вставляю код в Initialize формы
вот код - Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem( doc, "Brif" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
Call doc.Save( True, True )

и ничего неполучается. захожу в форму, а документ не влаживается.
Подскажите как сделать
 

Kizarek86

Lotus team
20.07.2007
864
4
#5
Повесь код на PostOpen. Но поставь условие:

if (Source.IsNewDoc) Then
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Set db = session.CurrentDatabase
Set doc = source.document
Set rtitem = New NotesRichTextItem( doc, "Brif" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
Call doc.Save( True, True )
endif

В твоем коде ты новому документу приатачиваешь файл, а не к текущему.
 
A

Alex_Sun

#6
Ты же каждай раз создаёш документ помимо открываемого, да ещё и без указания формы.
Используй событие PostOpen, а до документа доберайся через Source (set doc = Source.Document)
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
sam23
савсем всё не так делаете...
начните с азов

в Вашем случае надо делать код на кнопку
Код:
Dim ws as New NotesUIworkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Set db = session.CurrentDatabase
Set doc = ws.CurrentDocument.Document
Set rtitem = New NotesRichTextItem( doc, "Brif" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
call ws.CurrentDocument.Refresh(true)
Не партесь и зделайте кнопку на @-Formula
Код:
@Command( [EditGotoField]; "Brif" )
@Command( [EditInsertFileAttachment]; "C:\myfile.doc"" )
з.ы. учите азы. Открывайте книги и штудируйте
 
S

sam23

#9
ничего не получается объясните если можете все подробно
 

morpheus

скриптописец
07.08.2006
3 915
1
#10
1. что не получаеться?
2. что должно получиться (описание действий пользователя и системы )
 
S

sam23

#11
пробывал сделать кнопку.
пишу в PostOpen код
Dim ws as New NotesUIworkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim object As NotesEmbeddedObject
Set db = session.CurrentDatabase
Set doc = ws.CurrentDocument.Document
Set rtitem = New NotesRichTextItem( doc, "Brif" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "C:\myfile.doc")
call ws.CurrentDocument.Refresh(true)

и создаю кнопку. в Click пишу формулу
@Command( [EditGotoField]; "Brif" )
@Command( [EditInsertFileAttachment]; "C:\myfile.doc"" )
пытаюсь сохранить,он ругается
"конец формулы наступил до того как встретилась строка"
 

morpheus

скриптописец
07.08.2006
3 915
1
#12
и создаю кнопку. в Click пишу формулу
@Command( [EditGotoField]; "Brif" )
@Command( [EditInsertFileAttachment]; "C:\myfile.doc"" )
зделайте тип кнопки Formula ( сверху поля в котором Вы пишите код стоит вилимо LotusScript, его надо сменить на Formula )
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#13
пытаюсь сохранить,он ругается
"конец формулы наступил до того как встретилась строка"
Просто кто-то забыл точку с запятой поставить. :rolleyes:

И кавычка лишняя. И два слеша надо.
Короче:
Код:
@Command( [EditGotoField]; "Brif" );
@Command( [EditInsertFileAttachment]; "C:\\myfile.doc" )
 
S

sam23

#14
теперь все нормально сохранилось. но при нажатии на кнопку ничего не происходит
 
S

sam23

#16
все я разобрался,косяк мой был. а интересно можно програмно нажать клавишу
 
X

Xellos

#20
Как-как... Читайте хелп, он рулез. Там многое есть. Собственно, почти всё, кроме недокументированных возможностей и некоторых неочевидностей.