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

  • Автор темы NeoSimvolist
  • Дата начала
N

NeoSimvolist

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

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

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#2
NotesRichText и сопутсвующие классы + переоткрытие документа.
На лету не получится (только если не юзать какой нить uidoc.InsertText)
 

Xalet

Well-Known Member
08.08.2008
410
0
Вильнюс. Литва.
#3
- нажав на кнопочку, текст в Rich_2 перевести в верхний регистр(типо "ПрИУеД" -> "ПРИУЕД")
Без кнопочек на инпут транслэйшн @UpperCase(Rich_2)

- нажав на кнопочку в Rich_1 вставить ссылку на другой, документ и чтобы она сразу отобразилась
С этим надо знатно поизвращаться. Тема поднималась не раз. Ищите :)
 
N

NeoSimvolist

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

Xalet

Well-Known Member
08.08.2008
410
0
Вильнюс. Литва.
#6
N

NeoSimvolist

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
37
Латвиджа, Рига
#9
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]
 
#11
- нажав на кнопочку в Rich_1 вставить ссылку на другой, документ и чтобы она сразу отобразилась :D

Эт очень помогло бы для понимания того что и как!
навскидку, есть такой вариант ( без переоткрытия ):
1. создаем форму "fakeForm" с единственным полем "fakeRTField"
2. в документе на кнопку код:
Код:
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