var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>

          jutleo
          歡迎走進有風的地方~~
          posts - 63,  comments - 279,  trackbacks - 0
          jasperReport的這個包net.sf.jasperreports.engine.design 是這樣描述的:Contains design time implementations for the library's main interfaces as well as report compiling tools.因此我們完全可以使用它的API構建自己的報表,還是和前幾篇使用同一個數據庫表。
                  構建JasperDesign對象:
          設置一些對應的屬性:
          // JasperDesign
                  JasperDesign jasperDesign = new JasperDesign();
                  jasperDesign.setName(
          "NoXmlDesignReport"
          );
                  jasperDesign.setPageWidth(
          595
          );
                  jasperDesign.setPageHeight(
          842
          );
                  jasperDesign.setColumnWidth(
          515
          );
                  jasperDesign.setColumnSpacing(
          0
          );
                  jasperDesign.setLeftMargin(
          40
          );
                  jasperDesign.setRightMargin(
          40
          );
                  jasperDesign.setTopMargin(
          50
          );
                  jasperDesign.setBottomMargin(
          50);
          字體:
          // Fonts
                  JRDesignStyle normalStyle = new JRDesignStyle();
                  normalStyle.setName(
          "Arial_Normal");
                  normalStyle.setDefault(
          true);
                  normalStyle.setFontName(
          "Arial");
                  normalStyle.setFontSize(
          12);
                  normalStyle.setPdfFontName(
          "Helvetica");
                  normalStyle.setPdfEncoding(
          "Cp1252");
                  normalStyle.setPdfEmbedded(
          false);
                  jasperDesign.addStyle(normalStyle);

                  JRDesignStyle boldStyle 
          = new JRDesignStyle();
                  boldStyle.setName(
          "Arial_Bold");
                  boldStyle.setFontName(
          "Arial");
                  boldStyle.setFontSize(
          12);
                  boldStyle.setBold(
          true);
                  boldStyle.setPdfFontName(
          "Helvetica-Bold");
                  boldStyle.setPdfEncoding(
          "Cp1252");
                  boldStyle.setPdfEmbedded(
          false);
                  jasperDesign.addStyle(boldStyle);

                  JRDesignStyle italicStyle 
          = new JRDesignStyle();
                  italicStyle.setName(
          "Arial_Italic");
                  italicStyle.setFontName(
          "Arial");
                  italicStyle.setFontSize(
          12);
                  italicStyle.setItalic(
          true);
                  italicStyle.setPdfFontName(
          "Helvetica-Oblique");
                  italicStyle.setPdfEncoding(
          "Cp1252");
                  italicStyle.setPdfEmbedded(
          false);
                  jasperDesign.addStyle(italicStyle);
          定義報表的參數,并添加到報表設計器上
          // Parameters
                  JRDesignParameter parameter = new JRDesignParameter();
                  parameter.setName(
          "ReportTitle");
                  parameter.setValueClass(java.lang.String.
          class);
                  jasperDesign.addParameter(parameter);
          定義報表的字段,這些字段是最終顯示到報表上的域
          // Fields
                  JRDesignField field = new JRDesignField();
                  field.setName(
          "userid");
                  field.setValueClass(java.lang.Integer.
          class);
                  jasperDesign.addField(field);

                  field 
          = new JRDesignField();
                  field.setName(
          "name");
                  field.setValueClass(java.lang.String.
          class);
                  jasperDesign.addField(field);

                  field 
          = new JRDesignField();
                  field.setName(
          "sex");
                  field.setValueClass(java.lang.String.
          class);
                  jasperDesign.addField(field);

                  field 
          = new JRDesignField();
                  field.setName(
          "age");
                  field.setValueClass(java.lang.String.
          class);
                  jasperDesign.addField(field);

                  field 
          = new JRDesignField();
                  field.setName(
          "password");
                  field.setValueClass(java.lang.String.
          class);
                  jasperDesign.addField(field);

                  field 
          = new JRDesignField();
                  field.setName(
          "department");
                  field.setValueClass(java.lang.String.
          class);
                  jasperDesign.addField(field);

                  JRDesignBand band 
          = null;
                  JRDesignTextField textField 
          = null;
                  JRDesignExpression expression 
          = null;

          開始畫報表主體的title部分,不需要的部分可以不用代碼標識出來,title部分放置了報表標題字段,只會出現在第一頁的上方

          // title
                  band = new JRDesignBand();
                  band.setHeight(
          50);
                  textField 
          = new JRDesignTextField();
                  textField.setBlankWhenNull(
          true);
                  textField.setX(
          0);
                  textField.setY(
          10);
                  textField.setWidth(
          500);
                  textField.setHeight(
          30);
                  textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER);
                  textField.setStyle(normalStyle);
                  textField.setFontSize(
          22);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.String.
          class);
                  expression.setText(
          "$P{ReportTitle}");
                  textField.setExpression(expression);
                  band.addElement(textField);
                  jasperDesign.setTitle(band);
          detail部分:排列域的位置,并設置它的值,沒一個域的值會最為一個 JRDesignExpression出現
          // Detail
                  
          // pid
                  band = new JRDesignBand();
                  band.setHeight(
          20);

                  textField 
          = new JRDesignTextField();
                  textField.setX(
          5);
                  textField.setY(
          4);
                  textField.setWidth(
          100);
                  textField.setHeight(
          15);
                  textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT);
                  textField.setStyle(normalStyle);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.Integer.
          class);
                  expression.setText(
          "$F{userid}");
                  textField.setExpression(expression);
                  band.addElement(textField);
                  
          // name
                  textField = new JRDesignTextField();
                  textField.setStretchWithOverflow(
          true);
                  textField.setX(
          120);
                  textField.setY(
          4);
                  textField.setWidth(
          80);
                  textField.setHeight(
          15);
                  textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
                  textField.setStyle(normalStyle);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.String.
          class);
                  expression.setText(
          "$F{name}");
                  textField.setExpression(expression);
                  band.addElement(textField);

                  
          // sex
                  textField = new JRDesignTextField();
                  textField.setStretchWithOverflow(
          true);
                  textField.setX(
          200);
                  textField.setY(
          4);
                  textField.setWidth(
          30);
                  textField.setHeight(
          15);
                  textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
                  textField.setStyle(normalStyle);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.String.
          class);
                  expression.setText(
          "$F{sex}");
                  textField.setExpression(expression);
                  band.addElement(textField);
                  
          // age
                  textField = new JRDesignTextField();
                  textField.setStretchWithOverflow(
          true);
                  textField.setX(
          240);
                  textField.setY(
          4);
                  textField.setWidth(
          30);
                  textField.setHeight(
          15);
                  textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
                  textField.setStyle(normalStyle);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.String.
          class);
                  expression.setText(
          "$F{age}");
                  textField.setExpression(expression);
                  band.addElement(textField);
                  
          // password
                  textField = new JRDesignTextField();
                  textField.setStretchWithOverflow(
          true);
                  textField.setX(
          270);
                  textField.setY(
          4);
                  textField.setWidth(
          80);
                  textField.setHeight(
          15);
                  textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
                  textField.setStyle(normalStyle);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.String.
          class);
                  expression.setText(
          "$F{password}");
                  textField.setExpression(expression);
                  band.addElement(textField);
                  
          // department
                  textField = new JRDesignTextField();
                  textField.setStretchWithOverflow(
          true);
                  textField.setX(
          350);
                  textField.setY(
          4);
                  textField.setWidth(
          80);
                  textField.setHeight(
          15);
                  textField.setPositionType(JRElement.POSITION_TYPE_FLOAT);
                  textField.setStyle(normalStyle);
                  expression 
          = new JRDesignExpression();
                  expression.setValueClass(java.lang.String.
          class);
                  expression.setText(
          "$F{department}");
                  textField.setExpression(expression);
                  band.addElement(textField);
          JasperReport對象可以使用下面這句產生:
          JasperCompileManager.compileReport(jasperDesign);
          至此一個完整的報表就可以顯示出來了。
          posted on 2008-12-16 13:27 凌晨風 閱讀(2355) 評論(2)  編輯  收藏 所屬分類: iReport + JasperReport 系列

          FeedBack:
          # re: iReport+jasperReport之NoXML
          2009-02-17 14:50 | entering
          請問如何動態的增在“Summary”中增加“圖形報表” 呢?
            回復  更多評論
            
          # re: iReport+jasperReport之NoXML
          2009-02-17 15:03 | 凌晨風
          @entering
          圖形報表一般在jasper中是以image 變量的形式出現的,這個和普通字段的設計沒有區別,主要就是構造你的圖形scriplet,再者jasper對jChart圖表支持的很到位,你可以多看看它的文檔尤其iReport生成的jrxml文件結構  回復  更多評論
            

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜宾市| 紫金县| 宁远县| 巨鹿县| 鄂托克旗| 方正县| 连城县| 花垣县| 通渭县| 五原县| 嘉鱼县| 富民县| 南乐县| 上杭县| 张家口市| 大城县| 民勤县| 祁东县| 太康县| 清水河县| 彰化市| 潮州市| 海晏县| 祁东县| 称多县| 鄂尔多斯市| 驻马店市| 米林县| 安平县| 三门县| 阳信县| 新龙县| 板桥市| 靖州| 永清县| 饶河县| 抚松县| 开鲁县| 武清区| 安泽县| 潞西市|