Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Используйте шаблоны 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 правильно (хотя я иногда замечал, что это не возьмет их перезагрузка или перекомпилирует, было необходимо).
Можно также постараться не определять фактическое имя файла в <template>
, элемент при помощи параметра передал в отчет во времени выполнения
<parameter name="TEMPLATE_FILE" isForPrompting="false" class="java.lang.String"/>
<template><![CDATA[$P{TEMPLATE_FILE}]]></template>
, где $P {TEMPLATE_FILE} является полным путем к ресурсу стиля
Мне нравится делиться своими знаниями об использовании стилей в отчетах 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 работали в дизайне вашего отчета:"< li>"+"Счет № "+$F{ID счета}+", "+
Куплено $F{CustomerName}+" "+$F{ProductName}+" в "+$F{InvoicePeriod}+" (значение счета: \$ "+$F{InvoiceValue}+")"+"
Решение простое, просто установите для свойства «Разметка» текстового поля значение «Стиль» и все.
Я получил разрешение от автора скопировать фрагмент кода из его кулинарной книги JasperReports в этот пост.