• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

в откритом документе удалить содержимое поля.

Cleric-Lviv

Lotus team
03.01.2008
600
0
#1
Всем привет!

есть дока. открили режим редактирования = false. нуно по нажатию на кнопку видать диалог, потом сделать копию етого дока, назначить ее response и удалить содержимоє поля "DocConteiner" в котором содержится атачмент

пишу код и удаляю поле потом снова ево делаю но поле как било с атачментом так и осталось:mellow:

Код:
Set ses = New NotesSession
Set ws = New NotesUIWorkspace
Set uidoc = ws.CurrentDocument
uidoc.EditMode = True
Set Doc = uidoc.Document
Set CopyDoc = ses.CurrentDatabase.CreateDocument

ps = |Бажаєте приєднати новий атачмент до документу "%1"?|
ps = ReplaceSubstring(ps,"%1",Doc.DocName(0))
promptResult = Messagebox(ps, 3 + 32, "Зміна атачменту")
If promptResult = 6 Then

dv = Cint(Doc.GetItemValue("DocVer")(0))
dn = Cstr(Doc.GetItemValue("DocNo")(0))
Call Doc.CopyAllItems(CopyDoc, True) 
Call CopyDoc.MakeResponse(Doc) 
Call CopyDoc.Save(False, True)
Call Doc.RemoveItem("DocContainer")
Set ItemDoc = New NotesRichTextItem(Doc,"DocContainer")
 
13.03.2009
625
1
#6
Мож. Azat прав: где вызов doc.Save? Полную версию кнопки можно увидеть?
 

divankin

Senjor developer
13.08.2009
182
0
#7
Вы делаете uidoc.Save?
Это не правильно. Изменения сделанные в richtext полях в бек-энде не переносятся во фронт-энд до переоткрытия документа, поэтому uidoc.Save сохраняет все изменения сделанные в обычных полях. А все изменения в richtext полях пропадают.
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#12
и так
Код:
dv = Cint(Doc.GetItemValue("DocVer")(0))
dn = Cstr(Doc.GetItemValue("DocNo")(0))
Call Doc.CopyAllItems(CopyDoc, True) 
Call CopyDoc.MakeResponse(Doc) 
Call CopyDoc.Save(False, True)

Call Doc.RemoveItem("DocContainer")
Call Doc.ReplaceItemValue("DocStatus", "")
Call Doc.ReplaceItemValue("DocVer", dv+1)
Call Doc.ReplaceItemValue("DocID", dn)
Call Doc.Save(True, True)
Call ws.EditDocument(True)
Set ItemDoc = New NotesRichTextItem( Doc, "DocContainer" ) --- когда создаю новий итем то в нем можно увидеть "образ" атачмента но когда попитатся ево открить то получаем "item not found".....но вот как сделать чтоб и "образа" не видели юзера
'Set object = ItemDoc.EmbeddedObjects(EMBED_ATTACHMENT, " ", "c:\" ) -- если розкоментировать т о ошибка....:(
 

azat20

Well-known member
22.07.2008
244
0
#14
Call ws.EditDocument(True) - что такое?
может надо писать Call ws.EditDocument(True, doc)

да и здесь явно ошибка
Set object = ItemDoc.EmbeddedObjects(EMBED_ATTACHMENT, " ", "c:\" )
c:\ - это на что ссылается?

To get: notesEmbeddedObjectArray = notesRichTextItem.EmbeddedObjects

да и используйте class notesrichtextitem
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#15
abbatik
но я же удаляю Call Doc.RemoveItem("DocContainer").....
мне потом нужно ето поле
если поле не создать то прицепляет в итем $File, но впринципе если поле и существует то атач тоже туда идет:(
Azat
Уже разобрался с етим добавив
fn= ws.OpenFileDialog(False, "Діалог вибору файлу ", "", "c:\")
в итоге работает:)
Set object = ItemDoc.EmbedObject(EMBED_ATTACHMENT, "", fn(0))