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

          jutleo
          歡迎走進(jìn)有風(fēng)的地方~~
          posts - 63,  comments - 279,  trackbacks - 0
          jasperReport的這個(gè)包net.sf.jasperreports.engine.design 是這樣描述的:Contains design time implementations for the library's main interfaces as well as report compiling tools.因此我們完全可以使用它的API構(gòu)建自己的報(bào)表,還是和前幾篇使用同一個(gè)數(shù)據(jù)庫表。
                  構(gòu)建JasperDesign對(duì)象:
          設(shè)置一些對(duì)應(yīng)的屬性:
          // 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);
          定義報(bào)表的參數(shù),并添加到報(bào)表設(shè)計(jì)器上
          // Parameters
                  JRDesignParameter parameter = new JRDesignParameter();
                  parameter.setName(
          "ReportTitle");
                  parameter.setValueClass(java.lang.String.
          class);
                  jasperDesign.addParameter(parameter);
          定義報(bào)表的字段,這些字段是最終顯示到報(bào)表上的域
          // 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;

          開始畫報(bào)表主體的title部分,不需要的部分可以不用代碼標(biāo)識(shí)出來,title部分放置了報(bào)表標(biāo)題字段,只會(huì)出現(xiàn)在第一頁的上方

          // 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部分:排列域的位置,并設(shè)置它的值,沒一個(gè)域的值會(huì)最為一個(gè) JRDesignExpression出現(xiàn)
          // 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對(duì)象可以使用下面這句產(chǎn)生:
          JasperCompileManager.compileReport(jasperDesign);
          至此一個(gè)完整的報(bào)表就可以顯示出來了。
          posted on 2008-12-16 13:27 凌晨風(fēng) 閱讀(2363) 評(píng)論(2)  編輯  收藏 所屬分類: iReport + JasperReport 系列

          FeedBack:
          # re: iReport+jasperReport之NoXML
          2009-02-17 14:50 | entering
          請(qǐng)問如何動(dòng)態(tài)的增在“Summary”中增加“圖形報(bào)表” 呢?
            回復(fù)  更多評(píng)論
            
          # re: iReport+jasperReport之NoXML
          2009-02-17 15:03 | 凌晨風(fēng)
          @entering
          圖形報(bào)表一般在jasper中是以image 變量的形式出現(xiàn)的,這個(gè)和普通字段的設(shè)計(jì)沒有區(qū)別,主要就是構(gòu)造你的圖形scriplet,再者jasper對(duì)jChart圖表支持的很到位,你可以多看看它的文檔尤其iReport生成的jrxml文件結(jié)構(gòu)  回復(fù)  更多評(píng)論
            

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

          常用鏈接

          留言簿(11)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 灵石县| 浦北县| 思南县| 安福县| 郸城县| 安平县| 龙胜| 淮阳县| 额敏县| 昌都县| 开封市| 通化市| 莱州市| 蒲城县| 玉龙| 梁河县| 辽阳市| 治县。| 兰西县| 钟山县| 漯河市| 沙坪坝区| 玉林市| 阳谷县| 台安县| 都昌县| 德安县| 白沙| 湘潭县| 土默特左旗| 菏泽市| 涿州市| 资中县| 宁化县| 岚皋县| 临西县| 蓬莱市| 涪陵区| 同德县| 满洲里市| 盐亭县|