• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

NeoSimvolist

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

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

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

Omh

NotesRichText и сопутсвующие классы + переоткрытие документа.
На лету не получится (только если не юзать какой нить uidoc.InsertText)
 
X

Xalet

- нажав на кнопочку, текст в Rich_2 перевести в верхний регистр(типо "ПрИУеД" -> "ПРИУЕД")
Без кнопочек на инпут транслэйшн @UpperCase(Rich_2)

- нажав на кнопочку в Rich_1 вставить ссылку на другой, документ и чтобы она сразу отобразилась

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

NeoSimvolist

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

Xalet

N

NeoSimvolist

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

Omh

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]
 
T

turumbay

- нажав на кнопочку в 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
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!