EAS85 费用报销批量设置默认套打封面

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

EAS85 费用报销批量设置默认套打封面

业务背景

EAS8.5 启用费用报销模块,同时使用了发票云的影像系统。在使用过程中如果发生归档模版更换,或者员工在某组织第一次进行报销时,需要设置默认打印封面。因为EAS产品或者是浏览器的原因,导致员工设置默认打印封面有的时候会存在不生效的情形,或者还需要维护人员远程去协助进行设置,非常的麻烦。

处理思路

经过咨询总部数据老师,了解到标准产品的用户默认套打封面是由数据表(T_RPT_deftemplate)进行存储,并且相互之间的逻辑关系也存在。那就可以通过执行sql语句的方式进行功能实现。
具体思路如下:

  1. 将分配了职员报销角色的用户过滤 形成新的临时表 xx; 关键数据表:T_PM_USERROLEORG(用户角色权限) 这里因为我这边是用户都是通过角色进行授权的。

  2. 把没有设置默认套打模版的数据行插入到数据表T_RPT_deftemplate

具体步骤

步骤1:编写sql语句
SQL1: 过滤用户和角色语句

因为涉及到 差旅报销单、费用报销单和对公报销单

--步骤一: 将分配了职员报销角色的用户过滤 形成新的临时表 xx


---- //*****
insert into XX SELECT * FROM  (SELECT 
distinct
JUESEQUANXIAN.FORGID || ' ' || YONGHU.FNAME_L2 FORGUSER,
'/EAS_Note.kdrs/FI/CPBC/BizAccountOutBill/image' FTEMPPATH,
'/归档封面-对公报销-A4横版.r1-print' FDEFTEMPLATE
FROM T_PM_USERROLEORG JUESEQUANXIAN
LEFT OUTER JOIN T_PM_USER YONGHU ON YONGHU.FID = JUESEQUANXIAN.FUSERID // 职员
LEFT OUTER JOIN T_ORG_ADMIN ZUZHIDANYUAN ON JUESEQUANXIAN.FORGID = ZUZHIDANYUAN.FID
where   JUESEQUANXIAN.FROLEID='Y/AAAADGoGkTtnMq' AND YONGHU.FFORBIDDEN = 0 AND  YONGHU.FTYPE = 20 AND YONGHU.FISDELETE = 0

UNION
SELECT 
distinct
JUESEQUANXIAN.FORGID || ' ' || YONGHU.FNAME_L2 FORGUSER,
'/EAS_Note.kdrs/FI/CPBC/tra/image' FTEMPPATH,
'/归档封面-差旅报销-A4横版.r1-print' FDEFTEMPLATE
FROM T_PM_USERROLEORG JUESEQUANXIAN
LEFT OUTER JOIN T_PM_USER YONGHU ON YONGHU.FID = JUESEQUANXIAN.FUSERID // 职员
LEFT OUTER JOIN T_ORG_ADMIN ZUZHIDANYUAN ON JUESEQUANXIAN.FORGID = ZUZHIDANYUAN.FID
where  JUESEQUANXIAN.FROLEID='Y/AAAADGoGkTtnMq' AND YONGHU.FFORBIDDEN = 0 AND  YONGHU.FTYPE = 20 AND YONGHU.FISDELETE = 0

UNION
SELECT 
distinct
JUESEQUANXIAN.FORGID || ' ' || YONGHU.FNAME_L2 FORGUSER,
'/EAS_Note.kdrs/FI/CPBC/bizaccount/image' FTEMPPATH,
'/归档封面-费用报销-A4横版.r1-print' FDEFTEMPLATE
FROM T_PM_USERROLEORG JUESEQUANXIAN
LEFT OUTER JOIN T_PM_USER YONGHU ON YONGHU.FID = JUESEQUANXIAN.FUSERID // 职员
LEFT OUTER JOIN T_ORG_ADMIN ZUZHIDANYUAN ON JUESEQUANXIAN.FORGID = ZUZHIDANYUAN.FID
where  JUESEQUANXIAN.FROLEID='Y/AAAADGoGkTtnMq' AND YONGHU.FFORBIDDEN = 0 AND  YONGHU.FTYPE = 20 AND YONGHU.FISDELETE = 0)

SQL2: 通过 T_RPT_deftemplate 中的 FORGUSER + FTEMPPATH 字段 与临时表 TT_QLGY_DefaultCoverPage 的 FORGUSER + FTEMPPATH  进行比对,删除重复项

DELETE FROM TT_QLGY_DefaultCoverPage  WHERE FORGUSER  in (SELECT  distinct FORGUSER FROM T_RPT_deftemplate) AND  FTEMPPATH  in (SELECT  distinct FTEMPPATH FROM T_RPT_deftemplate)


SQL3:将临时表 XX中的结果 插入到 T_RPT_deftemplate 表中

insert into T_RPT_deftemplate select distinct * from TT_QLGY_DefaultCoverPage

SQL4:清空临时表

DELETE FROM TT_QLGY_DefaultCoverPage


步骤2:dep扩展实现功能

因为没有找到对用户列表界面的扩展路径,我选择用 物料档案的列表界面进行扩展。

新建扩展方案,新建功能、新建按钮。(这些步骤就省略了)

对扩展方案的扩展定义自定义的工具进行扩展

image.webp


完整代码如下:

