引言
编制《SVC人力资源管理系统详细设计报告》(下称报告),是为了得出对目标系统的精确描述,设计出程序的蓝图,使我公司的程序员根据此蓝图写出代码。
本《报告》的读者是:参与该系统开发的管理人员以及系统设计人员、代码编制人员和系统实施人员。
本《报告》中所涉及的数据流图是描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。其各个符号意义说明如下:
箭头:表示数据流,即特定数据的流动方向。(如图1-4)
1Entt_2Prcs_1Stor_3 图1-1 图1-2 图1-3 ? ? ? ?
图1-4
正方形(或立方形):表示数据的源点或终点,即指外部实体。(如图1-1) 圆形:表示变换数据的处理。(如图1-2) 两条平行线:表示数据存储。(如图1-3)
箭头:表示数据流,即特定数据的流动方向。(如图1-4)
1. 体系结构设计
1.1 总体结构
采用客户/服务器运行方式。 1.2 运行环境
网络操作系统: 客户操作系统: 数据库: 开发工具:
2. 数据库设计
2.1 系统数据流图
个人档案信息人事档案事务处理信息人员编号事务基本信息息信息员人员信息人工资数据个人所得税事务信息事务人员信事务信息信息工资变动查询查询所得税数据个人所得税报表关相息果报结表资信用户员信息工资信息工资人工工数资据工资数据所得税率工资数据税率员工卡刷息信考勤机信息人员信息工资台帐银行代发报表刷卡班次信息排班信息班次清除数据刷卡刷卡数据清除用户纪录班次信息数据清除数据清除刷卡纪录请假请假管理请假信息考勤结果统计请假信息
2.2 所有数据库/表列表
2.2.1 系统表
2.2.1.1 2.2.1.2 2.2.1.3 2.2.1.4 2.2.1.5 2.2.1.6 2.2.1.7
数据字典 hr_systable 指标表 hr_syscollect 代码系统表 wf_codesystable 代码表主表 wf_codecollect 代码表 wf_codeitem 部门表 hr_department 界面信息 hr_interface
刷卡信息考勤信息相关报表班次信息请假信息2.2.1.8 2.2.1.9
方案主表 hr_scheme 子方案表 hr_scheme_m
2.2.1.10 方案明细表 hr_scheme_d 2.2.1.11 用户表 hr_operator
2.2.1.12 组用户主表 hr_operator_group 2.2.1.13 用户组明细表 hr_group_detail 2.2.1.14 常数表 hr_consttable
2.2.2 人事档案信息:
2.2.2.1 2.2.2.2 2.2.2.3 2.2.2.4 2.2.2.5 2.2.2.6 2.2.3.1 2.2.3.2 2.2.3.3 2.2.4.1 2.2.4.2
2.2.5 事务查询
2.2.5.1 2.2.5.2 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7.1 2.2.7.2 2.2.7.3
2.2.8
银行代发 2.2.8.1 2.2.8.2 2.2.8.3 2.2.8.4
工资表 hr_salary 人员信息 A01
银行模板主表 hr_bank_type 银行模板明细表 hr_bank 人员信息 A01 所有事务表 工资表 hr_salary 人员基本信息 A01 公式设置表 hr_formula 考勤扣款表 hr_check_money 工资表 hr_salary 人员信息 A01 税率表 hr_tax_rate 基本信息 A01 学习简历 hr_study 工作简历 hr_work 家庭关系 hr_family 社会关系 hr_social 相关信息 hr_emp_info 内部调动 hr_move 养老保险 hr_protect 住房公积金 hr_foundsource 人员信息 A01 所有事务表
2.2.3 人事事务信息
2.2.4 基本信息查询
2.2.6 工资变动管理
2.2.7 个人所得税
2.2.9 工资人员信息
2.2.9.1 工资表 hr_salary 2.2.9.2
人员信息 A01
2.2.10 工资台帐
2.2.10.1 工资表 hr_salary 2.2.10.2 台帐方案 hr_salary_count 2.2.10.3 部门表 hr_department
2.2.11 工资条
2.2.11.1 工资表 hr_salary 2.2.11.2 部门表 hr_department
2.2.12 考勤排班
2.2.12.1 排班表 hr_arrange_work 2.2.12.2 班次主表 hr_work_master 2.2.12.3 班次明细表 hr_work_detail 2.2.12.4 用户表 hr_operator 2.2.12.5 部门分配表 hr_check_dept 2.2.12.6 考勤代码表 hr_check_code
2.2.12.7 考勤代码类表 hr_check_code_categery
2.2.13 考勤刷卡
2.2.13.1 排班表 hr_arrange_work 2.2.13.2 刷卡纪录表 hr_check_record
2.2.14 考勤结果统计
2.2.14.1 排班表 hr_arrange_work 2.2.14.2 刷卡纪录表 hr_check_record 2.2.14.3 请假表 hr_leave
2.2.14.4 考勤结果表 hr_check_result 2.2.14.5 考勤代码表 hr_check_code 2.2.14.6 部门分配表 hr_check_dept 2.2.14.7 用户表 hr_operator
2.2.15 请假管理
2.2.15.1 用户表 hr_operator 2.2.15.2 请假表 hr_leave
2.2.16 考勤数据清除
2.2.16.1 排班表 hr_arrange_work 2.2.16.2 刷卡纪录表 hr_check_record 2.2.16.3 考勤结果表 hr_check_result
2.3 数据库/表详细设计
详见附录A
3. 系统详细功能设计
3.1 系统总体结构设计
该系统分为六个模块:人事档案管理、工资管理、考勤管理、企业人才库、系统管理、报表管理。
3.2 系统层次结构设计
3.2.1 人事档案管理
3.2.1.1 3.2.1.2
人事基本信息管理 事务管理 A B C D
3.2.1.3 查询
A B
3.2.2 工资管理
3.2.2.1
工资变动 A B C
3.2.2.2 3.2.2.3 3.2.2.4 3.2.2.5 3.2.2.6 3.2.2.7
3.2.3 考勤管理
3.2.3.1 3.2.3.2
排班管理 请假管理
公式设置 计算 月末处理 基本信息查询 事务查询 一般事务 养老保险 住房公积金 内部调动
个人所得税 银行代发 工资条 工资人员信息 工资台帐 报表
3.2.3.3 3.2.3.4 3.2.3.5 3.2.3.6 3.2.3.7
刷卡管理 结果统计 考勤数据清除 查询 报表
3.2.4 企业人才库
3.2.4.1 3.2.4.2 3.2.4.3
3.2.5 系统管理3.2.5.1
3.2.5.2
3.2.5.3 3.2.5.4 3.2.6 报表管理3.2.6.1
人才登记 人才录用 人才查询
系统构建 A 指标管理 B 代码管理 C 方案定义 D
参数管理 用户管理 A 用户管理 B
组管理
数据管理 A 数据备份 B 数据恢复 C
初始化管理操作管理 A 操作日志 B 变更日志 C 当前用户 D
事务提醒
报表设计
A B
新建报表 打开报表
3.2.6.2 报表运行
3.3 系统的功能模块划分
3.3.1 系统的功能模块划分框图
3.3.1.1人事信息管理
个人档案信息人事档案事务处理人员基本信息息信息事务信息事务人员事务信息信编号员人员信息人事务信息信息查询查询报表用户
3.3.1.2 事务管理
人员信息养老保险相关果报结表工资信息一般事务人员调动住房公积金一般事务事务信息特殊事务
3.3.1.3 工资管理
人事信息信息个人所得税人事工资数据工资变动所得税数据个人所得税个人所得税信息信息工资税勤据数率考工资考勤信息工资人员工资信息信息工资所得税率数据工资数据资工据数人员信息工资台帐银行代发表报表用户3.3.1.4 考勤管理
员工卡刷息信考勤机信息刷卡刷卡班次信息排班信班次息清数据除刷卡纪录数据班次信息数据清除数据清除相关清除报请假请假管理请假信息考勤结果统计请假信息3.3.1.5企业人才库
刷卡信息班次信息刷卡纪录考勤信息请假信息相关人员人事员1招聘录入人才信息企业人才库决定是否聘用3分流忆聘用人员已聘用人才库2考核考核考核信息考评信息
3.3.2 系统的功能模块描述
3.3.2.1
动态数据窗口流程动态数据窗口对象
参数注册注册数据tablename[]表名tableitem[]字段where 条件dw_1数据窗口type窗口风格ids_systable检索出所有表的使用字段(按tableitem[]顺序排好序)gridfree动态创建数据窗口dw_1.create(窗口语法)对象外可以修改(规则)数据窗口中排列字段规则根据字段信息设置字段风格,是代码的构件下拉数据窗口,调整下拉数据窗口宽度? 相关表
数据字典 hr_systable 指标表 hr_syscollect ? ?
界面信息 hr_interface 构建用户对象
定义两中数据窗口风格(free风格、grid风格)。 实例变量
ids_systable (数据字典的数据存储) is_type(数据窗口风格)
id_item[]传入指标项流水号数组 is_where 动态数据窗口条件 idw_dw 数据窗口控件 注册参数
表标名数组:该数组保存传入的所有指标集。
动态创建的指标项:传入排好顺序的数组item[],该数组存放所有需要创建的指标项。该数组是number型数组,存放的是使用指标项在数据字典中的流水号list_id,流水号唯一标识指标项。
数据窗口:传入数据窗口控件名称,以便动态创建数据窗口。 数据窗口风格:传入数据窗口风格,是free还是grid风格。
窗口名称:唯一标示该数据窗口的名称,以便保存数据窗口中指标项的位置,长度。(用于界面信息保存标识)
where条件:动态构造数据窗口时,选择sql的where 条件(多表关联条件或检索条件)。 构建数据存储
数据存储ids_systable检索数据字典的所有指标项。由传入的指标项数组构建该数据窗口的where 子句。既“where list_id in (id_item[1], id_item[...], id_item[n])”把数据窗口的选择语句加上构建的where子句,检索出需要的指标项。所有指标项按数组id_item[]的顺序排序。完成数据存储的构建。 动态创建数据窗口 构造数据窗口语法:选择语句(select ...)的选择项为指标集名称+指标项。语句为 “select 指标集名称.指标项 from 指标集 where 表关联条件”。
(例SELECT tablename.col_1 , tablename.col_2 , . . . from tablename[1] , tablename[2], ... tablename[n] where tablename[1].col_1 = tablename[2].col_1 and ....)
根据数据窗口的选择语句和数据窗口风格(is_type)生成数据窗口语法。用数据窗口控件动态创建该数据窗口(idw_dw.create(数据窗口语法))。 调整数据窗口字段风格
从数据存储ids_systable中读取指标项信息,根据信息调整指标项属性。 1.调整每个指标项、指标项标签的字体(宋体)、高度(64)、大小(9号)。 2.根据顺序调整其taborder顺序,使其一致。
3.根据显示标志置其是否可见(显示标志为N,该指标项和指标标签不可见)。 4.根据数据类型、长度调整编辑风格、显示风格。
5.根据是否代码,创建下拉数据窗口。如果代码类是多级,创建buttom按钮。
如果代码标志为Y,取得代码类、显示列、值列,调用全局函数f_createdddw(代码类,显示列,值列)创建下拉数据窗口dddwname,并把该指标项编辑风格置为下拉数据窗口
?
?
?
?
tablename_col_1.dddwname =dddwname。如果数据窗口为自由风格,并且代码类是多级代码类,则在该指标项右侧创建一个buttom 按钮,同时使指标项保护属性为真。按钮命名规则 btn+指标项名称。调整下拉数据窗口的宽度。
? 调整数据窗口位置
grid 风格:如果数据窗口为网格风格,则通过数据窗口名称,在界面信息表hr_faceinfo中找到该窗口,该字段的列属性(位置、长度、顺序),根据找到的信息调整指标项属性。 固定宽度free 风格:根据指标项在动态用户对象的数据存储ids_systable中的排列顺序和显示标志,调整每个显示指标项、指标项标签的位置、长度。
动态调节数据窗口宽度风格:根据数据存储ids_systable中显示指标的总数,和指标项每列的个数,算出数据窗口中指标项列数,得到数据窗口高度。根据长宽的比例,算出指标项标签、指标项的长度,调整数据窗口长宽,调整指标项标签、指标项位置。 ? 调整数据窗口updata属性
根据保存指标项名称设置updaata属性:根据用户当前要保存的指标名称,设置保存表。 ? 数据校验
构造全局函数,传入需要检验数据的流水号,在表hr_verify中查找验证规则,根据规则进行校验,验证失败使光标停在该校验字段,返回-1。通过校验返回1。 3.3.2.2
UO_EMPINFO用户对象 A. 主界面 ? 界面
dw_1增加
修改删除? 模块功能
由外部调用时传入指标序号,通过指标序号从hr_scheme_d中获取指标项目,调用动态数据窗口对象创建dw_1,如果是修改则从数据库中检索出被修改人员的数据。 ? 按钮功能
? 增加
设置标志(is_Action = ‘New’),打开档案编辑窗口,新增加档案信息(详见档案编辑窗口)。 ? 修改
设置标志(is_Action = ‘Modify’),打开档案编辑窗口,修改档案信息(详见档案编辑窗口)。
? 删除
删除选中的数据行。 B. 档案编辑窗口 ? 界面
确定dw_1取消
? 相关表
方案主表 hr_scheme
子方案表 hr_scheme_m 方案明细表 hr_scheme_d 人员基本信息相关表 ? 模块功能
外部调用时传入指标序号,通过指标序号从hr_scheme_d中获取指标项目序号,调用动态数据窗口对象创建dw_1。如果是修改则检索出被修改的数据。 ? 按钮功能
? 确定
取人员基本信息表中的emp_id存入该用户对象使用的表中的emp_id字段(此为相关联的外件),根据指标项的是否为空属性校验其输入是否为空,通过验证既保存新增或修改后的数据,如验证失败,提醒用户重新输入。 ? 取消
不保存数据,关闭窗口。 3.3.2.3
树型代码窗口 ? 界面 A. 主窗口
treeview
? 相关表
代码类表 wf_codecollect 代码表 WF_CODEITEM ? 模块功能
外部调用时传入‘代码类别’、‘显示列’、‘数据列’三个参数。构造动态SQL:\LIST_ID,\CODETYPE_ID ='\从数据库中检索数据构造TREEVIEW。点击‘+’号从数据库中检索出下级代码插入该节点下展开下级,双击选中一个代码并返回父窗口。
3.3.2.4
人事档案管理
基本信息管理
1.主窗口
? 界面
人员信息管理-[增加]个人信息 窗口 帮助机构单位一单位二部门一部门二? 菜单
档案管理增加(A) Ctrl+A修改(M) Ctrl+M删除(D) Ctrl+D------------------------人员检索(R) Ctrl+R快速定位(L) Ctrl+L数据替换(U) Ctrl+U媒体信息(I) Ctrl+I------------------------返回(X) Ctrl+X窗口层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助主题() F1关于(A)...? 相关表
方案主表 hr_scheme 子方案表 hr_scheme_m 方案明细表 hr_scheme_d 基本信息 A01 学习简历 hr_study 工作简历 hr_work 家庭关系 hr_family 社会关系 hr_social 相关信息 hr_emp_info
? 模块功能 该模块为人事档案管理的主界面,采用sheet窗口风格,提供对人员的浏览及其它具体操作功能的入口。在窗口打开时,从hr_department数据库表中检索出单位/部门构造tv_1,dw_1数据窗口根据所选方案从hr_scheme,hr_scheme_m,hr_scheme_d的关联中获取项目序号,调用动态数据窗口对象来动态构造(详见动态数据窗口创建),在窗口打开时,dw_1不检索出任何数据,选择检索菜单,根据检索条件检索出满足条件的人员。在TV_1中选中单位/部门后,dw_1中只显示出选中单位/部门及其所有下级的人员。
? 菜单功能 1. 增加
设置is_Action = ‘New’,打开人事档案编辑窗口,编辑新增人员档案信息(详见人事档案编辑窗口)。 2. 修改
设置is_Action = ‘Modify’, 打开人事档案编辑窗口,修改人员档案信息(详见人事档案编辑窗口)。 3. 检索
设置is_Flag = ‘Retrieve’,打开条件窗口,根据条件检索出符合条件的人员(详见条件窗口)。 4. 快速定位
设置is_Flag = ‘Find’,打开条件窗口,根据条件查找定位到满足条件的人员(详见条件窗口)。 5. 数据替换
打开数据替换窗口,根据替换条件对满足条件的人员进行指定项目的数据替换(详见数据替换窗口)。 6. 相关信息
打开媒体信息窗口(详见相关信息窗口),编辑人员相关的文本、图形、视频等多媒体信息。
2.编辑窗口
? 界面
人员信息管理-[增加]基本信息学习简历工作简历社会关系家庭关系编号:姓名:确定取消
? 相关表
学习简历 hr_study 工作简历 hr_work 家庭关系 hr_family 社会关系 hr_social
相关信息 hr_emp_info ? 模块功能
固定tab页“基本信息”的项目采用与父窗口相同方法获得后调用动态数据对象构造。其余Tab页用hr_syscollect,hr_scheme,hr_scheme_m关联通过主方案号和hr_syscollect.obj_type=’1’的条件获得hr_syscollect.obj_id,调用用户对象uo_empinfo动态加入(详见用户对象uo_empinfo)。 ? 按钮功能
? 确定
验证人员编号是否重复,所有不允许为空的指标项不能为空,直到通过验证才能进行以下动作。如果iw_parent.is_action=’New’,先保存基本信息(dw_1),再把人员序号逐个写到其它Tab页的数据行中的’emp_id’中,并保存,所有保存成功后,在主窗口中插入一个新行,把基本信息的项目逐个对应回写到新行中,然后刷新编辑窗口,准备下一个数据录入。 ? 取消
取消当前操作,关闭窗口。 ? 基本信息窗口中的Button按钮
点击Button ,获取该Buttond对应的字段的代码类别、显示字段名、值字段名,打开树型代码窗口(详见树型代码窗口)
3.条件窗口
? 界面
人员检索括号项目名运算符显示值括号逻辑关系清除(L)查找(F)关闭(C)
? 模块功能
主窗口点击检索(查找)打开该窗口,窗口默认插入20个空行,项目与主窗口的项目相同。如果iw_parent.is_Flag=’Find’,将cb_l.Text设为‘查找’否则设为‘检索’。 ? 按钮功能
? 检索(查找)
如果iw_parent.is_Flag=’Retrieve’,将dw_1每地的条件连接成一个字串并替换父窗口的数据窗口SELECT语句的where条件子句,然后从数据库检索数据。如果iw_parent.is_flag=’Fing’,将dw_1的条件合成一个数据窗口查找条件,在主窗口中根据合成条件查找并选中,继续点击“查找”按钮,则继续往后查找定位,并取消前一个选中行,直到查找不到满足条件的行为止,并显示共找到多少个满足条件的人员。 ? 清除
双击选中一行,点击清除删掉选中行,并在数据窗口中插入一行空行。 ? 取消
关闭窗口。
4.数据替换
? 界面
快速数据替换项目数据项目运算符值运算符清除(C)替换(O)取消(C)
说明:在替换条件窗口的‘项目’(下)前增加右括号,在‘值’后增加左括号。 ? 模块功能
dw_1为替换数据窗口,窗口打开时插入20个空行,项目与主窗口项目相同(下拉数据窗口)。
dw_2为替换条件窗口,窗口打开时插入20个空行,项目与主窗口项目相同。
? 按钮功能
? 确定
用dw_1的数据构造Update语句的set子句,dw_2的数据构造where子句,更新数据库(‘A01’)成功后,用dw_2的数据构造查找条件,在主窗口中查找到符合条件的人员后,逐个替换dw_1中选择的项目的数据。完成后关闭窗口。 ? 取消
关闭窗口。
5.相关信息
? 界面
媒体信息管理导入导出浏览修改删除帮助退出datawindow(grid)
? 相关表
媒体信息表 hr_empinfo ? 模块功能
该窗口提供对与人员相关的文本、声音、图形、图像、视频等信息的管理界面,可导入任意类型的媒体信息,存入数据库(employee_info),也可导出为文件,在应用调用与媒体类型关联的应用软件浏览相应的媒体信息。 ? 按钮功能 ? 导入
is_Action=’New’ 打开导入窗口(如下图),将外部媒体信息导入的数据库。先选择类型,然后点击Buffon选择要导入的文件。
媒体导入名称:类型:文件:确定取消? 导出
将dw_1中选中的信息导出到磁盘指定文件中。 ? 浏览
将dw_1中选中的信息导出到临时文件中,然后调用相关应用打开文件进行浏览。 ? 修改
is_Action=’Modify’
打开修改窗口(如上图),可修改媒体类型,并重新选择要导入的文件。 ? 删除
删除选中的信息。 ? 验证
名称不能为空,当没有名称时,自动以选中文件名作为保存信息的名称。
事务管理
1. 主窗口
? 界面
菜单(m_transtion)事务处理(T)体检管理...所有事务......-退出(X)编辑(E)增加(N)...修改(M)...删除(D)-查找(F)...过滤(S)...窗口(W)层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助(H)主题(C)...F1关于(A)...事务处理编辑窗口帮助人员信息treeView(tv_1)选中事务相关信息datawindow(dw_1)事务主窗口(w_transtion)? 相关表
方案主表 hr_scheme 子方案表 hr_scheme_m 方案明细表 hr_scheme_d
所有事务表 ? 模块功能
该窗口为sheet窗口风格,左边为treeview,第一级为单位,单位下按部门表hr_department中的上下级关系构建出部门树。从人员信息表(A01)中检索出人员信息,按所在部门挂在部门树下,作为最低级的叶子节点。(只有展开某节点时,才从数据库中检索出下级,插入下级节点)。右边显示事务信息。当打开事务模块时,treeview(tv_1)选中第一级部门,展开第一级节点。同时根据菜单事务处理的第一项事务处理,动态构建好该事务的数据窗口dw_1。从方案中存在的该事务的相关字段,在hr_systable中检索出数据,根据数据类型、长度、是否代码等信息,动态创建数据窗口dw_1;从事务指标中检索出该事务数据。
? 菜单功能
事务菜单中的事务处理菜单是动态构建。单击某个事务按钮,则动态创建该事务的数据窗口,检索出该事务的所有信息,显示该事务信息。
?
open 事件:
构建部门人员树:从hr_consttable表中取的单位信息,作为tv_1的根节点。从部门表hr_department中,用数据存储检索出上级部门为‘0’的单位部门信息,和从人员信息表(A01)中按部门“0”检索出人员信息,作为孩子节点。展开根节点。检索出该事务的信息。 ? 构建菜单:从方案中检索出事务指标,取其指标编号作为菜单id,指标名称作为菜单名称。例 指标编号“A03”,指标名称“体检管理” 则取指标编号的 “03 + 2000(基数)” 作为该菜单项的标识id ,”体检管理 ”作为菜单项名称。构建好该子菜单后,设在窗口菜单m_transtion的第一项事务处理作为第一项下拉菜单(既事务处理菜单)。以第一种事务为默认事务动态创建数据窗口。(参见事务处理:菜单按钮)
? tv_1的selectionchanged 事件:
判断该选中节点是否展开过,如果没有展开过,取得选中节点的data,如果是部门代码,则从部门表hr_department中,用数据存储检索出上级部门为该部门代码的单位部门信息,和人员信息表(A01)中,按部门代码检索出人员信息,作为孩子节点。
dw_1按部门代码过滤出该部门下所有人员的事务信息。
? 事务处理:菜单按钮
当菜单中事务项选择改变时,根据选中的事务,既通过菜单的id 标识,在w_transtion窗口的用户建事件ue_changmenuitem(为系统的pbm_syscomman消息)中通过标识来判断选中的事务,(把id 转化为指标编号,如20003 转化为A03 指标编号),把该事务在当前方案中的所有指标项加上人员基本信息表中人员编号、姓名,以及事务指标、人员基本信息指标数组传入动态数据对象动态构建该事务的数据窗口,检索出相应的数据。再根据tv_1中当前选中的单位、部门过滤出该单位、部门下人员的该事务信息。
? 增加:
设置增加修改标志 is_Action =’New’,设置事务标志 is_Trans =’A03’ (当前事务指标)。打开增加编辑窗口 OpenWithParm(w_trans_newedit,this),进行该事务的增加操作。
? 修改:
设置增加修改标志 is_Action =’Edit’,设置事务标志is_Trans =’A03’ (当前事务指标)。打开增加编辑窗口 OpenWithParm(w_trans_newedit,this),进行该事务的修改操作。
? 删除:
当事务数据窗口dw_1中有选中行,删除菜单可用。当点击该菜单时,弹出消息让用户确认是否删除。用户点击确定时,删除该选中事务行,点亮下一数据行。如数据窗口没有数据,则删除菜单不可见。用户点击取消,则不作任何操作。
? 查找:
事务查找定位项目名运算符显示值逻辑关系清除(L)查找(F)关闭(C)
弹出查找条件窗口(w_find),让用户选择查找条件。如用户点击查找按钮,构造查找条件。 ls_Find = ”姓名 = ‘张三’ and ...” ,查找数据窗口dw_1中数据ll_Row = dw_1.Find(ls_Find),如果找到数据(既 ll_Row > 0)就点亮找到数据行。如果再点查找,则从当前行继续往后查找。如点关闭按钮,则关闭查找条件窗口(w_Find)。
? 过滤:
事务过滤项目名运算符显示值逻辑关系过滤(S)关闭(C) 弹出过滤窗口(w_Search),让用户选择过滤条件。如用户点击过滤按钮,构造过滤条件ls_Search = ”姓名 = ‘张三’ and ...” ,然后ls_Search = ls_Search + “当前tv_1选中的单位、部门条件”组合过滤条件,过滤数据窗口dw_1中数据dw_1.SetFilter(ls_Search),dw_1.Filter()。如点关闭按钮,则关闭过滤条件窗口(w_ Search)。 2.编辑窗口(一般事务) ? 界面
人员编号:姓名:体检日期:...确定取消事务增加修改(w_trans_newedit)? 模块功能
该窗口完成事务的增加,修改功能。 接收参数 w_transtion iw_Parent
iw_Parent =PowerObjectParm is_Action =iw_Parent.is_Action is_Trans =iw_Parent.is_Trans
根据参数is_Trans确定事务种类,从方案表hr_scheme,hr_scheme_m,hr_scheme_d和数据字典hr_systable中关联出该事务指标项。把人员基本信息表中人员编号、姓名和当前事务的所有指标项用数组同指标名称数组传入动态数据对象,动态创建该数据窗口(dw_1控件的数据窗口,自由风格。用相关的动态数据对象创建)。 choose is_Action case “New” 插入新行 case “Edit”
检索出父窗口dw_1中选中行的事务数据(动态构建窗口时,选择语句加where 条件即可)
end choose ? 按钮功能
? 确定:
验证输入人员的编号是否有效,直到有效为止。根据指标项详细信息,验证输入日期是否有效,如不能为空字段是否为空,不允许重复字段是否重复。只有通过所有验证有效后才保存输入数据,并回显于父窗口的dw_1.中。 ? 取消: 关闭该窗口 3.内部调动
? 界面
同一般事务界面风格。 ? 相关表
内部调动 hr_move ? 功能
open 事件,如果is_Action =”New”,先在人员基本信息中找出该人员当前所在单位、部门,显示与原部门处。
当保存该事务信息时,如果is_Action =”New”,则取出现部门,修改人员基本信息表(A01)中部门为现在部门。如果is_Action =”Edit”,判断当前事务数据是否是内部调动的最新事务数据,如果是最新的事务数据,同样要修改人员基本信息表(A01)中部门为现在部门。
4.养老保险
? 界面
养老保险保险年月:设评基数:确定社评取消养老保险
? 相关表
养老保险 hr_protect ? 功能
? 确定:
先检验该年月的养老保险是否已提取,如果没有数据,则自动把所有人员该年月的养老保险数据从工资表中取到当前的数据中。如果已经存在,则告诉用户养老保险已经存在,是否覆盖原有数据。如用户点击确定,则覆盖原有数据,反之,则不做任何操作。 ? 社评:
把设评基数存入当年的社评字段 ? 修改:
打开为w_trans_newedit窗口,功能同一般事务,不允许修改设评基数 ? 取消:
关闭该窗口
5.住房公积金
? 界面
住房公积金缴纳年月:确定住房公积金取消? 相关表
住房公积金 hr_foundsource ? 功能
? 确定按钮:
先检验该年月的住房公积金是否已提取,如果没有数据,则自动把所有人员该年月的住房公积金数据从工资表中取到当前的数据中。如果已经存在,则告诉用户住房公积金已经存在,是否覆盖原有数据。如用户点击确定,则覆盖原有数据,反之,则不做任何操作。 ? 修改:
打开为w_trans_newedit窗口,功能同一般事务,不允许修改。
查询
? 基本信息查询 1.主窗口
? 界面
综合查询 窗口 帮助? 菜单
综合查询条件(C)...详细信息(D)相关信息(I)------------------------打印预览(V)打印(P)------------------------返回(X) Ctrl+X窗口层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助主题() F1关于(A)... ? 相关表
人员信息 A01 所有事务表
? 模块功能
基本信息作为查询条件,查询出符合条件的所有人员的基本信息、档案信息、基本信息、事务信息,并可对查询结果进行浏览,选择打印。
窗口打开时,采用与人事档案信息管理相同的方法创建动态数据窗口(dw_1),打开后,窗口无任何信息。根据检索条件检索出人员基本信息,选中一个员后可查看详细信息(档案信息、事务信息)和媒体信息,可选择打印查询结果。 ? 菜单功能(涉及的表 hr_systable,hr_syscollect,hr_scheme, hr_scheme_m,
hr_scheme_d,以及方案中指标所对应的表) ? 条件
打开查询条件窗口,综合查询为当前方案中所有基本信息项目与条件组合(’or’或’and’连接),根据查询条件检索出人员基本信息(详见查询条件窗口)。
? 详细信息
选择一个人员,打开详细信息浏览窗口(与人事档案信息的编辑窗口相同)浏览
所有与该人员相关的档案信息、事务信息,并提供打印功能。
? 相关信息
选中一个人员,打开媒体信息窗口(与人事档案信息的媒体信息窗口相同,隐去导入、修改、删除功能),查看与该人员相关的媒体信息。 ? 打印预览
对个人基本信息打印进行预览。 ? 打印
打印基本信息。 ? 注意事项
如果是事务查询,主窗口的显示字段为员工编号,员工姓名,外加这个当前方案中这个事务的相关指标项,如果是人员基本信息查询,则主窗口的显示字段为当前方案中人员人员基本信息指标中的相关指标项的内容。
2.查询条件窗口
? 界面
查询条件括号项目名运算符项目值括号逻辑确定取消
? 相关表
人员信息 A01 所有事务表 方案主表 hr_scheme 子方案表 hr_scheme_m 方案明细表 hr_scheme_d
? 模块功能
查询窗口具有快通用查询功能,通用查询的查询项目为当前方案中指标的项目,将dw_1的每个项目表达式通过连接符构成任意的查询条件。 ? 按钮功能(涉及的表 hr_systable,hr_syscollect,hr_scheme, hr_scheme_m,
hr_scheme_d,以及方案中指标所对应的表) ? 初始化窗口
“括号”中预置正反两括号。
“项目名”来源于当前方案中的人员信息指标项目。
“运算符”预置“大于”、“小于”、“等于”、“大于等于”、“串首匹配”、“包含于”、“为空”等条件
“项目值”分两种情况,当用户所选的项目是一个代码时,用全局函数f_createsyndw(显示列,数据列,代码)来构建一个下拉数据窗口,挂接到当前的项目值上,余下工作又分两种情况,如果这个代码是多级,则在当前项目值的右边放一个按钮,当用户点下这个按钮时,弹出一个窗口(w_pop_codetype),这个窗口需三个参数,代码,显示列,数据列,这样让它自动构建一棵树,用户选择一个代码,返回的值写入项目值中,如果当前项目值不是代码,则不做特殊处理。
“逻辑关系”,有“并且”与“或者”两项,分别对应“and” 和 “or” ? 确定
将通用查询的表达式构成查询条件,将主窗口的SQL语法取出,把查询条件构成SQL select语句的where子句或与原where合并,然后从数据库中检索。 ? 取消
关闭窗口。
? 事务查询
事务查询的主界面与功能与基本信息查询功能相同,他们的区别在于:基本信息查询以人事基本信息为查询条件,结果给出满足条件的人事档案信息,事务查询以所有事务信息为查询条件,查询的结果给出所有满足条件的人事事务信息。事务查询条件传扣如下图:
查询条件事务名括号项目名运算符项目值括号逻辑确定取消
? 按钮功能(涉及的表 hr_systable,hr_syscollect,hr_scheme, hr_scheme_m,
hr_scheme_d,以及方案中指标所对应的表) ? 初始化窗口
“事务名”不源于当前方案中事甸指标的名称
“项目名”来源于当前方案中的当前所选事务的指标项目。
其它的如“括号”,“运算符”,“项目值”,“逻辑关系”与基本信息查询相同。 ? 确定
根据下拉窗口选择的事务和条件窗口的条件构造一个数据窗口,入口为A、字段名,有固定字段,如人员编号,人员姓名,还有当前方案中的事务指标的相关指标项。B表名,根据指标项listid,在hr_systable找到相关的表名,C、条件为当前的生成条件。然后检索出数据。
? 取消
关闭窗口。
3.3.2.5
工资管理
工资变动
1. 主窗口 ? 界面
菜单条dw_1(datawindow)
? 菜单
工资管理保存数据(S)业务时间(T)项目过滤(I)公式设置(F)自动计算(A)工资计算(C)人员定位(L)数据替换(R)禁止考勤提交(D)考勤栏位设置(O)提取考勤(G)月末处理(P)返回(X)窗口层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助主题(C)...F1关于(A)...
? 相关表
工资表 hr_salary 人员基本信息 A01 公式设置表 hr_formula 考勤扣款表 hr_check_money
个人所得税 ? 模块功能
该模块处理每月员工工资数据信息,通过设置考勤栏位,可将考勤扣款提取到指定工资项目中,通过公式设置可与人事信息接口,自动反映工资项目间的变化关系。工资变动只能更改当前月的数据,但可以选择业务时间对工资历史数据进行浏览。
窗口打开时,根据当前方案号从hr_scheme_m,hr_scheme_d,hr_systable的关联中得到obj_id = ’salary’或obj_id=’A01’的所有工资项目和所有人事基本信息项目动态构造dw_1数据窗口,根据当前方案号从hr_formula中获取项目公式,创建计算字段(命名规则:cpt_+列名,如col1的计算字段名为:cpt_col1),将公式设为计算字段的表达式,并检索出当前年月的工资信息。
? 菜单功能
? 保存数据
保存更改后的工资数据,如果数据更改后需重新计算,则提示用户进行计算,然后再保存。 ? 业务时间
打开业务时间选择窗口(见下图),检索出指定业务时间的工资数据,并禁止相应菜单(保存数据,公式设置,自动计算,工资计算,提取考勤,工资结转)。
? 项目过滤
打开项目设置窗口(见下图),选择要查看的项目,在已选项目中过滤出要查看的项目。(见权限管理中的组分配管理)
? 公式设置
打开公式设置窗口,设置项目计算公式(详见公式设置)。
? 自动计算
设置自动计算标志,工资项目数据变动时,相应计算项目数据自动随之变动。
? 工资计算
将计算字段的值设置到对应项目中。
? 人员定位
打开人员定位窗口,根据条件查找到符合条件的人员并选中(详见人员查找定位窗口)。
? 数据替换
打开数据替换窗口,将符合替换条件的人员的指定工资项目替换为指定数据(详见数据替换窗口)。 ? 禁止考勤提交
设置常数表(hr_consttable)constname = ‘IsAllow’ 的charvalue标志,禁止(‘N’)/允许(‘Y’)考勤提交。 ? 考勤项目设置
打开栏位设置窗口(见下图),设置考勤扣款提取到那个工资项目中,将设置的工资项目保存到常数表中。
? 提取考勤
从考勤扣款金额表(hr_check_money)提取到考勤项目设置中设置的工资项目中。 ? 月末处理
打开月末处理窗口,选定要结转到下月的工资项目,将选定项目的数据拷贝到下月(详见月末处理)。
2.公式设置 ? 界面 如果公式项目那么公式条件表达式条件表达式公式确认工资项目条件运算符条件(E)确定(O)取消(C)
? 模块功能
为反映工资项目间的关系,设置项目的计算公式,即某项目的数据由其它项目的四
则运算得到。
窗口打开时,公式项目(hr_formula表)检索出当前方案下已定义了的计算项目,
工资项目为当前方案下的所有工资项目。
公式分为条件公式和绝对公式: ? 条件公式(见上图)
选中条件表达式,在条件表达式中录入条件,在公式中设置计算公式。在运算中该
条件成立,则该项目的数据由所定义的公式计算所得,否则由用户自己输入。
? 绝对公式
与条件公式类似,只是没有sle_1的条件,项目只能由公式计算所得。
? 按钮功能
? 确定
保存公式项目,关闭窗口,删除工资变动数据窗口的所有计算字段,根据公式项目中的项目重新创建。 ? 条件
打开条件定义窗口(见下图),定义条件,并将条件名称写入条件窗口
查询条件括号项目名运算符项目值括号逻辑确定取消(hr_salary_condition表)。 (数据的校验详细见人事查询)。 ? 取消
删除公式项目中的选中项目。
3.月末处理
? 界面
? 模块功能
窗口打开时,工资项目检索出当前方案的所有项目(与主窗口的项目相同),创建一个数据存储(所有工资项目)检索出当前月份的工资数据。通过选择按钮选择要结转的工资项目。
? 按钮功能
? 确定
将数据存储中的年份、月份设置为下一年月,并将每行数据状态改为NewModified!,并保存数据存储。然后将dw_2的项目构造Update语句的set子句(项目=NULL),执行Update语句将不结转项目数据清空。将当月的本月扣零项目的数据拷贝到下月的上月扣零项目中。
4.人员查找定位窗口 ? 界面
该界面加上前后括号。
? 模块功能
与人事档案管理的人员定位窗口相同,只是项目为人事基本信息项目和工资项目,而且多增加了过滤功能。
? 按钮功能
? 查找
与人事档案管理的人员定位窗口的查找按钮相同。 ? 过滤
用查找条件设置主窗口中的dw_1的过滤条件,数据窗口中只显示满足条件的人员。
? 清除
清除选中行。
5.数据替换窗口 ? 界面
? 模块功能
与人事档案管理数据替换窗口类似,只是替换项目只有当前方案中的工资项目(数字类型),替换条件的项目为人事基本信息项目(可选)和工资项目。
? 按钮功能
? 替换
与人事档案管理数据替换窗口的替换功能类似。只是替换项目为当前方案的数字型项目。 ? 清除
清除选中行。
B.个人所得税 ? 界面
? 工具条
? 相关表
工资表 hr_salary 人员信息 A01
税率表 hr_tax_rate ? 模块功能
其它工资数据处理完后,进行扣除个人所得税处理。dw_1由数据表hr_earning_tax与hr_salary关联并检索当月扣税金额,根据所得税率表(hr_tax_rate)的分段税率以及常数表(consttable)中的基数(BaseSum)和附加费(Money)逐行计算应扣税额。计算公式:应纳税额 = 纳税金额 – 基数 (- 附加费)X 税率 – 速算扣除数
? 工具条功能
? 设置
打开设置窗口(见下图),可设置纳税表可选项目,纳税项目名称,是否导出扣税合计。
? 扣税
将应纳税额写入到hr_salary的tax字段,保存dw_1数据。 ? 导出
将dw_1的数据导出到指定文件中。
C.银行代发 ? 界面
? 工具条
? 相关表
工资表 hr_salary
人员信息 A01
银行模板主表 hr_bank_type 银行模板明细表 hr_bank ? 模块功能
将工资数据按所要求的接口导成指定格式文件(dbf,xle,txt)。窗口打开时,首先从常数表中后默认的银行模板(BankModule),然后从hr_bank中检索出该银行模板的项目所对应的工资项目动态构造dw_1。
? 工具条功能
? 设置
打开设置窗口(见下图),设置银行模般的项目,以及该项目对应的工资项目。 增加:增加一个项目;
修改:使dw_1处于修改状态; 删除:删除选中行;
保存:保存编辑后的模板;
使用该模板:使主窗口使用该模板。 ? 模板
打开模板设置窗口(见下图),编辑银行模板。 增加:增加一个银行模板; 删除:删除选中银行模板; 确定:保存dw_1的内容。 ? 导出
将dw_1的数据导出到指定的磁盘文件中。
D.工资条
? 界面
菜单条工具条dw_1(datawindow)? 菜单
工资条设置(S)部门(M)打印预览(V)打印(P)返回(X)窗口层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助主题(C)...F1关于(A)...? 相关表
工资表 hr_salary 部门表 hr_department ? 模块功能
根据选中部门的方案,从hr_scheme_m,hr_scheme_d,hr_systable的关联中获取工资项目,动态构造dw_1(自由风格),检索当前年月工资数据。
? 菜单功能
? 设置
打开设置窗口(见下图),设置工资项目在工资条中的位置,宽度,工资条间距,是否有剪切线,存入数据库中,当构造工资条时,根据这些信息,创建工资条。
? 部门选择
打开部门选择窗口(见下图),选择要打印工资条的部门。根据选中部门,取得该部门下的所有下属部门,构造条件语句,过滤出该部门下的所有人员的工资条。
E.工资台帐
? 界面
菜单条工具条Tv_1OLE_1(Formula One)
? 菜单
工资台帐(S)方案设置(M)时间选择(T)打印预览(V)打印(P)返回(X)窗口层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助主题(C)...F1关于(A)...
? 相关表
工资表 hr_salary
台帐方案 hr_salary_count 部门表 hr_department ? 模块功能
窗口打开时,从hr_department中检索出部门,构造TV_1的项目树,OLE_1中的统计项目默认为当前方案所有工资项目,统计时间为最近四个月。 统计语句:
Select Sum(工资项目) From hr_salary Where dept_id in (部门编号列表) and cur_year = '年份' (and cur_month = ‘月份’(按月统计))
? 菜单功能
? 方案设置
根据选中的部门,根据部门来确定当前系统使用的方案。根据方案从方案表中检索出该方案的所有指标集和指标项,构建工资台帐数据窗口。 ? 时间选择
打开统计时间选择窗口(见下图),设置统计时间。统计时间可按年度/按月统计。 确定:用设置统计时间刷新主窗口OLE_1的统计时间。
F.人员信息 ? 界面
? 工具条
? 相关表
工资表 hr_salary 人员信息 A01 ? 模块功能
设置工资相关的人员信息。窗口打开时,根据当前方案从hr_scheme_m,hr_scheme_d,hr_systable的关联中获取所有字符型工资项目,动态构造dw_1。
? 工具条功能
? 保存
保存dw_1的数据,保存前作银行帐号长度校验。 ? 编辑
使dw_1处于便状态。 ? 界面
保存dw_1的界面信息。 ? 查找
打开人员查找窗口(见下图),功能与人事档案管理的人员定位相同,只是项目与主窗口的项目相关,根据输入条件,定位到符合条件的人员上,如有将一直向后查找。 ? 过滤
打开人员过滤窗口(见下图),功能与人员查找窗口相同,只是条件设置为主窗口dw_1的过滤条件,使dw_1只显示符合条件的人员。 ? 删除
将选中人员从hr_salary ,但不从人员基本信息中删除。
3.3.2.6 考勤管理(主体没有变动,略)
A 排班管理
1. 主窗口 ? 界面
该窗口为sheet 窗口,左边为一棵当前操作者能管理的部门树(treeView)。右边为所管理部门人员的排班信息(数据窗口dw_1)。 ? 菜单:
排班管理:排班(部门排班、人员排班)、修改、删除、排序、打印预览、打印。 窗口:层叠、水平平铺、垂直平铺、排列图标 帮助:主题、关于
open: 根据考勤部门设置信息构建管理部门树,检索出当天的排班信息。 部门排班:打开部门排班窗口。 人员排班:打开人员排班窗口。 修改:打开人员排班窗口。
删除:删除所有选中的排班记录。 排序:按时间排序
打印预览:打印预览数据窗口dw_1中的信息。 打印: 发送数据窗口信息到打印机。 2.部门排班窗口 该窗口为应答窗口。继承于w_reaponse窗口。 部门排班,排的是所有人员的班次。 部门: 为一数据窗口,字段为下拉式数据窗口。 班次为一数据窗口(左),右边为一个班次时间段数据窗口。 open:检索部门(操作者所管辖部门)。 状态:下拉数据窗口,提供班次状态(正常上班,加班,节日加班....)。 班次:该值段为一下拉数据窗口,提供所有的固定班次供用户选择。 增加按钮:增加班次时间段。 删除按钮:删除班次时间段。 确定按钮:保存当前数据,回显父窗口。
取消按钮:关闭该窗口。 3.人员排班窗口 该窗口为应答窗口。继承于w_reaponse窗口。 人员排班,排的是输入人员的班次。 部门: 为一数据窗口,字段为下拉式数据窗口。
在工号中输入“人员编号”,则在姓名中显示该人员“姓名”。输入姓名,则显示工号 班次为一数据窗口(左),右边为一个班次时间段数据窗口。 open:检索部门(操作者所管辖部门)。 状态:下拉数据窗口,提供班次状态(正常上班,加班,节日加班....)。 班次:该值段为一下拉数据窗口,提供所有的固定班次供用户选择。 增加按钮:增加班次时间段。(如是固定班次,该按钮不可见) 删除按钮:删除班次时间段。(如是固定班次,该按钮不可见) 确定按钮:保存当前数据,回显父窗口。 取消按钮:关闭该窗口。
B.考勤刷卡管理
? 界面
? 菜单
上载、处理、刷卡、修改、删除、检索、帮助、退出 ? 模块功能
open:检索出部门,构建部门树,并检索出当天的考勤进出记录。 ? 工具条功能
? 上载
从注册表中读出考勤机类型及相关参数,初始化考勤机通讯端口和考勤机地址。(如没有考勤机信息,则告知用户)用考勤机提供的相关函数,把考勤机的原始数据先写入计算机文本,以免存入数据库失败时信息丢失。在把文本信息中的有用数据,卡号,刷卡时间,提取出来存入表check_sourse_record中。如果成功,则清除文本信息。
? 处理
让用户输入处理原始数据的日期,根据输入日期,把数据库表check_sourse_record中的原始数据,根据排班信息,筛选有用数据,根据刷卡时间和进出状态判断其进出标志,存入表check_record刷卡记录中。
? 刷卡
用于员工忘记带卡,或忘记刷卡时,由管理人员补刷卡。把刷卡信息存入考勤记录表check_record中。
修改、删除:是针对管理人员补刷卡时错误的输入进行修改和删除。
? 检索:
输入检索时间段,检索出该时间段中该管理人员管辖范围内的员工考勤原始数据,以便对考勤进行核实。
C.请假管理
1. 请假管理主窗口
? 界面
? 模块功能
该窗口继承于应答窗口(w_response)。上面为菜单工具条(toolbar),下面为一数据窗口,显示人员请假信息。最下为一状态条,显示请假记录条数。 ? 菜单功能
? 增加
置增加标志,打开增加修改窗口
? 修改
置修改标志,打开增加修改窗口
? 删除
当数据窗口有选中行时,删除工具可用,点击该按钮时,删除该行请假信息,自动选择下一行,如没有数据,删除工具不能用。 ? 检索
点击该按钮时,弹出部门选择窗口,选择部门后,按选择部门检索出该部门人员的请假信息。
2. 增加修改窗口 ? 界面
? 模块功能
该窗口主要为一数据窗口。
open:根据父窗口的增加修改标志,如果为新增,则插入一行。如果是修改,则检索出父窗口选中行。
itemchanged:当输入工号时,自动检索出人员姓名,当输入姓名时,自动检索出工号
? 按钮功能
? 确定
验证数据合法性,保存该请假信息,回显父窗口,选中该行,当前窗口插入新行。 ? 取消
关闭该窗口。
D.考勤结果统计
1. 考勤结果主窗口
? 界面
? 菜单
考勤结果(检索、统计、过滤、修改、保存、预览、打印、退出)
窗口(窗口:层叠、水平平铺、垂直平铺、排列图标) 帮助(主题、关于)
? 模块功能
该窗口为sheet窗口,左边是treeview为部门权限树,右边为数据窗口dw_1,显示员工的考勤结果状态。还有一隐藏数据窗口dw_1用于打印人员考勤信息。 ? 菜单功能
? 检索:输入检索时间段,从结果集check_result中检索出人员该时间段的考
勤结果。
? 统计:打开统计时间输入(默认时间为昨天至今天)输入统计时间段,从考勤
记录表check_record中的考勤记录数据,统计出该时间段人员的考勤信息,以便存入考勤结果集check_result做准备。
? 过滤:点击该工具,将过滤掉所有正常上班信息,只显示非正常上班信息。再
此点击将还原信息。
? 修改:修改人员的考勤结果,注上备注。
? 保存:统计数据或修改数据后存入考勤结果集check_result。 ? 预览、打印:预览和打印数据窗口中的考勤结果信息。
2.查询
? 界面
? 菜单
综合查询(排序、查询、预览、打印) 窗口(层叠、水平平铺、垂直平铺、排列图标) 帮助(主题、关于 ? 模块功能
该窗口只有一个数据窗口dw_1,显示人员考勤信息。 排序:按时间排序
查询:打开条件窗口,构造查询条件。
点击确定:将以输入条件在主窗口中检索出合符条件的人员考勤结果信息。如输入为空,将检索出全部人员信息。
预览、打印:对查询出的数据进行预览、打印。 3.3.2.7
企业人才库
A.主窗口
1.界面
企业人才库个人信息 考核 窗口 帮助人员信息列表(datawindows)
2.功能:在主窗口的数据窗口中以列表的方式显示个人信息 。 2、主菜单
个人信息新增修改删除----------查询管理未录用原因管理窗口层叠水平平铺垂直平铺排列图标关于主题---------关于-----聘用设置原因
1.项目
2.功能(涉及的表 hr_systable,hr_syscollect,hr_notbringincause, hr_emp_mapping,hr_scheme, hr_scheme_m, hr_scheme_d,以及方案中指标所对应的表)
A.个人信息
1.新增 新增个人信息(设置is_Action=”New”,打开人员信息管理窗口)。 2.修改 修改个人信息(设置is_Action=”Modify”,打开人员信息管理窗3.删除 删除个人信息(提示是否要删除,是则删除)。 4.查询 查询个人信息(弹出查询窗口)。 B.管理
1.未录入原因管理
在这里管理对未录用原因代码的新增,修改,删除。
决定是否录用,录用的人员信息进入正式的人事信息管理库中。 2.聘用 3.设置原因
口)。
根据用户所选择的用户,罗列到弹出窗口中的文本框中。
C.人员信息管理
1.界面
人员信息管理基本信息学习简历工作简历社会关系家庭关系编号:姓名:... ...确定取消 2.功能
在这里完成人员基本信息的管理,还有学习简历,工作简历,社会关系,家庭关系等也在这里录入。 3.按钮功能
●确定 根据企业人才库方案中指标对应的指标项,与数据字典中的相关字段属性。较对数据的正确性与重复性。如正确,把数据写入数据库中。
●取消 放弃对数据的修改。关闭当前窗口。
4.具体处理流程(涉及的表hr_systable, hr_syscollect,hr_scheme, hr_scheme_m, hr_scheme_d,以及方案中指标所对应的表)。 wf_open():
接收传来的参数(以判断是新增还是修改)
根据方案(hr_scheme)中用户设置的“企业人才库”方案所设及到的人员基本信息指标(hr_scheme_m),有多少个指标,构造出多少个tab控件的页面,余下的处理与人事管理中的人员信息录入的处理方法一样。 确定:
根据企业人才库方案中指标对应的指标项,与数据字典中的相关字段属性。较对数据的正确性与重复性。如正确,把数据写入数据库中。如错误,提醒用户。
D.人员信息查询
1.界面
查询条件括号项目名运算符项目值括号逻辑确定取消
2.功能 完成对个人信息的查询,查找完成后,主窗口显示当前的查询结果。 3.按钮功能
●清除 清除当前所设置的条件。
●查找 根据所设置的条件,从数据库中把相应的数据查询出来。 ●关闭 关闭当前窗口,结束对查询条件的设置。
4.具体处理流程(详细见正试员工的人事查询) (涉及的表 hr_systable,hr_syscollect,hr_notbringincause,hr_scheme, hr_scheme_d,以及方案中指标所对应的表)
项目:项目的下拉数据窗口是从方案“企业人才库”中的所涉及到的字段信息的中文名称组成,显示值是中文名称,数据值是实际字段名。
运算符: 条件列表框是用中文名称显示,实际写的是条件,如中文名称“大于”,实际值是这些信息中数据窗口中写死。
显示值:中根据项目的不同而不同,如果项目中的项目是来源于代码,则显示值中显示一按钮,按下按钮,弹出一由这个代码购成的列表,用户选择这个代码,按确定后,当前的代码被接收到并显示在显示值中(详细见正试员工的人事查询)。 逻辑关系:实际值and 对应显示值“并且”,实际值or对应显示值“或者”。这些信息中数据窗口中写死。
清除:没置当前数据窗口中的数据为空。
查找:连接条件数据窗口中的数据,构成用户设置的条件,取父窗口中的数据窗口的sql,并与当前的条件构成新的sql,再用setsqlselect,把构造好的sql设置回去,重新检索,然后关闭当前数据窗口。 关闭:关闭当前数据窗口。
E.人员分流
1.功能
对应聘人员正式聘用的确认。员工个人信息转入正式的个人信息库中
2.具体处理流程(涉及的表 hr_systable,hr_syscollect,hr_notbringincause, hr_emp_mapping,hr_scheme, hr_scheme_m, hr_scheme_d,以及方案中指标所对应的表)
hr_scheme_m,
弹出正式员工的新增窗口,插入一条记录。根据正式员工库与人才库中表的映射关系,在数据窗口中默认写正式员工所需的而人才库又有的数据。 3、未聘用设置
未聘用设置所选人员未聘用原因确定取消 数据窗口中的一个字段就是未聘用设置,是一个下拉数据窗口,用户可以选择
原因。所选择人员来自于用户在企业人才库(主窗口)中筛选来的人员中所选择的多个人员,设置原因后再一个一个的写记录到数据库中 F.未聘用原因列表
1.界面
未聘用原因管理新增修改删除.........datawindow(grid) 2.功能
完成对未聘用原因的管理 3.按钮功能
新增:弹出未聘用原因的新增、修改窗口,并插入一条空行。 修改:弹出未聘用原因的新增、修改窗口,并检索出当前原因。 删除:删除当前的原因。
4.具体处理流程(涉及的表hr_notbringincause) wf_open()
检索出当前所有的原因,两个字段(原因编号,原因名称) 新增
传递新增标志,弹出新增窗口 修改
传递修改标志及当前所行原因编号,弹出修改窗口,把当前原因写入其中以备用户修改。 删除
在表hr_notbringincause的原因列中找原因号与当前所选的原因号相关的记录条数,如果大于0,则表示已经使用了,提示用户不能删除,反之,提示用户是否真要删除,如果用户按是,则删除,按否,不删除。 G.未聘用原因管理
1.界面
未聘用原因管理-[新增]原因代码原因名称原因说明确定取消 2.功能
完成未聘用原因的新增,修改。 3.按钮功能
确定:校验数据,正确则保存数据,如果是新增,则新插入一条记录,否则关闭当前窗口。
取消:放弃修改,关闭窗口
4.具体处理流程(涉及的表hr_notbringincause)
wf_open():
根据传过来的参数,如果是新增(is_Action=’New’),则在当前数据窗口插入一条记录。如果是修改(is_Action=’Modify’),则根据传过来的流水号从数据库中检索出数据。
确定:先校验数据的正确性,不正确,提示并返回,如果是新增,保存数据,又新插入一行空记录,如果是修改,保存数据,关闭窗口.
3.3.2.8 指标管理
系统构建
? 主界面
指标管理窗口菜单指标集树TV_1指标项LV_1
? 菜单
指标管理(F)增加指标(A)修改指标(M)-增加指标项(I)修改指标项(C)-删除(D)-预览(V)打印(P)-退出(X)窗口(W)层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助(H)主题(C)-关于(A)
? 相关表
hr_syscollect 指标表,hr_systable 数据字典及所有指标集。 ? 模块功能
在人力资源系统中,构建指标集、指标项,以供方案选择。方案的选择决定了人员信息的所有信息项。指标管理提供了用户根据自己的实际需求,自己构建、增加指标集或指标项。使人员基本信息,事务及其相关信息实现了用户能够任意增添、修改。 指标分为三类如下
人员指标:人员基本信息,相关信息、事务信息。 单位指标:单位的信息。
企业人才库指标:企业人才库中人员的所有信息。 ? 主窗口open事件
从表hr_syscollect指标表中检索出指标集,按指标大类,挂在人员指标,单位指标、企业人才库指标。当是人员指标时,按指标小类分类,挂在人员基本信息指标、事务指标、工资指标,构建指标信息树。选中指标的根节点,展开根节点。右边构造显示树节点下的孩子节点的详细信息的listview。 ? tv_1的selectchanged事件:
? ?
?
?
选择改变时,如果选中的是指标大类,则显示该指标类下的所有指标集。如果选中的是具体一个指标集,则显示该指标集的所有指标项。显示指标项是从数据字典hr_systable中检索出该指标的指标项,提取信息。创建lv_1,以供显示指标信息。 lv_1的都doubleclicked事件:
如果双击节点有下级节点,则显示下级节点信息,tv_1选中lv_1中双击的节点。 增加指标 界面如下
根据指标表hr_syscollect中表的信息,构建指标编号(数据库表名),让用户输入指标名称。当用户按确定按钮时,检验是否输入名称,通过验证后,根据指标编号在数据库中创建表,表名为指标编号。同时创建默认字段,把指标项信息保存到数据字典hr_systable中,把指标描述存入表hr_syscollect中。点取消按钮时,关闭该窗口。 修改指标
界面同指标增加界面,该窗口用于修改指标的名称,修改后存入表hr_syscollect中。点取消按钮时,关闭该窗口。 增加指标项 界面如下
根据父窗口选中的具体指标集,增加该指标集的指标项。从父窗口选中的节点信息中取得指标集编号,在数据窗口中插入新行,把指标集编号写入数据窗口。等
待用户输入该指标项的具体信息。只有当数据类型是字符时,才允许选择是代码。 当点击确定按钮时,检验中文名称,数据类型不能为空。根据数据类型判断是否数据长度,小数位数的合法性。根据输入信息,查找数据字典hr_systable中有无与该指标项匹配的未用指标项,如有,则使用该指标项。如果没有找到与之匹配的指标项,则用语法在该表中创建该指标项,同时把信息存入数据字典hr_systable中。
当点击取消按钮时,关闭该窗口 修改指标项
该窗口同指标项增加窗口。根据父窗口选中的指标项,检索出指标项,对指标名称进行修改,保存入数据字典、指标管理表。 删除
删除指标集、或者指标项。
删除指标集:删除从数据库中选中的指标集,既选中的表。从相关表hr_systable,hr_syscollect中删除相关指标信息。 删除指标项:从指标管理hr_syscollect表中删除指标项的信息,保存数据字典hr_systable中的信息。 预览
预览选中指标集的所有指标项。 打印
打印选中指标集的所有指标项。
?
?
? ?
代码管理 ? 主窗口
1.界面 2.功能
完成本系统中代码的管理,可新增代码类,新增,修改代码类的代码项,新增,修改代码项的属性
3.主菜单
新增代码类修改代码类删除代码类----------增加同级增加下级修改代码项删除代码项查找相关指标代码类定位代码项查找窗口略帮助略
4.具体处理流程(systable,wf_codecollect,wf_codeitem,wf_codesystable)
新增代码类:设置is_Action=”New” 打开代码类管理窗口,tab1.dw_1.insertrow,修改代码类:设置is_Action=”Modify” 打开代码类管理窗口,tab1.dw_1从表tab2.dw_2.从systable检索出系统的默认代码项。(详细见代码类管理)
wf_codecollect检索出相关的代码类,tab2.dw_2.从wf_codesystable和wf_codecollect中检索出本代码类的代码项。(详细见代码类管理)
删除代码类:先提示是否要删除,如要删除,取得用户选择的代码类编号,(tv_1的当前结点的data)从wf_codecollect中删除代码类的信息,从wf_codeitem删除相关的项目数据,从wf_codesystable删除代码类的代码项信息。
增加同级: 设置is_level_flg=’Y’ ,is_Action=”New” 判断当前焦点在tv中还是在lv中,找出is_codetype_id(代码类编号),并判断出当前要新增结点的父的id(il_upid),如果找不到,设为空!,打开w_code_addedit。(详细见代码项数据管理)
增加下级:设置is_level_flg=’N’ ,is_Action=”New” 判断当前焦点在tv中还是在lv中,找出is_codetype_id(代码类编号),并判断出当前要新增结点的父的id(il_upid),如果找不到,设为空!,打开w_code_addedit。(详细见代码项数据管理)
修改代码项:is_Action=”Modify” ,判断当前焦点在tv中还是在lv中,找出删除代码项:提示是否删除,如要删除,找到要删除的结点(lv或tv的当前结点),代码类位:Open(w_codetypecollect) 相关指标:Open(w_findcodetype) 代码项查找:Open(w_searchcodeitem) 其中的操作处理:
I:wf_expanding(al_handle)展开tv结点:
接收al_handle到一个结点变量, 如果al_handle已展开过,return,
如果当前结点是第二级,查询条件变为upid is null.
is_codetype_id(代码类编号),并判断出当前要修改id,打开w_code_addedit。 取它的id,删除它。
如果不是第二级,查询条件变为upid= 当前结点的data. 查询的结果是当前结点的孩子, for 1 to 孩子数
再根据当前孩子的child_flg字段判断孩子是否还有孩子,如果有那么当前结点的children=true else children=false,再取得当前孩子的相关数据,构造出一个tv结点,并挂上tv。
行
IV:修改代码项的状态。
根据当前行的data,找到相关的项目,并到到原来的状态,修改在改变后
next
II:删除多级情况下的当前结点的所有孩子:wf_deleteitem(当前结点流水
创建数据存储。
取得当前结点所有的孩子。 For I=1 to 孩子数
Wf_deleteitem(孩子流水号) Next
删除当前结点。 销毁数据存储。
号:listid),
II:删除多级情况下的当前结点的所有孩子:wf_deleteitem(当前结点流水
创建数据存储。
取得当前结点所有的孩子。 For I=1 to 孩子数
Wf_deleteitem(孩子流水号) Next
删除当前结点。 销毁数据存储。
号:listid),
III:根据当前tv结点,在lv中显示数据的wf_addcolumn(is_codetype_id),
注:两个实例数据存储:ids_codetype,ids_codeitem,前一个是存放当wf_addcolumn(is_codetype_id)添加lv列,根据代码类编号,在Wf_additem(al_row,al_index),把ids_codeitem中的al_row行显示在lv
wf_additem(al_row,al_index)函数。
前代码类的字段结构,后一个是存放tv中当前结点下的所有结点 wf_codesystable,找相关字段信息。构造出lv的列。
的al_index行的后面。根据ids_codetype的项目属性。在lv中插入ids_codeitem中一
的状态。
VI:窗口的构造
根据表wf_codecollect中的所有项目,列在tv,在lv中也列出同样的项
目,当前tv的选择为最上级“代码管理” (1)、代码项管理 1、 界面A
2、界面B
3、功能:管理代码类,代码类的项目,可以新增,修改代码类,新增修改代码项。 4、按钮功能
Tab1页的确定:保存数据,如果iw_parent.is_Action=”New”在Tab2页的增加:设置 is_Action=”New”,打开新增代码项窗口 Tab2页的修改:设置 is_Action=”Modify”打开修改代码项窗口
Tab2页的删除:提示是否删除,如要删除,则删除在表wf_codeitem中删除当wf_codesystable中新增系统字段(来源于systable),并显示在tab2.dw2中
前代码的当前所选的代码项。 5、具体处理流程
wf_open()
如查iw_parent.is_Action=”New”,在tab1.dw_1中插入一条记录,tab2为灰,
iw_parent.is_Action=”Modify”,找到代码编号为
不可选。如果段信息于tab2.dw_2中 (2)、代码项新增,修改 1、 界面 功能
iw_parent.is_codetype_id的代码类,检索代码类信息于tab1.dw_1,检索代码类字
可新增修改代码项的属性
确定:根据iwparent.is_Action的值,如果”New” 则新增,则比较系统表
2、 按钮功能
(hr_systable)中的属于wf_codeitem的用户定义字段是否有与当前新增字段字段属性相近的字段。比较条件是字段类型相同并且数据长度相差要在5以内,并且所寻找的字段长度要大于当前新增的字段长度。如果找到,就用那个找到的字段存储,如果没有找到,则新增一个字段,字段属性与当前用户所设相同。并在hr_systable中增加这个字段的属性。如果iwparent.is_Action的值是”Modify”,则直接保存。 4.具体处理流程
wf_open(),接收父窗口,接收is_Action的值,如果是’’New”,则插入一条空记录,如果是”Modify”,则找到父窗口中的dw_2中的当前行,进行找到行id,从而在当前窗口检索出空段属性出来。
(4)、代码数据的新增,修改。
1、 界面
录入代码数据。
2、 功能 3、 按钮功能
确定:根据数据字典,校验数据的合法性。如合法,保存数据。 4、 具体处理过程
wf_open()主要是构建数据窗口,方法同动态数据窗口对象。
(5)、相关指标
1、界面:
查询与当前所选择的代码相关的指标。 无
wf_open() 设置事务
用户选择了一个代码后,在hr_systable中找有当前代码类的相关指标项,再2、功能 3、按钮功能 4、具体处理流程
找出这些指标项的相关的指标名,并压缩掉重复值。 (6)、代码类定位
1、界面:
查找代码类。
查询:根据用户所设置的条件,从wf_codecollect中查询相关的代码类,如定位:如果查询出来有,则用户选择一个后,点定位,则在父窗口中的用户选2、功能 3、按钮功能
果为模糊查询,则查询条件为”%”+用户输入字符+”%”
择代码类则会标上选择标记。处理过程是这样,找到当前用户所选的代码类的代码编号,在父窗口的树(tv_1)的第二层中找data=当前代码类编号的,找到则定位。 4、具体处理流程
wf_open() 设置事务
(7)、代码项查找
1、界面:
查询代码数据。
确定:根据用户所输入的数据,购成一个sql的where条件,再取得dw_1的sql,2、功能 3、按钮功能
与当前购成的条件一起,再从数据库中检索数据。当模糊查询选择上时,购成的条件为:”%”+用户输入字符+”%” 4、具体处理流程
A 方案管理 ? 主界面
指标管理窗口菜单无
方案树TV_1方案中指标项LV_1
? 菜单
指标管理(F)增加方案(A)修改方案(M)-增加方案项(I)修改方案项(C)-删除(D)-退出(X)窗口(W)层叠(C)水平平铺(H)垂直平铺(V)排列图标(I)帮助(H)主题(C)-关于(A)
? 相关表
hr_scheme 方案表,hr_scheme_m方案指标主表,hr_scheme_d方案指标明细表。 ? 模块功能
增加、修改方案。该方案是从指标集中由用户选择一些需要的指标集、指标集中的
指标项来构造一个方案。该方案实用于单位和特殊部门。
? 主窗口open事件
从表hr_scheme 方案表中检索出方案,其中有两个特定方案(企业人才库方案,单位信息方案),挂方案集下。选中指标的根节点,展开根节点。右边构造显示树节点下的孩子节点的详细信息的listview。 ? tv_1的selectchanged事件:
选择改变时,如果选中的是方案集,则显示方案集下的所有方案。如果选中的是具体一个方案,则显示该方案集下的指标集,如选择的是指标集,则显示所有指标项。显示指标项是从数据字典hr_systable中检索出该指标的指标项,提取信息。创建lv_1,以供显示指标信息。
? lv_1的都doubleclicked事件: