亚洲AV成人无码天堂,中文字幕无码精品亚洲资源网,国产成人综合亚洲绿色http://www.tkk7.com/vjame/優化代碼是無止境的zh-cnSun, 11 May 2025 13:11:09 GMTSun, 11 May 2025 13:11:09 GMT60ireport 取消自動分頁,detail不分頁 http://www.tkk7.com/vjame/archive/2013/10/18/405409.htmllanjhlanjhFri, 18 Oct 2013 08:16:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/18/405409.htmlhttp://www.tkk7.com/vjame/comments/405409.htmlhttp://www.tkk7.com/vjame/archive/2013/10/18/405409.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405409.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405409.html報表文件屬性頁面

lgnore pagination 勾選上,就可以取消分頁功能。






lanjh 2013-10-18 16:16 發表評論
]]>
JasperReports學習筆記7-applet打印http://www.tkk7.com/vjame/archive/2013/10/15/405016.htmllanjhlanjhTue, 15 Oct 2013 08:45:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/15/405016.htmlhttp://www.tkk7.com/vjame/comments/405016.htmlhttp://www.tkk7.com/vjame/archive/2013/10/15/405016.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405016.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405016.html 打包applet的class和所需的jar包,并加上數字簽名

 

要運行打印的applet需要jasperreports-x.x.x-applet.jar,可以用winrar直接解壓縮了,
然后把applet編輯后的class和解壓縮后的文件放在同一個目錄(比如temp),
在命令提示符中輸入 jar 命令打成一個包,例如:jar -cvf stengReport1Applet.jar *
接著開始做數字簽名:

  (1)生成證書: keytool -genkey -alias printkey -dname "CN=stsoft, OU=stsoft, O=stsoft, L=nc, ST=nc, C=cn" -keystore printstore -keypass supervise -storepass supervise -validity 3650
  默認的簽名只有半年的有效期,這里我們用-validity參數設定為10年的有效期
  (2)導出證書: keytool -export -keystore printstore -alias printkey -file print.cer -storepass supervise
  (3)對jar包簽名:
 jarsigner -keystore printstore stengReport1Applet.jar printkey
 jarsigner -keystore printstore commons-collections-2.1.1.jar printkey
 jarsigner -keystore printstore commons-digester-2.1.jar printkey
 jarsigner -keystore printstore commons-logging-1.1.1.jar printkey
 jarsigner -keystore printstore jasperreports-5.2.0.jar printkey
 jarsigner -keystore printstore jasperreports-applet-5.2.0.jar printkey
 jarsigner -keystore printstore jasperreports-fonts-5.2.0.jar printkey
  jarsigner -keystore printstore jasperreports-javaflow-5.2.0.jar printkey

現在在temp下已經有了一個stengReport1Applet.jar和一個print.cer,把這兩個文件拷貝回項目中,記得還是放在同一個目錄下


運行demo示例中的jasper-webapp,訪問print.html和內嵌式viewer.html









 



lanjh 2013-10-15 16:45 發表評論
]]>
JasperReports學習筆記6-jasperreports和ssh工程整合http://www.tkk7.com/vjame/archive/2013/10/15/405015.htmllanjhlanjhTue, 15 Oct 2013 08:42:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/15/405015.htmlhttp://www.tkk7.com/vjame/comments/405015.htmlhttp://www.tkk7.com/vjame/archive/2013/10/15/405015.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405015.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405015.html一、導入jasperreport相關jar包,這里采用當前比較穩定的5.2版本
--------------------------------------------------------------------------
 jasperreports-5.2.0.jar
 jasperreports-applet-5.2.0.jar
 jasperreports-fonts-5.2.0.jar
 jasperreports-javaflow-5.2.0.jar
 
 其他jar包:
   groovy-all-2.0.1.jar: 將.jrxml編譯成.jasper.如果你不使用java編譯,而使用ireport工具編譯則無須導入該包
   iText-2.1.7.jar: 生成pdf所依賴的包
   iTextAsian.jar:  支持pdf中文字體依賴的包
   poi-3.7.jar:  導出excel時候用
   commons-collections-2.1.1.jar
   commons-digester-2.1.jar:  解析.jrxml
   commons-logging-1.1.1.jar
   poi-3.7-20101029.jar: 生成excel報表所依賴的jar
  
   圖形展現jfreechart相關jar包:
   jfreechart-1.0.12.jar
   jcommon-1.0.15.jar

