Фото

  • Автор темы IrinaK
  • Дата начала
I

IrinaK

Помогите, пожалуйста. Я уже обращалась с этим вопросом, но удалила агента, а теперь не могу сделать. У меня данные человека заполняются в форме f2, редактировать их можно только через агента (редактируются @-формулами), также в этой форме есть поле foto, которое надо редактировать тоже через агента. Мне необходимо, чтобы когда в представлении выделяешь человека, через агента изменить его фото
Код:
	Dim ws As New NotesUIWorkspace	
Dim uidocST As NotesUIDocument	
Set uidocST=ws.CurrentDocument	
Dim RTItem As NotesRichTextItem	
fn= ws.OpenFileDialog(False, "Выбрать файл", "JPEG Image|*.jpeg", "c:\My Documents")	Forall FileName In fn		
Call uidocST.GotoField("Foto")		
Call uidocST.Import("jpeg Image", FileName)				
Set RTItem= New NotesRichTextItem(uidocST.Document, "f2" )		
Call RTItem.EmbedObject(EMBED_ATTACHMENT, "", FileName) 	
End Forall
а как сохранить теперь рисунок в поле foto в форме f2?
 
I

IrinaK

у меня уже сразу появляется ошибка в строчке Call uidocST.GotoField("Foto") , пишет "object variable not set"
 
M

morpheus

IrinaK
канчено появляеться, ведь GotoField - это UI класс , а вы работаете с бэк-экндовыми документами
 
I

IrinaK

а нет у кого-нибудь примера, я уже совсем запуталась, не могу понять!
 
S

Sandr

Код:
Dim ws As New NotesUIWorkspace 
dim s as new notessession
dim db as notesdatabase
dim doc as notesdocument
dim col as notesdocumentcollection
dim fn as variant
dim teRTIm as NotesRichTextItem

set db = s.currentdatabase
set col = db.unprocessedDocuments
sed doc = col.getFirstDocument
if not doc is nothing then
fn= ws.OpenFileDialog(False, "Выбрать файл", "JPEG Image|*.jpeg", "c:\My Documents") 
set teRTIm = doc.getFirstItem("f2")
if not teRTIm is nothing then call teRTIm.Remove
Set teRTIm= New NotesRichTextItem(doc, "f2" )		
Call RTItem.EmbedObject(EMBED_ATTACHMENT, "", fn(0)) 
call doc.save(true, true)
end if

проверяйте, должно работать...но могут быть ошибки - писал прямо тут...
 
I

IrinaK

спасибо тебе sandr! работает, но у меня вставляет файлик, а не картинка, и вставляется просто в форме, а не в поле foto
 
M

morpheus

в строке
Call RTItem.EmbedObject(EMBED_ATTACHMENT, "", fn(0))
первым параметром использовать EMBED_OBJECT и установить класс обьекта (jpeg)
 
I

IrinaK

morpheus, что значит установить класс объекта jpeg? если EMBED_OBJECT, тогда в представлении показывается, что данные были изменены, но при этом ничего нет в самой форме
 
S

Sandr

Код:
Call RTItem.EmbedObject(EMBED_OBJECT , "JPEG Image", fn(0))
 
A

Archi2001

IrinaK
Прочтите внимательно хелп про EmbedObject... один из параметров там "Class", который позволяет "импортировать" соотв файл соотв типа ....
 
I

IrinaK

работает, вставляет файлик с надписью jpeg-рисунок в поле foto, а если Call RTItem.EmbedObject(EMBED_OBJECT , "JPEG Image", fn(0)), тогда выдает ошибку: "must provide either class or source, but not both"
 
S

Sandr

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

ключевые слова для поиска:

uidoc.gotofield
uidoc.import
 
I

IrinaK

uidoc.gotofield
uidoc.import
я читала и пробовала. То есть из предвтавления (не открывая формы) нельзя внести картинку, только файл можно внести?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Можно открыть документ по другой форме (на которой только одно Rich Text Lite поле) через диалогбокс. Пользователь вставляет фотку, документ сохраняется.

Т.о. документ как бы не открывается на редактирование.
Можно вообще использовать временный документ, если нужно ограничить права доступа. Т.е. мы пихаем во временный документ фотку (через диалогбокс), а потом агент переносит поле с фоткой в основной документ и удаляет временный.
 
I

IrinaK

спасибо, но уж лучше пусть остается файликом. При использовании еще одной формы фото все равно не будет показываться на основной форме.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
При использовании еще одной формы фото все равно не будет показываться на основной форме.
Почему не будет? Всё будет как надо. :)

Кстати, посмотри чем отличаются форма и документ. Это чтобы лучше понимать друг друга.
 
I

IrinaK

как через агента удалить фото находясь в представлении из поля. Вставляла фото из представления в поле так:
Код:
Dim db As notesdatabase
Dim doc As notesdocument
Dim col As notesdocumentcollection
Dim fn As Variant
Dim RTItem As NotesRichTextItem
Dim ws As New NotesUIWorkspace 
Dim s As New notessession


Set db = s.currentdatabase
Set col = db.unprocessedDocuments
Set doc = col.getFirstDocument
If Not doc Is Nothing Then

fn= ws.OpenFileDialog(False, "Выбрать файл","JPG Image|*.jpg", "c:\Мои документы") 
Forall FileName In fn			
Set RTItem = doc.getFirstItem("f2")
If Not RTItem Is Nothing Then Call RTItem.Remove
Set RTItem= New NotesRichTextItem(doc, "foto" )				
Set RTItem = doc.getFirstItem("f2")
If Not RTItem Is Nothing Then Call RTItem.Remove
Set RTItem= New NotesRichTextItem(doc, "foto" )  

Call RTItem.EmbedObject(EMBED_OBJECT , "", fn(0))
Call doc.save(True,True)

End Forall			
End If
 
I

IrinaK

извеняюсь, но уже сама догадалась!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!