帆软学习记录

帆软学习记录

    • 帆软学习记录
      • 安装的插件
      • 导出报表时自定义文件名称
      • 填报页面优化
      • 数据只剩一行不能删除
      • 按钮添加事件,实现一键清除填报内容
      • 校验填报页面上单个属性的数据是否存在重复(只是当前页面不能有重复的)
      • 校验填报页面上多个字段是否重复(当前页面)
      • 填报自动生成序号并排序
      • 填报多字段校验是否与数据库中数据重复
      • JS实现删除时二次确认
      • JS实现日期控件校验
      • 单元格超过一定长度显示省略号(…),鼠标悬浮显示全部内容
      • Excel 标记导入
      • 帆软函数
      • 工具栏居中,大小设置,根据名字获取按钮:
    • 问题解决记录
      • 导出时excel文件出现多个标题和填表说明
      • 导入时报表的序号不会影响填报页面序号的正常递增显示
      • 报表设计时某个字段设置为下拉选项,导出时则不能保留下拉选项问题
      • 导出文件名为报表编号,应改为机构名+任务名+报表名(带年月)
      • 中心端新增模板查看、审核数据在线预览填报报表时,上方报表默认组件的操作按钮未隐藏
      • 没有数据时提交失败
      • 公式中获取url中的op参数,来判断是填报页面还是分析页面
      • 自定义删除按钮
      • 自定义新增按钮
      • 文字超出单元格后显示(…),鼠标悬浮显示全部内容
      • 刷新页面
      • 回调函数提示
      • 填报自动生成序号
      • 导出文件名
      • 填报提交条件 为空时提交失败处理
      • 截取两位小数 数字控件编辑结束事件
      • 统计C4(下拉框类型)每项数据的个数
      • 统计填报数据中每个字典项的所有数据中的最大时间
      • 统计每个品种 的费率平均值
      • 截取两位小数 数字控件编辑结束事件
    • 填报开发步骤

安装的插件

EXcel导入标记插件

自定义导出文件名称插件

可视化配置插件:解决自定义导出文件名称插件安装不上的问题

导出报表时自定义文件名称

  1. 可以使用「自定义导出文件名称」插件进行重命名。
  2. 点击「菜单模板>模板 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))

填报开发步骤

  1. 服务器–定义数据连接

  2. 模板数据集–新建数据集查询(加上全局参数)

  3. 设计报表

  4. 数据集查询字段与报表页面字段一一对应

  5. 模板–报表填报属性-提交–内置sql:将字段进行绑定

  6. 设置控件

  7. 模板–模板web属性–填报页面/数据分析页面设置

    提交 数据校验 导出 导入 新增 删除(自定义) 暂存 清空

  8. 设置校验–内置校验可以校验导入和当前页面填写,控件校验只能校验当前页面填写

  9. 处理导入:模板–excel导入标记

  10. 处理导出:模板–模板导出属性

  11. 提交后更新报表状态:模板–模板web属性 增加事件 填报成功 选择提交入库,更新提交,添加字段,设置回调函数

Published by

风君子

独自遨游何稽首 揭天掀地慰生平