二、jasperreports與struts2集成,則要導入struts2的jasperreports插件,可從http://mvnrepository.com/獲取
------------------------------------------------------------------------------------------------------------------------------------
 struts2-jasperreports-plugin-2.2.3.jar
 
 location 是指我們剛才用iReport編譯生成的jasper文件
 dataSource 是指我們執行的數據庫查詢結果,JavaBean , List
 format 是指需要輸出的類型,默認是PDF,其他的輸出類型有:XML、HTML、XLS、CSV、RTF ,注意這里一定要大寫
 除了這幾個參數,還有下列參數:
 delimiter 是指如果輸出類型為CSV的話,指定分割符,默認為“,”
 parse 是指是否解析location參數中的EL表達式,默認為 true
 contentDisposition 指定disposition,默認為“inline”,如果設為“attachment”就是強制下載
 documentName 輸出的文件名
 format 格式,默認為“PDF”,其他的有:CSV、HTML、RTF、XLS、XML
 imageServletUrl 生成圖形的路徑

三、struts.xml配置
------------------------
struts2中的需繼承jasperreports-default命名空間

  <package name=“default” extends="struts-default, jasperreports-default">
  <!-- 報表輸出Action -->
  <action name="JR_*_*" class="jasperReportAction">
      <result name="success" type="jasper">
          <param name="location">/reports/{1}.jasper</param>               
          <param name="connection">connection</param>
   <param name="format">{2}</param>
   <param name="documentName">{1}</param>
   <param name="reportParameters">para</param>
   <param name="imageServletUrl"><![CDATA[/image?image=]]></param>
      </result>
  </action>
 </package>

 location - 提供利用iReport制作編譯好的報表文件。
     dataSource - 數據源
     format - 報表輸出格式
    reportParameters - 報表參數

 

四、web.xml配置
---------------------
 報表生成html需配置/image

<!-- jasperreports報表的配置 start -->
  <servlet>
     <servlet-name>JasperReportImageServlet</servlet-name> 
       <servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class> 
  </servlet> 
  <servlet-mapping>
     <servlet-name>JasperReportImageServlet</servlet-name>
     <url-pattern>/image</url-pattern>
 </servlet-mapping>

<!-- jasperreports報表的配置 end -->




lanjh 2013-10-15 16:42 發表評論
]]>
JasperReports學習筆記5-其它數據生成動態的報表(WEB) http://www.tkk7.com/vjame/archive/2013/10/15/405012.htmllanjhlanjhTue, 15 Oct 2013 08:07:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/15/405012.htmlhttp://www.tkk7.com/vjame/comments/405012.htmlhttp://www.tkk7.com/vjame/archive/2013/10/15/405012.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405012.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405012.html
一、空數據(Empty Datasources)
就是說JRXML文件里面的內容都是靜態的,直接使用
JREmptyDataSource就行了
JasperRunManager.runReportToPdfStream(reportStream,  
servletOutputStream, new HashMap(), new JREmptyDataSource());

二、Map數組(Map Datasources)
有的時候數據不一定要從數據庫里面來,還有可能從Map數組里面來成生Map[]的方法

private Map[] initializeMapArray()
{
//你可以把數組里面的每個map看成一個對象,就相于數據庫里面的每個字段
HashMap[] reportRows = new HashMap[4];
HashMap row1Map = new HashMap();
HashMap row2Map = new HashMap();
HashMap row3Map = new HashMap();
HashMap row4Map = new HashMap();
row1Map.put("tail_num", "N263Y");
row1Map.put("aircraft_serial", "T-11");
row1Map.put("aircraft_model", "39 ROSCOE TRNR RACER");
row1Map.put("engine_model", "R1830 SERIES");
row2Map.put("tail_num", "N4087X");
row2Map.put("aircraft_serial", "BA100-163");
row2Map.put("aircraft_model", "BRADLEY AEROBAT");
row2Map.put("engine_model", "R2800 SERIES");
row3Map.put("tail_num", "N43JE");
row3Map.put("aircraft_serial", "HAYABUSA 1");
row3Map.put("aircraft_model", "NAKAJIMA KI-43 IIIA");
row3Map.put("engine_model", "R1830 SERIES");
row4Map.put("tail_num", "N912S");
row4Map.put("aircraft_serial", "9973CC");
row4Map.put("aircraft_model", "PA18-150");
row4Map.put("engine_model", "R-1820 SER");
reportRows[0] = row1Map;
reportRows[1] = row2Map;
reportRows[2] = row3Map;
reportRows[3] = row4Map;
return reportRows;
}


