<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    vjame

    優(yōu)化代碼是無(wú)止境的
    隨筆 - 65, 文章 - 9, 評(píng)論 - 26, 引用 - 0
    數(shù)據(jù)加載中……

    JasperReports學(xué)習(xí)筆記5-其它數(shù)據(jù)生成動(dòng)態(tài)的報(bào)表(WEB)



    一、空數(shù)據(jù)(Empty Datasources)
    就是說(shuō)JRXML文件里面的內(nèi)容都是靜態(tài)的,直接使用
    JREmptyDataSource就行了
    JasperRunManager.runReportToPdfStream(reportStream,  
    servletOutputStream, new HashMap(), new JREmptyDataSource());

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

    private Map[] initializeMapArray()
    {
    //你可以把數(shù)組里面的每個(gè)map看成一個(gè)對(duì)象,就相于數(shù)據(jù)庫(kù)里面的每個(gè)字段
    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對(duì)象
    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); 



    四、對(duì)象數(shù)組(Java Objects as Datasources)對(duì)象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里面調(diào)用
    JRDataSource dataSource = createReportDataSource();
    JasperRunManager.runReportToPdfStream(reportStream,
    servletOutputStream, new HashMap(), dataSource);



    五、對(duì)象集合
    和對(duì)象數(shù)組基本上一樣,就是最后生成的是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數(shù)據(jù)成生報(bào)表(XML as Datasource)

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


    七、json數(shù)據(jù)源

    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""中國(guó)上海");
            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""中國(guó)杭州");
            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""中國(guó)南昌");
            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數(shù)據(jù)報(bào)表演示樣例(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數(shù)據(jù)
        {"qNaire"{
              
    "uAnswer": [
                
    {
                  
    "field1""001",    
                  
    "field2""張三",    
                  
    "field3""中國(guó)上海",    
                  
    "field4""field4",
                  
    "field5""field5",
                }
    ,
                
    {
                  
    "field1""002",
                  
    "field2""李四",
                  
    "field3""中國(guó)杭州",
                  
    "field4""field4",
                  
    "field5""field5",
                }
    ,
                
    {
                  
    "field1""003",
                  
    "field2""王五",
                  
    "field3""中國(guó)南昌",
                  
    "field4""field4",
                  
    "field5""field5",
              }

              ]
            }
    }


    ireport配置截圖:
















    posted on 2013-10-15 16:07 lanjh 閱讀(619) 評(píng)論(0)  編輯  收藏 所屬分類: 報(bào)表

    主站蜘蛛池模板: 无码av免费网站| 亚洲日本中文字幕区| 国产日本一线在线观看免费| 九九视频高清视频免费观看| 自拍日韩亚洲一区在线| 亚洲欧洲日产国码无码网站| 国产乱子伦精品免费无码专区 | 欧洲乱码伦视频免费| 成人精品一区二区三区不卡免费看| 色婷婷亚洲一区二区三区| 亚洲国产美女福利直播秀一区二区| 亚洲精品V欧洲精品V日韩精品| 国产yw855.c免费视频| 成人免费视频网址| 免费看污成人午夜网站| 99久久99热精品免费观看国产| 91视频免费网站| baoyu122.永久免费视频| 二级毛片免费观看全程| 国产91成人精品亚洲精品| 亚洲欧美中文日韩视频| 亚洲色少妇熟女11p| 亚洲AV无码专区在线亚| 亚洲乱码一二三四区国产| 亚洲国产成人久久| 激情综合亚洲色婷婷五月APP| 老司机亚洲精品影院无码| 久久亚洲国产精品成人AV秋霞| 亚洲AV无码乱码国产麻豆| 无码乱人伦一区二区亚洲| 亚洲AV午夜福利精品一区二区 | 免费人成动漫在线播放r18| 国产偷国产偷亚洲高清人| 国产亚洲漂亮白嫩美女在线| 久久精品国产亚洲AV未满十八| 亚洲精品国产suv一区88| www亚洲精品久久久乳| 黄色网址在线免费观看| 一个人看的www免费高清| 国产成人无码免费看片软件| 国产精品成人69XXX免费视频|