⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 samplereport1.java

📁 swing编写的库存管理程序。毕业设计类
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * ========================================
 * 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 + -