生成JRMapArrayDataSource對象
private JRDataSource createReportDataSource()  
{  
JRMapArrayDataSource dataSource;  
Map[] reportRows = initializeMapArray();  
dataSource = new JRMapArrayDataSource(reportRows);  
return dataSource;  
}


三、Map集合
 
private JRDataSource createReportDataSource()
{
JRMapCollectionDataSource dataSource;
Collection reportRows = initializeMapCollection();
dataSource = new JRMapCollectionDataSource(reportRows);
return dataSource;
}
private Collection initializeMapCollection()
{
ArrayList reportRows = new ArrayList();
HashMap row1Map = new HashMap();
HashMap row2Map = new HashMap();
HashMap row3Map = new HashMap();
HashMap row4Map = new HashMap();
row1Map.put("tail_num", "N263Y");
row1Map.put("aircraft_serial", "T-11");
row1Map.put("aircraft_model", "39 ROSCOE TRNR RACER");
row1Map.put("engine_model", "R1830 SERIES");
row2Map.put("tail_num", "N4087X");
row2Map.put("aircraft_serial", "BA100-163");
row2Map.put("aircraft_model", "BRADLEY AEROBAT");
row2Map.put("engine_model", "R2800 SERIES");
row3Map.put("tail_num", "N43JE");
row3Map.put("aircraft_serial", "HAYABUSA 1");
row3Map.put("aircraft_model", "NAKAJIMA KI-43 IIIA");
row3Map.put("engine_model", "R1830 SERIES");
row4Map.put("tail_num", "N912S");
row4Map.put("aircraft_serial", "9973CC");
row4Map.put("aircraft_model", "PA18-150");
row4Map.put("engine_model", "R-1820 SER");
reportRows.add(row1Map);
reportRows.add(row2Map);
reportRows.add(row3Map);
reportRows.add(row4Map);
return reportRows;
}


JRDataSource dataSource = createReportDataSource();  
JasperRunManager.runReportToPdfStream(reportStream,  
servletOutputStream, new HashMap(), dataSource); 



四、對象數組(Java Objects as Datasources)對象JAVABEAN

private JRDataSource createReportDataSource()
{
JRBeanArrayDataSource dataSource;
AircraftData[] reportRows = initializeBeanArray();
dataSource = new JRBeanArrayDataSource(reportRows);
return dataSource;
}

private AircraftData[] initializeBeanArray()
{
AircraftData[] reportRows = new AircraftData[4];
reportRows[0] = new AircraftData("N263Y", "T-11", "39 ROSCOE TRNR
RACER", "R1830 SERIES");
reportRows[1] = new AircraftData("N4087X", "BA100-163", "BRADLEY
AEROBAT", "R2800 SERIES");
reportRows[2] = new AircraftData("N43JE", "HAYABUSA 1", "NAKAJIMA
KI-43 IIIA", "R1830 SERIES");
reportRows[3] = new AircraftData("N912S", "9973CC", "PA18-150",
"R-1820 SER");
return reportRows;
}

//最后servlet里面調用
JRDataSource dataSource = createReportDataSource();
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), dataSource);



五、對象集合
和對象數組基本上一樣,就是最后生成的是JRBeanCollectionDataSource

private JRDataSource createReportDataSource()
{
JRBeanCollectionDataSource dataSource;
Collection reportRows = initializeBeanCollection();
dataSource = new JRBeanCollectionDataSource(reportRows);
return dataSource;
}

JRDataSource dataSource = createReportDataSource();
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream, new HashMap(), dataSource);



六、XML數據成生報表(XML as Datasource)

