Пара вопросов по работе с открытой формой

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

  1. NeoSimvolist

    NeoSimvolist Гость

    Есть поле типа RichText - Rich_1;
    Есть поле типа Text - Rich_2;
    Есть кнопочка;

    Покажите пожалуйста пару примеров:
    - нажав на кнопочку, текст в Rich_2 перевести в верхний регистр(типо "ПрИУеД" -> "ПРИУЕД")
    - нажав на кнопочку в Rich_1 вставить ссылку на другой, документ и чтобы она сразу отобразилась :)

    Эт очень помогло бы для понимания того что и как!
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    NotesRichText и сопутсвующие классы + переоткрытие документа.
    На лету не получится (только если не юзать какой нить uidoc.InsertText)
     
  3. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Без кнопочек на инпут транслэйшн @UpperCase(Rich_2)

    С этим надо знатно поизвращаться. Тема поднималась не раз. Ищите :)
     
  4. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    InputTranslation у РичТекста? :)
     
  5. NeoSimvolist

    NeoSimvolist Гость

    Парни мне бы для новичков исходниГ :) Хотяб по первому пункту. Но скрипте подалст, а не на формула!
     
  6. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0

    немножко внимания

    Добавлено:
    Код (Text):
    Sub Onchange(Source As Field)
    Dim wp As New NotesUIWorkspace
    Dim uiDoc As NotesUIDocument
    Set uiDoc = wp.CurrentDocument
    Call uiDoc.FieldSetText("Rich_2",Ucase$(uiDoc.FieldGetText("Rich_2")))
    End Su
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    :)
    Не хочу поддерживать систему, в которой текстовое поле зовётся Rich_2, а рядом ричтестовое - Rich_1 :ble:
     
  8. NeoSimvolist

    NeoSimvolist Гость

    нет не у рич текста, коллега у простого едита! :) Вы придираетесь. Имена полей вымышлены!
     
  9. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    xalet по первому вопросу ответил.

    А ещё можно так (код кнопки):
    <!--shcode--><pre><code class='vb'>Dim ws As New NotesUIWorkspace
    Dim uiDoc As NotesUiDocument
    Dim Doc As NotesDocument
    Set uiDoc = ws.CurrentDocument
    Set Doc = uiDoc.Document

    Const NEUDA4NO_VIMISHLENNOE_NAZVANIE = "Rich2"

    Dim Tmp As String
    Tmp = Ucase$(doc.GetItemValue(NEUDA4NO_VIMISHLENNOE_NAZVANIE)(0))
    Call doc.replaceItemValue(NEUDA4NO_VIMISHLENNOE_NAZVANIE, Tmp)[/CODE]
     
  10. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Обновление Rtfield
     
  11. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    навскидку, есть такой вариант ( без переоткрытия ):
    1. создаем форму "fakeForm" с единственным полем "fakeRTField"
    2. в документе на кнопку код:
    Код (Text):
    Sub Click(Source As Button)
    On Error Goto errh
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = ws.CurrentDocument
    ' В данном случае просто создаем ссылку на себя....
    Dim linkedDoc As NotesDocument
    Set linkedDoc = ws.CurrentDocument.Document
    Call createClipboardLink( linkedDoc )

    Call uidoc.GotoField( "RT" ) ' задачу позиционирования в поле предлагаю решить самостоятельно :-)
    Call uidoc.Paste
    Exit Sub
    ErrH: Error Err, Error$ & Chr(10) & Getthreadinfo(1) & " (line " & Erl & ")"
    End Sub

    '/**
    ' * Cоздает ссылку на документв в буфере обмена.
    ' * Ахтунг: текущее содержимое буфера будет потеряно
    ' */
    Private Function createClipBoardLink( i_doc As NotesDocument )
    On Error Goto errh
    ' создаем фэйковый документ
    Dim ws As New NotesUIWorkspace 
    Dim fakeDoc As New NotesDocument( ws.CurrentDatabase.Database )
    fakeDoc.form = "FakeForm"
    fakeDoc.SaveOptions = "0"
    ' создаем RT-поле, кладем туда нужный линк
    Dim fakeRTItem As New NotesRichTextItem( fakeDoc , "fakeField" )
    Call fakeRTItem.AppendDocLink( i_doc , "Comment" , "HotSpotText" )
    Call fakeRTItem.Update()
    ' Открываем документ в UI
    Dim fakeUIDoc As NotesUIDocument
    Set fakeUIDoc = ws.EditDocument( True , fakeDoc , False )
    ' Копируем содержимое поля
    Call fakeUIDoc.Refresh
    Call fakeUIDoc.GotoField( "fakeField" )
    Call fakeUIDoc.SelectAll
    Call fakeUIDoc.Copy
    ' Закрываем док
    Call fakeUIDoc.Close
    Exit Function
    ErrH: Error Err, Error$ & Chr(10) & Getthreadinfo(1) & " (line " & Erl & ")"
    End Function
     
Загрузка...

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