iReport Designer 制作模板

1,436 阅读3分钟

Jaspersoft iReport Designer 制作模板

软件版本 iReport - 5.6.0

1 安装注意事项

  • 必须使用 JDK 1.7

    启动不了,需要指定jdkhome

    image.png

  • 需要使用json格式数据填充爆掉,需要添加驱动

    image.png

    image.png

2 报表制作

2.1 新建报表

image.png

2.2 报表页面

1.png

image.png

页面组成:

  • Title 报表名,只在第一页显示。
  • Page Header 放页码,时间,创建人,每一页都会显示出来。
  • Column Header 列名。
  • Detail 1 循环的数据,比如说我们直接从数据库中得到数据,只用将字段拖到此区域,那么就会将所有的这个字段的值进行循环了。
  • Column Footer 可以用来统计此列数据。
  • Page Footer 每页底部都会显示的,如页码。
  • Last Page Footer 最后一页的底部,如日期,签名。
  • Summary 可能需要对几页(你的报表可能有几个页组成)的统计值。比如50个销售记录共占用了3页,那么放置这些统计记录的统计值最好的地方就是summary。Summary只在最后一页出现
  • No Data 没有数据时显示
  • Background 背景图片

我们可以自己选择需要的部分,不需要的部分可以删除,删除之后可以add添加

2.3 常用组件

组件面板

“break”:分页符,分栏符。产生分页效果。

“chart”:饼状图,树状图等。

“crosstab”:交叉报表

“ellipse”:椭圆。

“frame”:框架,可放内容。

“image”:图片。

“barcode”:条形码。

“generic element”:一般的元素,没有效果,可以放元素。

“list”:列,放在其中的元素会跟着移动和删除。

“spider chart”:网状图。

“table”:表格,拖入的元素会自动与单元格大小重合。

“line”:仅直线。

“rectangle”:长方形,也可以调到正方形。

“round rectangle”:圆角长方形。

“static text”:静态文本,即不使用变量、参数等,输入什么就是什么。

“subreport”:子报表,会插入一个新的报表。

“Text field”:文本字段,可插入参数、变量。

Tools(工具)

“callout”:标注,有系统用户名、日期和时间,并不会显示在文件中。

“current date”:插入当前日期。

“page number”:当前页码。

“page X of Y”:当前多少页和总共页数。

“percentage”:百分比,需要字段。

“total page”:总页数

2.4 常需要设置属性

image.png

2.5 自定义样式

1、window--Style library -- 右键 add 添加style ,设置好了之后。再右键Add Style To Report,然后选中field 时,要style属性中选择自定的样式即可。

右击style 选择“添加”—“Style” , 可以在属性中设置style的各种属性,也可以默认不改;

2、右击style 选择“添加Conditional Style”,添加在各种情况下设置不同的style属性,右击每个Conditional Style 选择“Edit Condition”为每个Condition Style 设置触发条件,比如 $F{username}.length()>10,设置字体Forecolor颜色和大小,其它可以默认即可。

3、在field的style上引用新建style1样式。

4、如果引用样式没有效果,那是自定义style1样式与本来field 的字体大小冲突,还得在xml中删除 field的字体大小。

如下 field 删除 字体大小 size="13",style="style1"引用样式。

<textField isStretchWithOverflow="true" isBlankWhenNull="true">
    <reportElement uuid="1e7d3883-9d23-4013-a964-341f71555ca1" style="style1" stretchType="RelativeToTallestObject" x="69" y="120" width="486" height="491"/>
    <box>
     <rightPen lineWidth="0.75"/>
    </box>
    <textElement>
     <font fontName="仿宋" size="13" isStrikeThrough="false" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
    </textElement>
    <textFieldExpression><![CDATA["    "+$F{GRCS}]]></textFieldExpression>
</textField>

5、样式xml

<style name="style1">
        <conditionalStyle>
            <conditionExpression><![CDATA[$F{GRCS}.length()<=2000 && $F{GRCS}.length()>1500]]>                   </conditionExpression>
            <style fontName="仿宋" fontSize="10"/>
        </conditionalStyle>
        <conditionalStyle>
            <conditionExpression><![CDATA[$F{GRCS}.length()<=1500 && $F{GRCS}.length()>1000]]>                   </conditionExpression>
            <style fontName="仿宋" fontSize="12"/>
        </conditionalStyle>
        <conditionalStyle>
            <conditionExpression><![CDATA[$F{GRCS}.length()<=1000]]></conditionExpression>
            <style fontName="仿宋" fontSize="13"/>
        </conditionalStyle>
        <conditionalStyle>
            <conditionExpression><![CDATA[$F{GRCS}.length()>2000]]></conditionExpression>
            <style fontSize="9"/>
        </conditionalStyle>
</style>

注:可以设定不同的Condition Style,让报表元素可以根据不同的条件显示不同的状态(控制颜色显示) 用报表去对比不同的数据时,可以使用这个功能,方便将不一致的地方自动根据设定好的条件,用不同的颜色或者其它形式显示出来; 一份报表可以设定多个不同的Style,在给报表的每个元素赋予不同的Style,来达到控制显示的效果;

2.6 交叉报表

从“组件面板”中拖拽“Crosstab”控件(如图5.1)到“Summary”部分

在“Row Group 1”处从查询出来的字段中选择“student_name”作为每行的行标题,之后从“Column Group 1”处选择“subject”作为每列的列标题,再单击“下一步”,显示每个学生的总成绩,不显示每科的总成绩。

组件面板

image.png

选择数据

image.png

选择行字段

image.png

image.png

选择列字段

image.png

选择合计

image.png

创建完成

image.png

Preview预览 Compile 编译

image.png

预览结果:

image.png