JRXmlDataSource xmlDataSource = new JRXmlDataSource(
new BufferedInputStream(getServletConfig().getServletContext()
.getResourceAsStream("/reports/AircraftData.xml")),
"/AircraftData/aircraft");


七、json數據源

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

        Map
<String, Object> row1 = new HashMap<String, Object>();
        Map
<String, Object> row2 = new HashMap<String, Object>();

        Map
<String, Object> row = new HashMap<String, Object>();
        row.put(
"field1""001");
        row.put(
"field2""張三");
        row.put(
"field3""中國上海");
        row.put(
"field4""field4");
        row.put(
"field5""field5");
        list.add(row);
        row 
= new HashMap<String, Object>();
        row.put(
"field1""002");
        row.put(
"field2""李四");
        row.put(
"field3""中國杭州");
        row.put(
"field4""field4");
        row.put(
"field5""field5");
        list.add(row);
        row 
= new HashMap<String, Object>();
        row.put(
"field1""003");
        row.put(
"field2""王五");
        row.put(
"field3""中國南昌");
        row.put(
"field4""field4");
        row.put(
"field5""field5");
        list.add(row);

        row2.put(
"uAnswer", list);
        row1.put(
"qNaire", row2);

        JSONObject jsonObject 
= JSONObject.fromObject(row1);
        String json 
= jsonObject.toString();

        Map
<String, Object> jasperPara = new HashMap<String, Object>();
        jasperPara.put(
"TITLE""json數據報表演示樣例(20131012)");
        InputStream is 
= new ByteArrayInputStream(json.getBytes());
        jasperPara.put(
"JSON_INPUT_STREAM", is);
        jasperPara.put(JsonQueryExecuterFactory.JSON_LOCALE, Locale.CHINA);
        jasperPara.put(JRParameter.REPORT_LOCALE, Locale.CHINA);

 


json數據
    {"qNaire"{
          
"uAnswer": [
            
{
              
"field1""001",    
              
"field2""張三",    
              
"field3""中國上海",    
              
"field4""field4",
              
"field5""field5",
            }
,
            
{
              
"field1""002",
              
"field2""李四",
              
"field3""中國杭州",
              
"field4""field4",
              
"field5""field5",
            }
,
            
{
              
"field1""003",
              
"field2""王五",
              
"field3""中國南昌",
              
"field4""field4",
              
"field5""field5",
          }

          ]
        }
}


ireport配置截圖:


















lanjh 2013-10-15 16:07 發表評論
]]>
JasperReports學習筆記4-查詢數據庫生成動態的報表(WEB)http://www.tkk7.com/vjame/archive/2013/10/15/405010.htmllanjhlanjhTue, 15 Oct 2013 07:52:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/15/405010.htmlhttp://www.tkk7.com/vjame/comments/405010.htmlhttp://www.tkk7.com/vjame/archive/2013/10/15/405010.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405010.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405010.html第一種方式:

sql語句中定義查詢條件,報表中定義接收參數


第二種方式:

JRXML文件里面不用寫SQL語句,而是將結果集查詢出來經過JRResultSetDataSource轉換
 
 1 
 2 import java.io.IOException;
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 import java.util.HashMap;
10 
11 import javax.servlet.ServletException;
12 import javax.servlet.ServletOutputStream;
13 import javax.servlet.http.HttpServlet;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16 
17 import net.sf.jasperreports.engine.JRException;
18 import net.sf.jasperreports.engine.JRResultSetDataSource;
19 import net.sf.jasperreports.engine.JasperRunManager;
20 
21 public class DynamicCreateReportWithServletDateSource extends HttpServlet {
22 
23     private static final long serialVersionUID = 1L;
24 
25     public void doGet(HttpServletRequest request, HttpServletResponse response)
26             throws ServletException, IOException {
27         Connection connection = null;
28         Statement statument = null;
29         ResultSet resultSet = null;
30         String sql = "select tb.name as name,tb.age as age,tbs.marks as marks from jaspertb tb join jaspertbs tbs";
31         ServletOutputStream servletOutputStream = response.getOutputStream();
32         InputStream is = getServletConfig().getServletContext().getResourceAsStream("report\\JasperReportSQLResult.jasper");
33         try {
34             Class.forName("com.mysql.jdbc.Driver");
35             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jasperreportdb","root""root");
36             statument = connection.createStatement();
37             resultSet = statument.executeQuery(sql);
38             //這里把ResultSet封裝到JRResultSetDataSource對象里面了
39             JasperRunManager.runReportToPdfStream(is,servletOutputStream,new HashMap(), new JRResultSetDataSource(resultSet));
40             response.setContentType("application/pdf");
41             servletOutputStream.flush();
42             servletOutputStream.close();
43             connection.close();
44         } catch (ClassNotFoundException e) {
45             e.printStackTrace();
46         } catch (SQLException e) {
47             e.printStackTrace();
48         } catch (JRException e) {
49             e.printStackTrace();
50         }
51     }
52 
53     public void doPost(HttpServletRequest request, HttpServletResponse response)
54             throws ServletException, IOException {
55         this.doGet(request, response);
56     }
57 
58 }


