帆软学习记录
-
- 帆软学习记录
-
- 安装的插件
- 导出报表时自定义文件名称
- 填报页面优化
- 数据只剩一行不能删除
- 按钮添加事件,实现一键清除填报内容
- 校验填报页面上单个属性的数据是否存在重复(只是当前页面不能有重复的)
- 校验填报页面上多个字段是否重复(当前页面)
- 填报自动生成序号并排序
- 填报多字段校验是否与数据库中数据重复
- JS实现删除时二次确认
- JS实现日期控件校验
- 单元格超过一定长度显示省略号(…),鼠标悬浮显示全部内容
- Excel 标记导入
- 帆软函数
- 工具栏居中,大小设置,根据名字获取按钮:
- 问题解决记录
-
- 导出时excel文件出现多个标题和填表说明
- 导入时报表的序号不会影响填报页面序号的正常递增显示
- 报表设计时某个字段设置为下拉选项,导出时则不能保留下拉选项问题
- 导出文件名为报表编号,应改为机构名+任务名+报表名(带年月)
- 中心端新增模板查看、审核数据在线预览填报报表时,上方报表默认组件的操作按钮未隐藏
- 没有数据时提交失败
- 公式中获取url中的op参数,来判断是填报页面还是分析页面
- 自定义删除按钮
- 自定义新增按钮
- 文字超出单元格后显示(…),鼠标悬浮显示全部内容
- 刷新页面
- 回调函数提示
- 填报自动生成序号
- 导出文件名
- 填报提交条件 为空时提交失败处理
- 截取两位小数 数字控件编辑结束事件
- 统计C4(下拉框类型)每项数据的个数
- 统计填报数据中每个字典项的所有数据中的最大时间
- 统计每个品种 的费率平均值
- 截取两位小数 数字控件编辑结束事件
- 填报开发步骤
安装的插件
EXcel导入标记插件
自定义导出文件名称插件
可视化配置插件:解决自定义导出文件名称插件安装不上的问题
导出报表时自定义文件名称
- 可以使用「自定义导出文件名称」插件进行重命名。
- 点击「菜单模板>模板 Web 属性」,设置标题属性,则导出的文件以标题命名。
填报页面优化
- 在填报成功提交后,希望页面可以立即刷新,可以直接看到更新后的数据
- 填报完后可以自动关闭填报页面
- 填报时自动计算
https://help.fanruan.com/finereport/doc-view-613.html?source=0&from=skill
数据只剩一行不能删除
https://help.fanruan.com/finereport/doc-view-3695.html?source=0&from=skill
按钮添加事件,实现一键清除填报内容
https://help.fanruan.com/finereport/doc-view-3434.html?source=0&from=skill
校验填报页面上单个属性的数据是否存在重复(只是当前页面不能有重复的)
https://help.fanruan.com/finereport/doc-view-2399.html?source=0&from=skill
校验填报页面上多个字段是否重复(当前页面)
https://help.fanruan.com/finereport/doc-view-2399.html?source=0&from=skill
将=JOINARRAY([A2],",")
换成JOINARRAY([CONCATENATE(B2+C2+D4)],",")
就行
填报自动生成序号并排序
https://help.fanruan.com/finereport/doc-view-545.html?source=0&from=skill
填报多字段校验是否与数据库中数据重复
https://help.fanruan.com/finereport/doc-view-3032.html?source=0&from=skill
JS实现删除时二次确认
https://help.fanruan.com/finereport/doc-view-2279.html?source=0&from=skill
JS实现日期控件校验
https://help.fanruan.com/finereport/doc-view-1197.html
开始日期与结束日期不能为空,结束日期必须在开始日期之后
结束日期必须在开始日期后的某个时间段内,否则给出提示
单元格超过一定长度显示省略号(…),鼠标悬浮显示全部内容
https://help.fanruan.com/finereport/doc-view-1832.html
Excel 标记导入
- 支持清空、覆盖、增量三种导入方式
- 支持纵向、横向两种导入方向
- 支持多sheet导入场景
- 支持自定义导入Excel的实际值/显示值
- 支持将导入值按照形态设置转为实际值入库
帆软函数
- SQL函数
https://help.fanruan.com/finereport/doc-view-846.html
注意:引用单元格不需要单引号,加单引号引用不到
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = "+A1+" ",3,4)
引用报表参数
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO = '"+$class+"' ",3,4)
SQL 中参数为模糊查询时,可使用如下公式:
=sql("FRDemo","SELECT * FROM STSCORE where CLASSNO like '%"+$class+"%' ",3,4)
工具栏居中,大小设置,根据名字获取按钮:
https://help.fanruan.com/finereport/doc-view-4295.html
问题解决记录
导出时excel文件出现多个标题和填表说明
解决:模板–页面设置–页面–纸张大小–自定义 设置大一点就可以
导入时报表的序号不会影响填报页面序号的正常递增显示
解决:模板–excel导入标记–设置标题区域和内容区域时不包含序号列
报表设计时某个字段设置为下拉选项,导出时则不能保留下拉选项问题
解决:excel标记导入文档中有说明
导出文件名为报表编号,应改为机构名+任务名+报表名(带年月)
解决
方法一:点击 菜单模板–模板 Web 属性–基本,设置标题属性,则导出的文件以标题命名。
方法二:可以使用「自定义导出文件名称」插件进行重命名。
模板–模板导出属性–自定义导出文件名–启用–使用公式自定义名称
注意:设置名称时不使用$report_export_name来表示文件名,使用字符表示。
中心端新增模板查看、审核数据在线预览填报报表时,上方报表默认组件的操作按钮未隐藏
预览报表和填报报表url参数不同,分别设置工具栏 op=write op=view
没有数据时提交失败
模板-报表填报属性-提交-设置提交条件
写公式:len(trim(D3))>0
D3表示债券代码,如果为空时表示没有数据,则提交时过滤掉这个,避免提交报错。
公式中获取url中的op参数,来判断是填报页面还是分析页面
$op write 表示填报页面 view表示预览页面
自定义删除按钮
//alert($(_g().curLGP.currentTDCell).attr('row')) 获取行
var row = $(_g().curLGP.currentTDCell).attr('row')
//row<3表示只对内容列处理 避免非内容列操作错误提示
if (row < 3) {return false;
} else {FR.Msg.confirm("警告", "确定要删除吗?", function(value) {if (value) {contentPane.deleteReportRC();}})
}
自定义新增按钮
//alert($(_g().curLGP.currentTDCell).attr('row')) 获取行
var row = $(_g().curLGP.currentTDCell).attr('row')
if (row < 3) {
//处理非内容列操作错误提示return false;
} else {_g().appendReportRC(1);
}###判断str1中是否包含str2
SPLIT("B1,B2,B3,B4,B5,B6,B7",",") :对字符串根据逗号分组
if(FIND(",",$memType)>0,SPLIT($memType,","),ARRAY($memType))GREPARRAY(SPLIT("B1,B2,B3,B4,B5,B6,B7",","),INARRAY(item,SPLIT(if(FIND(",",$memType)>0,SPLIT($memType,","),ARRAY($memType)),","))>0)
文字超出单元格后显示(…),鼠标悬浮显示全部内容
模板-模板web属性-填报页面设置 增加加载结束事件
$("td[title^=cut]").each(function() {// 获取属性的值var str = $(this).attr('title');//定义分隔符号var length = parseInt(str.split(":")[1]);//判断长度if ($(this).text().length > length) {$(this).attr('title', $(this).text());$(this).text($(this).text().substring(0, length) + '...');} else {$(this).removeAttr('title'); }
})
单元格属性-其他-内容提示-自定义加上:
cut_+A2++:+10
A2表示要展示效果的单元格,10表示展示10个文字
刷新页面
location.reload()
_g().refreshAllSheets()
回调函数提示
if (fr_submitinfo.success) {FR.Msg.toast('提交成功')
} else {FR.Msg.toast('提交失败')
}
填报自动生成序号
方法一:
var $tds = $('.x-table td[col = 0][fm = "SEQ()"]:visible');
var n = 0;
$tds.each(function(i, e) {n = n + 1;$(e).text(n);
})
方法二:在页面增删后 导出后序号也是连续的,和页面一致
var $tds = $('.x-table td[col = 0][idx=0]:visible:not([fmt="T"])');
var n = 0;
$tds.each(function(i, e) {n = n + 1;var row= $(e).attr("row");_g().setCellValue(0,0,row, n);
})
导出文件名
$memName + $taskName +"债务融资工具制度建设清单" + "("+ YEAR()+"年" + MONTH()+"月)"
填报提交条件 为空时提交失败处理
LEN(TRIM(D3))>0
截取两位小数 数字控件编辑结束事件
var n= this.getValue();
this.setValue(n.toFixed(2))
统计C4(下拉框类型)每项数据的个数
COUNT(GREPARRAY(C4,item=‘1’))
COUNT(GREPARRAY(C4,item=‘2’))
统计填报数据中每个字典项的所有数据中的最大时间
C4 字典项 D4 时间 G4:C4+“:”+D4
LET(a,MAX(MAPARRAY(GREPARRAY(G4,INDEXOFARRAY(SPLIT(item,“:”),1)=0),REPLACE(INDEXOFARRAY(SPLIT(item,“:”),2),“-”,“”))),IF(LEN(a)0||a0,“”,CONCATENATE(LEFT(a,4),“-”,MID(a,5,2),“-”,RIGHT(a,2))))
统计每个品种 的费率平均值
L3:品种 U3:费率
U3[!0]{L3 = ‘SCP’} :返回所有数据中品种为SCP的费率,为一个费率的数组
U3[!0;]{L3 = ‘SCP’ || L3 = ‘CP’ || L3 = ‘PPNCP’} 返回所有数据中品种为SCP或CP或PPNCP 的费率,为一个费率的数组
截取两位小数 数字控件编辑结束事件
var n= this.getValue();
this.setValue(n.toFixed(2))
填报开发步骤
-
服务器–定义数据连接
-
模板数据集–新建数据集查询(加上全局参数)
-
设计报表
-
数据集查询字段与报表页面字段一一对应
-
模板–报表填报属性-提交–内置sql:将字段进行绑定
-
设置控件
-
模板–模板web属性–填报页面/数据分析页面设置
提交 数据校验 导出 导入 新增 删除(自定义) 暂存 清空
-
设置校验–内置校验可以校验导入和当前页面填写,控件校验只能校验当前页面填写
-
处理导入:模板–excel导入标记
-
处理导出:模板–模板导出属性
-
提交后更新报表状态:模板–模板web属性 增加事件 填报成功 选择提交入库,更新提交,添加字段,设置回调函数