• 帆软学习记录


    帆软学习记录

    安装的插件

    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();
    		}
    	})
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    自定义新增按钮

    //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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    文字超出单元格后显示(…),鼠标悬浮显示全部内容

    模板-模板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');	
    	}
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    单元格属性-其他-内容提示-自定义加上:
    cut_+A2++:+10
    A2表示要展示效果的单元格,10表示展示10个文字

    刷新页面

    location.reload()
    _g().refreshAllSheets()
    
    • 1
    • 2

    回调函数提示

    if (fr_submitinfo.success) {
    	FR.Msg.toast('提交成功')
    } else {
    	FR.Msg.toast('提交失败')
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    填报自动生成序号

    方法一:

    var $tds = $('.x-table td[col = 0][fm = "SEQ()"]:visible');
    var n = 0;
    $tds.each(function(i, e) {
    	n = n + 1;
    	$(e).text(n);
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    方法二:在页面增删后 导出后序号也是连续的,和页面一致

    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);
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    导出文件名

    $memName + $taskName +"债务融资工具制度建设清单" + "("+ YEAR()+"年" + MONTH()+"月)"

    填报提交条件 为空时提交失败处理

    LEN(TRIM(D3))>0

    截取两位小数 数字控件编辑结束事件

    var n= this.getValue();
    this.setValue(n.toFixed(2))
    
    • 1
    • 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

    填报开发步骤

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

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

    3. 设计报表

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

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

    6. 设置控件

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

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

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

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

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

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

  • 相关阅读:
    编译一个基于debian/ubuntu,centos,arhlinux第三方系统的问题解答
    flask中的应用工厂
    HttpClient别说话,用心看
    2021视觉算法岗社招面经
    使用sonar-scanner扫描代码
    08: value too great for base (error token is “08“)
    JavaScript对象
    音乐播放
    c语言输出国际象棋王从x走到y的步数
    Day21:方法重写以及注意细节
  • 原文地址:https://blog.csdn.net/weixin_44226752/article/details/127702056