注意:JRXML文件里面數據庫的字段都是用$F{marks},而parameter是用$P{xxxx}表示的
,而parameter的值都是傳過去的那個HashMap里面設置的



lanjh 2013-10-15 15:52 發表評論
]]>
JasperReports學習筆記3-在瀏覽器生成PDF文件 http://www.tkk7.com/vjame/archive/2013/10/15/405009.htmllanjhlanjhTue, 15 Oct 2013 07:38:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/15/405009.htmlhttp://www.tkk7.com/vjame/comments/405009.htmlhttp://www.tkk7.com/vjame/archive/2013/10/15/405009.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405009.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405009.html1    <servlet>2  &nbs...  閱讀全文

lanjh 2013-10-15 15:38 發表評論
]]>
JasperReports學習筆記2-創建簡單的報表例子http://www.tkk7.com/vjame/archive/2013/10/15/405008.htmllanjhlanjhTue, 15 Oct 2013 06:55:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/15/405008.htmlhttp://www.tkk7.com/vjame/comments/405008.htmlhttp://www.tkk7.com/vjame/archive/2013/10/15/405008.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/405008.htmlhttp://www.tkk7.com/vjame/services/trackbacks/405008.html一、創建簡單的jrxml文件

這里可以手動創建jrxml文件,也可以使用ireport設計器創建
 1<?xml version="1.0"?>
 2<!DOCTYPE jasperReport
 3PUBLIC "-//JasperReports//DTD Report Design//EN"
 4"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
 5<jasperReport name="FirstReport">
 6    <detail>
 7        <band height="20">
 8            <staticText>
 9                <reportElement x="20" y="0" width="200" height="20" />
10                <text><![CDATA[If you see this, it work]]></text>
11            </staticText>
12        </band>
13    </detail>
14</jasperReport>

以上是一個簡單的JRXML文件,實際上就是一個標準的XML文件,<jasperReport>是根元素,<staticText>表示靜態的數據,<reportElement>定義了<staticText>的位置和寬度,<text>定義了實際的靜態數據。

二、把JRXML文件解析成jasper文件,文件流或JasperReport對象

編譯jrxml生成jasper文件
JasperCompileManager.compileReportToFile("WebRoot/report/jasperreports_demo.jrxml""WebRoot/report/lanjh.jasper");

生成文件流
public static void compileReportToStream(InputStream inputStream,OutputStream outputStream)

生成報表對象
public static JasperReport compileReport("WebRoot/report/jasperreports_demo.jrxml")


三、有了JasperReport對象,文件流或jasper文件之后,就可以用JasperFillManager生成JasperPrint對象,jrprint文件,jrprint文件流

生成JasperPrint 對象
public static JasperPrint fillReport(JasperReport jasperReport,Map parameters, JRDataSource dataSource)


四、使用JasperExportManager導出或顯示
JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://1.html");
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");


完整的例子

 1 JasperReport jasperReport;
 2        JasperPrint jasperPrint;
 3        try{
 4          jasperReport = JasperCompileManager.compileReport("WebRoot/report/jasperreports_demo.jrxml");
 5          jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(),new  JREmptyDataSource());
 6          JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
 7   }

 8        catch (JRException e){
 9          e.printStackTrace();
10        }
        







