Помогите с агентом

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

IrinaK

#1
Помогите, если можете! Мне необходимо, чтобы через агента можно было менять фото человека. Чтобы меня его данные я использовала: [codebox]@If((Form = "f2")|(Form="f2_1"); ""; @Do(@Prompt([Ok]; "Внимание !"; "Необходимо выбрать досье!"); @Return("")));
m := "Изменение информации";
ENVIRONMENT extcont_a :=@Prompt([OkCancelEdit]; m; "Новая фамилия:";name);
ENVIRONMENT extcont_n := @Environment("extcont_a") ;
@If(extcont_a = name ; ""; @PostedCommand([ToolsRunMacro]; "(nameupdate)"));
@PostedCommand([ToolsRunMacro]; "(message1)");
@All;
@All[/codebox]

файл nameupdate имеет код: [codebox]SELECT @All;
@If(@IsAvailable("Name"); @Do(@SetField("name"; @Environment("extcont_a"))); "");
@If(@IsAvailable("ContName"); @SetField("ContName"; @Environment("extcont_n")); "");
@If(Form = "f2"; @Do(@SetField("ff"; name));"")[/codebox]

а как сделать, чтобы можно было выбирать фото из моих документов? В самой форме я выбирала фото с помощью: [codebox]@Command([EditGotoField];"attach");
@Command( [FileImport] )[/codebox]
 
S

Sandr

#2
Перепишите все на LS... Таким образом сможете избавится от использования Environment (хотя и тут без них обойтись можно) и к тому же сможете использовать OpenFileDialog, чего не сделать в агенте собачном...
 
I

IrinaK

#4
Если в LS делать, то у меня получилось:[codebox] 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[/codebox]
появляется рисунок, но как его теперь сохранить к человеку, который выбран из представления????
 
S

Sandr

#6
Если в LS делать, то у меня получилось:[codebox] 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[/codebox]
появляется рисунок, но как его теперь сохранить к человеку, который выбран из представления????
Если это не тот документ в который Вы вставили рисунок, то прост оскопируйте итем с рисунком в нужный Вам документ. Желательно что бы на форме было РТ поле с тем именем итема который Вы скопировали...

Код:
dim persDoc as notesDocument
dim db as notesDatabase
dim s as new notessession
set db = s.currentDatabase
set persDoc = db.UnprocessedDocuments.getFirstDocument
Call RTItem.CopyItemToDocument( persDoc, "Body" )
Body - имя РТ поля в документе пользователя (в том, которое выделено в представлении)

Хотя все это не будет работать, если у Вас на уи открыт документ, так как Вы не получите выделенный документ во вьюхе при открытом на уи другом документе.
 
I

IrinaK

#7
Спасибо.... что-то намудрила, но вроде работает нормально! А что в агенте с помощью @-формул нельзя открывать файлы? (Это так для общего развития)
 
K

K-Fire

#9
Кстати, фото получается наверное как иконка отображается в документе? Или как картинка?