- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模块业务 14.1 系统业务 业务一:近期由于物价上涨,公司也要给员工上涨工资: 月基本工资少于2000元的员工上涨工资30%;在2001元至3000元之间的员工上涨工资20%;在3001元至6000元的员工上涨工资10%;6001元以上的员工上涨工资5%. 业务二:员工迟到罚款20元;早退罚款30元;旷工罚款50元。汇总每位员工迟到早退罚金。 业务三:每月要给员工发放工资,公司要累计每个员工工资,要将公司所有员员工的工资进行汇总,还要对扣除所发员工工资后的公司帐上余额进行计算。 基础知识精讲 14.2 基础知识精讲 ——14.2.1标量函数 ——14.2.1.1标量函数的定义 标量函数的定义: CREATE FUNCTION [所有者] 函数名称 ( @参数 数据类型, @参数 数据类型 ) RETURNS –返回的参数的类型 as begin --这儿需要编写执行的T-SQL语句 RETURN 标量表达式 end 标量函数示例 标量函数sumwage的功能是: 求员工总工资.输入员工的工号,从工资表wage找到相应的行, 将总工资=基本工资(BasicWage)+奖金(Bonus)-迟到罚款(LateMinus)-早退罚款(EarlyLeaveMinus)-缺勤罚款(AbsenceMinus)-病假罚款(SickLeaveMinus)-事假罚款(AffairLeaveMinus) 标量函数代码 标量函数sumwage的代码如下: create function sumwage ( @empid int ) returns money as begin declare @sumwage money SELECT @sumwage=(ISNULL(BasicWage,0.00)+ISNULL(Bonus,0.00)-ISNULL(LateMinus,0.00)-ISNULL(EarlyLeaveMinus,0.00)-ISNULL(AbsenceMinus,0.00) -ISNULL(SickLeaveMinus,0.00)-ISNULL(AffairLeaveMinus,0.00)) FROM dbo.Wage where EmpID=@empid return @sumwage end 注意:上述代码中有的员工没有受到处罚,或者有的员工没有奖金。即该列列值为空值,如何进行进行空值处理,可以使用空值函数ISNULL。 ISNULL的定义:ISNULL(列名,0.00) 如果该列名为空值,空值作0处理。如: ISNULL(Bonus,0.00),如果奖金列Bonus为空值NULL,则该列为0;其余各列空值处理雷同。 空值处理 14.2.2表值函数 ——14.2.2.1表值函数的定义 表值函数与标量函数的定义相似,标量函数返回值为一个具体的数据,而表值函数返回值为一张表。 CREATE FUNCTION [所有者] 表值函数名称 ( @参数 数据类型, @参数 数据类型 ) RETURNS @ReturnTable Table ( 列名1 数据类型, 列名2 数据类型 ) as begin --这儿需要编写执行的T-SQL语句 RETURN end 表值函数 14.2.3 NET事务 TransactionScope事务范围可以控制对数据库的数据提交,保持数据的一致性,对员工发工资时,要对单个员工的工资进行汇总,对单位所有员工所发工资进行汇总。有可能程序更新了一条记录,没有来得及更新另外一条记录,发生停电、网络问题等故障,会导致数据的前后不一致。因此,为了避免这种情况发生,需要使用事务。TransactionScope事务有二个基本命令:Complete()、Dispose()。 Complete()标识事务提交,Dispose()标识事务回滚到数据初始状态。 NET事务 14.2.3.2 NET事务使用 要使用TransactionScope范围事务要增加引用 System.Transactions. 假如我们对签到类型表CheckType先进行插入操作,再执行一个删除操作,再执行一个插入操作。如果没有用事务范围进行控制管理,则会是什么结果。 NET事务使用 14.2.3.3 NET事务操作分布式数据库 14.3支付薪水功能实现 ——14.3.1UML设计 ——14.3.1.1实体层Model 实体层共有四个类.分别为EmployeeInfo、WageInfo、EmployeeSumWageInfo、EmpOutWage。实现工资发放功能需要使用数据库zdpersys中的三张表:员工表Employee、工资表Wage、工资汇总表
您可能关注的文档
- UG专用夹具设计第2单元 夹具基本元件的设计.ppt
- UG专用夹具设计第3单元 夹紧与分度对定机构的设计.ppt
- UG专用夹具设计第4单元 车床夹具的设计.ppt
- UG专用夹具设计第5单元 铣床夹具的设计.ppt
- UG专用夹具设计第6单元 钻床夹具的设计.ppt
- UML软件建模技术1.1 UML概述.ppt
- UML软件建模技术1.2 软件工程与rational统一过程.ppt
- UML软件建模技术1.3 UML基本组成.ppt
- UML软件建模技术2.1用例图.ppt
- UML软件建模技术2.2活动图.ppt
- VC NET数据库应用程序设计第15章 版本控制软件VSS2005.ppt
- VC NET数据库应用程序设计第16章 使用Workshop设计帮助文件.ppt
- VC NET数据库应用程序设计第17章 部署人事工资管理系统.ppt
- Visual Basic 程序设计教程第1章.ppt
- Visual Basic 程序设计教程第2章.ppt
- Visual Basic 程序设计教程第3章.ppt
- Visual Basic 程序设计教程第4章.ppt
- Visual Basic 程序设计教程第5章.ppt
- Visual Basic 程序设计教程第6章.ppt
- Visual Basic 程序设计教程第7章.ppt
文档评论(0)