Я думаю, что это более общая проблема. Я хотел бы использовать текстовое поле, которое получает динамические данные и не растягивается больше заданной максимальной высоты. Например, у меня есть текстовое поле, которое, если оно получает текст, который помещается в одну строку, текстовое поле будет высотой в одну строку, и у меня есть другие элементы под ним, которые будут перемещаться вверх с плавающим позиционированием. Или, если мне нужна максимальная высота в 3 строки, и если текст превышает это пространство, то остальные будут обрезаны. Я не хочу использовать выражения Java для обрезки этого текста, так как он не всегда точен. Я новичок в яшме, и я пытаюсь узнать, есть ли способ сделать это. Я сделал много поисков, но, возможно, я что-то пропустил, и я надеюсь, что кто-то может мне помочь. Спасибо
растянуть текстовое поле до максимальной высоты в отчетах jasper
Ответы (2)
Мне удалось решить эту проблему, расширив net.sf.jasperreports.engine.fill.TextMeasurer и переопределив метод initialize(); также мне пришлось расширить net.sf.jasperreports.engine.util.AbstractTextMeasurerFactory и переопределить метод createMeasurer(). Теперь, когда я хочу иметь максимальное количество строк без переполнения, я добавляю свойство в это текстовое поле (например, maxLines), которое передается в мою пользовательскую TextMeasurerFactory. Я надеюсь, что это помогло вам.
У нас была аналогичная проблема при работе с JASPER Reports 4.5, где у нас был счет с заголовком и таблицей. Мы хотели, чтобы заголовок имел динамическую высоту, основанную на длине определенных полей (например, адрес, имя партнера и т. д.), но не более критического предела, иначе заголовок будет толкать таблицу и, таким образом, создавать беспорядок, разбивая ее по несколько страниц. Также счет-фактура не должен превышать 1 страницу. В конечном итоге нам пришлось переместить заголовок в раздел фона, где мы также поместили фон для таблицы, состоящий из вертикальных линий (чтобы он доходил до конца страницы формата А4) и белого непрозрачного квадрата. Таким образом, если заголовок превышает максимальную высоту, он будет находиться под фоном таблицы, обрезая текст. Это был желаемый эффект, который мы искали. Звучит безумно, но это сработало...
StretchOverflow
false. - person user1791574   schedule 12.11.2013