二开案例.工序汇报.工序汇报分录中操作工二开
近期有客户反馈,在云之家通过移动端审核工序汇报单时,【操作工】字段无法显示出操作工的名字。
究其原因,是工序汇报单上的【操作工】字段共有三个:操作工子分录.操作工(基础资料)、汇总分录.操作工信息(文本)、汇总分录.操作工(多选基础资料),真正有业务意义、会写入数据库的只有第一个(即操作工分录中的操作工基础资料),而汇总分录上的两个字段只做展示,并不会存储到数据库中。
而业务审批并不支持子分录字段的显示,只支持分录中的字段显示,且只能从数据库中读取字段值,因此,汇总分录中的【操作工】,也就无法显示出操作工名字了。
为了解决移动审批的显示问题,可以对汇总分录上的操作工字段进行二开,设置好“字段名”属性,以便工序汇报单保存时能够存储到数据库中。同时,对已经存在的工序汇报单进行数据升级,将操作工子分录中的操作工字段值,赋值到汇总分录中的操作工字段中。为了方便数据升级,推荐使用操作工信息(文本)字段;如果必须使用操作工(多选基础资料)字段,则需要代码升级,因为会涉及到多选基础资料表的主键获取,sql脚本难以实现。
操作工信息(文本)字段二开步骤:
扩展“工序汇报”,对字段FMultiEmpName设置“字段名”属性
对已有的工序汇报单进行数据升级,参考sql如下:
declare @currentindex int declare @detailcount int begin set @currentindex=2 --操作工子分录的最大记录数 SELECT @detailcount= MAX(TMP.RN) FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY RD.FENTRYID ORDER BY RD.FDETAILID) RN FROM T_SFC_OPTRPTENTRY RE INNER JOIN T_SFC_OPTRPTDETAIL RD ON RD.FENTRYID = RE.FENTRYID INNER JOIN T_HR_EMPINFO_L EL ON EL.FID = RD.FEMPINFOID WHERE RE.FMULTIEMPNAME IS NULL OR RE.FMULTIEMPNAME = ' ' GROUP BY RE.FENTRYID, EL.FNAME, RD.FENTRYID, RD.FDETAILID ) TMP --将操作工子分录的首行填入操作工文本 MERGE INTO T_SFC_OPTRPTENTRY T1 USING( SELECT RE.FENTRYID, TMP.FNAME FROM T_SFC_OPTRPTENTRY RE INNER JOIN ( SELECT RE.FENTRYID, EL.FNAME, ROW_NUMBER() OVER (PARTITION BY RD.FENTRYID ORDER BY RD.FDETAILID) RN FROM T_SFC_OPTRPTENTRY RE INNER JOIN T_SFC_OPTRPTDETAIL RD ON RD.FENTRYID = RE.FENTRYID INNER JOIN T_HR_EMPINFO_L EL ON EL.FID = RD.FEMPINFOID WHERE RE.FMULTIEMPNAME IS NULL OR RE.FMULTIEMPNAME = ' ' GROUP BY RE.FENTRYID, EL.FNAME, RD.FENTRYID, RD.FDETAILID ) TMP ON TMP.FENTRYID = RE.FENTRYID AND TMP.RN = 1 ) T2 ON T1.FENTRYID = T2.FENTRYID WHEN MATCHED THEN UPDATE SET T1.FMULTIEMPNAME = T2.FNAME; while @currentindex <= @detailcount begin --将操作工子分录的其余行拼接到操作工文本 MERGE INTO T_SFC_OPTRPTENTRY T1 USING( SELECT RE.FENTRYID, TMP.FNAME FROM T_SFC_OPTRPTENTRY RE INNER JOIN ( SELECT RE.FENTRYID, EL.FNAME, ROW_NUMBER() OVER (PARTITION BY RD.FENTRYID ORDER BY RD.FDETAILID) RN FROM T_SFC_OPTRPTENTRY RE INNER JOIN T_SFC_OPTRPTDETAIL RD ON RD.FENTRYID = RE.FENTRYID INNER JOIN T_HR_EMPINFO_L EL ON EL.FID = RD.FEMPINFOID WHERE RE.FMULTIEMPNAME IS NOT NULL AND RE.FMULTIEMPNAME <> ' ' AND RE.FMULTIEMPNAME NOT LIKE CONCAT('%', EL.FNAME, '%') GROUP BY RE.FENTRYID, EL.FNAME, RD.FENTRYID, RD.FDETAILID ) TMP ON TMP.FENTRYID = RE.FENTRYID AND TMP.RN = 1 ) T2 ON T1.FENTRYID = T2.FENTRYID WHEN MATCHED THEN UPDATE SET T1.FMULTIEMPNAME = CONCAT(T1.FMULTIEMPNAME, ',', T2.FNAME); set @currentindex=@currentindex+1 end end
操作工(多选基础资料)字段二开步骤:
扩展“工序汇报”,对字段FOperatorId设置“表名”和“字段名”属性
对已有的工序汇报单进行数据升级,代码略
二开案例.工序汇报.工序汇报分录中操作工二开
近期有客户反馈,在云之家通过移动端审核工序汇报单时,【操作工】字段无法显示出操作工的名字。究其原因,是工序汇报单上的【操作工】字段...
点击下载文档
本文2024-09-23 03:26:23发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-158865.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章