Powerbuilder: вставка строки в элемент управления форматированным текстом

#powerbuilder #rte

#powerbuilder #rte

Вопрос:

У меня есть строка LS_STRING, которая содержит агрегированный код, который я хочу отобразить в элементе управления форматированным текстом.

 string ls_string = "abc123"

rte_display.clear() // to clear any previous text...
rte_display.pasteRTF(ls_string) // to copy whatever my variable contains into the RTE...
rte_display.setredraw (true) // to refresh the view of the control...
  

Когда я компилирую код, он не выдает никаких ошибок, но также не дает ожидаемых результатов. Есть какие-либо подсказки о том, как это сделать? Спасибо!

Редактировать:

Сделал, как было предложено, но получил тот же результат: значение переменной не вставляется в элемент управления RTE…

введите описание изображения здесь

 long ll_number
string ls_number

if isnumber(sle_test.text) then
    ll_number = long(sle_test.text)
    ls_number = string(ll_number, "00000000")
    MESSAGEBOX("VALUE", LS_NUMBER)

    rte_test.setredraw (false)
    rte_test.selecttextall()
    rte_test.clear()
    rte_test.pastertf(ls_number)
    rte_test.setredraw (true)

end if
  

Комментарии:

1. Версия PowerBuilder? Управление форматированным текстом менялось несколько раз.

Ответ №1:

Согласно документации, сначала убедитесь, что для вашего свойства DisplayOnly установлено значение false .

https://docs.appeon.com/pb2019r2/application_techniques/ch16s03.html#d0e11604

 string ls_richtext = anyRichText


// Prevent flicker
rte_1.SetRedraw(FALSE) 

// Replace the old text with text for the current row
rte_1.SelectTextAll()
rte_1.Clear()
rte_1.PasteRTF(ls_richtext)
rte_1.SetRedraw(TRUE)
  

Если это не работает, возможно, нужно просмотреть ваш форматированный текст?