📄 samplereport1.java
字号:
/**
* ========================================
* JFreeReport : a free Java report library
* ========================================
*
* Project Info: http://www.jfree.org/jfreereport/index.html
* Project Lead: Thomas Morgner;
*
* (C) Copyright 2000-2003, by Simba Management Limited and Contributors.
*
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation;
* either version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*
* ------------------
* SampleReport1.java
* ------------------
* (C)opyright 2000-2003, by Thomas Morgner and Contributors.
*
* Original Author: Thomas Morgner;
* Contributor(s): David Gilbert (for Simba Management Limited);
*
* $Id: SampleReport1.java,v 1.8 2003/11/07 18:33:48 taqua Exp $
*
* Changes:
* --------
* 19-Jun-2002 : Initial version
* 28-Nov-2002 : Added vertical alignment parameter (DG);
* 10-Dec-2002 : Minor Javadoc changes (DG);
*
*/
package org.jfree.report.demo;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import org.jfree.report.Boot;
import org.jfree.report.ElementAlignment;
import org.jfree.report.Group;
import org.jfree.report.GroupFooter;
import org.jfree.report.GroupHeader;
import org.jfree.report.GroupList;
import org.jfree.report.ItemBand;
import org.jfree.report.JFreeReport;
import org.jfree.report.PageFooter;
import org.jfree.report.PageHeader;
import org.jfree.report.ReportFooter;
import org.jfree.report.ReportHeader;
import org.jfree.report.elementfactory.DateFieldElementFactory;
import org.jfree.report.elementfactory.LabelElementFactory;
import org.jfree.report.elementfactory.NumberFieldElementFactory;
import org.jfree.report.elementfactory.StaticShapeElementFactory;
import org.jfree.report.elementfactory.TextFieldElementFactory;
import org.jfree.report.function.ElementVisibilitySwitchFunction;
import org.jfree.report.function.ExpressionCollection;
import org.jfree.report.function.FunctionInitializeException;
import org.jfree.report.function.ItemSumFunction;
import org.jfree.report.modules.gui.base.PreviewDialog;
import org.jfree.report.style.ElementStyleSheet;
import org.jfree.report.style.FontDefinition;
import org.jfree.ui.FloatDimension;
/**
* This creates a report similar to the one defined by report1.xml.
*
* @author Thomas Morgner
*/
public class SampleReport1
{
/**
* Creates the page header.
*
* @return the page header.
*/
private PageHeader createPageHeader()
{
final PageHeader header = new PageHeader();
header.getStyle().setStyleProperty(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 18));
header.getBandDefaults().setFontDefinitionProperty(new FontDefinition("Serif", 10));
header.setDisplayOnFirstPage(true);
header.setDisplayOnLastPage(false);
// is by default true, but it is defined in the xml template, so I add it here too.
header.addElement(
StaticShapeElementFactory.createRectangleShapeElement(
null, Color.decode("#AFAFAF"), null,
new Rectangle2D.Float(0, 0, -100, -100),
false, true)
);
final DateFieldElementFactory factory = new DateFieldElementFactory();
factory.setName("date1");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 14));
factory.setHorizontalAlignment(ElementAlignment.RIGHT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("<null>");
factory.setFormatString("d-MMM-yyyy");
factory.setFieldname("report.date");
header.addElement(factory.createElement());
header.addElement(
StaticShapeElementFactory.createLineShapeElement(
"line1", Color.decode("#CFCFCF"),
new BasicStroke(2), new Line2D.Float(0, 16, 0, 16))
);
return header;
}
/**
* Creates a page footer.
*
* @return The page footer.
*/
private PageFooter createPageFooter()
{
final PageFooter pageFooter = new PageFooter();
pageFooter.getStyle().setStyleProperty
(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 30));
pageFooter.getBandDefaults().setFontDefinitionProperty(new FontDefinition("Dialog", 10));
pageFooter.addElement(StaticShapeElementFactory.createRectangleShapeElement
(null, Color.black, null, new Rectangle2D.Float(0, 0, -100, -100), true, false));
final LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 2");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 0));
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.TOP);
factory.setText("Some Text for the page footer");
factory.setDynamicHeight(Boolean.TRUE);
pageFooter.addElement(factory.createElement());
return pageFooter;
}
/**
* Creates the report footer.
*
* @return the report footer.
*/
private ReportFooter createReportFooter()
{
final ReportFooter footer = new ReportFooter();
footer.getStyle().setStyleProperty
(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 48));
footer.getBandDefaults().setFontDefinitionProperty
(new FontDefinition("Serif", 16, true, false, false, false));
final LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 2");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 24));
factory.setHorizontalAlignment(ElementAlignment.CENTER);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setText("*** END OF REPORT ***");
footer.addElement(factory.createElement());
return footer;
}
/**
* Creates the report header.
*
* @return the report header.
*/
private ReportHeader createReportHeader()
{
final ReportHeader header = new ReportHeader();
header.getStyle().setStyleProperty
(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 48));
header.getBandDefaults().setFontDefinitionProperty
(new FontDefinition("Serif", 20, true, false, false, false));
final LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 1");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(-100, 24));
factory.setHorizontalAlignment(ElementAlignment.CENTER);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setText("LIST OF CONTINENTS BY COUNTRY");
header.addElement(factory.createElement());
return header;
}
/**
* Creates the itemBand.
*
* @return the item band.
*/
private ItemBand createItemBand()
{
final ItemBand items = new ItemBand();
items.getStyle().setStyleProperty
(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 10));
items.getBandDefaults().setFontDefinitionProperty
(new FontDefinition("Monospaced", 10));
items.addElement(StaticShapeElementFactory.createRectangleShapeElement
("background", Color.decode("#DFDFDF"), new BasicStroke(0),
new Rectangle2D.Float(0, 0, -100, -100), false, true));
items.addElement(StaticShapeElementFactory.createLineShapeElement
("top", Color.decode("#DFDFDF"), new BasicStroke(0.1f),
new Line2D.Float(0, 0, 0, 0)));
items.addElement(StaticShapeElementFactory.createLineShapeElement
("bottom", Color.decode("#DFDFDF"), new BasicStroke(0.1f),
new Line2D.Float(0, 10, 0, 10)));
TextFieldElementFactory factory = new TextFieldElementFactory();
factory.setName("Country Element");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(176, 10));
factory.setHorizontalAlignment(ElementAlignment.LEFT);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -