帆软报表使用总结

  1. 如果页面不分页,可以把页面纸张大小设置小一点,横向自适应,访问URL后增加&__bypagesize__=false 
    这样左右是自适应的,上下按实际大小显示,这种可以避免有上下滚动条时,下方有大量空白。
  2. 如果需要在移动端展示,别用悬浮图表,移动端不支持悬浮元素。
  3. 表单标题通过数据集直接获取,获取不到,可以采用两种形式获取
  1. 借助单元格

将数据集结果放到单元格中,标题公式通过引用单元格获取;

  1. 通过sql函数获取

在公式中直接通过sql函数获取,例如:sql("gsjg_xc","SELECT '测试' as name from dual ",1,1)。

有些函数,表单标题不支持!

  1. 帆软中调用外部函数

parent.window.函数名称(参数列表)

  1. 帆软报表弹出对话框没有出现横向滚动条,解决方案是

Body布局改为绝对布局,固定大小

  1. 获取数据集记录数

ROWCOUNT("ds1"),ds1为数据集名称

  1. 表单中获取表单参数控件中的参数的值并修改

var state=_g().parameterEl.getWidgetByName("a");

     state.setValue(1);

  1. 我们在使用表单的时候,有时候可能想实现点击某按钮,隐藏某个报表块或者图表块,那么在按钮中添加点击事件,js如下:
    var Widget = this.options.form.getWidgetByName('report0');
    Widget.invisible();

如果要显示:Widget.visible();

  1. 手机端展示cpt要采用h5展示的话,需要在分页预览下才可以,路径后面加上op=h5_page这样在手机上看的话会根据手机浏览器的高度全屏进行分页,如果不想分页采用滑动的形式查看的话,再加上_bypagesize_=false使其不分页预览

,如果想横向不出现滚动条自适应显示的话,需要将单元格的内容控制在上方的标尺刻度为430范围内(适应大部分的手机)即可自适应屏幕显示,不出现滚动条。

  1. 填报导入Excel,根据标题匹配导入excel,报表标题变为excel标题 

设计器版本号:8.0.0  Build # 2016.10.18.12.22.22.598
bug
现象补充:报表中有四列的标题顺序与excel中不同,报表中为类别、供应商、成本价、单价,excel中为供应商、类别、单价、成本价。
设置了,重启后,如果报表中标题顺序和excel中顺序不同,且都是A1开始excel导入后报表标题会变成excel中的顺序。
报表模板:
http://bbs.fanruan.com/data/attachment/forum/201610/20/083058gvxzkxewvuyyxy2x.png  
excel
http://bbs.fanruan.com/data/attachment/forum/201610/20/083219r1ttfm123tg3fuly.png  
预览:
http://bbs.fanruan.com/data/attachment/forum/201610/20/083129p9xu9v4vabbv74bp.png  
导入后:
帆软报表使用总结_第1张图片  

如果excel是从B2开始的(即在excel中插入一行和一列),报表不变,导入后标题顺序则是以报表为准。
excel
http://bbs.fanruan.com/data/attachment/forum/201610/20/083431anqhtqyzjbts897f.png  
导入后:帆软报表使用总结_第2张图片

但是还是存在bug,如果Excel中就一条数据,就会有问题,标题会当成一条记录导入

  1. 排序

排序既可以对数字也可以对汉字进行排序,但是为空数据不能参与排序,如果有空的话就会报错

  1. 如果排序需要加上序号的话,序号可以这样设置,如下:

帆软报表使用总结_第3张图片

选中序号列,右击条件属性,设置新值

帆软报表使用总结_第4张图片

然后设置分页:

帆软报表使用总结_第5张图片

  1. 排序

例如对监测值进行排序,右击监测值标题,选择超链接,选择动态参数

  1. 升序

帆软报表使用总结_第6张图片

注:参数a的值需选择公式,而参数asc和desc的值不可以选择公式,只能是字符串。参数a的意义在于,点击一次超级链接就替换一次a的值,那么在下面进行排序就可以根据a的值来决定是升序还是降序。

  1. 降序

帆软报表使用总结_第7张图片

  1. 对第一个数据列设置排序公式,输入公式if($a==1,eval($asc),eval($desc))

帆软报表使用总结_第8张图片

这样就可以实现排序啦。

  1. 给参数下拉框赋值为公式的话,以年为例子,如下:

SPLIT(RANGE(TOINTEGER(format(now(),'yyyy')),2012,-1),',')

帆软报表使用总结_第9张图片

结果为

帆软报表使用总结_第10张图片

  1. 帆软报表点击图表,图表外框颜色为黑色,去掉黑色显示的办法如下:

在报表加载结束事件中添加:

_g().curLGP.hideSelectFrame();  

即可。

  1. 报表与微信企业号集成,自适应的话需要加上&op=h5参数。
  2. 报表中图表自定义最大值,采用公式定义,如果联动的话,最大值并不会改变,因为公式是在页面生成时就运行结束了,不会再变化的 
  3. 数据集中用到参数,可以使用公式进行判断,例如:

Select  * from test  where 1=1

