helpf.pro
Регистрация

Как получить количество строк текста в многострочном поле в упр. форме?

user1c
15.10.2010 15:37Прочитано: 7032
В управляемой форме в многострочном поле выводится для просмотра информация из справочника.
Возможен вывод примерно от 5 до 15 строк. Как рассчитать количество отображаемых в поле строк текста (с учетом возможного изменения размера управляемой формы), чтобы выводить в поле всю информацию без полос прокруток. Если больше 15 строк, то установить:

Код 1C v 8.2 УП
 Элементы.РеквизитИнформация.Высота = 15;
//Можно применить и такое решение, но оно не красивое


Встроенная функция языка СтрЧислоСтрок(<Строка>) позволяет посчитать число строк в многострочной строке, а надо посчитать в многострочном поле в управляемой форме.
Спасибо.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
15.10.2010 15:53Ответ № 1
а КоличествоСтрок() ?
user1c
15.10.2010 16:18Ответ № 2
Текстовую строку формирую программно, присваиваю в РеквизитИнформация, вывожу в управляемую форму.

Элементы.РеквизитИнформация имеет тип «ПолеФормы»

Элементы. РеквизитИнформация.КоличествоСтрок() возвращает «Метод объекта не обнаружен (КоличествоСтрок)»

Код 1C v 8.2 УП
 //Возможно применение для текстового документа:
ВсегоСтрок = Текст.КоличествоСтрок();


Но:
Элементы. РеквизитИнформация.ТекстРедактирования имеет тип «Строка»

Элементы. РеквизитИнформация.ТекстРедактирования.КоличествоСтрок() возвращает «Значение не является значением объектного типа (КоличествоСтрок)»

Как преобразовать в текстовый документ для использования КоличествоСтрок()
E_Migachev
15.10.2010 18:36Ответ № 3
нужно создать Новый текстовый документ
поместить в него текст из поля и получить количество
user1c
15.10.2010 19:32Ответ № 4
Спасибо за ответы!
Первоначальная задача не решена. Надо получить количество строк в многострочном поле в управляемой форме чтобы вывести минимально необходимое количество строк (меньше 15) для полного отображения информации без полос прокрутки. Для поля не нашел таких средств.

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

При создании нового текстового документа и размещения его на форме получилось рассчитывать количество строк и установить высоту объекта в строках. Можно управлять шириной (при отключенных растягиваниях). Но появилась другая проблема – нет автоматического переноса строк (я не смог найти). Есть горизонтальный скроллинг.
Текст полностью не выводится в заданной области поля.
Первоначальная задача не решена.
snfr1c
02.11.2010 18:15Ответ № 5
как вариант решения- определить количество символов в строке (наверное только опытным путем), разделить длину сообщения на "количество символов в строке", округлить до целого в сторону увеличения и присвоить как указано в первом посте. пусть будет не красиво, но будет работать, пока не найдешь альтернативу.
bugor666
03.11.2010 09:19Ответ № 6
Плюс к предыдущему ответу. Вызвать функцию расчета строк при событии обновления или изменении размера.
Подсказка: Вы можете добавить любую страничку в Избранное щелкнув по значку
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.