需求:在一些牵涉到表关联时我们发现单纯从数据源角度是无法满足现场需求的故我们要使用sql来进行查询完成一系列操作
首先:我们以查询为例(来源客户真实案例)
案例一:
单据序时簿的附件是否能够控制成谁上传谁才能修改或者是制单人上传的附件只能由制单人删除,其他人不能删除。
分析:该问题可通过DEP进行处理,打开序时簿在界面加载onload过程中,为选中事件进行监听处理,仅仅当操作人选中的数量与数据库中查出的是制单人本人的数量相等时将附件上传按钮显示,否则隐藏。这个需求显然普通的数据源查找已无法满足需求,需要自定义sql,下面将查询代码截图
查询逻辑代码(仅参考)
//查询数据库
var sql = "select count(1) from T_AP_PayRequestBill where FID IN('"+ sendDocNum +"') and fcreatorid ='" + id + "'";
//获取数据库工具接口
var fMIsqlFacade =com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance();
//执行sql
var rs = fMIsqlFacade.executeQuery(sql.toString(),null);
案例二:(修改)
DEP中使用修改语法如下:
//先获取id
var id =editData.getId();
//拿到赋值字段
var status = "保存";
//拼接sql
var sql = "update CT_CUS_PurchaseOrder SET CFStatus = '" + status + "' WHERE FID = '"+id+"'";
//执行更新语句
com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance().executeSql(sql);
推荐阅读