1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

Программное копирование элементов из формы 1 в форму 2

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

Наш партнер Genesis Hackspace
  1. RooS

    RooS Гость

    Есть задача, создать документ напр, form 2, нужно из документа form 1 скопировать прикрепленные файлы (атачменты) и сабформу, которые находятся на форме form 1.
    каким способом это можно сделать?
    спасибо заранее..
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    CopyAllItems method
     
  3. RooS

    RooS Гость

    мне не надо копировать все поля формы... copyitems тоже не пойдет....
    мне надо скопировать subform в другой документ, в другой бд, где в дизайне этой подформы нет, просто скопировать сабформу со всеми данными в richtext поле....
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Метод notesDocument.RenderToRTItem.

    Это если я правильно понял, что скопировать надо в ричтекст-поле, а не с ричтекст-полем.
     
  5. RooS

    RooS Гость

    да, скопировать в ричтекст поле.... но как мне получить subfom?
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    RooS
    Зачем тебе?
    Делается просто. Заменяешь форму на нужную перед вызовом метода:
    Call notesDocument.ReplaceItemValue("Form", "Форма с необходимыми полями")
    Call notesDocument.RenderToRTItem(...)

    И документ копируется по этой форме.
    Главное, notesDocument не сохранить потом. Или форму обратно вернуть.
     
  7. RooS

    RooS Гость

    Либо я чиво то не понимаю, либо я неправильно выразился...
    вобщем есть form1 на ней есть subform1.
    нужно из form1 скопировать subform1 на form2 в richtext поле.
    этот механизм есть, но написан был старыми разработчиками, они хранили код в LSS, которого к сожалению нет.


    Формы в разных БД..
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Я не понимаю, что скопировать надо. Дизайн или данные?
     
  9. RooS

    RooS Гость

    данные... только сабформы во второй бд нет.
    грубо говоря так: выделить сабформу, скопировать ее и вставить в другом доке в ричтекст поле...
    визуально с их кодом так и происходит: выделение сабформы, и вставка в поле..
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Тогда делаешь форму(не subform) - копию subform1. Называешь её, например, subform1.
    Потом:
    Call notesDocument.ReplaceItemValue("Form", "subform1")
    Call notesDocument.RenderToRTItem(ричтекст-поле)
     
  11. Sandr

    Sandr Гость

    Вот тока не получится этиданные обрабатывать... РендерТуРичТекст - аболютно бесполезная фича... Еще не находил применения ей.. и врядли найду...

    Или я её готовить не умею? Дайте рецепт, кто умеет...
     
  12. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Глазками можно обработать. :ph34r:
     
  13. Sandr

    Sandr Гость

    Для глазок есть много других способов :)
     
  14. RooS

    RooS Гость

    я так сделал, и не работает:

    Dim sod as NotesRichTextItem
    Set sod = New NotesRichTextItem(NewDoc, "Sod") ' NewDoc - документ, в который надо скопировать. sod - ричтекст поле
    Call curdoc.ReplaceItemValue("Form","RDHead1") ' CurDoc - док, где храниться данные.
    Call CurDoc.RenderToRTitem(sod)
     
  15. Sandr

    Sandr Гость

    RooS
    переоткройте документ, в который пихаете форму...
     
  16. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А дальше что?
    Надо бы еще добавить Call sod.Update
     
  17. RooS

    RooS Гость

    тот док, куда копируем создается до вызова метода...
    а уже в конце открывается: Call ws.EditDocument(False , NewDoc)
     
  18. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Всё должно работать. Update помог?
     
  19. RooS

    RooS Гость

    нет, поле пустое...
     
  20. Yakov

    Yakov Гость

    "Ручной" вариант. Пользователь выделяет нужный фрагмет, нажимает кнопку с кодом типа:
    Код (Text):
    Dim uiWorkspace As NotesUIWorkspace
    Dim source As NotesUIDocument
    Dim target As NotesUIDocument
    Set source = uiWorkspace.CurrentDocument
    Call source.Copy()
    Set target = uiWorkspace.ComposeDocument("", "", "Form2")
    Call target.GotoField("Body")
    Call target.Paste()
     
Загрузка...

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