package chenjiabin.jasper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JRDesignBand;
import net.sf.jasperreports.engine.design.JRDesignExpression;
import net.sf.jasperreports.engine.design.JRDesignField;
import net.sf.jasperreports.engine.design.JRDesignStaticText;
import net.sf.jasperreports.engine.design.JRDesignSubreport;
import net.sf.jasperreports.engine.design.JRDesignTextField;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class ComponentFactory {
private static JasperDesign defaultDesign = null;
private static JasperDesign componentsDesign = null;
private static JasperDesign itemDesign = null;
private static Map<String, Object> components = new HashMap<String, Object>();
static {
try {
defaultDesign = JRXmlLoader.load("Default.jrxml");
itemDesign = JRXmlLoader.load("Item.jrxml");
componentsDesign = JRXmlLoader.load("Components.jrxml");
} catch (JRException e) {
e.printStackTrace();
}
}
// -----------------------------------createField------------------------------------
public static JRDesignField createField(String field, String className) {
JRDesignField newField = new JRDesignField();
newField.setName(field);
newField.setValueClassName(className);
return newField;
}
// -----------------------------------createBand------------------------------------
public static JRDesignBand createBand(int height) {
JRDesignBand band = new JRDesignBand();
band.setHeight(height);
return band;
}
// -----------------------------------createDesign------------------------------------
public static JasperDesign createDesign() {
JasperDesign design = (JasperDesign) cloneBean(defaultDesign);
return design;
}
public static JasperDesign createTableDesign() {
JasperDesign design = (JasperDesign) cloneBean(itemDesign);
return design;
}
public static JasperDesign createTableDesign(String name) {
JasperDesign design = (JasperDesign) cloneBean(itemDesign);
design.setName(name);
return design;
}
public static JasperDesign createDesign(String name) {
JasperDesign newDesign = createDesign();
newDesign.setName(name);
return newDesign;
}
// -----------------------------------createStaticText------------------------------------
public static JRDesignStaticText createStaticText() {
if (components.containsKey("staticText")) {
return (JRDesignStaticText) cloneBean(components.get("staticText"));
} else {
JRDesignStaticText newStaticText = (JRDesignStaticText) cloneBean(componentsDesign
.getColumnHeader().getElementByKey("staticText"));
components.put("staticText", newStaticText);
return newStaticText;
}
}
public static JRDesignSubreport createSubreport(String subreportExpression,
String dataSourceExpression) {
JRDesignSubreport subreport = null;
if (components.containsKey("subreport")) {
subreport = (JRDesignSubreport) cloneBean(components
.get("subreport"));
return subreport;
} else {
subreport = (JRDesignSubreport) cloneBean(componentsDesign
.getColumnHeader().getElementByKey("subreport"));
components.put("subreport", subreport);
}
if (subreport != null) {
subreport.setExpression(createExpression(subreportExpression,
JasperReport.class));
subreport.setDataSourceExpression(createExpression(
dataSourceExpression, JRDataSource.class));
}
return subreport;
}
public static JRDesignExpression createExpression(String expression) {
JRDesignExpression ex = new JRDesignExpression();
ex.setText("$P{" + expression + "}");
return ex;
}
public static JRDesignExpression createExpression(String expression,
String className) {
JRDesignExpression ex = createExpression(expression);
ex.setValueClassName(className);
return ex;
}
public static JRDesignExpression createExpression(String expression,
Class clazz) {
JRDesignExpression ex = createExpression(expression);
ex.setValueClass(clazz);
return ex;
}
public static JRDesignStaticText createStaticText(String text) {
JRDesignStaticText staticText = createStaticText();
staticText.setText(text);
return staticText;
}
public static JRDesignStaticText createStaticText(String text, Integer x,
Integer y, Integer width, Integer height) {
JRDesignStaticText staticText = createStaticText();
staticText.setText(text);
staticText.setX(x);
staticText.setY(y);
staticText.setWidth(width);
staticText.setHeight(height);
return staticText;
}
public static JRDesignStaticText createStaticText(String text, Integer x,
Integer y) {
JRDesignStaticText staticText = createStaticText();
staticText.setText(text);
staticText.setX(x);
staticText.setY(y);
return staticText;
}
// -----------------------------------createTextField------------------------------------
public static JRDesignTextField createTextField() {
if (components.containsKey("textField")) {
return (JRDesignTextField) cloneBean(components.get("textField"));
} else {
JRDesignTextField newTextField = (JRDesignTextField) cloneBean(componentsDesign
.getColumnHeader().getElementByKey("textField"));
components.put("textField", newTextField);
return newTextField;
}
}
public static JRDesignTextField createTextField(String expression,
String valueClassName) {
JRDesignTextField textField = createTextField();
textField.setExpression(createJRDesignExpression(expression,
valueClassName));
return textField;
}
public static JRDesignTextField createTextField(String expression,
String valueClassName, Integer x, Integer y, Integer width,
Integer height) {
JRDesignTextField textField = createTextField(expression,
valueClassName);
textField.setX(x);
textField.setY(y);
textField.setWidth(width);
textField.setHeight(height);
return textField;
}
public static JRDesignExpression createJRDesignExpression(
String expression, String className) {
JRDesignExpression de = new JRDesignExpression();
de.setText(expression);
de.setValueClassName(className);
return de;
}
// -----------------------------------private method--------------------
private static Object cloneBean(Object object) {
Object newObject = null;
try {
newObject = new DeepClone().deepClone(object);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return newObject;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
JasperReport动态表头及subreport实现多表
共39个文件
jar:14个
class:9个
java:8个
4星 · 超过85%的资源 需积分: 50 140 下载量 150 浏览量
2011-06-28
23:16:28
上传
评论
收藏 16.61MB RAR 举报
温馨提示
使用subreport实现多表分页并动态适应列数,目前还在努力实现中,后续将更新。。。
资源推荐
资源详情
资源评论
收起资源包目录
MouseLibrary.rar (39个子文件)
MouseLibrary
.project 388B
bin
chenjiabin
jasper
ReportFactory.class 5KB
DesignFactory.class 4KB
JRTableColumn.class 3KB
JRTableModel.class 3KB
DeepClone.class 1KB
CustomDataSource.class 4KB
MainFrame$1.class 764B
ComponentFactory.class 7KB
MainFrame.class 4KB
test
chenjiabin
jasper
MainFrame.java 3KB
CustomDataSource.java 4KB
.settings
org.eclipse.core.resources.prefs 88B
org.eclipse.jdt.core.prefs 629B
Components.jrxml 2KB
Default.jrxml 2KB
src
chenjiabin
jasper
ComponentFactory.java 7KB
JRTableModel.java 1KB
DeepClone.java 849B
JRTableColumn.java 2KB
ReportFactory.java 3KB
DesignFactory.java 2KB
Item.jrxml 816B
.classpath 5KB
lib
commons
groovy-all-1.7.5.jar 5.23MB
jcommon-1.0.15.jar 302KB
iText-2.1.7.jar 1.08MB
commons-logging-1.0.4.jar 37KB
commons-javaflow-20060411.jar 94KB
commons-collections-2.1.1.jar 171KB
jdt-compiler-3.1.1.jar 1.16MB
commons-digester-1.7.jar 137KB
commons-beanutils-1.8.0.jar 226KB
jasper
jasperreports-javaflow-4.0.2.jar 3.02MB
jasperreports-applet-4.0.2.jar 449KB
jasperreports-fonts-4.0.2.jar 2.36MB
iText-2.1.7.jar 1.08MB
jasperreports-4.0.2.jar 2.97MB
Components.jasper 28KB
共 39 条
- 1
cjycp888
- 粉丝: 2
- 资源: 37
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页