人力资源帮助v20110707

上传人:无*** 文档编号:65362305 上传时间:2022-03-23 格式:DOCX 页数:60 大小:2.79MB
返回 下载 相关 举报
人力资源帮助v20110707_第1页
第1页 / 共60页
人力资源帮助v20110707_第2页
第2页 / 共60页
人力资源帮助v20110707_第3页
第3页 / 共60页
点击查看更多>>
资源描述
onlyit 企业管理软件使用手册-人力资源文件状态 草稿文件 正式文件 更改正式文件文件标识:当前版本:2011-07-07作 者:完成日期:同当前版本1总体描述32操作描述42.1资料初始导入42.1.1了解导入文件42.1.2录入用户数据92.1.3导入数据到软件系统92.1.4导出数据到文件122.2建立工资单122.2.1准备工作122.2.2创建工资单步骤162.2.3编辑计算公式182.2.4录入工资数据222.2.5审核工资数据222.2.6工资单数据快捷录入222.3结合考勤机的考勤402.3.1设置员工打卡号402.3.2定义考勤机412.3.3打卡数据采集442.3.4员工考勤班次462.3.5生成考勤结果482.3.6考勤月帐中用脚本生成自定义统计数据521 总体描述本文档为人力资源软件的使用帮助文档,包含了以下几个部分:资料初始导入、结合考勤机的考勤、建立工资单等。2 操作描述详细介绍各模块的使用操作。2.1 资料初始导入 资料初始导入,可让用户很方便的把excel/wps文件中的员工资料等信息导入到软件系统。2.1.1 了解导入文件资料初始导入的文件,是有格式规定的,用户必须严格按照规定的格式修改导入文件,才能把员工资料顺利导入到软件系统中。2.1.1.1 模板文件l 软件系统提供了导入文件的模板,以便于用户能方便的完成导入文件。模板文件位于下载软件文件的dll目录下,如图:2.1.1.2 模板文件格式l 请不要对每页的名称做修改。l 各页的第一行,这个软件系统有特殊规定,一般不允许修改,有些特殊的,如员工资料页,可以在系统的许可范围内添加列。l 标题为蓝色的列不能为空。l 标题为红色的列不能为空并且不能重复,如工号以及相关编码(如部门编号等)。2.1.1.2.1 分公司页分公司页是定义分公司信息的页,所有的分公司必须在这个页面定义,才能被其他页面引用。编号列不能为空并且不能重复。名称列不能为空。2.1.1.2.2 部门页部门页定义部门的信息,所有的部门必须在这个页面定义,才能被其他页面引用。分公司字段必须是在分公司页中已经定义的,可以填分公司名称也可以填分公司编号。2.1.1.2.3 级别页级别页定义岗位级别的信息,所有的级别必须在这个页面定义,才能被其他页面引用。2.1.1.2.4 岗位页岗位页定义岗位的信息,所有的岗位必须在这个页面定义,才能被其他页面引用。部门编码字段必须是在部门页中已经定义的部门,级别必须是在级别页中已经定义的级别。2.1.1.2.5 民族页民族页定义民族的信息,所有的民族必须在这个页面定义,才能被其他页面引用。2.1.1.2.6 技术职称页技术职称页定义技术职称的信息,所有的技术职称必须在这个页面定义,才能被其他页面引用。2.1.1.2.7 最高学历页最高学历页定义最高学历的信息,所有的最高学历必须在这个页面定义,才能被其他页面引用。2.1.1.2.8 最高学位页最高学位页定义最高学位的信息,所有的最高学位必须在这个页面定义,才能被其他页面引用。2.1.1.2.9 政治面貌页政治面貌页定义政治面貌的信息,所有的政治面貌必须在这个页面定义,才能被其他页面引用。2.1.1.2.10 员工数据页员工数据页定义了所有员工的具体的信息。l 员工资料内容很多,员工数据里面列出了常用的,不需要的列可以删掉。l 部门、员工编号、姓名、状态4列不允许删除。l 也可以添加列,添加的列必须是系统允许的,完整的资料内容页包含了所有允许的列的名称。l 部门、岗位、职称、民族等列的值必须是在相应的页面中已经定义的。l 状态列只能在如下范围内选择:试用期、合同期、已离职。特别注意不能选择在职。l 婚姻状况列只能在如下范围内选择:未婚、已婚、离异、不详。l 性别列只能在如下范围内选择:男、女。l 日期为如下格式: 2007.01.22,注意中间的点不要用中文输入。2.1.1.2.11 完整的资料内容页完整的资料内容页定义了所有员工数据页允许的列的名称。2.1.1.2.12 关于自定义信息的导入系统支持最多8个扩展熟悉,可以在系统中进行定义(人事资料=)扩展熟悉)。整理导入模板的时候可以通过扩展一、扩展二 到扩展八导入,注意保持导入模板中第一行扩展一、扩展二的内容不要变,填入相应的内容进行导入就可以了。例如:扩展一 定义为健康证,那么导入模板中第一行还是扩展一,里面的内容填具体健康证。2.1.2 录入用户数据l 模板文件中已经有一部分的员工资料,这个是为便于用户的理解而提供的示例,可以删除。l 用户请不要直接在系统提供的模板文件中录入用户自己的员工资料,请先把模板文件复制一份,然后在复制的文件中录入用户自己的员工资料记录。l 默认的模板是excel格式的,如果只安装了wps,请用wps打开后保存为wps表格(ett扩展名)。2.1.3 导入数据到软件系统l 导入请先备份导入的文档,以防万一发生数据丢失。l 如果软件系统有数据,请先备份软件系统中的数据,导入时会先清空软件系统中已有的员工数据。导入界面:2.1.3.1 操作步骤l 选择导入文件l 选择文件中要导入的页面, 不需要导入的信息,请把勾去掉。l 开始导入数据l 根据错误提示信息耐心修改导入错误错误提示请从上往下修改,因为后面的错误可能是因为前面的错误引起的。2.1.4 导出数据到文件系统不仅支持文件导入,也支持导出到文件。2.2 建立工资单 工资单是记录员工工资信息的单据,历史记录的工资单可以批量导入,文件格式参考系统提供的工资单导入模板.xls文件,导入方式请参考上一节“资料初始导入”。本章节主要介绍如何在软件系统中建立工资单。2.2.1 准备工作2.2.1.1 建立工资科目工资科目是工资单的具体工资数据项目,用户可根据自己的需要增加修改或删除工资科目。工资科目管理界面工资科目编辑界面注意:如果勾上,则表示这个科目在工资单中是可以直接手工输入数值,否则表示不能直接输入,必须通过计算公式计算。这个数值决定了工资科目在工资单中的排列顺序。2.2.1.2 工资单类型工资单类型用于区分工资单的不同类型。2.2.1.3 帐套设置工资帐套是工资科目与计算公式的集合,主要目的是为了生成工资单时,能快速的设置工资单的工资科目集合与计算公式。选择列有勾的表示该帐套拥有该工资科目,否则表示没有。可直接双击工资科目记录来改变选择或不选择,也可右键鼠标,批量修改。点击,可编辑帐套的计算公式。2.2.1.4 所得税率组所得税率组主要用于计算员工的个人所得税。2.2.2 创建工资单步骤l 进入录入界面l 点击新增按钮,进入工资单条件定义l 选择工资单包含的员工,选择列有勾的表示选中,否则表示没选。可直接双击员工记录来改变选择或不选择,也可右键鼠标,批量修改。l 选择工资单所需要的工资科目,注意如果用户想在计算公式中,设置或获取工资科目的值,那么必须在这里把工资科目选上。l 工资表的所需要的工资科目的快速选择点击,可以选择某一帐套,把该帐套的工资科目集合与计算公式迅速拷贝到工资单。l 点击确定按钮,即可生成一张简单的工资单。2.2.3 编辑计算公式由于有些工资科目需要通过复杂的计算才能得到,系统提供了计算公式,以便于用户方便的计算工资科目的值。计算公式具体的语法规则请看学习导航的脚本说明。计算公式可直接在工资单里编辑,见下图,也可在帐套里面设置,然后选择该帐套,可把该帐套的计算公式拷贝到工资单。l 运算符直接点击可添加到计算公式中。l 公式里可以添加的函数直接选择函数可添加到计算公式中。1. cal_tax(应税额):计算个人所得税。参数应税额是员工所有收入中应缴税部分的工资科目的名称,如果用户不是这个名称,要改成用户系统中相应的工资科目名称。所使用的所得税率组是,参考。注意应税额不是已经减去2000元的数据,而是减去2000元前的原始数据。2. cal_tax_org(税后金额):根据税后的金额计算税前的金额。参数税后金额是员工税后收入的工资科目名称,如果用户不是这个名称,要改成用户系统中相应的工资科目名称。3. cal_tax_grp(应税额,税率分组):根据用户指定的所得税率组计算个人所得税。参数应税额是员工所有收入中应缴税部分的工资科目的名称,如果用户不是这个名称,要改成用户系统中相应的工资科目名称。参数税率分组要改成所得税率组的名称或代码,并且用单引号括起来,比如cal_tax_grp(应税额,A)表示按1600起征计算个人所得税,参考。4. tax_get_top_factor(税前金额):根据税前金额计算应缴税的税率, 税率分组是。税率见下图:5. tax_get_top_factor_grp(税前金额,税率分组):根据税前金额、税率分组计算应缴税的税率。6. tax_get_top_deduct(税前金额):根据税前金额计算速算扣除数, 税率分组是。7. tax_get_top_deduct_grp(税前金额,税率分组):根据税前金额、税率分组计算速算扣除数。8. get_wage_emp_num():计算工资单中的员工总数量。9. get_dept_wage_emp_num(dept_id):计算工资单中的某个部门员工总数量(不包括下级部门的员工)。参数dept_id要改成某一具体部门的名称或代码,并且用单引号括起来。10. get_top_dept_wage_emp_num(dept_id) :计算工资单中的某个部门员工总数量(包括下级部门的员工)。参数dept_id要改成某一具体部门的名称或代码,并且用单引号括起来。11. get_wage_amount(subject_id):计算工资单中某一工资科目的总额。参数subject_id要改成某一工资科目的名称或代码,并且用单引号括起来。12. get_dept_wage_amount(dept_id,subject_id):计算工资单中某一部门(不包含下级部门)某一工资科目的总额。参数dept_id要改成某一具体部门的名称或代码,并且用单引号括起来。参数subject_id要改成某一工资科目的名称或代码,并且用单引号括起来。13. get_top_dept_wage_amount(dept_id,subject_id) :计算工资单中某一部门(包含下级部门)某一工资科目的总额。参数dept_id要改成某一具体部门的名称或代码,并且用单引号括起来。参数subject_id要改成某一工资科目的名称或代码,并且用单引号括起来。l 公式里可以直接使用的员工参数直接选择参数可添加到计算公式中。通过员工参数可以直接获得员工的数据信息,使用员工参数必须把计算结合员工资料选上:l 工资科目选择直接双击可添加到计算公式中。工资科目只能在这个列表中选择,不在这个列表中的工资科目无效。l 测试修改公式点击按钮,测试公式,按提示信息修改有错误的地方。l 完成公式输入点击确定按钮,完成公式输入。2.2.4 录入工资数据l 直接在工资单里输入员工工资数据。l 根据计算公式,计算相关科目的值点击按钮,计算相关科目的值。l 员工或工资科目的调整如果需要调整员工或工资科目,请点击。l 保存工资单输入工资单数据后,请2.2.5 审核工资数据确认工资单数据无误后,可以点击,完成工资单的最后工作,只有审核完成的工资单数据,才会反应到报表等地方。2.2.6 工资单数据快捷录入工资单数据可以直接手工输入,但这种方式比较费时费力,为了更快的生成工资单数据,系统提供了多种快捷录入方式。2.2.6.1 历史工资单如果你的系统中已经有历史工资单了,那么新的工资单你可以直接从历史工资单拷贝数据。l 进入历史工资单选择界面l 包含列表明历史工资单是否有该条记录。l 已定义列表明新的工资单是否有该条记录。l 选择列表示本次选择是否选中。l 该选择如果没勾上,则会只显示新工资单中已经有的员工。l 该选择如果没勾上,则会只显示新工资单中已经有的工资科目。l 该选择如果勾上了,则只显示历史工资单中有的员工和工资科目,否则显示所有的员工和工资科目。该选择如果没勾上,则新工单不会拷贝历史单的计算公式。l 选择新工资单需要包含的员工。可直接双击员工记录来改变选择或不选择,也可右键鼠标,批量修改。l 选择新工资单需要包含的工资科目。可直接双击工资科目记录来改变选择或不选择,也可右键鼠标,批量修改。l 点确定按钮,完成历史单的拷贝。2.2.6.2 工资标准工资标准记录了员工历史或现在的工资数据信息,工资单也可以方便的从工资标准里拷贝数据。 2.2.6.2.1 编辑工资科目l 同一员工可以有多条工资标准记录,但是开始月份和结束月份请不要重叠。l 直接输入各工资科目的值,只有可以编辑的工资科目,才会显示出来。2.2.6.2.2 在工资单拷贝工资标准数据l 进入选择工资标准界面l 选择工资单需要包含的数据。可直接双击员工记录来改变选择或不选择,也可右键鼠标,批量修改。l 如果这个打上勾了,那么只有工资单中已经存在的员工才有效,其他员工即使被选择了,也是无效。l 如果这个打上勾了,那么只有工资单中已经存在的工资科目才有效,其他工资科目即使被选择了,也是无效。l 点确定按钮,完成工资标准的拷贝。2.2.6.3 计件工资计件工资一般是根据员工加工生成某些产品的数量而产生的工资,该科目的工资不会自动拷贝到工资单,需要用户手工拷贝。 本章节主要描述如何把计件工资拷贝到工资单,计件工资的录入本章节不作说明。2.2.6.3.1 编辑相关工资科目如果系统中没有对应计件工资的工资科目,那么要增加相应的工资科目。2.2.6.3.2 设置计件工序对应的工资科目l 不同的计件工序可以设置对应不同的工资科目,也可以设置对应相同的工资科目。2.2.6.3.3 在工资单拷贝计件工资数据l 进入选择工资标准界面l 点击左边的月份,可选择计件工资的月份。l 选择工资单需要包含的数据。可直接双击员工计件记录来改变选择或不选择,也可右键鼠标,批量修改。l 如果这个打上勾了,那么只有工资单中已经存在的员工才有效,其他员工即使被选择了,也是无效。l 如果这个打上勾了,那么只有工资单中已经存在的工资科目才有效,其他工资科目即使被选择了,也是无效。l 如果这个打上勾了,那么只有非离职的员工才有效,已离职员工即使被选择了,也是无效。l 点确定按钮,完成计件工资的拷贝。2.2.6.4 保险费用保险费用拷贝到工资单,和计件工资拷贝到工资单非常类似,主要区别是:工资科目需要设置对应的保险类型。2.2.6.5 考勤统计台帐考勤统计台帐数据拷贝到工资单,和计件工资拷贝到工资单非常类似,主要区别是:工资科目需要设置对应的考勤统计项目。2.2.6.6 绩效考核绩效考核数据拷贝到工资单,和计件工资拷贝到工资单非常类似,主要区别是:工资科目需要设置对应的考核指标。 2.2.6.7 罚款记录罚款记录产生的金额不会自动拷贝到工资单,需要手工拷贝。罚款记录的录入界面:2.2.6.7.1 编辑相关工资科目如果系统中没有对应罚款金额的工资科目,那么要增加相应的工资科目。2.2.6.7.2 在工资单拷贝罚款数据l 进入选择罚款数据界面l 选择拷贝的罚款记录的开始日期和结束日期。l 选择罚款金额对应的工资科目。l 点确定按钮,完成惩罚金额的拷贝。l 注意只有工资单中已经有的员工的罚款记录才有效。2.2.6.8 奖励记录奖励记录产生的金额不会自动拷贝到工资单,需要手工拷贝。奖励记录的录入界面:2.2.6.8.1 编辑相关工资科目如果系统中没有对应奖励金额的工资科目,那么要增加相应的工资科目。2.2.6.8.2 在工资单拷贝奖励数据l 进入选择奖励数据界面l 选择拷贝的奖励记录的开始日期和结束日期。l 不同的奖励种类可以设置对应不同的工资科目,也可以设置对应相同的工资科目。l 如果奖励种类没有设置对应的工资科目,则对应到默认科目。l 点确定按钮,完成奖励金额的拷贝。l 注意只有工资单中已经有的员工的奖励记录才有效。2.2.6.9 宿舍费用宿舍费用拷贝到工资单类似于奖励记录。2.3 结合考勤机的考勤 软件系统可以直接连接一部分型号的考勤机,采集打卡数据。对于不能直连的考勤机,用户可以用脱机打卡文件导入到系统,没有考勤机的用户,可以直接手工录入打卡数据,或者直接手工录入考勤结果。本章节主要介绍结合考勤机的考勤的详细步骤,对于没有考勤机或考勤机不能直连的用户,可以跳过考勤机连接部分。可以直连的考勤机型号:2.3.1 设置员工打卡号只能设置了员工的打卡的卡号,才能把员工的打卡记录和员工联系在一起(无考勤机的可以不设置)。考勤卡号即为员工打卡号。2.3.2 定义考勤机考勤机的信息需要在软件系统里面设置。2.3.2.1 考勤机驱动定义请确认软件系统的dll文件目录下是否有相应的驱动程序,如果没有请到我们网站下载。2.3.2.2 考勤机定义参数设置说明l tcp_ip:考勤机的ip地址。l tcp_port:考勤机的端口号。l file_style:考勤机生成的打卡文件的类型A为用,分隔各字段的文件;B为各字段定长的文件; C 空格或TAB分割各字段的文件; D 为excel文件。l pos_card_no:卡号位置,表示考勤机生成的打卡文件每行打卡记录中,打卡号是从哪里开始的,注意计数是从0开始的,B类型文件中pos_card_no表示卡号从第几个字符开始,ACD类型文件表示卡号是第几个字段。l len_card_no:卡号长度。l pos_date:打卡日期位置,具体参考pos_card_no参数。l len_date:日期长度。l date_fmt:日期格式,yy表示年,mm表示月,dd表示日期,示例:如果考勤机生成的打卡文件中,打卡日期是这样表示的:2010/06/09,那么date_fmt就设置为yyyy/mm/dd。l pos_time:打卡时刻位置,具体参考pos_card_no参数。l len_time:时刻长度l time_fmt:时刻格式,hh表示小时,mi表示分钟数,ss表示秒数,示例:如果考勤机生成的打卡文件中,打卡时刻是这样表示的:08:07:22,那么time_fmt就设置为hh:mi:ss。l file_path: 保存打卡数据文件的目录。系统采集考勤机打卡数据时,会生成打卡数据文件,数据文件就保存在这个目录下,用户请保证这个目录的磁盘空间足够。该目录下有两个子目录:log和original_log,其中original_log子目录下保存了系统从考勤机采集到的原始打卡数据文件;log保存了系统进行标准化处理后的文件。两个子目录下的文件都可以用记事本直接打开,以便于用户查错。l com_id:串口编号,1-4 对应于com1-com4,适用于通过串口连接的考勤机。l auto_erase:系统采集打卡数据后是否自动删除考勤机中的原始打卡数据;1表示自动删除 0不删除。l 文本格式需要配置 file_style, 卡号、日期、时刻等信息。l 中控考勤机、依时利考勤机、舒特考勤机需要配置 tcp_ip参数。l 点击考勤机需要配置 com_id参数。l 有的驱动如中控、依时利同时支持网络采集和串口采集,如果配置了tcp_ip参数则按照网络采集,如果该参数清空则按照串口采集。l 中控 628 638、中控 V2 628+ M880、中控X638可以用628的接口,不要设置考勤机密码。l 科密 kd-32、科密 331A-U (usb模式清空tcp ip,com id设置为0)。2.3.2.3 考勤机测试为确保考勤机定义的正确性,定义完成后,需要先测试:1. 测试以前请先确认考勤机已经正确的安装连接到你的电脑上了。2. 点击按钮,系统将会开始连接考勤机,并采集打卡数据。3. 如果有错误,请按错误提示,耐心修改考勤机定义的参数值。4. 参数file_path指定的目录下,original_log子目录下保存了系统从考勤机采集到的原始打卡数据文件,log保存了系统进行标准化处理后的文件。两个子目录下的文件都可以用记事本直接打开,以便于用户查错。2.3.3 打卡数据采集采集打卡数据,即可以直接从考勤机中采集,也可从打卡文件中导入。l 从文件导入打卡数据文件导入有三种方式,不管什么方式,文件中必须有:打卡卡号、打卡日期、打卡时刻这3个字段。l 从考勤机中采集从你定义的考勤机中选择需要采集的考勤机如果是手工采集,直接点击,如果是自动采集,需要设置采集时间,点击。至此,员工打卡已经导入的软件系统。2.3.4 员工考勤班次员工考勤不仅需要员工的打卡数据,还需要知道员工排班信息。2.3.4.1.1 考勤班次定义1.班次时间以24小时记时,早8点,标为08:00,晚8点,标为20:00。2.班次以空时间段为结束标志,所以各段之间不能有空时间段。3.每设置或修改时间请按保存班次资料。4.提前是否计入表示提早打卡的时候上班时间是否按照实际打卡时间还是正点时间计算。如果否,则按照正点上班计算。5.延后是否计入表示比正点下班晚打卡的时候下班时间是否按照实际打卡时间还是正点时间计算。如果否,则按照正点下班计算。6.提前和延后的时间范围标识了打卡的有限范围,不在该范围的打卡记录将忽略掉,所以不要把提前和延后的时间都设置为0。7.刷卡方式:必须要:表示一定要刷。非必要:表示可以不刷,如果有后续刷卡记录则自动补卡,但如果刷了则判断迟到早退。参考:表示可以不刷,如果有后续刷卡记录则自动补卡,刷了也不判断迟到早退。8.是否加班标志用来指示该段时间是否计算到加班时间里。9.折算系数主要用于加班,比如1小时按照1.5倍计算则填1.5。2.3.4.1.2 设置员工班次l 可以直接右键,给每个员工排班。l ,可以设置这里,通过双击设置员工班次。l 点击,可以批量排班。l 修改日期,点检索按钮,可以改变显示的班次日期。2.3.5 生成考勤结果2.3.5.1 打卡数据处理结合员工排班,处理打卡数据后,就能生成员工的考勤日帐。l 先设置要处理的打卡记录的时间段。l 点击按钮。l 右边列表将会显示符合条件的打卡数据。l 点击,将开始打卡数据的的处理,如果打卡数据比较多,可能会比较慢,请耐心等待。2.3.5.2 查看考勤日帐打卡数据处理后,可在考勤日帐查看处理的结果。设置好检索条件后,点击检索按钮,即可查询。考勤日期也可手工修改,双击记录,即进入修改界面。2.3.5.3 考勤月帐根据考勤日帐和其他一些考勤信息如出差记录、请假记录、调休记录等,可以生成考勤月帐单据。 l 设置考勤月帐的月份和对应的开始结束时间段。l 点击,即可根据考勤日帐和其他一些考勤信息,生成当月的考勤月帐。l 考勤月帐也可直接在界面上手工修改录入。l 数据生成后按保存。l 点击审核后,月帐信息可反应到报表等地方。2.3.6 月帐中用脚本生成自定义统计数据考勤月帐单据的操作菜单=参数及配置=脚本定义,点初始化,会生成默认的脚本模板,其中有一个函数func_stat_ext,这个函数将在考勤月帐界面中点击生成数据的时候自动执行。可以在这个函数里面编写脚本用来生成一些扩展数据。涉及的脚本函数timer_stat_list:timer_stat_list函数用于根据timer_list产生统计数据,包括3个参数,第一个参数为统计代码,比如001,002. 这个代码应该在考勤统计项目中已经定义。第二个参数为统计的数值,比如合计分钟数 sum(total_minute)第三个参数为统计的限定,比如某一天、某种错误等,符合sql条件语法例1:统计计算结果为迟到的分钟数int func_stat_ext() timer_stat_list(001,sum(on_late_minute), process_result =A); return 1;例2:统计班次为 A B的出勤次数int func_stat_ext() timer_stat_list(001,sum(1), total_minute0 and class_id in (A,B); return 1;下面表中给出了timer_list表里面的具体定义。NameCodeData Type班次日期class_dateVARCHAR2(8)工号emp_idVARCHAR2(16)班组group_idVARCHAR2(8)部门dept_idVARCHAR2(8)卡号card_noVARCHAR2(30)创建日期create_dateVARCHAR2(8)创建工号create_user_idVARCHAR2(8)班次编号class_idVARCHAR2(8)上班日期on_dateVARCHAR2(8)上班时刻1on_time_1VARCHAR2(6)下班时刻1off_time_1VARCHAR2(6)上班时刻2on_time_2VARCHAR2(6)下班时刻2off_time_2VARCHAR2(6)上班时刻3on_time_3VARCHAR2(6)下班时刻3off_time_3VARCHAR2(6)上班时刻4on_time_4VARCHAR2(6)下班时刻4off_time_4VARCHAR2(6)上班时刻5on_time_5VARCHAR2(6)下班时刻5off_time_5VARCHAR2(6)合计时间total_minuteNUMBER(5)上班迟到分钟数on_late_minuteNUMBER(5)下班早退分钟数off_early_minuteNUMBER(5)加班分钟数overtime_minuteNUMBER(5)折算加班分钟数factor_overtime_minuteNUMBER(5)计算结果process_resultCHAR(1)处理结果manual_result_idVARCHAR2(8)人工处理数值manual_result_valNUMBER(5,1)处理结果2manual_result_id2VARCHAR2(8)人工处理数值2manual_result_val2NUMBER(5,1)备注信息note_infoVARCHAR2(30)缺勤分钟数absent_minuteNUMBER(5)下面给出了生成默认月帐统计数据的c+代码,不能直接用于扩展统计,是作为参考的。int TVD_Timer_Stat_Voucher:Create_Set(char * beg_date,char * end_date)TSQLCA dbio,list_dbio;char timer_per_day_hours20,tmp22;TDict * dict;int id; Dict_Prepare(timer_overtime_type); Dict_Prepare(timer_leave_type); /1天对应的小时数 dbio.R(select per_day_hours from timer_para ); if(*dbio.mRowCount0) dbio.GetRes(0,timer_per_day_hours); else strcpy(timer_per_day_hours,8); Clear_Timer_Stat_Val(); /出勤天数 dbio.R(select emp_id,sum(1) from timer_list where (class_date between %s and %s) and total_minute0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,001); /出勤总计小时 dbio.R(select emp_id,sum(total_minute)/60.0 from timer_list where (class_date between %s and %s) and total_minute0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,042); /出勤天数按照班次 list_dbio.R(select class_id,name from timer_class_def order by class_id); for(id = 0; id 0 group by emp_id,beg_date,end_date,list_dbio.GetRes(0); Add_Stat_Val(&dbio,tmp); ; list_dbio.Next(); ; /迟到次数 dbio.R(select emp_id,sum(1) from timer_list where (class_date between %s and %s) and on_late_minute 0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,002); /迟到累计/小时 dbio.R(select emp_id,sum(on_late_minute)/60.0 from timer_list where (class_date between %s and %s) and on_late_minute 0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,003); /早退次数 dbio.R(select emp_id,sum(1) from timer_list where (class_date between %s and %s) and off_early_minute 0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,004); /早退累计/小时 dbio.R(select emp_id,sum(off_early_minute)/60.0 from timer_list where (class_date between %s and %s) and off_early_minute 0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,005); /缺勤次数 dbio.R(select emp_id,sum(1) from timer_absent where (absent_date between %s and %s) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,006); /缺勤累计/天 dbio.R(select emp_id,sum(days) from timer_absent where (absent_date between %s and %s) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,007); /加班次数 dbio.R(select emp_id,sum(1) from timer_overtime where (overtime_date between %s and %s) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,008); dict = Dict_Get_Set(timer_overtime_type); dict-GoHead(); for(id = 0; id mRowCount; id+) sprintf(tmp,008.%s,dict-GetRes(0); if(Is_Stat_Item_Defined(tmp) dbio.R(select emp_id,sum(1) from timer_overtime where (overtime_date between %s and %s) and overtime_type_id = %s group by emp_id,beg_date,end_date,dict-GetRes(0); Add_Stat_Val(&dbio,tmp); ; dict-Next(); /加班累计/小时 dbio.R(select emp_id,sum(hours + minutes/60.0) from timer_overtime where (overtime_date between %s and %s) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,009); dict = Dict_Get_Set(timer_overtime_type); dict-GoHead(); for(id = 0; id mRowCount; id+) sprintf(tmp,009.%s,dict-GetRes(0); if(Is_Stat_Item_Defined(tmp) dbio.R(select emp_id,sum(hours + minutes/60.0) from timer_overtime where (overtime_date between %s and %s) and overtime_type_id = %s group by emp_id,beg_date,end_date,dict-GetRes(0); Add_Stat_Val(&dbio,tmp); ; dict-Next(); /折算加班累计/小时 dbio.R(select emp_id,sum(hours*factor + (minutes*factor)/60.0) from timer_overtime where (overtime_date between %s and %s) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,010); dict = Dict_Get_Set(timer_overtime_type); dict-GoHead(); for(id = 0; id mRowCount; id+) sprintf(tmp,010.%s,dict-GetRes(0); if(Is_Stat_Item_Defined(tmp) dbio.R(select emp_id,sum(hours*factor + (minutes*factor)/60.0) from timer_overtime where (overtime_date between %s and %s) and overtime_type_id = %s group by emp_id,beg_date,end_date,dict-GetRes(0); Add_Stat_Val(&dbio,tmp); ; dict-Next(); /请假次数 dbio.R(select emp_id,sum(1) from timer_leave where (beg_time between %s000000 and %s235959) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,011); dict = Dict_Get_Set(timer_leave_type); dict-GoHead(); for(id = 0; id mRowCount; id+) sprintf(tmp,011.%s,dict-GetRes(0); if(Is_Stat_Item_Defined(tmp) dbio.R(select emp_id,sum(1) from timer_leave where (beg_time between %s000000 and %s235959) and leave_type_id = %s group by emp_id,beg_date,end_date,dict-GetRes(0); Add_Stat_Val(&dbio,tmp); ; dict-Next(); /请假累计/小时 dbio.R(select emp_id,sum(days * %s + hours + minutes/60.0) from timer_leave where (beg_time between %s000000 and %s235959) group by emp_id,timer_per_day_hours,beg_date,end_date); Add_Stat_Val(&dbio,012); dict = Dict_Get_Set(timer_leave_type); dict-GoHead(); for(id = 0; id mRowCount; id+) sprintf(tmp,012.%s,dict-GetRes(0); if(Is_Stat_Item_Defined(tmp) dbio.R(select emp_id,sum(days * %s + hours + minutes/60.0) from timer_leave where (beg_time between %s000000 and %s235959) and leave_type_id = %s group by emp_id,timer_per_day_hours,beg_date,end_date,dict-GetRes(0); Add_Stat_Val(&dbio,tmp); ; dict-Next(); /出差累计/天 dbio.R(select emp_id,sum(days) from timer_errand where (beg_date between %s and %s) group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,013); /调休累计/天 dbio.R(select emp_id,sum(days),sum(hours) from timer_rest where (beg_date between %s and %s) group by emp_id,beg_date,end_date); float days,hours; char days_str55; for(id = 0; id 0 group by emp_id,beg_date,end_date); Add_Stat_Val(&dbio,030); list_dbio.R(select class_id,name from timer_class_def order by class_id); for(id = 0; id *list_dbio.mRowCount; id+) sprintf(tmp,030.%s,list_dbio.GetRes(0); if(Is_Stat_Item_Defined(tmp)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!