第11章自定义请假员工工作流课件

上传人:我*** 文档编号:141078523 上传时间:2020-08-04 格式:PPT 页数:27 大小:205.50KB
返回 下载 相关 举报
第11章自定义请假员工工作流课件_第1页
第1页 / 共27页
第11章自定义请假员工工作流课件_第2页
第2页 / 共27页
第11章自定义请假员工工作流课件_第3页
第3页 / 共27页
第11章自定义请假员工工作流课件_第4页
第4页 / 共27页
第11章自定义请假员工工作流课件_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第11章自定义请假员工工作流课件》由会员分享,可在线阅读,更多相关《第11章自定义请假员工工作流课件(27页珍藏版)》请在金锄头文库上搜索。

1、第11章 自定义员工请 假审批工作流,大连理工大学电子音像出版社出版,第11章 自定义员工请假审批工作流,目的和要求:,掌握视图的定义与使用 掌握触发器的定义与使用 掌握 ADO.NET事务的定义与使用,重点和难点:,触发器的定义与使用 ADO.NET事务的定义与使用,模块业务描述,第一级审批权限: 如果请假10天以上, 由员工提交请假申报,经教研室主任批准后,分别经系主任、副院长、院长逐级审批后,最后由董事长批准终止流程。 第二级审批权限:如果请假7-10天, 由员工提交请假申报,经教研室主任批准后,分别由系主任、副院长逐级审批, 最后由院长审批终止流程。 第三级审批权限:如果请假3-7天,

2、 由员工提交请假申报,经教研室主任批准后,再系主任审批,最后由副院长审批终止流程。 第四级审批权限: 如果请假1-3天, 由员工提交请假申报,教研室主任批准,呈送经系主任审批终止流程。 第五级审批权限: 如果请假1天,由员工提交请假申报,教研室主任批准终止流程。,模块 UML图设计,模块界面设计,基础知识,视图定义 视图是一张虚拟表,它数据来源于基本表。优点便于数据的操作,能将几张表的中集中起来,可以简化操作 示例一: CREATE VIEW view_name AS select_statement 二例二: 视图示例一: CREATE VIEW SELECTEMPDEP AS select

3、 EmployeeID,EmployeeName,DepartmentName from dbo.Employee E,dbo.Department D where D.DepID=E.DepartmentID,触发器定义,触发器是一种特殊的存储过程,它不能显示地被调用,SQL Server 允许为 INSERT、UPDATE、DELETE 创建触发器,当在表(视图)中插入、更新、删除记录时,触发一个或一系列 T-SQL 语句。 创建触发器通常有两种方式, 一种是使用企业管理器创建触发器, 另一种是使用T-SQL代码创建触发器,语法格式,语法格式为: CREATE TRIGGER 触发器名称

4、ON 表名 FOR INSERT、UPDATE 或 DELETE AS T-SQL 语句,触发器示例一 CREATE TRIGGER dbo.InsertLR ON dbo.LeaveRecord FOR INSERT AS BEGIN SET NOCOUNT ON; declare RecordID int declare EmpID int select RecordID=RecordID,EmpID=EmpID from inserted INSERT INTO dbo.LEAVE_CHECK(leave_bill_id,leave_proposerid,check_employee_l

5、evel,check_type) values(RecordID,EmpID,5,1) END,ADO.NET事务,事务专门用于操作数据库时,保持数据一致性,如:学生表与班级表,每增加一名学生,便要在班级表的总人数列上增加一人。如果学生有一名退学,便要在班级表总人数列中减去一人。 为了保持两张表数据的一致性。可以使用事务对其进行处理。使用事务处理要用到名称空间。,SqlTransaction mytrans; / mytrans为事务类对象 SqlCommand comm = conn.CreateCommand(); mytrans = conn.BeginTransaction();/连接

6、类对象的BeginTransaction()方法 comm.Transaction = mytrans;/ 命令类的Transaction属性,UML对象时序图讲解,数据库共用类 :方法一. ExecuteNonQuery,public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); using (SqlConnecti

7、on conn = new SqlConnection(connectionString) PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; ,方法二. ExecuteNonQuery,public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText,

8、params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; ,方法三. PrepareCommand,private static void PrepareCommand(SqlCommand cmd, Sq

9、lConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter cmdParms) if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) fore

10、ach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); ,方法四. ExecuteScalar,public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnec

11、tion(connectionString) PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters); object val = cmd.ExecuteScalar(); cmd.Parameters.Clear(); return val; ,方法五. ExecuteReader,public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params

12、SqlParameter commandParameters) SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); try PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); retur

13、n rdr; catch conn.Close(); throw; ,数据库操作类 :方法一. GetLeave,public int GetLeave(int Inputday) SqlParameter param = new SqlParameter(inputDay, SqlDbType.Int) ; param0.Value = Inputday; string sqlSelect = selConfigLeave; int row=Convert.ToInt32(SqlHelper.ExecuteScalar(connectionstr,CommandType.StoredProc

14、edure,sqlSelect,param); return row; ,方法二. GetLC。,public int GetLC(int LC) SqlParameter param = new SqlParameter(LC, SqlDbType.Int) ; param0.Value = LC; string sqlSelect = select check_employee_level from dbo.LEAVE_CHECK where leave_bill_id=LC; int row = Convert.ToInt32(SqlHelper.ExecuteScalar(connec

15、tionstr, CommandType.Text, sqlSelect, param); return row; ,方法三. updateApprove,public int updateApprove(int leaveid, int check_type) SqlParameter param = new SqlParameter(leaveid, SqlDbType.Int), new SqlParameter(check_type, SqlDbType.Int) ; param0.Value = leaveid; param1.Value = check_type; string sqlUpdate = updateLC; return SqlHelper.ExecuteNonQuery(connectionstr, CommandType.StoredProcedure, sqlUpdate, param); ,方法四. InsertLeaveRecord,public int InsertLeaveRecord(LeaveRecordInfo LRInfo) SqlParameter param = ne

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号