Внешние стили в JasperReports

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

23
задан Alex K 18 June 2016 в 11:33
поделиться

3 ответа

Используйте шаблоны JasperReport . Шаблон JasperReports является тем, который заканчивается в .jrtx и может выглядеть подобным этому (styles.jrtx):

<?xml version="1.0"?>
<!DOCTYPE jasperTemplate
  PUBLIC "-//JasperReports//DTD Template//EN"
  "http://jasperreports.sourceforge.net/dtds/jaspertemplate.dtd">

<jasperTemplate>
    <style name="Report Title" isDefault="false" hAlign="Center" fontSize="24" isBold="true"/>
    <style name="Heading 1" isDefault="false" fontSize="18" isBold="true"/>
    <style name="Heading 2" isDefault="false" fontSize="14" isBold="true"/>
</jasperTemplate>

и затем в Вашем .jrxml файл, включайте его как шаблон:

...
<template>"styles.jrtx"</template>
...

iReport также понимает это, таким образом, Ваши стили импортированы и показаны в iReport правильно (хотя я иногда замечал, что это не возьмет их перезагрузка или перекомпилирует, было необходимо).

29
ответ дан Dave Jarvis 29 November 2019 в 01:55
поделиться

Можно также постараться не определять фактическое имя файла в <template>, элемент при помощи параметра передал в отчет во времени выполнения

<parameter name="TEMPLATE_FILE" isForPrompting="false" class="java.lang.String"/>

<template><![CDATA[$P{TEMPLATE_FILE}]]></template>

, где $P {TEMPLATE_FILE} является полным путем к ресурсу стиля

9
ответ дан 29 November 2019 в 01:55
поделиться

Мне нравится делиться своими знаниями об использовании стилей в отчетах Jasper, которые я считаю весьма полезными для таких дизайнеров отчетов, как я, из книги Билала Сиддики под названием JasperReport Development Cookbook. Мне нравится эта книга, и я обнаружил различные способы демонстрации стилей, например:

  • Создание повторно используемого стиля
    Просто выберите «Стиль» при создании нового отчета и определите стиль для текста, линий и прямоугольников. Файл стиля будет сохранен как файл .jrtx.

  • Импортируйте повторно используемый стиль в свой отчет
    При импорте стилей в отчете есть три фрагмента информации. Шаг 1. Имя и расположение шаблона стиля


Шаг 2. Каждый раз, когда вы применяете стиль к элементам отчета с помощью шаблона стиля, создается тег , как показано ниже:

//style applied to a rectangle
<rectangle radius="10">
    <reportElement style="BigBoldRed" mode="Transparent" x="0" y="0" width="555" height="44"/>
</rectangle>
//style applied to a the text field
<staticText>
        <reportElement style="BigBoldRed" x="0" y="0" width="555" height="66"/>
        <textElement textAlignment="Center" verticalAlignment="Middle"/>
        <text><![CDATA[Monthly Customer Invoices]]></text>
</staticText>
  • Смешение внутренних и повторно используемых стилей в отчете
  • Использование возможностей HTML для оформления отчета
    Например, ваше текстовое поле имеет следующее выражение, которое включает теги HTML (например,
  • ), и вы хотите, чтобы теги HTML работали в дизайне вашего отчета:
"< li>"+"Счет № "+$F{ID счета}+", "+

Куплено $F{CustomerName}+" "+$F{ProductName}+" в "+$F{InvoicePeriod}+" (значение счета: \$ "+$F{InvoiceValue}+")"+"

Решение простое, просто установите для свойства «Разметка» текстового поля значение «Стиль» и все.

Я получил разрешение от автора скопировать фрагмент кода из его кулинарной книги JasperReports в этот пост.

5
ответ дан 29 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: