2015-03-24 1 views
1

Я пытаюсь добавить текст в текстовое поле, используя .FieldAppendText нажатием кнопки.Добавление текста в поле с полем FieldAppendText

код в случае нажатия кнопки:

Sub Click(Source As Button) 
    Dim workspace As New NotesUIWorkspace 
    Dim uidoc As NotesUIDocument 
    Set uidoc = workspace.CurrentDocument 
    Call uidoc.FieldAppendText _ 
    ("testejam", "kappa") 
End Sub 

При нажатии на кнопку, текст добавляется в поле, но проблема заключается в том, что добавленный текст не отображается в новой строке, но я задайте свойства текстового поля «Отдельные значения при входе пользователя» - «Новая строка» и «Показывать отдельные значения с» - «Новая строка». Я не вижу, где проблема, и почему текст не добавляется в новую строку каждый раз, когда нажимают кнопку.

ответ

2

Добавить новую строку самостоятельно с Chr(10):

Call uidoc.FieldAppendText("testejam", Chr(10) + "kappa") 

другие варианты, вы упомянули только работать, если добавить новый элемент списка в поле.

4

Если вы действительно просто хотите добавить новую строку в текстовое поле БЕЗ с несколькими значениями, то решение Курта является правильным (хотя я бы использовал Chr$(13) + Chr$(10) на ПК с Windows, чтобы иметь то же самое, что и ручное нажатие клавиши ввода ключ).

Но если вы хотите иметь «несколько значений» в своем поле, тогда ответ «Кнутс» работает только в том случае, если ваше поле имеет «Новая линия» в качестве разделителя.

Если изменить то или хотите использовать этот код более «универсально», а затем использовать backend- документ и метод AppendToTextList- из NotesItem класса, чтобы сделать это изменение:

Sub Click(Source As Button) 
    Dim workspace As New NotesUIWorkspace 
    Dim uidoc As NotesUIDocument 
    Dim doc as NotesDocument 
    Dim item as NotesItem 
    Set uidoc = workspace.CurrentDocument 
    Set doc = uidoc.Document 
    Set item = doc.GetFirstitem("testejam") 
    Call item.AppendToTextList("kappa") 
End Sub 

Это может быть, что вы нужна Call Source.Refresh в качестве последней строки, чтобы сделать видимыми изменения.

Этот подход не зависит от используемого разделителя полей в поле «testejam».

Кроме того, этот код также работает, если «testejam» является вычисленным полем. Решение uidoc не будет выполнено для вычисленных полей.

+0

Вопрос не в добавлении элемента в текстовый список. Целью было добавить текст в поле и отделить его от существующего контента новой строкой. –

+0

Я понимаю вашу точку зрения и, вероятно, это было, что означал OP. Но: установка свойств поля для «Отображение отдельных строк с новыми линиями» означает: поле имеет многозначное значение. И добавление значения с помощью новой строки в интерфейсе технически полностью отличается от установки в бэкэнд. Результат будет другим: во интерфейсе свойство приведет к тому, что поле будет содержать 2 значения. В бэкэнд поле будет содержать одно значение, содержащее новую строку, если вы не ComputeWithForm или не открываете документ во фронте и не сохраняете ... –