finereport字段显示设置_FineReport可视化数据

本文详细介绍了如何使用FineReport进行报表设计,包括简单报表和复杂报表的创建,如折叠树报表的双向折叠设置,以及日期区间、周、月、季控件的联动。同时讲解了数据为0时显示为空值、单元格文字缩进等格式问题的解决方法,确保报表的美观和实用性。
摘要由CSDN通过智能技术生成

因工作需要,自学了FineReport,该报表工具通过类Excel的设计器一键连接数据源,建立在SQL写好数据集的基础上,拖拽字段绑定单元格,就可以制作出各种炫酷、实用的报表。接下来就遇到的实际问题做一番总结。

一、简单报表设计

1、 建立数据集(SQL)

2、制表(同EXCEL)(拖拉需要的字段)、设置参数控件

二、复杂报表设计(注意:折叠树报表需要用数据分析预览)

(一)折叠树-双向折叠(横向和纵向)

A、纵向折叠需要设置左父格;条件属性——行高(len($$$) = 0)

横向折叠设置上父格;条件属性——列宽(len($$$) = 0)

双向折叠设置左、上父格

B、选中单元格-控件设置-按钮控件、树节点按钮

C、自定义展开树级数(默认展开一级)

根据需要展开固定的级数,操作如下:

操作:模版——模版web属性——数据分析设置,为该模版单独设置——写JS

$("#content-container").find("tr").has(".x-treenode-unexpand").each(function(){

if($(this).children().eq(5).text()==1){

$(this).find(".x-treenode-unexpand").trigger('click');}})##JS写在下图“加载结束”

——在需要展开的级数前,添加定位符——隐藏定位符

1、建立树数据集

2、制表(拖拉需要的字段)、设置参数控件

三、日期区间、周、月、季控件在一张表里

保证效果:控件里具体的周,显示该周具体的日期区间,报表里面的数显示的就是该周的数。 同理,控件里具体的月/季,显示该月/季具体的日期区间,报表里面的数显示的就是该月/季的数。但周、月、季三者控件之间是没有联系。

需要写JS:

(一)周按钮:鼠标放在按钮上,左击——右部分,事件——点击

var

kaishi= this.options.form.getWidgetByName("week").getValue();

if('${=WEEKDAY(DATE(year(),1,1))}'==0){

var

rq1="DATE(year(),1,1)+"+kaishi+"*7-13";

var

str1='format('+rq1+',"yyyyMMdd")'

var K1=FR.remoteEvaluate(str1);

var

rq2="DATE(year(),1,1)+"+kaishi+"*7-7";

var

str2='format('+rq2+',"yyyyMMdd")'

var K2=FR.remoteEvaluate(str2);

var state1=

this.options.form.getWidgetByName("starttime");

var state2=

this.options.form.getWidgetByName("endtime");

state1.setValue(K1);

state2.setValue(K2);

}else{

}

(二)月按钮:同周设置。鼠标放在按钮上,左击——右部分,事件——点击

var

kaishi= this.options.form.getWidgetByName("month").getValue();

var

rq1="date(year(today()),"+kaishi+",1)";

var

str1='format('+rq1+',"yyyyMMdd")'

var K1=FR.remoteEvaluate(str1);

var

rq2="DATEINMONTH(date(year(today()),"+kaishi+",1),-1)";

var

str2='format('+rq2+',"yyyyMMdd")'

var K2=FR.remoteEvaluate(str2);

var state1=

this.options.form.getWidgetByName("starttime");

var state2= this.options.form.getWidgetByName("endtime");

state1.setValue(K1);

state2.setValue(K2);

(三)季控件:鼠标放在按钮上,左击——右部分,事件——点击

var

season= this.options.form.getWidgetByName("season").getValue();

var

da = new Date();

var

year = da.getFullYear();

if(season=="1")

{

var

firstdate = year + '0101';

var

lastdate = year + '0331';

}

else

if(season=="2")

{

var

firstdate = year + '0401';

var

lastdate = year + '0630';

}

else

if(season=="3")

{

var

firstdate = year + '0701';

var

lastdate = year + '0930';

}

else

if(season=="4")

{

var

firstdate = year + '1001';

var

lastdate = year + '1231';

}

var K1=FR.remoteEvaluate(firstdate);

var K2=FR.remoteEvaluate(lastdate);

var state1=

this.options.form.getWidgetByName("starttime");

var state2= this.options.form.getWidgetByName("endtime");

state1.setValue(K1);

state2.setValue(K2);

四、格式问题:

1、 数据为0时,设置为空值。

操作:选中单元格,右击——条件属性——新值(公式)len($$$) = 0

2、 单元格文字缩进

操作:选中单元格——条件属性——缩进

3、 预览时报表居中、去掉工具栏

(1) 报表居中:(工具栏)模版——模版web属性——填报页面设置——为该模版单独设置

(2) 去掉工具栏:(工具栏)模版-模版web属性-填报页面设置-为该模版单独设置

4、左父格、上父格设置

5、预览时,不用点击“查询”,自动查询。鼠标放到参数控件板块

6、图形填色

图形属性-系列-配色(自定义)-边框(颜色设置为透明)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值