Здравствуйте
CW 6.3 ABC
Имею текстовое поле в репорте. Из-за ограниченности пространства хотелось бы, чтобы переносы при печати происходили не по пробелам, а по окончанию ширины поля, пусть даже при этом слова режутся как придется. Можно ли это сделать?
Спасибо.
АТ
Переносы в текстовом поле
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- StillZero
- Ветеран
- Сообщения: 458
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Поблагодарили: 1 раз
- Контактная информация:
Re: Переносы в текстовом поле
сделай деталь, в ней строковое поле
в цикле крути до длины строки, режь ее и печататй в строковое поле
типо так
LOOP пока не закончится оригинальная строка
MyPrintString = часть оригинальной строки
PRINT(RPT:MyDetail)
END
в цикле крути до длины строки, режь ее и печататй в строковое поле
типо так
LOOP пока не закончится оригинальная строка
MyPrintString = часть оригинальной строки
PRINT(RPT:MyDetail)
END
по аэродрому...
- Игорь Столяров
- Ветеран движения
- Сообщения: 8025
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 95 раз
Re: Переносы в текстовом поле
Некрасиво ... и не в тему (вопрос был про поле TEXT). Здесь придется немного поработать "ручками".
1. Самый простой вариант - установить для печати текстового поля какой-нибудь шрифт с одинаковой
шириной печати всех символов (например Courier). Тогда можно узнать сколько символов всегда будет
печататься в одной строке. Далее - все просто. Подготоваливаешь сроку для печати - нарезая ее одинаковыми
кусочками вставляя перенос строки. По вкусу - можно анализировать последний символ и вставлять символ
переноса строки ('-').
2. Более творческий. Устанавливаешь для текстового поля высоту в Default. Начинаешь выводить данные строки
по одному символу и контролируешь параметр ?TextField{Prop:LineCount}, т.е. отслеживаешь, когда возникнет
перенос строки. В этом месте возвращаешься на символ назад и вставляешь перенос строки.
Сие действие можно оформить в виде процедуры в которую передашь адрес поля и максимально допустимое
кол-во строк для его печати (что бы была возможность ограничить высоту печати поля) - что бы печатать любые
тестовые поля, любой ширины и любым шрифтом.
Вот и все ... Удачи !
1. Самый простой вариант - установить для печати текстового поля какой-нибудь шрифт с одинаковой
шириной печати всех символов (например Courier). Тогда можно узнать сколько символов всегда будет
печататься в одной строке. Далее - все просто. Подготоваливаешь сроку для печати - нарезая ее одинаковыми
кусочками вставляя перенос строки. По вкусу - можно анализировать последний символ и вставлять символ
переноса строки ('-').
2. Более творческий. Устанавливаешь для текстового поля высоту в Default. Начинаешь выводить данные строки
по одному символу и контролируешь параметр ?TextField{Prop:LineCount}, т.е. отслеживаешь, когда возникнет
перенос строки. В этом месте возвращаешься на символ назад и вставляешь перенос строки.
Сие действие можно оформить в виде процедуры в которую передашь адрес поля и максимально допустимое
кол-во строк для его печати (что бы была возможность ограничить высоту печати поля) - что бы печатать любые
тестовые поля, любой ширины и любым шрифтом.
Вот и все ... Удачи !
Make Clarion Great Again ! 
Re: Переносы в текстовом поле
Еще можно посмотреть как делается то же самое в хелпе в примере к PROP:LineCount