Подстановка шаблонов в Rich Text

Тема в разделе "Oбщий функционал", создана пользователем serg1y, 27 дек 2006.

Статус темы:
Закрыта.
  1. serg1y

    serg1y Гость

    Комментарий модератора
    1. Заменено имя представления(view) c Шаблоны на Template. Надеюсь автор понимает что не стоит называть view используя символы кирилицы, ну или хотя бы пользоваться Alias
    2. При чем тут указанные автором возможность заполнять шаблоны прямо в лотусе?
    3. Назначение скрипта: доставать файлы из документов и вставлять их в текущий документ(изюминка - пользователю не надо переоткрывать документ, минус - если пользователь передумал, позно, документ уже сохранён)

    Задача
    Есть база для хранения документов. Документы заполняются в MS Word по шаблону и прикрепленными попадают в базу Lotus. Нужно получить возможность заполнять шаблоны прямо в Lotus (без MS Word) и не через OLE, а в rich text поле.

    Решение
    Создаем форму для шаблонов, там два поля: DotName (text) - имя шаблона, DotBody (rich text) - сам шаблон.
    Создаем представление (view). Называется "Template", там отображаются введенные шаблоны. Шаблоны могут меняться, удаляться, добавляться.
    Создаем форму основного документа, на ней поле Body (rich text) - куда должны подставляться выбранные пользователем шаблоны (из представления "Template"), а потом вручную заполняться. Для выбора и подстановки шаблонов используется кнопка.
    Код на кнопке:

    Код (Text):
    Sub Click(Source As Button)
    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim ws As New NotesUIWorkspace
    Dim coll As NotesDocumentCollection
    Dim uidoc As NotesUIDocument
    Dim docA As NotesDocument
    Dim docB As NotesDocument
    Dim rtitemA As NotesRichTextItem
    Dim rtitemB As NotesRichTextItem
    Dim n As Integer

    Set session = New NotesSession
    Set db = session.CurrentDatabase   
    Set view = db.GetView("Template")
    Set uidoc = ws.CurrentDocument
    Set docA = uidoc.Document
    Set rtitemA = New NotesRichTextItem(docA, "Body" )

    'выбор шаблонов из представления "Template" с помощью меню
    Set coll=ws.PickListCollection(3, True,db.Server, db.FilePath,"Template","Выберите шаблоны", "Список шаблонов")
    n=coll.count
    If n = 0 Then Exit Sub
    Set DocB=coll.GetFirstDocument

    'подстановка выбранных шаблонов в rich text поле один за другим по циклу
    While Not DocB Is Nothing
    Set rtitemB = docB.GetFirstItem( "DotBody" )
    Call rtitemA.AppendRTItem( rtitemB )
    Call rtitemA.AddNewLine(1)
    Set docB=coll.GetNextDocument(docB)
    Wend

    'переоткрытие документа, чтобы изменения отображались сразу
    Call rtitemA.Update
    Call ws.EditDocument(True,docA)
    docA.SaveOptions = "0"
    Call uidoc.Close
    Set uidoc = ws.CurrentDocument
    Set docA = uidoc.Document
    docA.SaveOptions = "1" 
    End Sub
     
  2. serg1y

    serg1y Гость

    Раньше шаблоны заполнялись в Word, изменения в прикрепленные файлы вносить неудобно. Теперь в rich text подставляется шаблон, а потом его в этом поле можно заполнять, изменять.
    Мне кажется документ не сохраняется, во всяком случе, если я нажимаю "Отмена", а потом на вопрос сохранять ли документ отвечаю - нет, - нигде нового документа я не вижу.
     
Загрузка...
Статус темы:
Закрыта.

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