📄 samplereport1.java
字号:
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("<null>");
factory.setFieldname("Country");
items.addElement(factory.createElement());
factory = new TextFieldElementFactory();
factory.setName("Code Element");
factory.setAbsolutePosition(new Point2D.Float(180, 0));
factory.setMinimumSize(new FloatDimension(76, 10));
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setNullString("<null>");
factory.setFieldname("ISO Code");
items.addElement(factory.createElement());
final NumberFieldElementFactory nfactory = new NumberFieldElementFactory();
nfactory.setName("Population Element");
nfactory.setAbsolutePosition(new Point2D.Float(260, 0));
nfactory.setMinimumSize(new FloatDimension(76, 10));
nfactory.setHorizontalAlignment(ElementAlignment.LEFT);
nfactory.setVerticalAlignment(ElementAlignment.MIDDLE);
nfactory.setNullString("<null>");
nfactory.setFieldname("Population");
nfactory.setFormatString("#,##0");
items.addElement(nfactory.createElement());
return items;
}
/**
* Creates the function collection. The xml definition for this construct:
*
<pre>
<functions>
<function name="sum" class="org.jfree.report.function.ItemSumFunction">
<properties>
<property name="field">Population</property>
<property name="group">Continent Group</property>
</properties>
</function>
<function name="backgroundTrigger"
class="org.jfree.report.function.ElementVisibilitySwitchFunction">
<properties>
<property name="element">background</property>
</properties>
</function>
</functions>
</pre>
*
* @return the functions.
*
* @throws FunctionInitializeException if there is a problem initialising the functions.
*/
private ExpressionCollection createFunctions() throws FunctionInitializeException
{
final ExpressionCollection functions = new ExpressionCollection();
final ItemSumFunction sum = new ItemSumFunction();
sum.setName("sum");
sum.setProperty("field", "Population");
sum.setProperty("group", "Continent Group");
functions.add(sum);
final ElementVisibilitySwitchFunction backgroundTrigger = new ElementVisibilitySwitchFunction();
backgroundTrigger.setName("backgroundTrigger");
backgroundTrigger.setProperty("element", "background");
functions.add(backgroundTrigger);
return functions;
}
/**
<pre>
<groups>
... create the groups and add them to the list ...
</groups>
</pre>
*
* @return the groups.
*/
private GroupList createGroups()
{
final GroupList list = new GroupList();
list.add(createContinentGroup());
return list;
}
/**
<pre>
<group name="Continent Group">
<groupheader height="18" fontname="Monospaced" fontstyle="bold" fontsize="9" pagebreak="false">
<label name="Label 5" x="0" y="1" width="76" height="9" alignment="left">CONTINENT:</label>
<string-field name="Continent Element" x="96" y="1" width="76" height="9" alignment="left"
fieldname="Continent"/>
<line name="line1" x1="0" y1="12" x2="0" y2="12" weight="0.5"/>
</groupheader>
<groupfooter height="18" fontname="Monospaced" fontstyle="bold" fontsize="9">
<label name="Label 6" x="0" y="0" width="450" height="12" alignment="left"
baseline="10">Population:</label>
<number-function x="260" y="0" width="76" height="12" alignment="right" baseline="10"
format="#,##0" function="sum"/>
</groupfooter>
<fields>
<field>Continent</field>
</fields>
</group>
</pre>
*
* @return the continent group.
*/
private Group createContinentGroup()
{
final Group continentGroup = new Group();
continentGroup.setName("Continent Group");
continentGroup.addField("Continent");
final GroupHeader header = new GroupHeader();
header.getStyle().setStyleProperty
(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 18));
header.getBandDefaults().setFontDefinitionProperty
(new FontDefinition("Monospaced", 9, true, false, false, false));
LabelElementFactory factory = new LabelElementFactory();
factory.setName("Label 5");
factory.setAbsolutePosition(new Point2D.Float(0, 1));
factory.setMinimumSize(new FloatDimension(76, 9));
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setText("CONTINENT:");
header.addElement(factory.createElement());
final TextFieldElementFactory tfactory = new TextFieldElementFactory();
tfactory.setName("Continent Element");
tfactory.setAbsolutePosition(new Point2D.Float(96, 1));
tfactory.setMinimumSize(new FloatDimension(76, 9));
tfactory.setHorizontalAlignment(ElementAlignment.LEFT);
tfactory.setVerticalAlignment(ElementAlignment.MIDDLE);
tfactory.setNullString("<null>");
tfactory.setFieldname("Continent");
header.addElement(tfactory.createElement());
header.addElement(StaticShapeElementFactory.createLineShapeElement
("line1", null, new BasicStroke(0.5f), new Line2D.Float(0, 12, 0, 12)));
continentGroup.setHeader(header);
final GroupFooter footer = new GroupFooter();
footer.getStyle().setStyleProperty
(ElementStyleSheet.MINIMUMSIZE, new FloatDimension(0, 18));
footer.getBandDefaults().setFontDefinitionProperty
(new FontDefinition("Monospaced", 9, true, false, false, false));
factory = new LabelElementFactory();
factory.setName("Label 6");
factory.setAbsolutePosition(new Point2D.Float(0, 0));
factory.setMinimumSize(new FloatDimension(100, 12));
factory.setHorizontalAlignment(ElementAlignment.LEFT);
factory.setVerticalAlignment(ElementAlignment.MIDDLE);
factory.setText("Population:");
footer.addElement(factory.createElement());
final NumberFieldElementFactory nfactory = new NumberFieldElementFactory();
nfactory.setName("anonymous");
nfactory.setAbsolutePosition(new Point2D.Float(260, 0));
nfactory.setMinimumSize(new FloatDimension(76, 12));
nfactory.setHorizontalAlignment(ElementAlignment.LEFT);
nfactory.setVerticalAlignment(ElementAlignment.MIDDLE);
nfactory.setNullString("<null>");
nfactory.setFieldname("sum");
nfactory.setFormatString("#,##0");
footer.addElement(nfactory.createElement());
continentGroup.setFooter(footer);
return continentGroup;
}
/**
* Creates the report.
*
* @return the constructed report.
*
* @throws FunctionInitializeException if there was a problem initialising any of the functions.
*/
public JFreeReport createReport() throws FunctionInitializeException
{
final JFreeReport report = new JFreeReport();
report.setName("Sample Report 1");
report.setReportFooter(createReportFooter());
report.setReportHeader(createReportHeader());
report.setPageFooter(createPageFooter());
report.setPageHeader(createPageHeader());
report.setGroups(createGroups());
report.setItemBand(createItemBand());
report.setFunctions(createFunctions());
report.setPropertyMarked("report.date", true);
return report;
}
/**
* Default constructor.
*/
public SampleReport1()
{
}
/**
* Runs this report and shows a preview dialog.
*
* @param args the arguments (ignored).
* @throws Exception if an error occurs (default: print a stack trace)
*/
public static void main(final String[] args) throws Exception
{
// initialize JFreeReport
Boot.start();
final JFreeReport report = new SampleReport1().createReport();
report.setData(new SampleData1());
final PreviewDialog dialog = new PreviewDialog(report);
dialog.setModal(true);
dialog.pack();
dialog.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -