初次接触帆软,全靠帮助文档和百度,一边百度一边摸索着做需求。
遇到了各种问题进行笔记记录一下!避免后续重做帆软需求的时候忘了!
1、帆软安装后,第一次使用无法预览
选择一个要用于浏览的浏览器,设置为默认浏览器。就可以预览成功了!
2、下拉控件展示的是实际值而非显示值
明明下拉控件设置了对应的实际值和显示值,但是发现预览效果没有达到要求。
需要再设置一遍:
选中单元格-->右键-->形态-->数据字典再设置一遍
3、填报预览当前行是黑色的
模板-->模板web属性-->填报页面设置
4、定义参数(参数可用于模板数据集的sql查询)
模板-->模板参数-->点+号新建
模板参数赋值:控件设置里面,控件名称=模板参数名
5、填报控件的code和name都入库
有一个下拉框,下拉框的实际值为code,显示值为name,提交入库的时候需要code和name都入库。(是按照我自己的思维写的,因为我对这个工具也不熟悉,可能会有更简单的方法实现。)
解决:
配置模板参数:code 和name
模板参数和控件绑定:code的值是直接绑定在下拉控件上的,name的值可以在下拉控件的编辑结束事件中进行赋值
赋值js示例如下:
// 获取对应的控件对象
var dict = contentPane.getWidgetByName("dict_code");
var dict_val = dict.getValue();//实际值
var dict_name = dict.getText();//显示值
//报表填报属性设置的时候智能选单元格 给数据库字段的值设置为单元格的值
contentPane.setCellValue("D5",null,dict_val);
// 页面不需要可见的时候,选中此列隐藏。当隐藏域使用
contentPane.setCellValue("F5",null,dict_name);
var a = contentPane.getWidgetByName("dict_name");
a.setValue(dict_name);
6、帆软预览少了一列展示
是页面设置不够宽的原因。
解决:
模板-->页面设置-->纸张大小-->设置更宽
7、下拉框支持模糊搜索
下拉控件 --勾选 【允许直接编辑】
8、填报数据的回显
填报表格示例如下,输入用户id后下面的数据全部回显
用户id | 输入后,下面信息回显 |
柜员姓名 | |
性别 | |
出生年月 | |
证件类型 | |
证件号码 | |
手机号码 | |
备注 |
给用户id的控件增加【编辑结束】事件,在js中进行查询和赋值。
//获取控件的值,还有一种方式是直接配置js的参数
var userId = contentPane.getWidgetByName("user_id");
String sql = "select user_name,mobile from t_user where user_id = "+ userId;
var userName = FR.remoteEvaluate('=sql("数据库名","'+sql+'",1,1)');
contentPane.setCellValue('B2',null,userName );//赋值给单元格 可以回显
9、填报是新增填报还是修改填报
方式1:是智能提交 (提交类型选智能提交) 主键勾选对应的字段,系统判断主键有值会更新,没有值会新增。
方式2:新增两个提交,一个为插入提交(新增),一个为更新提交(修改)
可以在隐藏列增加一个参数为upFlag,后面同第8点,通过sql可以进行count查询,count>0,upFlag设置为Y,else 设置为N。
在提交入库时,增加了两个提交,一个是插入提交,一个是更新提交,插入提交增加提交条件示例如下:判断了单元格的值是Y 还是N
10、帆软提交后增加对日志表的操作
针对第9点,提交成功后不管是插入还是更新都需要更新到一张别的日志表,在日志表记录某人某时间进行了更新/新增操作。
这就是要设置回调函数了。回调函数里选择提交入库,可以对日志表进行操作了。
第9点的提交1和提交2都可以设置回调函数入库日志表,设置回调函数里面也可以设置提交条件分别同提交1和提交2。
11、帆软单元格赋值失败
在同一个js里面,给一些单元格进行赋值,发现有两个单元格死活赋值不上去,但是明明有值。
后面加了setTimeout将赋值语句包起来就赋值成功了
setTimeout(function(){
contentPane.setCellValue('B2',null,userName );//赋值给单元格
contentPane.setCellValue('B3',null,mobile);
},10)
12、帆软去掉头部的按钮
当不使用系统的提交按钮时,可以去掉按钮
模板-->模板web属性-->填报页面设置
在工具栏可以点 X ,所有默认的按钮都会去掉,点恢复默认也可以加上。
也可以点击具体的工具打开工具编辑,选择具体按钮点X
13、帆软消息提示
自定义按钮,提交成功后,设置回调函数,在js中提示提交成功,代码如下:
FR.Msg.toast("提交成功!");
帮助文档: