第二章 BIRT设计器概述及本地化支持

原地址:http://blog.csdn.net/z1012890225/article/details/37815863

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    
<head>  

    <script type="text/javascript" src="http://c.csdnimg.cn/pubfooter/js/tracking.js" charset="utf-8"></script>  

    <script type="text/javascript">
        var protocol = window.location.protocol;
        document.write('<script type="text/javascript" src="' + protocol + '//csdnimg.cn/pubfooter/js/repoAddr2.js?v=' + Math.random() + '"></' + 'script>');
    </script>

  
 <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />

    <title>第二章 BIRT设计器概述及本地化支持 - z1012890225的专栏
        - 博客频道 - CSDN.NET</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="2.1 BIRT设计器概述2.1.1 基本概念数据源:数据的来源,或提供者。如xml数据源、jdbc数据源等。 数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。 报表以及报表项:报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、数据源三者间的关系:数据源 --- 数据" />
    <script src="http://static.blog.csdn.net/scripts/jquery.js" type="text/javascript"></script>
      <script type="text/javascript" src="http://static.blog.csdn.net/scripts/jquery-version.js"></script>
    <script type="text/javascript" src="http://static.blog.csdn.net/scripts/ad.js?v=1.1"></script>
        <!--new top-->
       
        <link rel="stylesheet" href="http://c.csdnimg.cn/public/common/toolbar/css/index.css">
        <!--new top-->
    
      <!-- ad begin -->
         <script language="javascript" type="text/javascript" src="http://ads.csdn.net/js/tracking.js"></script>
    <!-- ad end-->

    <link rel="Stylesheet" type="text/css" href="http://static.blog.csdn.net/skin/default/css/style.css?v=1.1" />
    <link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="/z1012890225/rss/list" />
    <link rel="shortcut icon" href="http://c.csdnimg.cn/public/favicon.ico" />
    <link type="text/css" rel="stylesheet" href="http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/default.css" />
 


<script>
        (function () {
            var bp = document.createElement('script');
            var curProtocol = window.location.protocol.split(':')[0];
            if (curProtocol === 'https') {
                bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
            }
            else {
                bp.src = 'http://push.zhanzhang.baidu.com/push.js';
            }
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(bp, s);
        })();
</script>


</head>
<body>


    <!-- 广告位开始 -->
        <ins data-revive-zoneid="149" data-revive-id="8c38e720de1c90a6f6ff52f3f89c4d57"></ins>
    <!-- 广告位结束 -->

    
   
      <!--new top-->
    <script id="toolbar-tpl-scriptId" fixed="true" prod="blog" skin="black" src="http://c.csdnimg.cn/public/common/toolbar/js/html.js" type="text/javascript"></script>
     <!--new top-->
    <div id="container">
        <div id="header">
    <div class="header">
        <div id="blog_title">
            <h2>
                <a href="http://blog.csdn.net/z1012890225">z1012890225的专栏</a></h2>
            <h3>此博客内容仅作为自己备忘之用!</h3>
            <div class="clear">
            </div>
        </div>
        <div class="clear">
        </div>
        
     
    </div>
</div>
<div id="navigator">
    <div class="navigator_bg">
    </div>
    <div class="navigator">
        <ul>           
                <li id="btnContents"><a href="http://blog.csdn.net/z1012890225?viewmode=contents"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_mulu'])">
                    <img src="http://static.blog.csdn.net/images/ico_list.gif">目录视图</span></a></li>
                <li id="btnView"><a href="http://blog.csdn.net/z1012890225?viewmode=list"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_zhaiyao'])">
                    <img src="http://static.blog.csdn.net/images/ico_summary.gif">摘要视图</span></a></li>
                <li id="btnRss"><a href="http://blog.csdn.net/z1012890225/rss/list"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_RSS'])">
                    <img src="http://static.blog.csdn.net/images/ico_rss.gif">订阅</span></a></li>                
            

            </ul>
    </div>
</div>
<script type="text/javascript">
    var username = "z1012890225";
    var _blogger = username;
    var blog_address = "http://blog.csdn.net/z1012890225";
    var static_host = "http://static.blog.csdn.net";
    var currentUserName = "iis81365341";  
</script>

        <div id="body">
            <div id="main">
                <div class="main">
                        <div class="ad_class">
<div class="notice tracking-ad" data-mod='popu_3' > 


<a href="http://blog.csdn.net/csdnproduct/article/details/70145129">
<font color=blue><strong>【公告】关于开启用户注册及登录手机短信验证的通知</strong></font></a>

    

<a href="http://blog.csdn.net/blogdevteam/article/details/70232533">
<font color=red> CSDN日报20170418 ——《如果两个程序员差不多,选写作能力更好的那个》 
</font></a>
    

<a href="http://blog.csdn.net/turingbooks/article/details/70237883">
<font color=blue><strong>程序员4月书讯:Angular来了!</strong>
</font></a>
</div>                        </div>
                        



  
<link href="http://static.blog.csdn.net/css/comment1.css" type="text/css" rel="stylesheet" />
<link href="http://static.blog.csdn.net/css/style1.css" type="text/css" rel="stylesheet" />
<script language='JavaScript' type='text/javascript' src='http://download.csdn.net/js/jquery.cookie.js'></script>
<script type="text/javascript" src="http://c.csdnimg.cn/rabbit/search-service/main.js"></script>
<link rel="stylesheet" href="http://static.blog.csdn.net/public/res-min/markdown_views.css?v=1.0" />
<link rel="stylesheet" href="http://static.blog.csdn.net/css/category.css?v=1.0" />
<script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/web-storage-cache.min.js"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/replace.min.js"></script>

<link rel="stylesheet" href="http://static.blog.csdn.net/code/prettify.css" />
<script type="text/javascript" src="http://static.blog.csdn.net/code/prettify.js"></script>


  <script type="text/ecmascript">
      window.quickReplyflag = true;
           
            var isBole = false;
            
      
      var fasrc="http://my.csdn.net/my/favorite/miniadd?t=%e7%ac%ac%e4%ba%8c%e7%ab%a0+BIRT%e8%ae%be%e8%ae%a1%e5%99%a8%e6%a6%82%e8%bf%b0%e5%8f%8a%e6%9c%ac%e5%9c%b0%e5%8c%96%e6%94%af%e6%8c%81&u=http://blog.csdn.net/z1012890225/article/details/37815863"

    </script>
<div id="article_details" class="details">
    <div class="article_title">   
         <span class="ico ico_type_Repost"></span>


    <h1>
        <span class="link_title"><a href="/z1012890225/article/details/37815863">
        第二章 BIRT设计器概述及本地化支持            
        </a></span>
    </h1>
</div>

   

        <div class="article_manage clearfix">
        <div class="article_r">
            <span class="link_postdate">2014-07-15 14:57</span>
            <span class="link_view" title="阅读次数">595人阅读</span>
            <span class="link_comments" title="评论次数"> <a href="#comments" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(0)</span>
            <span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" οnclick="javascript:collectArticle('%e7%ac%ac%e4%ba%8c%e7%ab%a0+BIRT%e8%ae%be%e8%ae%a1%e5%99%a8%e6%a6%82%e8%bf%b0%e5%8f%8a%e6%9c%ac%e5%9c%b0%e5%8c%96%e6%94%af%e6%8c%81','37815863');return false;" title="收藏">收藏</a></span>
             <span class="link_report"> <a href="#report" οnclick="javascript:report(37815863,2);return false;" title="举报">举报</a></span>

        </div>
    </div>
    <div class="embody"  style="display:none" id="embody">
        <span class="embody_t">本文章已收录于:</span>
        <div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div>
    </div>
    <style type="text/css">        
            .embody{
                padding:10px 10px 10px;
                margin:0 -20px;
                border-bottom:solid 1px #ededed;                
            }
            .embody_b{
                margin:0 ;
                padding:10px 0;
            }
            .embody .embody_t,.embody .embody_c{
                display: inline-block;
                margin-right:10px;
            }
            .embody_t{
                font-size: 12px;
                color:#999;
            }
            .embody_c{
                font-size: 12px;
            }
            .embody_c img,.embody_c em{
                display: inline-block;
                vertical-align: middle;               
            }
             .embody_c img{               
                width:30px;
                height:30px;
            }
            .embody_c em{
                margin: 0 20px 0 10px;
                color:#333;
                font-style: normal;
            }
    </style>
    <script  type="text/javascript">
        $(function () {
            try
            {
                var lib = eval("("+$("#lib").attr("value")+")");
                var html = "";
                if (lib.err == 0) {
                    $.each(lib.data, function (i) {
                        var obj = lib.data[i];
                        //html += '<img src="' + obj.logo + '"/>' + obj.name + "  ";
                        html += ' <a href="' + obj.url + '" target="_blank">';
                        html += ' <img src="' + obj.logo + '">';
                        html += ' <em><b>' + obj.name + '</b></em>';
                        html += ' </a>';
                    });
                    if (html != "") {
                        setTimeout(function () {
                            $("#lib").html(html);                      
                            $("#embody").show();
                        }, 100);
                    }
                }      
            } catch (err)
            { }
            
        });
    </script>
      <div class="category clearfix">
        <div class="category_l">
           <img src="http://static.blog.csdn.net/images/category_icon.jpg">
            <span>分类:</span>
        </div>
        <div class="category_r">
                    <label  οnclick="GetCategoryArticles('2358505','z1012890225','top','37815863');">
                        <span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">birt<em>(29)</em></span>
                      <img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
                      <img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
                        <div class="subItem">
                            <div class="subItem_t"><a  href="http://blog.csdn.net/z1012890225/article/category/2358505"  target="_blank">作者同类文章</a><i class="J_close">X</i></div>
                            <ul class="subItem_l" id="top_2358505">                            
                            </ul>
                        </div>
                    </label>                    
        </div>
    </div>
    <script   type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>  

  

  
  
     

<div id="article_content" class="article_content">

<h2 style="margin:0px; padding:0px; color:rgb(54,46,43); font-family:Arial; line-height:26px">
2.1 BIRT<span style="font-family:宋体">设计器概述</span></h2>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.1.1 <span style="font-family:宋体">基本概念</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
数据源:数据的来源,或提供者。如<span style="font-family:Calibri">xml</span><span style="font-family:宋体">数据源、</span><span style="font-family:Calibri">jdbc</span><span style="font-family:宋体">数据源等。 </span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
数据集:数据集合,它必须与数据源关联,可以理解为查询的结果。 </p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
报表以及报表项:报表可视为是针对一组数据集的表现形式,而报表项这是这个表现形式的某个具体的单元。它们之间的关系,与窗体和控件的关系非常类似。报表、数据集、数据源三者间的关系:数据源 <span style="font-family:Calibri">--- </span><span style="font-family:宋体">数据集 </span><span style="font-family:Calibri">--- </span><span style="font-family:宋体">报表。 </span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
报表参数:查询参数的表现形式,使用它可以构建更灵活的报表。 </p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
模板和库:主要用于复用报表设计,提高报表开发的效率。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
在大纲视图中展开报表文件(后缀为<span style="font-family:Calibri">.rptdesign</span><span style="font-family:宋体">)可以看到数据源,数据集,报表和数据项(主体,主页,样式,脚本等),报表参数(图</span><span style="font-family:Calibri">2-1</span><span style="font-family:宋体">)。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357609836_8303.jpg" width="798" height="412" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图 <span style="font-family:Calibri">2-1 </span><span style="font-family:宋体">报表的基本概念</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
模板和库类似于一个公共报表,我们在设计的时候可以使用公共数据源,公共数据集,公共样式,甚至公共数据项(图<span style="font-family:Calibri">2-2</span><span style="font-family:宋体">)。模板的后缀为</span><span style="font-family:Calibri">.rpttemplate</span><span style="font-family:宋体">,库的后缀名为</span><span style="font-family:Calibri">.rptlibrary</span><span style="font-family:宋体">,模板和库的建立和使用在后文中再详细描述。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357609875_4270.jpg" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图 <span style="font-family:Calibri">2-2 </span><span style="font-family:宋体">报表的模板和库</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.1.2 <span style="font-family:宋体">基本视图</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
在Eclipse BIRT设计器中,提供了多种视图,以方便进行模板文件的设计。各种设计视图如下:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
1.报表编辑器(Report Editor):</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Report Editor提供了报表设计的画板,可以摆放设计元素并将其格式化。包括布局的表格、主页面、脚本、XML 文件源及预览。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
布局:用于对整个报表界面进行整体布局,框架性的组件,支持拖放功能;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
主页:用于设置模板文件的共用属性,如报表文件的头、尾、背景图片等;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
脚本:支持对JavaScript脚本的编辑,BIRT支持事件模型,因此可以使用Java或JavaScript来编写事件处理器,事件处理器存在于报表的生成及渲染过程,可以用于修改报表的属性、字体颜色、数据值或调用外部代码;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
XML 文件源:用于查看报表模板中所用于的XML代码,可以在这里进行XML内容的查看或编辑。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
预览:把报表模板快速的渲染成为HTML格式文件进行预览。如下图所示:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357609921_5872.jpg" width="831" height="437" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
 </p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>3 报表预览</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.数据资源管理器(Data Explorer)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
在进行报表设计之前,设置好数据库连接通常是必须的。为了方便进行数据库的连接设置,BIRT提供了Data Explorer视图。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357609990_4557.jpg" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>4 BIRT Data Explorer</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
这种视图下可以允许为报表添加数据源及数据集。当然这里的数据源指是的数据库连接。BIRT提供了对JDBC、XML、脚本,Web Service数据源、CSV、TSV、SSV及PSV等数据源等等的支持。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
而数据集可以理解为已经被执行的查询语句并返回的记录集。BIRT提供了一种特殊的数据集:Joint Data Set(简称联合数据集)。它可以对现在的数据集进行内连接或是外连接。当使用不同的数据源的,这种功能非常的实用。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Data Explorer还可以用于添加报表参数及数据立方体。报表参数是暴露给报表模板使用人员的参数,参数传递相关参数值,可以个性化报表。例如,可以使用数据集参数来修改查询语句,或使用BIRT JavaScript表达式来改变报表元素的样式及可见性。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
报表参数可以是静态的,也可以是动态的。静态参数是指用户可以从预先定义好的参数值可选取值,进行相关的展示或运算,最简单就是文本框中的静态内容。动态参数一般指在绑定到BIRT数据集,而用户可以从中选取某些需要的数据或记录。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
在BIRT3.7<span style="font-family:宋体">中,动态报表参数支持使用</span>JavaScript表态式来动态显示文本或参数值。这样即可以动态的显示最终用户所传递的参数值。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
此外,BIRT还支持联动报表参数。可以设置二级或是三级的联动下拉框或是List。最明显的例子如下图所示:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610826_6790.jpg" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>5 BIRT联动报表参数</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
在Data Explorer视图中可以创建数据立方体,可以与BIRT中的交叉报表结合使用。BIRT数据立方体是多维的,可以基于多个数据集,如下图所示:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610068_5078.jpg" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>6  BIRT数据立方体</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
除了上面的特性外,BIRT还新增了两种用于支持其它数据源的项目类型。这类数据源基于Eclipse的DTP(Data Tools Platform)项目所提供的ODA(Open Data Access)框架</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610125_8272.jpg" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>7  BIRT中ODA设计工具</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
3.画板(Palette)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BIRT Palette视图用于给报表画板添加报表元素。这里的元素可以代表从Data Explorer视图中所设计的数据。Palette中的元素支持自由的拖放功能,Palette上的元素属性可以通过属性编辑器进行设计,也可以通过ROM(BIRT Reports Object Model)进行描述。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610285_3623.png" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>8  BIRT的Palette视图</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Palette包括以下一些常用的元素:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
标签(Label):标签元素用于显示静态文本,标签元素的外观可以通过本地进行设置,如设置标签元素的超级连接、字体大小等属性;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
文本(Text):文本元素与标签元素相似,只是文本元素可以显示多行数据,更加易于格式输出。可以在文本元素中使用脚本表达式,然后在客户端使用标签进行解析;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
动态文本(Dynamic Text):动态文本元素通常用于显示CLOB数据值。CLOB数据可以通过使用BIRT Expression Builder得到数据;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
数据(Data):数据元素用于显示数据源的数据,通过使用Expression Builder来操作或改变数据值。例如,数据集有包含姓列以及名列,那么可以使用Expression Builder来将姓列与名列进行合并,从而形成包含姓名的一列;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图像(Image):图片元素用于在报表模板中显示图片。BIRT支持通过URL获得图片,或是从数据库的取得图片(BLOB),或是从本地硬盘上获得图片;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
网格(Grid):网格元素用于布局报表中的报表元素,并进行统一的管理。例如,想在报表中显示产品销售数据表格,同时又想在右边显示一张图表,此时则需要使用Grid来进行网格划分,将报表分成一行两列;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
列表(List):列表元素也相当于一个容器,它不同于其它容器的地方在于列表元素可以绑定到数据集上。列表元素包含头、脚及数据部分。当渲染列表元素时,头与脚部分一次性渲染完成,而中间的数据部分需要显示数据集的每一行数据。数据格式可以是文本元素,也可以是表格、列表等元素;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
表(Table):表格元素与列表元素相似,都可以用于显示数据集中的数据。表格元素与HTML中的表格元素风格相似;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
聚合(Aggregation):汇总元素是BIRT 2.2新增的元素,使用Aggregation Builder向报表添加汇总功能。Aggregation Builder提供的汇总功能大概有25项,常见的如:SUM、MIN、MAX、AVERAGE等等;</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610322_7622.png" width="851" height="509" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>9  BIRT的Aggregation元素</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图表(Chart):图表元素用于在报表中添加图表。当在报表中添加了图表元素时,Chart Builder Wizard自动进行渲染并显示。Chart Builder Wizard用于设计图形,并提供了三大设置区域,分别是:设置图表类型、设置数据、设置图表格式。BIRT提供了大量的图表类型,同时,图表格式可以是PNG、JPG、BMP、SVG等输出格式。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
交叉表(Cross Tab):交叉报表元素用于显示BIRT数据立方体中的数据。在BIRT以前的版本中,表格中列数据需要在设计时就确定,而使用交叉报表元素,则列数据与行数可以动态生成,无需在报表设计时确定。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610353_2543.png" width="894" height="499" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2-10  BIRT的交叉表元素</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
4.资源管理器(Library Explorer)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Library Explorer支持从已存在的报表库中拖放报表元素。因此,各种报表之间即可以共享一些公用的类库元素。同时,修改其中某一公用的类库元素,即可以修改所有的引用至此类库元素的所有报表。例如,可以在类库元素中保存公司的Logo,如果公司的Logo变化,则只需要修改类库的中Logo元素即可,其它引用此Logo的报表无需修改。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610419_9135.png" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>11  BIRT的Library Explorer视图</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
5.属性编辑器(Property Editor)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
属性编辑器视图用于设置报表中元素的属性。当然,每种元素的属性都不尽相同,因此,其界面都有所变化。当然也具有共用的一些属性,如style、width、font等等。此外,大部分元素都支持是否可见的属性。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610455_7666.png" width="924" height="380" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2-12 BIRT的Property Editor视图</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
6.大纲(Outline)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Outline视图通过层次关系来展现报表设计的内容及其相关元素的层次关系。可以从Outline中直接选择元素进行查看或修改,当报表设计比较复杂时,Outline是相关方便有用的辅助工具。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610490_2514.png" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-</span>13  BIRT的Outline视图</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
比较重要的视图还有导航器(<span style="font-family:Calibri">Navigator</span><span style="font-family:宋体">)和问题查看器</span><span style="font-family:Calibri">(Problems)</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610851_7908.png" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-14 BIRT</span><span style="font-family:宋体">的导航器</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610559_6642.png" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-15 BIRT</span><span style="font-family:宋体">的问题查看栏</span></p>
<h2 style="margin:0px; padding:0px; color:rgb(54,46,43); font-family:Arial; line-height:26px">
<a target="_blank" name="t1" style="color:rgb(106,57,6)"></a><a target="_blank" name="t1" style="color:rgb(106,57,6)"></a>2.2 BIRT<span style="font-family:宋体">本地化之汉化</span></h2>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.2.1  BIRT<span style="font-family:宋体">设计器的汉化</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
建议把整个<span style="font-family:Calibri">eclipse</span><span style="font-family:宋体">环境都彻底汉化,需要的文件如下,这个在</span><span style="font-family:Calibri">eclipse-birt</span><span style="font-family:宋体">官方网站上有语言包</span><span style="font-family:Calibri">Language Packs</span><span style="font-family:宋体">。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-birt-zh_3.7.0.v20111128043401.zip (91.78%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-eclipse-zh_3.7.0.v20111128043401.zip (87.36%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-modeling.emft.emf-facet-zh_3.7.0.v20111128043401.zip (21.16%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-modeling.gmp.graphiti-zh_3.7.0.v20111128043401.zip (20.45%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-modeling.mdt.modisco-zh_3.7.0.v20111128043401.zip (9.38%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-mylyn-zh_3.7.0.v20111128043401.zip (50.7%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-rt.equinox-zh_3.7.0.v20111128043401.zip (99.27%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-rt.equinox.p2-zh_3.7.0.v20111128043401.zip (22.2%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-rt.rap-zh_3.7.0.v20111128043401.zip (87.11%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-technology.actf-zh_3.7.0.v20111128043401.zip (4.46%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-technology.dltk-zh_3.7.0.v20111128043401.zip (69.33%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-technology.egit-zh_3.7.0.v20111128043401.zip (16.9%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-technology.jubula-zh_3.7.0.v20111128043401.zip (11.72%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-technology.stem-zh_3.7.0.v20111128043401.zip (79.99%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-technology.uomo-zh_3.7.0.v20111128043401.zip (3.6%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-tools.atf-zh_3.7.0.v20111128043401.zip (51.91%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-tools.cdt-zh_3.7.0.v20111128043401.zip (68.2%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-tools.gef-zh_3.7.0.v20111128043401.zip (66.21%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-tools.objectteams-zh_3.7.0.v20111128043401.zip (5.51%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-tools.tm-zh_3.7.0.v20111128043401.zip (21.24%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.common-zh_3.7.0.v20111128043401.zip (57.1%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.dali-zh_3.7.0.v20111128043401.zip (18.33%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.jsdt-zh_3.7.0.v20111128043401.zip (80.48%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.jsf-zh_3.7.0.v20111128043401.zip (39.76%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.libra-zh_3.7.0.v20111128043401.zip (26.04%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.servertools-zh_3.7.0.v20111128043401.zip (88.15%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.sourceediting-zh_3.7.0.v20111128043401.zip (74.66%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
BabelLanguagePack-webtools.webservices-zh_3.7.0.v20111128043401.zip (76.11%)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
解压之后如下:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610608_3904.png" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-16 BIRT Eclipse ALL-IN-ONE</span><span style="font-family:宋体">插件</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
把它们复制到<span style="font-family:Calibri">Eclipse-ALL-IN-ONE</span><span style="font-family:宋体">的根目录下覆盖即可,重启</span><span style="font-family:Calibri">eclipse</span><span style="font-family:宋体">即可看到完全汉化的界面。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.2.2  BIRT Runtime<span style="font-family:宋体">的汉化</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Birt<span style="font-family:宋体">的</span><span style="font-family:Calibri">runtime 3.7</span><span style="font-family:宋体">包中提供了多个</span><span style="font-family:Calibri">servelet</span><span style="font-family:宋体">(</span><span style="font-family:Calibri">preview</span><span style="font-family:宋体">、</span><span style="font-family:Calibri">frameset</span><span style="font-family:宋体">、</span><span style="font-family:Calibri">run</span><span style="font-family:宋体">等),下面主要对</span><span style="font-family:Calibri">frameset</span><span style="font-family:宋体">说一下(至于其他的</span><span style="font-family:Calibri">servlet</span><span style="font-family:宋体">详细解释,可以参考</span>本节后文<a target="_blank" href="http://blog.csdn.net/xiaohai0504/article/details/4584579" style="color:rgb(106,57,6); text-decoration:none">BIRT servlet<span style="font-family:宋体">详细解释</span></a>)<br>
 frameset<span style="font-family:宋体">: </span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
采用<span style="font-family:Calibri">Ajax</span><span style="font-family:宋体">框架,可以显示工具条,导航条和</span><span style="font-family:Calibri">TOC</span><span style="font-family:宋体">面板,实现复杂的操作,</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
如分页处理,导出数据,导出报表,打印等。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
该模式下会自动生成<span style="font-family:Calibri">report document</span><span style="font-family:宋体">文件</span><span style="font-family:Calibri">(</span><span style="font-family:宋体">预览</span><span style="font-family:Calibri">report design</span><span style="font-family:宋体">文件</span><span style="font-family:Calibri">)</span><span style="font-family:宋体">到特定的目录</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
(<span style="font-family:宋体">用户可以用参数指定,也可以定义在</span><span style="font-family:Calibri">web.xml</span><span style="font-family:宋体">里</span><span style="font-family:Calibri">)</span><span style="font-family:宋体">。采用</span><span style="font-family:Calibri">Ajax</span><span style="font-family:宋体">,速度较慢。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
frameset<span style="font-family:宋体">特点</span>:</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
提供报表展示用工具条(导出、打印、分页等)</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610653_2460.png" width="869" height="366" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-17 BIRT</span><span style="font-family:宋体">工具栏之导出报表功能</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<img alt="" src="https://img-my.csdn.net/uploads/201301/08/1357610679_1532.png" width="907" height="382" style="border:none; max-width:100%"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
图<span style="font-family:Calibri">2-18 BIRT</span><span style="font-family:宋体">工具栏之打印报表功能</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
frameset<span style="font-family:宋体">展示页面开源,后期拓展、自定义修改容易</span><br>
 也许有人会说:其默认的<span style="font-family:Calibri">frameset</span><span style="font-family:宋体">功能不错,但是其界面样式、风格等与公司产品风格不协调,希望对其自定义改造。对于这个问题,开源又一次展现了其魅力。我们完全可以直接去修改</span><span style="font-family:Calibri">webcontent</span><span style="font-family:宋体">中的内容,按照自己的想法,去修改</span><span style="font-family:Calibri">CSS</span><span style="font-family:宋体">等。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
修改内容:WebViewerExample\webcontent\birt\pages\路径下的文件,比如<span style="font-family:Calibri">control</span><span style="font-family:宋体">路径下的文件</span><br>
NavigationbarFragment.jsp 用于定制导航栏内容</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
ProgressBarFragment.jsp 用于定制进度条内容</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
TocFragment.jsp 用于定制标签目录侧边栏内容</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
ToolbarFragment.jsp用于定制工具条内容</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
如下以工具栏按钮为例(<span style="font-family:Calibri">ToolbarFragment.jsp</span><span style="font-family:宋体">),看里头的页面还是写得很清晰的。</span>我们可以定制ToolbarFragment.jsp,让它只显示导出和打印</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<TD WIDTH="80px"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<font size="2"><b></><span style="font-family:宋体">导出</span><span style="font-family:Calibri"></b></font></span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<INPUT TYPE="image" NAME='exportReport' SRC="birt/images/ExportReport.gif"</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
TITLE="<span style="font-family:宋体">导出</span><span style="font-family:Calibri">" </span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
ALT="<%=BirtResources.getHtmlMessage("birt.viewer.toolbar.exportreport")%>" CLASS="birtviewer_clickable"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
</TD></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<TD WIDTH="80px"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<font size="2"><b><span style="font-family:宋体">打印</span><span style="font-family:Calibri"></b></font></span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
<INPUT TYPE="image" NAME='print' SRC="birt/images/Print.gif"</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
TITLE="<span style="font-family:宋体">打印</span><span style="font-family:Calibri">"</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
ALT="<%=BirtResources.getHtmlMessage("birt.viewer.toolbar.print")%>" CLASS="birtviewer_clickable"></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
</TD></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
Dialog路径下的文件用于修改对话框内容,parameter路径下文件用于修改参数对话框的内容,layout用于修改布局。</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
修改样式:WebViewerExample\webcontent\ birt\styles路径下的文件,用来修改导航栏,工具条,也报表栏,对话框的样式。<br>
BIRT<span style="font-family:宋体">在设计的时候已经考虑了国际化的问题,</span><span style="font-family:Calibri">eclipse</span><span style="font-family:宋体">官网上得汉化包能很快速地帮助我们解决</span><span style="font-family:Calibri">BIRT</span><span style="font-family:宋体">汉化的问题。下文将详细说明</span><span style="font-family:Calibri">frameset</span><span style="font-family:宋体">的汉化。 汉化的过程也很方便,大体来说:先到官网下载相应的汉化包,替换</span><span style="font-family:Calibri">viewServlet.jar </span><span style="font-family:宋体">包中得</span><span style="font-family:Calibri">messages.properties</span><span style="font-family:宋体">文件;重新打包</span><span style="font-family:Calibri">viewServlet.jar</span><span style="font-family:宋体">包即可。</span><br>
1<span style="font-family:宋体">、</span>下载汉化包</p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
汉化的过程很简单,先到官网下载相应的汉化包,<a target="_blank" href="http://download.eclipse.org/birt/downloads/lang.php?build=R-R1-2_2_2-200802271210" style="color:rgb(106,57,6); text-decoration:none">http://download.eclipse.org/birt/downloads/lang.php?build=R-R1-2_2_2-200802271210</a></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
我实际操作过程中发现<span style="font-family:Calibri">3.7</span><span style="font-family:宋体">下对应的语言包下载完后没有</span><span style="font-family:Calibri">messages_zh.properties</span><span style="font-family:宋体">文件,在</span><span style="font-family:Calibri">2.5</span><span style="font-family:宋体">版本的链接中是有的,所以推荐到</span><span style="font-family:Calibri">2.5</span><span style="font-family:宋体">中去下。</span><br>
2<span style="font-family:宋体">、</span>替换<span style="font-family:Calibri">viewservlets.jar </span><span style="font-family:宋体">部署</span><br>
2.1找到刚才安装的汉化插件包,进入<span style="font-family:Calibri">plugins</span><span style="font-family:宋体">目录找到一个名为</span><span style="font-family:Calibri">“org.eclipse.birt.report.viewer.nl_zh_*.jar</span><span style="font-family:宋体">(</span><span style="font-family:Calibri">*</span><span style="font-family:宋体">代表版本号)的</span><span style="font-family:Calibri">jar</span><span style="font-family:宋体">包,然后解压,在</span><span style="font-family:Calibri">/org/eclipse/birt/report/resource</span><span style="font-family:宋体">目录下面会得到一个</span><span style="font-family:Calibri">Messages_zh.properties</span><span style="font-family:宋体">文件,这个文件就是能够实现汉化的文件啦。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.2<span style="font-family:宋体">找到</span><span style="font-family:Calibri">birt</span><span style="font-family:宋体">运行库目录,即默认的</span><span style="font-family:Calibri">birt-runtime-*</span><span style="font-family:宋体">目录,然后去</span><span style="font-family:Calibri">/WebViewerExample/WEB-INF/lib</span><span style="font-family:宋体">下找到名为</span><span style="font-family:Calibri">“viewservlets.jar”</span><span style="font-family:宋体">的</span><span style="font-family:Calibri">jar</span><span style="font-family:宋体">包,使用压缩工具打开(不用解压),进入</span><span style="font-family:Calibri">/org/eclipse/birt/report/resource</span><span style="font-family:宋体">目录,这里会发现一个</span><span style="font-family:Calibri">Messages.properties</span><span style="font-family:宋体">文件,这个就是</span><span style="font-family:Calibri">birt</span><span style="font-family:宋体">本身带的语言包配置文件啦。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.3 <span style="font-family:宋体">将在第一步里得到的</span><span style="font-family:Calibri">“Messages_zh.properties”</span><span style="font-family:宋体">重命名为</span><span style="font-family:Calibri">“Messages.properties”</span><span style="font-family:宋体">,然后使用压缩工具的</span><span style="font-family:Calibri">“</span><span style="font-family:宋体">添加</span><span style="font-family:Calibri">”</span><span style="font-family:宋体">按钮将此文件添加到</span><span style="font-family:Calibri">“viewservlets.jar”</span><span style="font-family:宋体">文件中(需要点击</span><span style="font-family:Calibri">“</span><span style="font-family:宋体">覆盖</span><span style="font-family:Calibri">”</span><span style="font-family:宋体">),这一步的目的就是将英文的配置文件替换为中文的配置。</span></p>
<p style="color:rgb(54,46,43); font-family:Arial; font-size:14px; line-height:26px">
2.4 <span style="font-family:宋体">将修改后的</span><span style="font-family:Calibri">viewservlets.jar</span><span style="font-family:宋体">文件添加到工程,或者覆盖原来的</span><span style="font-family:Calibri">viewservlets.jar</span><span style="font-family:宋体">文件,即可实现</span><span style="font-family:Calibri">birt</span><span style="font-family:宋体">在客户端的汉化。</span></p>
   
</div>




<!-- Baidu Button BEGIN -->




<div class="bdsharebuttonbox tracking-ad" style="float: right;" data-mod="popu_172">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"  style="background-position:0 -52px !important"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"style="background-position:0 -104px !important"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"style="background-position:0 -260px !important"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"style="background-position:0 -208px !important"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"style="background-position:0 -1612px !important" ></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->

   <link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css" />

    
<!--172.16.140.12-->

<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
    document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->

<script type="text/javascript">
    var fromjs = $("#fromjs");
    if (fromjs.length > 0) {
            $("#fromjs .markdown_views pre").addClass("prettyprint");
            prettyPrint();

            $('pre.prettyprint code').each(function () {
                var lines = $(this).text().split('\n').length;
                var $numbering = $('<ul/>').addClass('pre-numbering').hide();
                $(this).addClass('has-numbering').parent().append($numbering);
                for (i = 1; i <= lines; i++) {
                    $numbering.append($('<li/>').text(i));
                };
                $numbering.fadeIn(1700);
            });

            $('.pre-numbering li').css("color", "#999");
        }

    

</script>

 


        <div id="digg" ArticleId="37815863" >
            <dl id="btnDigg" class="digg digg_enable"  οnclick="btndigga();">
               
                 <dt>顶</dt>
                <dd>0</dd>
            </dl>
           
              
            <dl id="btnBury" class="digg digg_enable"  οnclick="btnburya();">
              
                  <dt>踩</dt>
                <dd>0</dd>               
            </dl>
            
        </div>
     <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" > </a>   </div>
    <div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" > </a></div>
    <script type="text/javascript">
                function btndigga() {
                    $(".tracking-ad[data-mod='popu_222'] a").click();
                }
                function btnburya() {
                    $(".tracking-ad[data-mod='popu_223'] a").click();
                }
            </script>

   <ul class="article_next_prev">
                <li class="prev_article"><span  οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/z1012890225/article/details/37815947';">上一篇</span><a href="/z1012890225/article/details/37815947" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">第三章 BIRT数据源的配置</a></li>
                <li class="next_article"><span οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/z1012890225/article/details/37815907';">下一篇</span><a href="/z1012890225/article/details/37815907" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">第二章 BIRT设计器概述及本地化支持(续)</a></li>
    </ul>

    <div style="clear:both; height:10px;"></div>


        <div class="similar_article"  style="display:none">
                <h4>我的同类文章</h4>
                <div class="similar_c"style="margin:20px 0px 0px 0px">
                    <div class="similar_c_t">
                                <label class="similar_cur">
                                    <span  style="cursor:pointer"  οnclick="GetCategoryArticles('2358505','z1012890225','foot','37815863');">birt<em>(29)</em></span>
                                </label>
                    </div>
                   
                    <div class="similar_wrap tracking-ad" data-mod="popu_141"  style="max-height:195px;">
                        <a href="http://blog.csdn.net" style="display:none">http://blog.csdn.net</a>
                        <ul class="similar_list fl">                          
                        </ul>

                        <ul class="similar_list fr">                           
                        </ul>
                    </div>
                </div>
            </div>    
    <script  type="text/javascript">
        $(function () {
            GetCategoryArticles('2358505', 'z1012890225','foot','37815863');
        });
    </script>
      
</div>

    <div>
            <ins data-revive-zoneid="205" data-revive-id="8c38e720de1c90a6f6ff52f3f89c4d57"></ins> 
     </div>

<div id="suggest"></div>
         <script  language="javascript" type='text/javascript'>     
             $(function(){
                 $.get("/z1012890225/svc/GetSuggestContent/37815863",function(data){
                     $("#suggest").html(data);
                 });     
             });             
         </script>  


<style>
.blog-ass-articl dd {
color: #369;
width: 99%; /*修改行*/
float: left;
overflow: hidden;
font: normal normal 12px/23px "SimSun";
height: 23px;
margin: 0;
padding: 0 0 0 10px;
margin-right: 30px;
background: url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;
}
</style>

 <link rel="stylesheet" href="http://static.blog.csdn.net/css/replace.css"/>

<div id="relate" data-mod="popu_218"  class="tracking-ad">
        <div class="relate_t">
            <h3><span>参考知识库</span></h3>
        </div>
        <div class="relate_c">
        </div>
</div>
 

<dl class="blog-ass-articl" id="res-relatived" > 
    <div class="embody embody_b" id="libkeyparent"  style="display:none">
            <span class="embody_t">更多资料请参考:</span>
            <div class="embody_c" id="libkey"></div>
    </div>


     <dt><span>猜你在找</span></dt>    


   


    <div id="adCollege" style="width: 42%;float: left;"> 
        <script src="http://csdnimg.cn/jobreco/job_reco.js" type="text/javascript"></script> 
        <script type="text/javascript">
            csdn.position.showEdu({
                sourceType: "blog",
                searchType: "detail",
                searchKey: "37815863",
                username: "iis81365341",
                recordcount: "5",
                containerId: "adCollege" //容器DIV的id。 
            });
            
            setEduLoc();

            function setEduLoc() {               
                var edus = $("#adCollege div dd a");
                if (edus.length == 0) {
                    setTimeout(function () {
                        setEduLoc();
                    }, 500);
                }
                else {
                    var eduLoc = "?ref=blog&loc=0";
                    $.each(edus, function (index,item) {
                        var href = $(this).attr("href") + eduLoc;
                        $(this).attr("href", href);
                    });
                }
            }

        </script> 
    </div>  

    
     <div id="res"  data-mod="popu_36"  class="tracking-ad" style="width: 42%;float: left;margin-right: 30px;"></div>
   
</dl>


<script type="text/javascript">
    $(function () {
        setTimeout(function () {
            var searchtitletags = '第二章 BIRT设计器概述及本地化支持' + ',' + $("#tags").html();
            searchService({
                index: 'blog',
                query: searchtitletags,
                from: 5,
                size: 5,
                appendTo: '#res',
                url: 'recommend',
                his: 2,
                client: "blog_cf_enhance",
                tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
            });
        }, 500);
    });    

 </script>  


    <div id="ad_cen">        
<ins data-revive-zoneid="71" data-revive-id="8c38e720de1c90a6f6ff52f3f89c4d57"></ins>    </div>  

    <!-- 广告位开始 -->
    <ins data-revive-zoneid="72" data-revive-id="8c38e720de1c90a6f6ff52f3f89c4d57"></ins>
    <!-- 广告位结束 -->

<div class="comment_class">
    <div id="comment_title" class="panel_head">
        <span class="see_comment">查看评论</span><a name="comments"></a></div>
    <div id="comment_list">
    </div>
    <div id="comment_bar">
    </div>
    <div id="comment_form">
    </div>
    <div class="announce">
        * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div>
</div>

<script type="text/javascript">
    var fileName = '37815863';
    var commentscount = 0;
    var islock = false
</script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
    <div id="ad_bot">
    </div>
<div id="report_dialog">
</div>

<div id="d-top"  style="bottom:60px;">

        <a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
            <img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
        </a>    
    <a id="d-top-a" class="btn btn-top backtop"  style="display: none;" title="返回顶部" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])" style="">         
         <img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
    </a>
</div>
<script type="text/javascript">
    $(function ()
    {
        $("#ad_frm_0").height("90px");
        
        setTimeout(function(){
            $("#ad_frm_2").height("200px");
        },1000);    
    });
  
</script>
<style type="text/css">
    .tag_list
    {
        background: none repeat scroll 0 0 #FFFFFF;
        border: 1px solid #D7CBC1;
        color: #000000;
        font-size: 12px;
        line-height: 20px;
        list-style: none outside none;
        margin: 10px 2% 0 1%;
        padding: 1px;
    }
    .tag_list h5
    {
        background: none repeat scroll 0 0 #E0DBD3;
        color: #47381C;
        font-size: 12px;
        height: 24px;
        line-height: 24px;
        padding: 0 5px;
        margin: 0;
    }
    .tag_list h5 a
    {
        color: #47381C;
    }
    .classify
    {
        margin: 10px 0;
        padding: 4px 12px 8px;
    }
    .classify a
    {
        margin-right: 20px;
        white-space: nowrap;
    }
</style>


<div class="tag_list" style="display:none"></div>
  <script  language="javascript" type='text/javascript'>     
      $(function(){
              setTimeout(function(){
                  $.get("/z1012890225/svc/GetTagContent",function(data){
                      $(".tag_list").html(data).show();
                  });     
              });
          },500);                       
 </script> 


<div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
    
</div>
<div id="popup_mask"></div>
<style>
    #popup_mask
    {
        position: absolute;
        width: 100%;
        height: 100%;
        background: #000;
        z-index: 9999;
        left: 0px;
        top: 0px;
        opacity: 0.3;
        filter: alpha(opacity=30);
        display: none;
    }

</style>




<script type="text/javascript">
    $(function(){        
        
        setTimeout(function(){
            $(".comment_body:contains('回复')").each(function(index,item){
                var u=$(this).text().split(':')[0].toString().replace("回复","")
                var thisComment=$(this);
                if(u)
                {
                    $.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
                        if(a!=null&&a.data!=null&&a.data.length>0)
                        {
                            nick=a.data[0].n; 
                            if(u!=nick)
                            {
                                thisComment.text(thisComment.text().replace(u,nick));  
                            }
                        }       
                    });  
                }
            });         

        },200);  

        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },5000);

        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },10000);

        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },15000);
        
        setTimeout(function(){
            $("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});
        },300);
    });

    function loginbox(){
        var $logpop=$("#pop_win");
        $logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');

        $('#popup_mask').css({
            opacity: 0.5,
            width: $( document ).width() + 'px',
            height:  $( document ).height() + 'px'
        });
        $('#popup_mask').css("display","block");
 
        $logpop.css( {
            top: ($( window ).height() - $logpop.height())/ 2  + $( window 
       ).scrollTop() + 'px',
            left:($( window ).width() - $logpop.width())/ 2
        } );
 
        setTimeout( function () {
            $logpop.show();
            $logpop.css( {
                opacity: 1
            } );
        }, 200 );
 
        $('#popup_mask').unbind("click");
        $('#popup_mask').bind("click", function(){
            $('#popup_mask').hide();
            var $clopop = $("#pop_win");
            $("#common_ask_div_sc").css("display","none");
            $clopop.css( {
                opacity: 0
            } );
            setTimeout( function () {
                $clopop.hide();
            }, 350 );
            return false;
        });
    }   

</script>
 <script language="javascript" type="text/javascript" src="http://ads.csdn.net/js/async_new.js"></script>      




                        <div class="clear">
                        </div>
                    </div>                   
                
            </div>
                   
           <div id="side">
               
    <div class="side">
<div id="panel_Profile" class="panel">
<ul class="panel_head"><span>个人资料</span></ul>
<ul class="panel_body profile">
<div id="blog_userface">
    <a href="http://my.csdn.net/z1012890225" target="_blank">
    <img src="http://avatar.csdn.net/5/7/8/1_z1012890225.jpg" title="访问我的空间" style="max-width:90%"/>
    </a>
    <br />
    <span><a href="http://my.csdn.net/z1012890225" class="user_name" target="_blank">z1012890225</a></span>
</div>
<div class="interact">

    <a href="javascript:void(0);" class="attent" id="span_add_follow" title="[加关注]"></a>

 <a href="javascript:void(0);" class="letter"  title="[发私信]" οnclick="window.open('http://msg.csdn.net/letters/model?receiver=z1012890225','_blank','height=350,width=700');_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_sixin'])"></a>  
</div>
<div id="blog_medal">
                <div id="bms_box">
               </div>
</div>
<ul id="blog_rank">
    <li>访问:<span>34286次</span></li>
    <li>积分:<span>566</span> </li>    
    <li >等级: <span style="position:relative;display:inline-block;z-index:1" >
            <img src="http://c.csdnimg.cn/jifen/images/xunzhang/jianzhang/blog3.png" alt="" style="vertical-align: middle;" id="leveImg">
            <div id="smallTittle" style=" position: absolute;  left: -24px;  top: 25px;  text-align: center;  width: 101px;  height: 32px;  background-color: #fff;  line-height: 32px;  border: 2px #DDDDDD solid;  box-shadow: 0px 2px 2px rgba (0,0,0,0.1);  display: none;   z-index: 999;">
            <div style="left: 42%;  top: -8px;  position: absolute;  width: 0;  height: 0;  border-left: 10px solid transparent;  border-right: 10px solid transparent;  border-bottom: 8px solid #EAEAEA;"></div>
            积分:566 </div>
        </span>  </li>
    <li>排名:<span>千里之外</span></li>
</ul>
<ul id="blog_statistics">
    <li>原创:<span>11篇</span></li>
    <li>转载:<span>67篇</span></li>
    <li>译文:<span>0篇</span></li>
    <li>评论:<span>3条</span></li>
</ul>
</ul>
</div>


<div class="panel" id="panel_Search">
    <ul class="panel_head"><span>文章搜索</span></ul>
    <ul class="panel_body">
        <form id="frmSearch" action="http://so.csdn.net/search" class="form_search" target="_blank">
        <span><input id="inputSearch" type="text" class="blogsearch" title="请输入关键字" /></span>
        <input id="btnSubmit" type="button" value="搜索" title="search in blog" />
        <input type="hidden" name="q" id="inputQ" />
        <input type="hidden" name="t" value="blog" />
        <a id="btnSearchBlog" target="_blank"></a>
        </form>
    </ul>
</div>

<script type="text/javascript">
    $(function () {
        $("#btnSubmit").click(function () {           
            search();
        });

        $("#frmSearch").submit(function () {
            search();
            return false;
        });

        function search()
        {
            var url = "http://so.csdn.net/so/search/s.do?q=" + encodeURIComponent($("#inputSearch").val()) + "&u=" + username + "&t=blog";
            window.location.href = url;
        }   
    });
</script><div id="panel_Category" class="panel">
<ul class="panel_head"><span>文章分类</span></ul>
<ul class="panel_body">    
                 <li>
                    <a href="/z1012890225/article/category/2358473" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">spring</a><span>(5)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2358487" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">java</a><span>(9)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2358491" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">maven</a><span>(2)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2358497" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">freemarker</a><span>(0)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2358499" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">jbpm</a><span>(5)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2358503" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">数据库</a><span>(3)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2358505" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">birt</a><span>(30)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/2864491" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ajax</a><span>(1)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/5672217" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">lucene</a><span>(3)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/5722249" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">solrCloud</a><span>(4)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6195415" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">redis</a><span>(2)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6297407" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">linux</a><span>(4)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6297432" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ftp</a><span>(0)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6298395" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">nginx</a><span>(3)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6299032" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ucenter</a><span>(1)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6299051" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ucenter</a><span>(1)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6325325" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">html</a><span>(2)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6332040" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">lucene solrj</a><span>(0)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6438400" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">php</a><span>(3)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6686836" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">支付</a><span>(1)</span>
                </li>
                 <li>
                    <a href="/z1012890225/article/category/6854241" οnclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">activemq</a><span>(1)</span>
                </li>
</ul>
</div><div id="panel_Archive" class="panel">
<ul class="panel_head"><span>文章存档</span></ul>
<ul class="panel_body">
<div id="archive_list">
<!--归档统计-->
<li><a href="/z1012890225/article/month/2017/04">2017年04月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2017/02">2017年02月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2017/01">2017年01月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2016/09">2016年09月</a><span>(5)</span></li><li><a href="/z1012890225/article/month/2016/08">2016年08月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2016/07">2016年07月</a><span>(6)</span></li><li><a href="/z1012890225/article/month/2016/04">2016年04月</a><span>(2)</span></li><li><a href="/z1012890225/article/month/2016/03">2016年03月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2016/02">2016年02月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2016/01">2016年01月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2015/08">2015年08月</a><span>(5)</span></li><li><a href="/z1012890225/article/month/2015/07">2015年07月</a><span>(4)</span></li><li><a href="/z1012890225/article/month/2015/04">2015年04月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2015/02">2015年02月</a><span>(1)</span></li><li><a href="/z1012890225/article/month/2015/01">2015年01月</a><span>(4)</span></li><li><a href="/z1012890225/article/month/2014/11">2014年11月</a><span>(6)</span></li><li><a href="/z1012890225/article/month/2014/09">2014年09月</a><span>(3)</span></li><li><a href="/z1012890225/article/month/2014/07">2014年07月</a><span>(33)</span></li><li><a href="/z1012890225/article/month/2014/06">2014年06月</a><span>(2)</span></li>
</div>
</ul>
</div>
<div id="hotarticls" class="panel">
<ul class="panel_head">
    <span>       
阅读排行    </span>
</ul>

<ul class="panel_body itemlist">
<li>
<a href="/z1012890225/article/details/51831162" title="linux centos 简单安装vsftpd 服务及配置卸载">linux centos 简单安装vsftpd 服务及配置卸载</a><span>(1951)</span>
</li>
<li>
<a href="/z1012890225/article/details/52681624" title="centos 6.4 安装php 5.6.26 源码安装">centos 6.4 安装php 5.6.26 源码安装</a><span>(1290)</span>
</li>
<li>
<a href="/z1012890225/article/details/37816721" title="第十三章 BIRT报表引擎API及报表API">第十三章 BIRT报表引擎API及报表API</a><span>(1183)</span>
</li>
<li>
<a href="/z1012890225/article/details/50895523" title="Spring事务异常回滚,捕获异常不抛出就不会回滚">Spring事务异常回滚,捕获异常不抛出就不会回滚</a><span>(1091)</span>
</li>
<li>
<a href="/z1012890225/article/details/50480844" title="项目管理心得:一个项目经理的个人体会、经验总结">项目管理心得:一个项目经理的个人体会、经验总结</a><span>(1011)</span>
</li>
<li>
<a href="/z1012890225/article/details/50669509" title="CXF调用传递对象参数">CXF调用传递对象参数</a><span>(961)</span>
</li>
<li>
<a href="/z1012890225/article/details/41075571" title="spring3 mvc 整合jbpm4.4 步骤">spring3 mvc 整合jbpm4.4 步骤</a><span>(923)</span>
</li>
<li>
<a href="/z1012890225/article/details/37816599" title="第十一章 BIRT数据绑定与脚本,事件机制详解(续) .">第十一章 BIRT数据绑定与脚本,事件机制详解(续) .</a><span>(836)</span>
</li>
<li>
<a href="/z1012890225/article/details/37816557" title="第十一章 BIRT数据绑定与脚本,事件机制详解 .">第十一章 BIRT数据绑定与脚本,事件机制详解 .</a><span>(731)</span>
</li>
<li>
<a href="/z1012890225/article/details/37816771" title="第十三章 BIRT报表引擎API及报表API (续2)-利用BIRT设计引擎API生成报表">第十三章 BIRT报表引擎API及报表API (续2)-利用BIRT设计引擎API生成报表</a><span>(707)</span>
</li>
</ul>
</div>
<div id="hotarticls2" class="panel">
<ul class="panel_head"><span>评论排行</span></ul>
<ul class="panel_body itemlist">
<li>
<a href="/z1012890225/article/details/37816745" title="第十三章 BIRT报表引擎API及报表API (续)-自定义web BIRT展示器">第十三章 BIRT报表引擎API及报表API (续)-自定义web BIRT展示器</a><span>(2)</span>
</li>
<li>
<a href="/z1012890225/article/details/41075571" title="spring3 mvc 整合jbpm4.4 步骤">spring3 mvc 整合jbpm4.4 步骤</a><span>(1)</span>
</li>
<li>
<a href="/z1012890225/article/details/37816043" title="第四章 BIRT数据集和参数的建立">第四章 BIRT数据集和参数的建立</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/37816025" title="第三章 BIRT数据源的配置(续2)">第三章 BIRT数据源的配置(续2)</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/37815977" title="第三章 BIRT数据源的配置(续)">第三章 BIRT数据源的配置(续)</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/37815947" title="第三章 BIRT数据源的配置">第三章 BIRT数据源的配置</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/37815907" title="第二章 BIRT设计器概述及本地化支持(续)">第二章 BIRT设计器概述及本地化支持(续)</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/37815863" title="第二章 BIRT设计器概述及本地化支持">第二章 BIRT设计器概述及本地化支持</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/70054230" title="springmvc 集成activemq引入activemq-all-5.14.4有冲突">springmvc 集成activemq引入activemq-all-5.14.4有冲突</a><span>(0)</span>
</li>
<li>
<a href="/z1012890225/article/details/37657977" title="mysql常用命令,及导入导出命令">mysql常用命令,及导入导出命令</a><span>(0)</span>
</li>
</ul>
</div>
<div id="homepageArticles" class="panel tracking-ad" data-mod="popu_4">
<ul class="panel_head"><span>推荐文章</span></ul>
<ul class="panel_body" id="ad_commend">
<ul>
<li><a href="http://blog.csdn.net/u010278923/article/details/70186182" target="_blank">* 云计算的那些事儿之计算虚拟化</a></li>
<li><a href="http://blog.csdn.net/congyihao/article/details/70195154" 
target="_blank">* 微服务--分布式事务的实现方法及替代方案</a></li>
<li><a href="http://blog.csdn.net/my_truelove/article/details/70196028"target="_blank">* 你应该知道的 Android 数据库更新策略</a></li>
<li><a href="http://blog.csdn.net/androidlushangderen/article/details/70195430" 
target="_blank">* HDFS副本放置节点选择的优化</a></li>
<li><a href="http://blog.csdn.net/blogdevteam/article/details/70197331" 
target="_blank">* CSDN日报20170416 ——《为什么程序员话少钱多死得早?》</a></li>
<li><a href="http://blog.csdn.net/tenkywoo/article/details/70176224" 
target="_blank">* 凡人视角C++之string(上)</a></li>

</ul></ul>
</div>


<div id="newcomments" class="panel">
<ul class="panel_head"><span>最新评论</span></ul>
<ul class="panel_body itemlist">
    <li>
   
         <a href="/z1012890225/article/details/41075571#comments">spring3 mvc 整合jbpm4.4 步骤</a>
    <p style="margin:0px;"><a href="/u010842261" class="user_name">u010842261</a>:
很赞!!!
    </p>
    </li>
    <li>
   
         <a href="/z1012890225/article/details/37816745#comments">第十三章 BIRT报表引擎API及报表API (续)-自定义web BIRT展示器</a>
    <p style="margin:0px;"><a href="/z1012890225" class="user_name">z1012890225</a>:
@imfjj:你好,理论上应该可以,因为报表是依赖模板的,只要你能把用户的操作转换成正确的模板,就可...
    </p>
    </li>
    <li>
   
         <a href="/z1012890225/article/details/37816745#comments">第十三章 BIRT报表引擎API及报表API (续)-自定义web BIRT展示器</a>
    <p style="margin:0px;"><a href="/imfjj" class="user_name">imfjj</a>:
请问birt报表可不可以在浏览器端实现用户自定义创建删除保存报表?
    </p>
    </li>
</ul>
</div>
    </div>
    <div class="clear">
    </div>


                   <!-- 广告位开始 --> 
                    <ins data-revive-zoneid="190" data-revive-id="8c38e720de1c90a6f6ff52f3f89c4d57"></ins> 
                    <!-- 广告位结束 -->

           </div>   

            <div class="clear">
            </div>
        </div>

        

<script type="text/javascript" src="http://c.csdnimg.cn/rabbit/cnick/cnick.js"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/newblog.min.js"></script>


<script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=1951535"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/JavaScript1.js"></script>

<script type="text/javascript">document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</script>
<script type="text/javascript" src="http://www.csdn.net/ui/scripts/Csdn/counter.js"></script>
<script type="text/javascript" src="http://ad.csdn.net/scripts/ad-blog.js"></script>
<script type="text/javascript">
    $(function () {
        function __get_code_toolbar(snippet_id) {
            return $("<span class='tracking-ad' data-mod='popu_167'><a href='https://code.csdn.net/snippets/"
                    + snippet_id
                    + "' target='_blank' title='在CODE上查看代码片'  style='text-indent:0;'><img src='https://code.csdn.net/assets/CODE_ico.png' width=12 height=12 alt='在CODE上查看代码片' style='position:relative;top:1px;left:2px;'/></a></span>"
                    + "<span class='tracking-ad' data-mod='popu_170'><a href='https://code.csdn.net/snippets/"
                    + snippet_id
                    + "/fork' target='_blank' title='派生到我的代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/ico_fork.svg' width=12 height=12 alt='派生到我的代码片' style='position:relative;top:2px;left:2px;'/></a></span>");
        }
        
        $("[code_snippet_id]").each(function () {
            __s_id = $(this).attr("code_snippet_id");
            if (__s_id != null && __s_id != "" && __s_id != 0 && parseInt(__s_id) > 70020) {
                __code_tool = __get_code_toolbar(__s_id);
                $(this).prev().find(".tools").append(__code_tool);
            }
        });

        $(".bar").show();
    });
</script>





    </div>
      <!--new top-->
    
    <script id="csdn-toolbar-id" btnId="header_notice_num" wrapId="note1" count="5" subCount="5" type="text/javascript" src="http://c.csdnimg.cn/public/common/toolbar/js/toolbar.js"></script>
     <!--new top-->
   
    <link href="http://c.csdnimg.cn/comm_ask/css/ask_float_block.css" type="text/css" rel="stylesheet" />
    <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/libs/wmd.js'></script>
    <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/libs/showdown.js'></script>
    <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/libs/prettify.js'></script>
    <script language='JavaScript' type='text/javascript' src='http://c.csdnimg.cn/comm_ask/js/apps/ask_float_block.js'></script>
   

   

  <div id="a52b5334d" style="width: 1px; height: 1px; display: none;">
                    <script id="adJs52b5334"></script>
                    <script>document.getElementById("adJs52b5334").src = "http://ads.csdn.net/js/opt/52b5334.js?t=" + Math.random();</script>
   </div>

    <link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_code.css" />
    <script type="text/javascript" src="http://static.blog.csdn.net/scripts/saveToCode.js"></script>
      <script type="text/javascript" src="//csdnimg.cn/rabbit/tracking-ad/main.js?75eacd8"></script>

     <link rel="stylesheet" href="http://static.blog.csdn.net/css/fa.css" />

    <div class="pop_CA_cover"  style="display:none"></div>
    <div class="pop pop_CA"  style="display:none">
          <div class="CA_header">
            收藏助手
            <span class="cancel_icon"  id="fapancle"  οnclick="$('.pop_CA').hide();$('.pop_CA_cover').hide();"></span>
          </div>
          <iframe src="" id="fa" frameborder="0" width="100%" height="360"  scrolling="no" />
    </div>
</body>
</html>   
 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值