//**** 根据用户和用户分配的角色 (普通员工) 和 角色 分配的业务组织,设置 费用报销的 默认套打封面
//--- 这里的套打封面是指 启用了电子档案 需要同步至影像系统的套打封面
//--- 其他的业务单据,如无特殊要求,尽量不设置套打封面,用户自定义维护
//--- 这个功能主要是为了解决 员工在web端 设置默认套打封面的时,不会设置或者设置无效,另外在修改了 归档封面的模版名称之后,这里的语句中的套打模版值夜要同步修改
//--- 正常是 如果员工自己修改了,会自动同步修改表 T_RPT_deftemplate,修改了 套打别名的话 是不需要修改这里的脚本

var sql_chaxun="INSERT INTO TT_QLGY_DefaultCoverPage SELECT * FROM (SELECT DISTINCT ((JUESEQUANXIAN.FORGID || ' ') || YONGHU.FNAME_L2) FORGUSER, '/EAS_Note.kdrs/FI/CPBC/BizAccountOutBill/image' FTEMPPATH, '/归档封面-对公报销-A4横版.r1-print' FDEFTEMPLATE FROM T_PM_USERROLEORG JUESEQUANXIAN LEFT OUTER JOIN T_PM_USER YONGHU ON YONGHU.FID = JUESEQUANXIAN.FUSERID LEFT OUTER JOIN T_ORG_ADMIN ZUZHIDANYUAN ON JUESEQUANXIAN.FORGID = ZUZHIDANYUAN.FID WHERE (((JUESEQUANXIAN.FROLEID = 'Y/AAAADGoGkTtnMq' AND YONGHU.FFORBIDDEN = 0) AND YONGHU.FTYPE = 20) AND YONGHU.FISDELETE = 0) UNION SELECT DISTINCT ((JUESEQUANXIAN.FORGID || ' ') || YONGHU.FNAME_L2) FORGUSER, '/EAS_Note.kdrs/FI/CPBC/tra/image' FTEMPPATH, '/归档封面-差旅报销-A4横版.r1-print' FDEFTEMPLATE FROM T_PM_USERROLEORG JUESEQUANXIAN LEFT OUTER JOIN T_PM_USER YONGHU ON YONGHU.FID = JUESEQUANXIAN.FUSERID LEFT OUTER JOIN T_ORG_ADMIN ZUZHIDANYUAN ON JUESEQUANXIAN.FORGID = ZUZHIDANYUAN.FID WHERE (((JUESEQUANXIAN.FROLEID = 'Y/AAAADGoGkTtnMq' AND YONGHU.FFORBIDDEN = 0) AND YONGHU.FTYPE = 20) AND YONGHU.FISDELETE = 0) UNION SELECT DISTINCT ((JUESEQUANXIAN.FORGID || ' ') || YONGHU.FNAME_L2) FORGUSER, '/EAS_Note.kdrs/FI/CPBC/bizaccount/image' FTEMPPATH, '/归档封面-费用报销-A4横版.r1-print' FDEFTEMPLATE FROM T_PM_USERROLEORG JUESEQUANXIAN LEFT OUTER JOIN T_PM_USER YONGHU ON YONGHU.FID = JUESEQUANXIAN.FUSERID LEFT OUTER JOIN T_ORG_ADMIN ZUZHIDANYUAN ON JUESEQUANXIAN.FORGID = ZUZHIDANYUAN.FID WHERE (((JUESEQUANXIAN.FROLEID = 'Y/AAAADGoGkTtnMq' AND YONGHU.FFORBIDDEN = 0) AND YONGHU.FTYPE = 20) AND YONGHU.FISDELETE = 0))";// 将分配了职员报销角色的用户过滤 插入临时表 xx
var sql_jianyan="DELETE FROM TT_QLGY_DefaultCoverPage  WHERE FORGUSER  in (SELECT  distinct FORGUSER FROM T_RPT_deftemplate) AND  FTEMPPATH  in (SELECT  distinct FTEMPPATH FROM T_RPT_deftemplate)";
     // 通过 T_RPT_deftemplate 中的 FORGUSER + FTEMPPATH 字段 与临时表 TT_QLGY_DefaultCoverPage 的 FORGUSER + FTEMPPATH  进行比对,删除重复项	
var sql_update ="insert into T_RPT_deftemplate select distinct * from TT_QLGY_DefaultCoverPage   ";
	// 将临时表 TT_QLGY_DefaultCoverPage 中的结果 插入到 T_RPT_deftemplate 表中
var sql_delete ="DELETE FROM TT_QLGY_DefaultCoverPage";
	// 将临时表 XX中的结果 插入到 T_RPT_deftemplate 表中
com.kingdee.eas.csinterface.syncdatabase.SQLFacadeFactory.getRemoteInstance().exeSQL(sql_chaxun);
com.kingdee.eas.csinterface.syncdatabase.SQLFacadeFactory.getRemoteInstance().exeSQL(sql_jianyan);
com.kingdee.eas.csinterface.syncdatabase.SQLFacadeFactory.getRemoteInstance().exeSQL(sql_update);
com.kingdee.eas.csinterface.syncdatabase.SQLFacadeFactory.getRemoteInstance().exeSQL(sql_delete);
//com.kingdee.eas.util.client.MsgBox.showInfo(sql);
com.kingdee.eas.util.client.MsgBox.showInfo("用户默认套打封面已更新 ");

说明

1、因为不是专门做开发的,所以上面的功能是个人自学设置,部分方法、语句写法可能不合乎标准规范,方法仅供参考,

2、因为涉及到数据库操作,在数据库操作时,请首先联系总部老师了解标准产量数据逻辑,然后在测试环境备份数据后验证SQL语句,验证无误后再去生产环境部署使用

EAS85 费用报销批量设置默认套打封面

业务背景EAS8.5 启用费用报销模块,同时使用了发票云的影像系统。在使用过程中如果发生归档模版更换,或者员工在某组织第一次进行报销时,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息