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

Тема в разделе "Lotus - Программирование", создана пользователем Cleric-Lviv, 4 сен 2009.

  1. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    Всем привет!

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

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

    Код (Text):
    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")
     
  2. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    может док надо засейвить?
     
  3. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    Azat
    да нет сейвлю, все равно в поле атач есть
     
  4. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Переоткрытие документ не помогает?
     
  5. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    turumbay
    нет....
     
  6. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Мож. Azat прав: где вызов doc.Save? Полную версию кнопки можно увидеть?
     
  7. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Вы делаете uidoc.Save?
    Это не правильно. Изменения сделанные в richtext полях в бек-энде не переносятся во фронт-энд до переоткрытия документа, поэтому uidoc.Save сохраняет все изменения сделанные в обычных полях. А все изменения в richtext полях пропадают.
     
  8. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    Divankin
    Да именно uidoc.save, хм а как тогда делать?ну очень нуна:)
     
  9. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Удаляешь у NotesDocument итем ричтекста, сохраняешь, открываешь его через EditDocument.
     
  10. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Попробуй NotesUIDocument.Refresh( True ). Сам не пробовал, но по идее, параметр как раз отвечает за подкачку в UI изменений BE.
     
  11. Klido

    Klido Гость

    работает для обычных полей, для ртф надо извращаться :) примеров в инете сколько угодно - на сайтах с лотусиными tips
     
  12. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    и так
    Код (Text):
    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:\" ) -- если розкоментировать т о ошибка....:(
     
  13. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Call ws.EditDocument(True, Doc)

    не надо Item создавать..
     
  14. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    Call ws.EditDocument(True) - что такое?
    может надо писать Call ws.EditDocument(True, doc)

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

    To get: notesEmbeddedObjectArray = notesRichTextItem.EmbeddedObjects

    да и используйте class notesrichtextitem
     
  15. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

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

Поделиться этой страницей