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

 找回密码
 注册成为天翎用户
12
返回列表 发新帖

[已解决] 关于使用视图及表单显示数据库中视图或复杂sql查询结果集的问题

[复制链接]
kimi 发表于 2013-7-30 10:31:27 | 显示全部楼层
您好:您这个问题tb_test对应的表单中没有formid,所导致了,我们平台开启了资源授权后,进入带表单页面,需要有formid。
 楼主| 青岛融贯汇众 发表于 2013-7-30 14:51:05 | 显示全部楼层
本帖最后由 青岛融贯汇众 于 2013-7-30 14:58 编辑

问题已经搞定,具体做法如下:
1.构建一个空表单,表单中不需要单行文本框等空间,将需要显示的内容以计算脚本实现,计算脚本的代码示例如下:
   var docid=getParameter("_docid");

var rtn="";//返回值
var sql="select name from tb_test where id= '"+docid+"'";
println("Rola--------sql:"+sql);
var datas  =queryByDSName("db",sql);
if(datas!=null && datas.size()>0){
   for(var iter = datas.iterator();iter.hasNext();)
   {
        var doc = iter.next();
        if(doc!=null)
        {
           rtn=doc.get("name");   
        }
        break;
   }
}
rtn;

2.创建一个视图,其中视图的过滤模式选择“代码(SQL)”,脚本的代码示例如下:
var sql="select id,domainid,formid, code as item_code,name as item_name from tb_test ";
sql;
在此处以一个实体表代替了数据库中的视图,此处可以根据需要编写比较复杂的sql语句或直接引用数据库中的视图
此步骤的关键点在于根据该sql语句查询出的结果结果集中包含id,domainid,formid,三个字段,其中id相当于主键用于数据的唯一索引值,
domainid为当前企业域id,formid对应步骤1中表单的formid,实际使用时可以根据情况将domainid、formid直接在sql语句中构建为常量

3.视图中添加列,视图中添加的列为脚本类型,脚本的代码示例如下:
var aa=getItemValueAsString("name");
aa;
此处的关键点在于,步骤2中的sql语句中相应的字段需要是“item_XXX”的格式

至此,以视图及表单显示数据库中复杂视图的功能完成。
视图的显示效果如下:
QQ图片20130730144805.jpg
点击视图的数据行后,表单的显示效果如下:
QQ图片20130730144833.jpg
表单的具体格式可以根据需要重新排列。

这里有一个问题:由于表单中显示的字段都是用计算脚本实现的,每个计算脚本都需要执行一次sql语句,当表单中显示的字段较多时可能执行效率会比较低
kimi 发表于 2013-7-30 15:01:31 | 显示全部楼层
非常感谢流程的分享。

本版积分规则

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

GMT+8, 2026-8-13 02:12

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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