Фото

  • Автор темы Автор темы 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?
 
у меня уже сразу появляется ошибка в строчке Call uidocST.GotoField("Foto") , пишет "object variable not set"
 
IrinaK
канчено появляеться, ведь GotoField - это UI класс , а вы работаете с бэк-экндовыми документами
 
а нет у кого-нибудь примера, я уже совсем запуталась, не могу понять!
 
Код:
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

проверяйте, должно работать...но могут быть ошибки - писал прямо тут...
 
спасибо тебе sandr! работает, но у меня вставляет файлик, а не картинка, и вставляется просто в форме, а не в поле foto
 
в строке
Call RTItem.EmbedObject(EMBED_ATTACHMENT, "", fn(0))
первым параметром использовать EMBED_OBJECT и установить класс обьекта (jpeg)
 
morpheus, что значит установить класс объекта jpeg? если EMBED_OBJECT, тогда в представлении показывается, что данные были изменены, но при этом ничего нет в самой форме
 
Код:
Call RTItem.EmbedObject(EMBED_OBJECT , "JPEG Image", fn(0))
 
IrinaK
Прочтите внимательно хелп про EmbedObject... один из параметров там "Class", который позволяет "импортировать" соотв файл соотв типа ....
 
работает, вставляет файлик с надписью jpeg-рисунок в поле foto, а если Call RTItem.EmbedObject(EMBED_OBJECT , "JPEG Image", fn(0)), тогда выдает ошибку: "must provide either class or source, but not both"
 
Вообще, аттачя картинку на бекэнде, нужного Вам эффекта добится не выйдет...
Вставить инлайн картинку в нужное поле можно только открыв документ на редактирование...

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

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

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

Кстати, посмотри чем отличаются форма и документ. Это чтобы лучше понимать друг друга.
 
как через агента удалить фото находясь в представлении из поля. Вставляла фото из представления в поле так:
Код:
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
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab