02.10.2003, 12:52 | #1 |
Участник
|
Вычисление высоты строки в отчёте диначически при заданной ширине
Здравствуйте1
Эта тема ранее обсуждалась, например, см. http://www.axforum.info/forums/showt...=6757#post6757 Применил PHP код:
Берём строку, например, " 455-00746Бу345а (2132ыв4апавпяывфыв) 50х4ыва123456к6606мм". Расчёт приведённым методом показывает, что требуется 2 строки. Но при печати отчёта длинное слово в скобках переносится на другую строку и для оставшейся части слова не хватает места. Вопрос: как всё-таки рассчитать правильно или хотя ы как отключить перенос целого слова на другую строку |
|
02.10.2003, 14:33 | #2 |
Участник
|
Мне, вроде, помогал метод ReportTextControl.heightOfWordWrappedString100mm(), который как раз и вычисляет высоту строки, втиснутой в control фиксированной ширины, причем ему все равно, как строка разбита на слова.
Вы не пробовали, или я неправильно понял проблему? |
|
04.10.2003, 15:09 | #3 |
Участник
|
Спасибо, это - то, что надо!
Ещё маленький вопросик по следам событий: могу я как-то задать свойство текста Wrap / UnWrap ? Сергей |
|
06.10.2003, 09:22 | #4 |
Участник
|
Во-первых, прошу прощения, я погорячился по поводу "причем ему все равно, как строка разбита на слова". На самом деле метод, вычисляя высоту Conrolа предполагает, что каждое слово начинается с новой строки. Так что если бы и была возможность задать свовйство в духе Wrap / UnWrap, то упомянутый метод давал бы неверный результат.
По-моему, такое свойство никак не задать (иначе, мне кажется, был бы аналог ReportTextControl.heightOfWordWrappedString100mm() для umwrapped строки). Однако, можно программно разбивать строку на равные по ширине части (правда могут быть проблемы с немоноширинными шрифтами {на крайний случай здесь можно вывернуться с помощью того же ReportTextControl.widthOfString100mm() для проверки ширины кусков} ) и с помощью ReportSection.addTextControl() наделать Controlов одинаковой ширины и с высотой, равной высоте одной строки. Ну и расположить их друг на другом. P.S. Лично мне такой подход кажется слишком уж извратным. Может кто-нибудь подскажет более изящный способ "ручного" разбиения на стороки равной ширины. |
|