2013-11-12 2 views
1

Я думаю, что это более общая проблема. Я хотел бы использовать текстовое поле, которое получает динамические данные и не растягивается больше, чем заданная максимальная высота. Например, у меня есть текстовое поле, которое, если оно получает текст, который вписывается в одну строку, текстовое поле будет одной строкой, и у меня есть другие элементы под ним, которые будут перемещаться с позиционированием по плавающей позиции. Или, если мне нужна максимальная высота 3 строки, и если текст превышает это пространство, тогда остальные будут обрезаны. Я не хочу использовать выражения java для обрезки этого текста, поскольку это не всегда точно. Я новичок в яшме, и я пытаюсь понять, есть ли способ сделать это. Я много раз искал, но, возможно, есть что-то, что я пропустил, и я надеюсь, что кто-то может мне помочь. Спасибоstretch textField до максимальной высоты в отчетах яшмы

+0

Если вы хотите показать только данные из строки, тогда вы должны создать текстовое поле с высотой, в котором будут отображаться только данные n строк и установить 'StretchOverflow' false. – user1791574

+0

@ user1791574, текст динамический .. иногда имеет n строк данных, в других случаях k строк данных, но я хочу, чтобы никогда не растягиваться больше, чем заданные максимальные высоты линии данных. Я не могу установить фиксированную высоту без StretchOverflow. –

+0

Мои данные строки n показывают максимальные данные линии. Внимательно прочитайте. вы должны установить высоту текстового поля. – user1791574

ответ

0

Мне удалось решить эту проблему, расширив net.sf.jasperreports.engine.fill.TextMeasurer и переопределив метод initialize(); также мне пришлось расширить net.sf.jasperreports.engine.util.AbstractTextMeasurerFactory и переопределить метод createMeasurer(). Теперь, когда я хочу иметь максимальное количество строк, без переполнения, я добавляю свойство к этому текстовому полю (например, maxLines), которое передается в мой пользовательский TextMeasurerFactory. Надеюсь, это вам помогло.

Смежные вопросы