%>
*******************************************************************************
*************************处理自动创建JASPER文件的BEAN********************* package com.paiao.bdpm.system;
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.*; import net.sf.jasperreports.engine.design.*; import net.sf.jasperreports.engine.export.*; import net.sf.jasperreports.engine.util.*; import java.sql.*; import java.awt.*; import java.util.*; import java.io.*;
import com.paiao.app.util.ColumnList;
import com.paiao.app.util.ColumnStructure; /**
* @version $Id: NoXmlDesignApp.java,v 1.10 2005/09/26 05:47:37 lihui Exp $ */
public class NoXmlDesignApp { private static final String TASK_COMPILE = \
String taskName = \try {
long start = System.currentTimeMillis();
if (TASK_COMPILE.equals(taskName) && !filePath.equals(\
NoXmlDesignApp design = new NoXmlDesignApp(); JasperDesign jasperDesign = design.getJasperDesign(jlflbh); JasperCompileManager
.compileReportToFile(jasperDesign, filePath);
System.err.println(\
private static final String TASK_WRITE_XML = \
public static void run(String filePath, String jlflbh) { // filePath = // \李辉工作夹\\\\pmproject\\\\coding\\\\defaultroot\\\\reports\\\\test1.jasper\
+ (System.currentTimeMillis() - start));
} else if (TASK_WRITE_XML.equals(taskName)) { JasperCompileManager.writeReportToXmlFile(filePath);
}
System.err.println(\
+ (System.currentTimeMillis() - start)); }
} catch (JRException e) { e.printStackTrace(); } catch (Exception e) { }
e.printStackTrace();
private JasperDesign getJasperDesign(String jlflbh) throws JRException {
Reportjiexiguize bean = new Reportjiexiguize();
ColumnList list = bean.getTableCloumnName(jlflbh); int counttext = 0;
for (int i = 0; i < list.size(); i++) { }
int TextWidth = ((760 - 88) / list.size() - 8) + 40; int ptwidth = 0;
if (list.size() != counttext) { ptwidth = (760 - 96 - TextWidth * counttext) }
/ (list.size() - counttext);
ColumnStructure cloumn = list.get(i);
if (cloumn.getDataType().equalsIgnoreCase(\ System.out.println(\ }
counttext++;
// JasperDesign
JasperDesign jasperDesign = new JasperDesign(); jasperDesign.setName(\jasperDesign.setPageWidth(840); jasperDesign.setPageHeight(842); jasperDesign.setColumnWidth(515); jasperDesign.setColumnSpacing(0); jasperDesign.setLeftMargin(40); jasperDesign.setRightMargin(40); jasperDesign.setTopMargin(50); jasperDesign.setBottomMargin(50); // 自定义Fonts用于列名处的
JRDesignReportFont normalFont = new JRDesignReportFont(); normalFont.setName(\
normalFont.setDefault(false);
normalFont.setFontName(\宋体\
normalFont.setSize(12);
normalFont.setPdfEmbedded(true);
normalFont.setPdfFontName(\normalFont.setPdfEncoding(\
jasperDesign.addFont(normalFont); // 用于字段植的字体
JRDesignReportFont boldFont = new JRDesignReportFont(); boldFont.setName(\boldFont.setDefault(false);
boldFont.setFontName(\宋体\boldFont.setSize(10); boldFont.setBold(true);
boldFont.setPdfFontName(\boldFont.setPdfEncoding(\boldFont.setPdfEmbedded(true); jasperDesign.addFont(boldFont); // Parameters报表头的参数
JRDesignParameter parameter = new JRDesignParameter(); parameter.setName(\parameter.setValueClass(java.lang.String.class); jasperDesign.addParameter(parameter); parameter = new JRDesignParameter(); parameter.setName(\
parameter.setValueClass(java.lang.String.class); jasperDesign.addParameter(parameter); // Query放在JASPER里面的SQL语句 JRDesignQuery query = new JRDesignQuery(); query.setText(\jasperDesign.setQuery(query);
NoXmlDesignApp nxml = new NoXmlDesignApp(); JRDesignField field = new JRDesignField(); field.setName(\
field.setValueClass(java.lang.String.class); jasperDesign.addField(field);
JRDesignExpression expression = new JRDesignExpression(); JRDesignBand band = new JRDesignBand();
JRDesignTextField textField = new JRDesignTextField();
JRDesignLine line = new JRDesignLine();
JRDesignStaticText staticText = new JRDesignStaticText(); // Title表头
band = new JRDesignBand(); band.setHeight(45); line = new JRDesignLine(); line.setX(0); line.setY(4); line.setWidth(760); line.setHeight(0);
band.addElement(line);
textField = new JRDesignTextField(); textField.setBlankWhenNull(true); textField.setX(0); textField.setY(5);
textField.setWidth(760); textField.setHeight(30);
textField.setTextAlignment(JRTextElement.TEXT_ALIGN_CENTER); JRDesignReportFont bigFont = new JRDesignReportFont(); bigFont.setName(\bigFont.setDefault(true);
bigFont.setFontName(\宋体\
bigFont.setSize(22);
bigFont.setPdfFontName(\bigFont.setPdfEncoding(\bigFont.setPdfEmbedded(false);
textField.setFont(bigFont);
expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText(\textField.setExpression(expression); band.addElement(textField); line = new JRDesignLine(); line.setX(0); line.setY(36); line.setWidth(760); line.setHeight(0);
band.addElement(line); jasperDesign.setTitle(band); // Page header列名 band = new JRDesignBand(); band.setHeight(26);
int j = 88;
for (int i = 0; i < list.size(); i++) { ColumnStructure cs = list.get(i); field = new JRDesignField(); field.setName(cs.getName()); }
staticText = new JRDesignStaticText(); staticText.setX(0); staticText.setY(4); staticText.setWidth(80); staticText.setHeight(15);
staticText.setForecolor(Color.BLACK);
staticText.setBackcolor(new Color(255, 255, 255)); staticText.setMode(JRElement.MODE_OPAQUE); staticText.setFont(normalFont); staticText.setText(\变电站\band.addElement(staticText); line = new JRDesignLine(); line.setX(0); line.setY(25);
field.setValueClass(java.lang.String.class); // 这里有问题 jasperDesign.addField(field);
staticText = new JRDesignStaticText(); staticText.setX(j); staticText.setY(4);
if (cs.getDataType().equalsIgnoreCase(\ j = j + (TextWidth - ptwidth) + 8; staticText.setWidth(TextWidth); } else {
staticText.setWidth(ptwidth); }
staticText.setHeight(15);
staticText.setForecolor(Color.BLACK);
staticText.setBackcolor(new Color(255, 255, 255));
staticText.setMode(JRElement.MODE_OPAQUE);
staticText.setTextAlignment(JRTextElement.TEXT_ALIGN_LEFT); staticText.setFont(normalFont); staticText.setText(cs.getTitle()); band.addElement(staticText); j = j + ptwidth;