Страница 1 из 1
Переносы в текстовом поле
Добавлено: 23 Январь 2009, 2:26
SSTA
Здравствуйте
CW 6.3 ABC
Имею текстовое поле в репорте. Из-за ограниченности пространства хотелось бы, чтобы переносы при печати происходили не по пробелам, а по окончанию ширины поля, пусть даже при этом слова режутся как придется. Можно ли это сделать?
Спасибо.
АТ
Re: Переносы в текстовом поле
Добавлено: 23 Январь 2009, 12:50
StillZero
сделай деталь, в ней строковое поле
в цикле крути до длины строки, режь ее и печататй в строковое поле
типо так
LOOP пока не закончится оригинальная строка
MyPrintString = часть оригинальной строки
PRINT(RPT:MyDetail)
END
Re: Переносы в текстовом поле
Добавлено: 24 Январь 2009, 12:16
Игорь Столяров
Некрасиво ... и не в тему (вопрос был про поле TEXT). Здесь придется немного поработать "ручками".
1. Самый простой вариант - установить для печати текстового поля какой-нибудь шрифт с одинаковой
шириной печати всех символов (например Courier). Тогда можно узнать сколько символов всегда будет
печататься в одной строке. Далее - все просто. Подготоваливаешь сроку для печати - нарезая ее одинаковыми
кусочками вставляя перенос строки. По вкусу - можно анализировать последний символ и вставлять символ
переноса строки ('-').
2. Более творческий. Устанавливаешь для текстового поля высоту в Default. Начинаешь выводить данные строки
по одному символу и контролируешь параметр ?TextField{Prop:LineCount}, т.е. отслеживаешь, когда возникнет
перенос строки. В этом месте возвращаешься на символ назад и вставляешь перенос строки.
Сие действие можно оформить в виде процедуры в которую передашь адрес поля и максимально допустимое
кол-во строк для его печати (что бы была возможность ограничить высоту печати поля) - что бы печатать любые
тестовые поля, любой ширины и любым шрифтом.
Вот и все ... Удачи !
Re: Переносы в текстовом поле
Добавлено: 26 Январь 2009, 16:33
samo_let
Еще можно посмотреть как делается то же самое в хелпе в примере к PROP:LineCount
Re: Переносы в текстовом поле
Добавлено: 29 Январь 2009, 4:14
SSTA
Спасибо, с LineCount - хорошая идея.