JS实现通过sql一次性获取多个字段

编辑
文档创建者:yets11 (67190 )     浏览次数:3685次     编辑次数:5次     最近更新:monvzhilei 于 2017-10-12     

目录:

1.概述编辑

我们知道,利用sql()函数可以动态取得数据库中某个字段的值,但是如果想取得多个字段的值,就必须执行多条sql()函数,这样就加大了对服务器资源的请求量,如果查询的sql又比较复杂的话,执行效率会比较慢,下面以一个填报中通过输入人员ID,来获取人员名字,姓别,电话号码的为例,展示如何通过一个sql()函数配合JS来获取这三个不同字段的值。

222


222

2.实现思路编辑编辑

因为sql ()函数本身的使用限制(详情见SQL函数)只能每次获取一个列的信息,但是如果想获取多列的话,我们其实是可以同时对多个字段进行拼接,拼到到一起,用特殊符号进行分割,如逗号等,再在JS中对这一串利用特殊符号进行分开,这样就能分别取得不同列的值了


3.实现过程编辑

3.1 新建模板

新建一个模板,模板如下图,B2为输入ID的文本框,C2为查询的按钮,D2为公式,将D列设为隐藏

sql("FRDemo","SELECT empname||','||sex||','||tel  FROM employee where EMPid='"+B2+"'",1,1)

222


3.2 添加JS代码
3.2.1 为了取得B2控件修改后的实时值,我们需要在B2单元格控件设置编辑后事件,如下图


222



//修改后即把当前值赋值给实际值 var v=this.getValue(); contentPane.setCellValue('B'+row,null,v)
3.2.2 查询按钮的点击事件代码

为C3单元格查询按钮添加点击事件,如下图

222

//获取D2单元格信息,因为填报模板设置直接显示控件后获取方式不一样,下面这种写法保证获取成功 var info=contentPane.curLGP.getCellValue('D'+row); //分割查询出来的结果 var infoarray=info.split(','); var result=''; //这里是上面字段的个数,如果不是3,那么说明没查询到数据 if(infoarray.length==3){ result+='姓名:'+infoarray[0]+'\n'; result+='性别:'+infoarray[1]+'\n'; result+='电话号码:'+infoarray[2]+'\n'; FR.Msg.alert('查询结果',result); } else { alert('未查询到信息!'); }      
保存后,预览,即可看到上面的效果,至此,可以看到,只通过一个sql()函数,经过一次数据库的交互查询请求便可以获取到多个字段列的值了,在其他地方,如超链接,填报成功事件等等中,都可以利用此方法高效获取多个值了

注:不同数据库拼接字符的方法不同,比如sqlite,oracle是||,其他如mssql,mysql等一般直接用+就行了 ,另外在sql用于分割的拼接字段的特殊字符和JS中分割时的要一致 

附件列表


主题: 二次开发
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?