lanjh 2013-10-15 14:55 發表評論
]]>
JasperReports學習筆記1-了解JasperReportshttp://www.tkk7.com/vjame/archive/2013/10/12/404908.htmllanjhlanjhSat, 12 Oct 2013 09:45:00 GMThttp://www.tkk7.com/vjame/archive/2013/10/12/404908.htmlhttp://www.tkk7.com/vjame/comments/404908.htmlhttp://www.tkk7.com/vjame/archive/2013/10/12/404908.html#Feedback0http://www.tkk7.com/vjame/comments/commentRss/404908.htmlhttp://www.tkk7.com/vjame/services/trackbacks/404908.htmlJasperReports是一個開源的java報表制作引擎,官網地址:http://community.jaspersoft.com/
 
一、下載jasperreports項目jar包

http://community.jaspersoft.com/download




jasperreports server為報表中心服務,jasperreports library包括源代碼、demo示例、最終版本的jar包、api文檔等;jaspersoft studio 基于eclipse開發的jasperreports報表設計工具;ireport designer 強大的報表設計器,比studio功能豐富;jaspersoft etl 數據抽取傳輸加載的工具。這里我們主要用到是ireport designer和jasperreports的libs。

二、下載jasperreports library,獲得文件jasperreports-5.2.0-project.zip,解壓,jasperreports相關jar包在dist目錄下,報表和示例運行依賴的jar包在lib目錄下。

 jasperreports-5.2.0.jar
 jasperreports-applet-5.2.0.jar
 jasperreports-fonts-5.2.0.jar
 jasperreports-javaflow-5.2.0.jar
 
 其他jar包:
   groovy-all-2.0.1.jar: 將.jrxml編譯成.jasper.如果你不使用java編譯,而使用ireport工具編譯則無須導入該包
   iText-2.1.7.jar: 生成pdf所依賴的包
   iTextAsian.jar:  支持pdf中文字體依賴的包
   poi-3.7.jar:  導出excel時候用
   commons-collections-2.1.1.jar
   commons-digester-2.1.jar:  解析.jrxml
   commons-logging-1.1.1.jar
   poi-3.7-20101029.jar: 生成excel報表所依賴的jar
  
   圖形展現jfreechart相關jar包:
   jfreechart-1.0.12.jar
   jcommon-1.0.15.jar



三、使用Ant運行示例

下載并安裝ant工具再配置
1.首先是ANT_HOME E:\apache-ant-1.7.1
2.再配置 PATH ,后面加上;E:\apache-ant-1.7.1\bin
3.在DOS下運行ant,ant -version看是否安好

四、運行示例
再到解壓JasperReport JAR包主目錄下
prompt> cd jasperreports-5.2.0\demo\samples 到這個里面
prompt> dir
prompt> cd barbecue
prompt> ant –p
prompt> ant javac
prompt> ant compile
prompt> ant fill
prompt> ant view
prompt> ant viewDesign
prompt> ant run
prompt> dir build\reports
prompt> ant clean

運行例子

這樣就可以看到一些例子了。。

五、Jasper的工作流程如下圖


 


首先是XML文件,就是我們所說的模版,用來生成報表的模版,里面會有模版的樣式啊,內容啊等的信息
這個XML文件通過JasperReports里面的JRXmlLoader.load("xxx")方法來解析XML文件,并生成JasperDesign對象,JasperDesign再通過JRCompiler.compileReport(JasperDesign jasperDesign)編譯出JasperReport對象,JasperReport再通過JasperFillManager填充數據,生成相應的JasperPrint對象,然后再分兩步,可以選擇導出或者打印出來。



lanjh 2013-10-12 17:45 發表評論
]]>
jquery ui tabs iframe 高度 寬度自適應http://www.tkk7.com/vjame/archive/2013/08/06/402418.htmllanjhlanjhTue, 06 Aug 2013 01:44:00 GMThttp://www.tkk7.com/vjame/archive/2013/08/06/402418.htmlhttp://www.tkk7.com/vjame/comments/402418.htmlhttp://www.tkk7.com/vjame/archive/2013/08/06/402418.html#Feedback3http://www.tkk7.com/vjame/comments/commentRss/402418.htmlhttp://www.tkk7.com/vjame/services/trackbacks/402418.html  1<%@ page contentType="text/html; charset=UTF-8" language="java"&nb...  閱讀全文

