天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1662|回复: 0

[常见问题] 获取数据源数据表字段到控件中

[复制链接]
Chain 发表于 2019-11-7 16:07:30 | 显示全部楼层 |阅读模式
使用场景:用户在使用天翎平台的时候,需要在天翎平台中控件调用自己的数据库数据到平台中进行使用,如果是平台跟用户自己的数据库均为同一个类型的数据库,则可以使用以下方法。如果不是,则需要做不同类型数据库之间的数据映射关系。

思路:例子中使用的是天翎自带的mysql做得例子,分别建了两个库(OBPM_KH和OBPM_TS),在客户数据(BPM_KH)中录入部分数据,然后在业务库中进行调用(OBPM_TS),获取客户数据的参数过来。

方案一操作步骤:

第一步:配置自己的数据库,即平台需要读取该数据库下面的某张表。

数据获取01.png

第二步:给业务软件添加新的数据源,该处只是添加“客户数据”的数据源来方便后面使用脚本获取。

数据获取02.png

第三步:设计表单,并在控件中写脚本获取“客户数据”数据源中的字段信息出来。使用方法:queryByDSName("xxx",sql),xxx为数据源名称。

数据获取03.png
  1. (function(){
  2.         var opts=createOptions();
  3.         var sql="select * from tlk_用户数据";
  4.         var datas = queryByDSName("客户数据",sql);
  5.         println("datas------>"+datas);
  6.         if(datas!=null){
  7.                 for(var iter=datas.iterator();iter.hasNext();){
  8.                                 var docone=iter.next();
  9.                                 println("docone------>"+docone);
  10.                                 var name=docone.get("item_用户名称") ;//ItemValueAsString("用户名称");
  11.                                 println("name------>"+name);
  12.                                 opts.add(name,name);
  13.                         }
  14.                 }
  15.         return opts;
  16. })();
复制代码
第四步:根据获取出来的值来进行数据查询,查询出其他相关的字段。(该处展示获取编号值脚本,其他对应的参数以此类推)
  1. (function(){
  2.         var val=getItemValueAsString("客户名称");
  3.         var name="";
  4.         if(val!=null){
  5.                 var sql="select * from tlk_用户数据 where item_用户名称='"+val+"'";
  6.                 var datas = queryByDSName("客户数据",sql);
  7.                 println("datas------>"+datas);
  8.                 if(datas!=null){
  9.                 for(var iter=datas.iterator();iter.hasNext();){
  10.                                 var docone=iter.next();
  11.                                 println("docone------>"+docone);
  12.                                 var name=docone.get("item_编号") ;//ItemValueAsString("用户名称");
  13.                                 println("name------>"+name);
  14.                         }
  15.                 }
  16.         }
  17.         return name;
  18. })();
复制代码
方案二操作步骤:

直接在表单查询框后面加入计算脚本,通过获取输入框的值进行SQL查询并讲查询出来的值设置到对应的控件中。
  1. (function() {                                                            
  2.     var bid = getItemValueAsString("控件");//获取当前表单字段                  
  3.     var doc=getCurrentDocument();                       
  4.     doc.findItem("patientid").setValue(bid);                                             
  5.     doc.findItem("taskno").setValue(taskno);                  
  6.     var sql="select * from tlk_xxx表单 where item_XXX控件数据='"+bid+"'";//将获取到的字段值进行sql查询            
  7.     println("2019-12-08:" + sql);                 
  8.     var query = queryBySQL(sql);                     
  9.         if(query!=null){                     
  10.             var iter=query.iterator();                     
  11.                 if(iter != null && iter.hasNext()){                     
  12.                     var cdoc = iter.next();                                                        
  13.                     doc.findItem("当前表单控件名称").setValue(cdoc.getItemValueAsString("数据库查询的值"));//获取SQL查询数据内容赋值到本表的控件中
  14.                     println("2019-12-08:dekee2" + cdoc.getItemValueAsString("数据库查询的值"));               
  15.                     doc.findItem("当前表单控件名称").setValue(cdoc.getItemValueAsString("数据库查询的值"));     
  16.                 }
  17.         }
  18. })();
复制代码
效果演示:

数据获取效果.gif

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 12:21

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表