JFreeReport:报表解决工具

1、导入jar包

2.使用小例子http://blog.csdn.net/nonetracer/article/details/2056738

 

http://blog.csdn.net/tangleway/article/details/1685830这个较好

但是不论哪个例子都要初始化report

预览窗口生成

 public static final int ROW_HEIGHT = 20;    //报告:行高度
        public static final int HEADER_HEIGHT = 40;    //报告:报头高度
       JFreeReport report = new JFreeReport();    //构造JFreeReport对象
       report.setName("Report Name");
       PageDefinition pd = report.getPageDefinition();    //取得报告页面定义
       float pageWidth = pd.getWidth();    //取得打印材质的页宽
 
       //定义页头
       PageHeader header = new PageHeader();
       LabelElementFactory title = new LabelElementFactory();    //标题元素
       title.setText("统计报表");    //设置文本内容
       title.setColor(Color.BLACK);    //设置颜色
       title.setAbsolutePosition(new Point2D.Float(0, HEADER_HEIGHT));    //设置显示位置
       title.setMinimumSize(new FloatDimension(pageWidth, 36));    //设置尺寸
       title.setHorizontalAlignment(ElementAlignment.LEFT);
       title.setVerticalAlignment(ElementAlignment.MIDDLE);
       title.setDynamicHeight(true);    //设置是否动态调整高度(如果为true,当文本内容超出显示范围时高度自动加长)
       header.addElement(title.createElement());
       report.setPageHeader(header);
 
       String[] columnNames = getColumnNames();    //取得报表数据域的所有列名
 
    if (columnNames != null && columnNames.length > 0) {
          report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));    //绘制表格的横线
           //定义报表头
           ReportHeader reportHeader = new ReportHeader();
        for (int i = 0; i < columnNames.length; i++) {
              //字段名元素
              LabelElementFactory col = new LabelElementFactory();
              col.setName(columnNames[i]);
              col.setColor(Color.BLACK);
              col.setHorizontalAlignment(ElementAlignment.CENTER);
              col.setVerticalAlignment(ElementAlignment.MIDDLE);
              col.setDynamicHeight(true);
              col.setAbsolutePosition(new Point2D.Float((pageWidth
                     / (columnNames.length))
                     * i, 0));
              col.setMinimumSize(new FloatDimension(pageWidth
                     / (columnNames.length), ROW_HEIGHT));    //设置最小尺寸
              col.setBold(true);    //设置是否粗体显示
              col.setText(columnNames[i]);
              reportHeader.addElement(col.createElement());
              reportHeader.addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), col.getAbsolutePosition().getX()));    //元素左侧竖线
              reportHeader.addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));    //元素上方横线
              reportHeader.addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), pageWidth));    //元素右侧竖线
              report.setReportHeader(reportHeader);
              
              //字段内容元素
              TextFieldElementFactory data = new TextFieldElementFactory();
              data.setName(columnNames[i]);
 
              data.setColor(Color.BLACK);
              data.setAbsolutePosition(new Point2D.Float((pageWidth
                     / (columnNames.length))
                     * i, 0));
              data.setMinimumSize(new FloatDimension(pageWidth
                     / (columnNames.length), ROW_HEIGHT));
              data.setHorizontalAlignment(ElementAlignment.CENTER);
 
              data.setVerticalAlignment(ElementAlignment.MIDDLE);
              data.setDynamicHeight(true);
              data.setWrapText(new Boolean(true));
              data.setNullString("-");    //如果字段内容为空,显示的文本
              data.setFieldname(columnNames[i]);
               report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));
              report.getItemBand().addElement(data.createElement());
               report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), -100));
               report.getItemBand().addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), data.getAbsolutePosition().getX()));
               report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));
           }// end for(int i=0;i<columnNames.length;i++)
           
           //最后的竖线
           report.getItemBand().addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), pageWidth));
           
           PageFooter footer = new PageFooter();
           
           //设置页号
           PageOfPagesFunction pageFunction = new PageOfPagesFunction("PAGE_NUMBER");    //构造一个页号函数对象
           pageFunction.setFormat("{0} / {1}页");    //设置页号显示格式(此处显示的格式为“1/5页”)
           report.addExpression(pageFunction);
           
           TextFieldElementFactory pageCount = new TextFieldElementFactory();
           pageCount.setFieldname("PAGE_NUMBER");
           pageCount.setColor(Color.black);
           pageCount.setAbsolutePosition(new Point2D.Float(0, 0));
           pageCount.setMinimumSize(new FloatDimension(pageWidth, 0));
           pageCount.setHorizontalAlignment(ElementAlignment.RIGHT);
           pageCount.setVerticalAlignment(ElementAlignment.MIDDLE);
           pageCount.setDynamicHeight(true);
           footer.addElement(pageCount.createElement());
           report.setPageFooter(footer);
           
           ReportFooter reportFooter = new ReportFooter();
           reportFooter.addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));
           report.setReportFooter(reportFooter);

 

转载于:https://www.cnblogs.com/luffykingsc/archive/2013/04/17/3025958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值