lanjh 2013-08-06 09:44 發表評論
]]>
MyEclipse Subscription code生成器代碼http://www.tkk7.com/vjame/archive/2011/10/12/361016.htmllanjhlanjhWed, 12 Oct 2011 01:02:00 GMThttp://www.tkk7.com/vjame/archive/2011/10/12/361016.htmlhttp://www.tkk7.com/vjame/comments/361016.htmlhttp://www.tkk7.com/vjame/archive/2011/10/12/361016.html#Feedback2http://www.tkk7.com/vjame/comments/commentRss/361016.htmlhttp://www.tkk7.com/vjame/services/trackbacks/361016.html

對應不同的版本把KeyGenerator類放到任意工程下,執行程序,在控制臺輸入注冊名稱,回車后會生成序列號。




package com.strongit.test;

import java.io.*;

/**
 *  MyEclipse6.0 Register Code
 * 
@author lanjh
 *
 
*/
public class KeyGeneratorForMyEclipse6 {

     
private static final String LL = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";

        
public String getSerial(String userId, String licenseNum) {

            java.util.Calendar cal 
= java.util.Calendar.getInstance();

            cal.add(
13);

            cal.add(
6-1);

            java.text.NumberFormat nf 
= new java.text.DecimalFormat("000");

            licenseNum 
= nf.format(Integer.valueOf(licenseNum));

            String verTime 
= new StringBuilder("-").append(new java.text.

                    SimpleDateFormat(
"yyMMdd").format(cal.getTime())).append("0").

                             toString();

            String type 
= "YE3MP-";

            String need 
= new StringBuilder(userId.substring(01)).append(type).

                          append(
"300").append(licenseNum).append(verTime).toString();

            String dx 
= new StringBuilder(need).append(LL).append(userId).toString();

            
int suf = this.decode(dx);

            String code 
= new StringBuilder(need).append(String.valueOf(suf)).

                          toString();

            
return this.change(code);

        }

        
private int decode(String s) {

            
int i;

            
char[] ac;

            
int j;

            
int k;

            i 
= 0;

            ac 
= s.toCharArray();

            j 
= 0;

            k 
= ac.length;

            
while (j < k) {

                i 
= (31 * i) + ac[j];

                j
++;

            }

            
return Math.abs(i);

        }

        
private String change(String s) {

            
byte[] abyte0;

            
char[] ac;

            
int i;

            
int k;

            
int j;

            abyte0 
= s.getBytes();

            ac 
= new char[s.length()];

            i 
= 0;

            k 
= abyte0.length;

            
while (i < k) {

                j 
= abyte0[i];

                
if ((j >= 48&& (j <= 57)) {

                    j 
= (((j - 48+ 5% 10+ 48;

                } 
else if ((j >= 65&& (j <= 90)) {

                    j 
= (((j - 65+ 13% 26+ 65;

                } 
else if ((j >= 97&& (j <= 122)) {

                    j 
= (((j - 97+ 13% 26+ 97;

                }

                ac[i] 
= (char) j;

                i
++;

            }

            
return String.valueOf(ac);

        }

        
public KeyGeneratorForMyEclipse6() {

            
super();

        }

        
public static void main(String[] args) {

            
try {

                System.out.println(
"please input register name:");

                BufferedReader reader 
= new BufferedReader(new InputStreamReader(

                        System.in));

                String userId 
= null;

                userId 
= reader.readLine();

                KeyGeneratorForMyEclipse6 myeclipsegen 
= new KeyGeneratorForMyEclipse6();

                String res 
= myeclipsegen.getSerial(userId, "20");

                System.out.println(
"Serial:" + res);

                reader.readLine();

            } 
catch (IOException ex) {

            }

        }
}

package com.strongit.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * MyEclipse7.0 Register Code
 * 
@author lanjh
 *
 
*/
public class KeyGeneratorForMyEclipse7 {

    
private static final String LL = "Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.";

    
public String getSerial(String userId, String licenseNum) {

        java.util.Calendar cal 
= java.util.Calendar.getInstance();

        cal.add(
13);

        cal.add(
6-1);

        java.text.NumberFormat nf 
= new java.text.DecimalFormat("000");

        licenseNum 
= nf.format(Integer.valueOf(licenseNum));

        String verTime 
= new StringBuilder("-").append(

        
new java.text.SimpleDateFormat("yyMMdd").format(cal.getTime()))

        .append(
"0").toString();

        String type 
= "YE3MP-";

        String need 
= new StringBuilder(userId.substring(01)).append(type)

        .append(
"300").append(licenseNum).append(verTime).toString();

        String dx 
= new StringBuilder(need).append(LL).append(userId)

        .toString();

        
int suf = this.decode(dx);

        String code 
= new StringBuilder(need).append(String.valueOf(suf))

        .toString();

        
return this.change(code);

    }

    
private int decode(String s) {

        
int i;

        
char[] ac;

        
int j;

        
int k;

        i 
= 0;

        ac 
= s.toCharArray();

        j 
= 0;

        k 
= ac.length;

        
while (j < k) {

            i 
= (31 * i) + ac[j];

            j
++;

        }

        
return Math.abs(i);

    }

    
private String change(String s) {

        
byte[] abyte0;

        
char[] ac;

        
int i;

        
int k;

        
int j;

        abyte0 
= s.getBytes();

        ac 
= new char[s.length()];

        i 
= 0;

        k 
= abyte0.length;

        
while (i < k) {

            j 
= abyte0[i];

            
if ((j >= 48&& (j <= 57)) {

                j 
= (((j - 48+ 5% 10+ 48;

            } 
else if ((j >= 65&& (j <= 90)) {

                j 
= (((j - 65+ 13% 26+ 65;

            } 
else if ((j >= 97&& (j <= 122)) {

                j 
= (((j - 97+ 13% 26+ 97;

            }

            ac[i] 
= (char) j;

            i
++;

        }

        
return String.valueOf(ac);

    }

    
public KeyGeneratorForMyEclipse7() {

        
super();

    }

    
public static void main(String[] args) {

        
try {

            System.out.println(
"please input register name:");

            BufferedReader reader 
= new BufferedReader(new InputStreamReader(

            System.in));

            String userId 
= null;

            userId 
= reader.readLine();

            KeyGeneratorForMyEclipse7 myeclipsegen 
= new KeyGeneratorForMyEclipse7();

            String res 
= myeclipsegen.getSerial(userId, "5");

            System.out.println(
"Serial:" + res);

            reader.readLine();

        } 
catch (IOException ex) {

        }

    }

}








lanjh 2011-10-12 09:02 發表評論
]]>
主站蜘蛛池模板: 久久亚洲AV成人无码国产最大| 亚洲妓女综合网99| 无码一区二区三区亚洲人妻| 国产精品久久久久久久久久免费| 亚洲明星合成图综合区在线| 久久国产精品成人片免费| 久久久久久久亚洲Av无码 | 免费网站看v片在线香蕉| 亚洲国产精品综合久久久| 免费可以看黄的视频s色| 亚洲无吗在线视频| 免费精品一区二区三区在线观看| 亚洲色在线无码国产精品不卡| 一个人看www在线高清免费看| 亚洲欧美日本韩国| 亚洲?V乱码久久精品蜜桃| 人人鲁免费播放视频人人香蕉| 伊人婷婷综合缴情亚洲五月| 最近中文字幕大全免费版在线 | 天天综合亚洲色在线精品| 亚洲国产精品狼友中文久久久| 青青操免费在线视频| 亚洲色偷偷av男人的天堂| 久久精品国产免费观看 | 久青草视频在线观看免费| 国产亚洲无线码一区二区 | 亚洲成AV人片在线观看无| 久久久久久精品成人免费图片| 亚洲色无码专区一区| 久久激情亚洲精品无码?V| 2015日韩永久免费视频播放| 亚洲爆乳无码精品AAA片蜜桃| 亚洲天堂在线视频| 精品免费久久久久久久| 国产亚洲精品美女久久久久久下载 | 免费一级做a爰片久久毛片潮| 国产l精品国产亚洲区在线观看 | 亚洲裸男gv网站| 182tv免费视视频线路一二三| 亚洲精华国产精华精华液好用| 亚洲欧洲自拍拍偷午夜色无码|