Публикация

Перенос строки в детали "Описание"

Часто задают вопрос о работе с данными детали "Описание" без визуального компонента. Особенно часто получаю вопрос о переносе строки. И вот решил осветить немного эту тематику.
В детали "Описание" текст представлен в формате RTF и в базу данных он ложится именно в таком виде. А значит, если есть задача видоизменить текст, то нужно понимать, что работа ведется именно с текстом RTF-документа.
А теперь по поводу переноса строки.
Разрыв строки добавляется очень просто. Если не углубляться в дебри описания структуры RTF-документа, то некоторую информацию можно получить, если включить отладку и посмотреть значение поля Description в датасете. Там видно какие управляющие символы используются в том или ином случае. В частности, по переносу строки. Учитывая вышеизложенное, выполним слеюдующее:

1. Добавляем текст в визуальный компонент обычным способом. Я добавил такой текст:
aaa1
bbb1
ccc1
ddd1

2. Включив отладку в детали «Описание», получил следующее значение поля Description:

{\rtf1\ansi\ansicpg0\uc1\deff0\deflang0\deflangfe0{\fonttbl{\f0\fnil Arial;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}

\uc1
\pard\fi0\li0\ql\ri0\sb0\sa0\itap0 \plain \f0\fs20 aaa1
\par bbb1
\par ccc1
\par ddd1\par}

Анализируя текст, несложно заметить:
а. В начале заголовок RTF-документа, он нас сейчас не интересует.
б. Дальше идут инструкции по формату текста, тоже сейчас не нужны.
в. А вот где начинается введенный мною текст, можно увидеть инструкцию \par – это и есть перенос строки. Нужно еще обратить внимание, что инструкция отделяется от текста пробелом, а в конце документа обязательно стоит завершающая фигурная скобка.

Информацию по остальным инструкциям можно поискать в описании формата или методом «научного тыка» через отладку.

Нравится

Поделиться

1 комментарий

Конечно метод "научного тыка" это хорошо. Но как показывает практика - компонент используемый в Террасофт для отображения детали "Описание" поддерживает далеко не все инструкции стандарта rtf.
Полезная ссылка - некоторые инструкции rtf, язык русский.
http://articles.org.ru/docum/rtf.php

Показать все комментарии