使用场景:用户在使用天翎平台的时候,需要在天翎平台中控件调用自己的数据库数据到平台中进行使用,如果是平台跟用户自己的数据库均为同一个类型的数据库,则可以使用以下方法。如果不是,则需要做不同类型数据库之间的数据映射关系。
思路:例子中使用的是天翎自带的mysql做得例子,分别建了两个库(OBPM_KH和OBPM_TS),在客户数据(BPM_KH)中录入部分数据,然后在业务库中进行调用(OBPM_TS),获取客户数据的参数过来。
方案一操作步骤:
第一步:配置自己的数据库,即平台需要读取该数据库下面的某张表。
第二步:给业务软件添加新的数据源,该处只是添加“客户数据”的数据源来方便后面使用脚本获取。
第三步:设计表单,并在控件中写脚本获取“客户数据”数据源中的字段信息出来。使用方法:queryByDSName("xxx",sql),xxx为数据源名称。
- (function(){
- var opts=createOptions();
- var sql="select * from tlk_用户数据";
- var datas = queryByDSName("客户数据",sql);
- println("datas------>"+datas);
- if(datas!=null){
- for(var iter=datas.iterator();iter.hasNext();){
- var docone=iter.next();
- println("docone------>"+docone);
- var name=docone.get("item_用户名称") ;//ItemValueAsString("用户名称");
- println("name------>"+name);
- opts.add(name,name);
- }
- }
- return opts;
- })();
复制代码 第四步:根据获取出来的值来进行数据查询,查询出其他相关的字段。(该处展示获取编号值脚本,其他对应的参数以此类推)- (function(){
- var val=getItemValueAsString("客户名称");
- var name="";
- if(val!=null){
- var sql="select * from tlk_用户数据 where item_用户名称='"+val+"'";
- var datas = queryByDSName("客户数据",sql);
- println("datas------>"+datas);
- if(datas!=null){
- for(var iter=datas.iterator();iter.hasNext();){
- var docone=iter.next();
- println("docone------>"+docone);
- var name=docone.get("item_编号") ;//ItemValueAsString("用户名称");
- println("name------>"+name);
- }
- }
- }
- return name;
- })();
复制代码 方案二操作步骤:
直接在表单查询框后面加入计算脚本,通过获取输入框的值进行SQL查询并讲查询出来的值设置到对应的控件中。- (function() {
- var bid = getItemValueAsString("控件");//获取当前表单字段
- var doc=getCurrentDocument();
- doc.findItem("patientid").setValue(bid);
- doc.findItem("taskno").setValue(taskno);
- var sql="select * from tlk_xxx表单 where item_XXX控件数据='"+bid+"'";//将获取到的字段值进行sql查询
- println("2019-12-08:" + sql);
- var query = queryBySQL(sql);
- if(query!=null){
- var iter=query.iterator();
- if(iter != null && iter.hasNext()){
- var cdoc = iter.next();
- doc.findItem("当前表单控件名称").setValue(cdoc.getItemValueAsString("数据库查询的值"));//获取SQL查询数据内容赋值到本表的控件中
- println("2019-12-08:dekee2" + cdoc.getItemValueAsString("数据库查询的值"));
- doc.findItem("当前表单控件名称").setValue(cdoc.getItemValueAsString("数据库查询的值"));
- }
- }
- })();
复制代码 效果演示:
|