当前位置: 首页 > news >正文

泛微Ecology8明细表对主表赋值

文章目录

    • @[toc]
    • 1.需求及效果
      • 1.1 需求
      • 1.2 效果
      • 2.思路与实现
      • 3.结语

1.需求及效果

1.1 需求

在明细表中的项目经理,可以将值赋值给主表中的项目经理来作为审批人员
在这里插入图片描述

1.2 效果

在申请人保存或者提交后将明细表中的人名赋值给主表中对应的值

2.思路与实现

在通过js测试后,不能够百分百的赋值成功,只能在数据库中写触发器来确保每次都能够赋值成功。
注意点:1.明细表中的项目经理可能是多个不同的人,所以需要将值都取出来,写到同一行,并用逗号隔开,确保与主表中的多人力资源在数据库中存储的格式相同。
2.我这里的项目经理是汉字,并不是存储的人力资源字段对应的数字,所以还需要从HRmresource表中获取人名对应的id

/*
此触发器用来使用明细表中的项目经理赋值给主表中的项目经理及申请人带出人力资源部考勤工时
1.明细表中的项目经理可能存在多个,所以需要多对一
2.主表中的项目经理是int类型,需要用HrmResource转化
3.申请人带出人力资源部导入的考勤工时
*/
CREATE TRIGGER trg_yyhc_xxgs
ON dbo.formtable_main_201 
AFTER INSERT,UPDATE
AS 
BEGINSET NOCOUNT ON;  --不返回结果行数-- 声明变量DECLARE @requestID INT,  --请求id@sqr INT,		 --申请人@name NVARCHAR(100), --项目工时中的name@gs DECIMAL(10,4),   --工时@xmjl NVARCHAR(100),    --项目经理(项目负责人)@id INT;  --主表id-- 查询插入的数据SELECT @requestID = i.requestId, @sqr = i.sqr,@id=i.id FROM inserted i;-- 获取姓名SELECT @name = hr.lastname FROM dbo.HrmResource hr WHERE hr.id = @sqr;-- 获取工时值SELECT @gs = yy.gs FROM dbo.yyhc_yybgg yy WHERE yy.name = @name;--根据id获取明细表中的项目经理SELECT @xmjl = STUFF((SELECT DISTINCT ',' + CAST(hr.id AS NVARCHAR)FROM formtable_main_201_dt1 dtJOIN HrmResource hr ON dt.xmjl = hr.lastnameWHERE dt.mainid = @idFOR XML PATH('')), 1, 1, '')-- 更新数据--0709日更改,不是项目成员无法更新数据,没有项目经理即不能提交IF EXISTS (SELECT 1 FROM yyhc_xmcylb WHERE name=@name)BEGINUPDATE m SET m.rlzybtggs = @gs,m.xmfzr=@xmjl FROM dbo.formtable_main_201 m WHERE m.requestId = @requestID;END 
END;

3.结语

可以通过触发器来完成明细表中的值赋值给对应的主表的值,当然还可以建一些表通过匹配给他们赋值,也会大大减少填写的内容。

http://www.lryc.cn/news/401719.html

相关文章:

  • opencv—常用函数学习_“干货“_5
  • JAVA零基础学习1(CMD、JDK、环境变量、变量和键盘键入、IDEA)
  • Redis的安装配置及IDEA中使用
  • ubuntu 物理内存爆炸而不使用虚拟内存的问题
  • Python实现音频均衡和降噪
  • 【JavaScript 算法】贪心算法:局部最优解的构建
  • Azcopy Sync同步Azure文件共享
  • 单例模式 饿汉式和懒汉式的区别
  • Python中的模块和包的定义以及如何在Python中导入和使用它们
  • 设计模式使用场景实现示例及优缺点(结构型模式——组合模式)
  • 《系统架构设计师教程(第2版)》第11章-未来信息综合技术-06-云计算(Cloud Computing) 技术概述
  • 网络安全工作者如何解决网络拥堵
  • 电脑显示mfc140u.dll丢失的修复方法,总结7种有效的方法
  • ospf的MGRE实验
  • 开发指南047-前端模块版本
  • c#中的字符串方法
  • 成像光谱遥感技术中的AI革命:ChatGPT
  • 学习分布式事务遇到的小bug
  • ElasticSearch学习之路
  • (C++二叉树02) 翻转二叉树 对称二叉树 二叉树的深度
  • 高阶面试-mongodb
  • MySQL数据库慢查询日志、SQL分析、数据库诊断
  • [短笔记] Ubuntu配置环境变量的最佳实践
  • 怎样在 PostgreSQL 中优化对多表关联的连接条件选择?
  • 【Flowable | 第四篇】flowable工作流多任务实例节点实现会签/或签
  • 解决C#读取US7ASCII字符集oracle数据库的中文乱码
  • Linux驱动开发中设备节点、虚拟节点、逻辑节点之间的区别与关系
  • 【iOS】——ARC源码探究
  • ubuntu服务器安装labelimg报错记录
  • Transformer中Decoder的计算过程及各部分维度变化