${

If(param1==””,””,” and a=’”+param1+”’”)

}

  1. 模板自适应设置,如果自己设置了自适应属性,将“使用全局配置”复选框去掉。
  2. 在手机端显示的表单,有时候自适应右边会有多余的空白,解决方案如下:

帆软报表使用总结_第11张图片

竖屏,选择横向自适应即可。

  1. 如果单元格中用到了html元素,需要html解析显示的话,在单元格属性那块,显示内容选择“用html显示内容”,如下:

帆软报表使用总结_第12张图片

  1. 图表如果想自定义显示颜色的话,可以通过在条件显示中进行设置,如下:

帆软报表使用总结_第13张图片

  1. 如果进行图表或者报表块之间联动,在交互属性-超级链接中设置即可,如下:

帆软报表使用总结_第14张图片

  1. 图表显示标签可以自定义,注意:这个在新特性图表中才有,如下:

帆软报表使用总结_第15张图片

  1. 对单元格根据不同的条件进行特定显示,右击单元格,条件属性,进行设置即可,当前单元格的值表示为$$$ ,如下:

帆软报表使用总结_第16张图片

  1. 帆软报表中的函数,右击单元格,插入公式,就可以看到报表中的函数并附带函数的说明,很方便

帆软报表使用总结_第17张图片

  1. 复杂的列表通过灵活的设置左父格一般都能搞定。
  2. 数据集有时候查询的数据来自不同的表,并且字段的处理也不尽相同的话,可以每个数据集单独设置,然后通过关联数据集,根据不同的条件关联上就可以了,例如:

帆软报表使用总结_第18张图片

  1. 数据集中也可以使用存储过程,详细使用可以参考帆软帮助文档:存储过程-http://help.finereport.com/doc-view-117.html
  2. 报表填报可以设置数据校验规则,不满足就不会提交,如下:

帆软报表使用总结_第19张图片

  1. 根据不同的条件显示不同的图片,可以通过下面的公式进行设置:

if(A6 != null, TOIMAGE("WEB-INF/reportlets/24px_liang.png"), TOIMAGE("WEB-INF/reportlets/24px_an.png"))

详细说明可参考:单元格显示图片(Toimage函数)-http://help.finereport.com/doc-view-854.html

  1. 打开对话框可以采用帆软自带的,也可以使用window.open,如下:
  1. 帆软自带

帆软报表使用总结_第20张图片

  1. Window.open

帆软报表使用总结_第21张图片

  1. 表单

不同于普通报表设计,表单设计拥有很多普通报表设计无法企及的优势,如下:

整体性普通报表是一个整体,无法实现局部刷新,表单是由各个组件组成,可以实现组件内刷新,即局部刷新;

控件普通报表实现参数查询,只能将控件添加到参数面板中,表单不仅可以在参数面板中添加控件,同时还可以单独使用控件,实现数据的过滤;

联动普通报表中单元格或图表无法直接与单元格实现联动,表单却可以实现报表块或图表块与报表块的联动。

  1. 部署,可以单独部署,也可以和项目集成,具体的参考文档部署集成-http://help.finereport.com/doc-view-434.html
  2. app不支持tab布局,但是可以通过h5解析显示tab布局表单支持html5方式解析
  3. url传递中文乱码解决方案

通过url给参数赋值一般应用在报表已经集成到项目中,希望点击某个链接将某个值传递给报表;而在浏览器中直接给参数赋值呢,一般是做测试使用的,此时可以将浏览器换成火狐或者谷歌。

集成到项目中,可以使用FR.cjkEncode()方法,如点击某个链接给col赋值为地区,此时可以使用如下方法:

window.location="http://localhost:8075/WebReport/ReportServer?reportlet=doc/Parameter/DynamicCol/DynamicCol.cpt&col="+FR.cjkEncode("中文名称")  

在页面的js中如果使用帆软找不到FR.cjkEncode()方法的,那么需要自己定义一个方法,如下:

$(#reportFrame).attr(src, cjkEncode(urlSrc));

function cjkEncode(text) {
		if (text == null) {
			return "";
		}
		var newText = "";
		for ( var i = 0; i < text.length; i++) {
			var code = text.charCodeAt(i);
			if (code >= 128 || code == 91 || code == 93) { //91 is "[", 93 is "]".          
				newText += "[" + code.toString(16) + "]";
			} else {
				newText += text.charAt(i);
			}
		}
		return newText;
	}
  1. 表单导出需要安装表单导出插件,下载路径为:https://shop.finereport.com/plugin/408

现在提供表单导出插件,可以支持支持整体导出excel或者pdf还有word。

访问任意表单, 后缀加上&op=export&format=excel即可导出excel,导出的时候如果表单有参数记得把参数传递过去,参数中有中文需要通过FR.cjkEncode("中文名称")  进行编码处理,否则出现乱码

帆软报表使用总结_第22张图片

1、表单中下拉列表或单选按钮组默认值如果是字典的第一个

可以用公式:value("ds1",1,1)

你可能感兴趣的:(帆软报表,帆软报表总结)