成本管理系统的构建

成本管理系统的构建

1数据库及应用功能设计

1.1数据库设计

由于用户是成本科,涉及到铁前、炼铁、炼钢和轧钢等多家二级生产单位,成本项目的分摊模式不尽相同,确定成本项目分摊模式时存在一定困难,而影响产品成本的成本项目主要有原材料成本、燃料及动力成本、直接工资和制造成本等,因此,根据各二级生产单位的核算特点,分摊模式设计为直接投入、系数分摊和工艺分摊3种模式,数据库设计则主要涉及到库存、成本项目和核算等信息。数据库设计主要包括数据库表、系统数据流、关键字、数据安全性和可恢复性等设计。

数据库表设计。系统数据库表包括基础数据表和变动数据表。基础数据表主要包括用户信息、物料字典、成本项目字典(成本项目、上级项目和分摊模式等信息集合)、分摊系数和工艺系数等;变动数据表主要包括最终成本、产品产量、所选成本项目、直接原材料投入、期别库存、动态库存、入库、出库和改判等变动信息。基础数据表的维护量较小,一旦建立,基本不修改;而变动数据表则需要定期输入和维护。依据基础数据表中的分摊系数和工艺系数以及变动数据表中的产品产量,对变动数据表中所选成本项目的系数分摊和工艺分摊部分、直接原材料投入和改判等进行核算处理,得到产品成本信息;将入库、出库和改判等表进行处理,得到动态库存信息和期别收发存信息。产品成本信息、动态库存信息和期别收发存信息分别存放在数据库中的最终成本表、动态库存表和期别库存表中,以方便制作报表和查询。另外,为方便成本核算到规格,基础数据表中的物料字典不仅设计有pz(品种)字段,还增加了gg(规格)字段。

系统数据流设计。系统数据包括原材料消耗、辅助材料、大型工具、燃料及动力、直接工资、制造费用等成本项目信息和物料库存单据信息,由生产线核算员建立。成本项目信息存放在所选成本项目表中,物料库存单据根据操作类型分别存放在入库表和出库表等表中。核算成本项目信息中的数量和金额后,得出产品成本信息,经程序处理后形成产品成本报表。另一方面,物料库存单据结合产品成本经过确认,形成期别收发存信息。产品成本报表与期别收发存信息输出给成本科和各生产线核算员。

关键字设计。数据采用期别(核算的月份)和生产线作为关键字进行相关的数据查询和操作,大部分数据表都包含“期别”字段和“生产线”字段,其中“期别”字段是一个6位字符型的格式,前4位表示年份,后两位表示月份,如“201303”,这样的结构易于编程,同时也方便用户根据期别查询数据;“生产线”字段是一个4位字符型的格式,前两位表示单位,后两位表示生产线顺序,如“0101”。数据安全性和可恢复性设计。系统在服务器上建立Windows的任务计划,采用批处理方式,每月定时自动对数据库进行备份。当数据库遇到系统故障和崩溃等情况时,通过备份文件可将数据库中的数据还原。

1.2应用功能设计

结合成本科和各二级生产单位的实际情况和需求,设计系统应用功能。系统应用功能模块包括系统设置、核算、库存管理、结转与回滚、查询与导出和报表计算与管理等模块以及各部分子模块。

1.2.1系统设置模块

系统设置模块利用SQL的增加、删除和更新语句,通过.NET对数据库的连接和操作技术,对单位、用户、生产线、库房、工艺和物料等基本信息提供增加、删除和修改等功能,方便基本信息的维护。同时,模块提供用户注销、锁定屏幕、个人设置等功能。

1.2.2核算模块

核算模块实现成本项目分摊模式的自由选择和细化到规格的产品成本核算,为实现按品种效益排序提供数据支持。核算模块包括对产品的生产工艺、工艺系数和分摊系数等基本核算信息的维护,产品产量、成本项目总量、直接原材料投入、改判信息的录入以及细化到规格的产品成本核算。各二级生产单位生产线核算员每月需要手工录入产品产量和成本项目总量,并录入直接原材料投入和改判信息。产品成本核算时,系统对投入到该产品的直接原材料数量和金额进行累加,并根据该产品产量和分摊系数对所有系数分摊模式的成本项目总量中的数量和金额进行分摊,同时,根据该产品产量、生产工艺和工艺系数对所有工艺分摊模式的成本项目总量中的数量和金额进行分摊,最后将3种模式下该产品的所有成本明细累加得出产品成本。改判信息通过录入改判的产品产量、改判原材料数量和产品的生产工艺,参与成本核算,同样适用成本核算公式。

为了实现成本项目分摊模式的自由选择,采用DataGridView控件的子控件DataGridView-ComboBoxColumn,在程序中设置直接投入、系数分摊和工艺分摊3种模式,并将其添加为子控件的内容以供选择。为了实现精细化管理,物料表中的产品均有gg(规格)字段,因此,核算的产品都是精细化到规格的产品。而品种效益是指品种的销售价格减去品种成本价格,核算出的成本为品种效益排序提供准确的数据支持,品种效益排序的具体操作由成本科线下完成。另外,实现二级单位大批量数据导入时,系统通过OLEDB(通向不同数据源的低级应用程序接口)把已规范好格式的Excel文件作为数据源,将直接原材料投入数据和改判信息写入数据库中。通过DataGridView控件将录入的核算数据作为数据源绑定,以表格的形式显示,方便财务人员识别与校正。

1.2.3库存管理模块

库存是指存放在库房中的原材料和产品等物料的实际数量和实际金额,库房包括单位库、公司库和产品库。库存管理实现原材料和产品等物料的动态管理,以便影响实时库存,确保实时库存信息与加工生产线的物流一致。库存管理模块包括库存初始化、入库管理、出库管理、产品调整、产品入库、直接原材料投入确认和成本消耗确认等子模块。库存管理主要通过SQL语句和.NET连接SQLServer数据库技术实现。具体步骤如下:(1)信息初始化。由生产线核算员初始化本生产线的物料库存信息,并存于数据库中作为库存基础,之后根据用户角色,将库存初始化功能权限仅对成本科开放。(2)建立单据。系统依据库存中金额除以数量得出的单价或使用避免数量为0导致单价无穷大的锁价功能,建立相关单据作为物料入库和产品出库等操作的依据,并将单据的初始确认状态置为0,其中,原材料存入单位库,铁前、炼铁和炼钢产品存入公司库,轧钢系统产品存入产品库。(3)确认单据。单据确认包括直接原材料投入确认和成本项目消耗确认,确认时,利用.NET事务处理技术(事务性单元内的所有操作都须成功完成,否则不会更新数据库)根据单据的数量、金额和库房信息等更新实时库存信息,并将单据确认状态置为1。确认状态为1的单据由于已确认完成因而只能用于查询,不能再次确认;而确认状态为0的单据可进行再次确认等相关操作。(4)批量生成出库单。出库管理模块采用Data-GridViewCheckBoxColumn子控件对库存中本库房产品信息进行勾选,根据产品信息中的数量和金额,实现批量生成出库单的功能,以减少用户的工作量和操作时间。

1.2.4结转与回滚模块

结转与回滚模块实现本生产线在期别内除查询外的其他功能操作与数据的冻结、下道工艺单元的功能开放和撤销期别内确认操作并还原单据的功能,包括审核结转、结转、审核回滚和回滚4个子模块。在核算后的确认工作结束后,生产线核算员向成本科申请结转。成本科审核结转时,系统将审核状态置为1,二级生产单位结转后,结转状态置为1。结转通过编写Judge类实现,包括本生产线在期别内是否已结转、是否可核算和上道工艺是否全部结转等,并将Bool类型的返回值进行与、或和非处理作为改变按钮Enabled属性的条件。若条件满足,则允许操作;否则将不能操作。当满足该核算期别未结转、上个核算期别已结转、下个核算期别未结转、该核算期别的上道工艺单元全部结转和下道工艺单元未结转的条件时,允许该生产线核算员操作,实现转入下一工艺单元执行操作的功能。回滚是指撤销对单据的确认,还原成确认前的单据,恢复操作功能。结转后,如果二级生产单位发现冻结的数据不准确需要解冻数据时,可向成本科申请回滚。回滚时,调用入库回滚、产品分配回滚、直接投入回滚、出库回滚和成本项目库存消耗回滚按钮点击事件,每个事件均按照单据中的数量和金额等信息自动还原库存信息,将确认状态从1改置为0,并将操作按钮的Enabled属性从false写回true,实现回滚功能。回滚成功后,用户可继续操作该生产线在期别内的功能。

1.2.5查询与导出模块

查询与导出模块实现系统数据的查询和导出,包括收发存、单据信息的查询与导出以及核算和结转状态的查询子模块。收发存信息查询包括实时查询和历史查询。实现实时查询时,系统读取实时库存信息作为期末部分,读取已确认的入库、出库和产品调整等信息并累计得到收入部分,读取已确认直接原材料投入、成本项目消耗、出库和产品调整等信息并累计得到付出部分,根据式(2)计算出期初部分,形成实时的收发存信息;结转时,根据结转期别内的已确定单据得到期末、收入和付出信息,计算得到期初信息,形成历史收发存数据,并写入数据库相应表中,查询时,通过读取表中数据,实现历史收发存信息的查询。为了方便数据比对和归档,同时减少代码量,编写OutputToExcel类,类中包含以DataGridView类型对象作为参数的导出方法,通过建立Excel应用,将数据写入Excel文件的单元格中,完成导出功能。另外,系统可利用SQL语句查询单据信息,按期别查询用户的核算和结转状态。系统数据均在DataGridView控件中以表格形式显示。

1.2.6报表计算与管理模块

报表计算与管理模块实现成本报表的显示、导出和打印,包括单期、多期和单位汇总报表的导出和打印子模块。根据用户需求,依据期别和生产线,通过编写SQL语句的Where数据过滤条件,系统将核算后的单期、多期和单位汇总产品成本信息过滤和处理后形成数据集,绑定在已建立的RDLC(报表定义语言客户端)报表模板文件上,在ReportView控件中显示,形成单期生产线报表(如炼钢厂大转炉生产线201301期)、多期生产线报表(如炼钢厂大转炉生产线201301~201303期)和单位汇总报表(本单位所选生产线汇总)。另外,系统利用SQL语句建立排序ID实现RDLC报表分页,采用ReportView控件自带的导出和打印功能,解决了报表单页导出Excel文件列数必须小于255个的问题。

2系统特点

成本管理系统的特点如下:(1)数据集中管理。数据从客户端录入,数据库在服务器端由SQLServer数据库管理系统集中管理。(2)数据库的高安全性。采用连接字符串经过加密处理,不以明文显示。(3)数据分析处理多线并发。利用事务技术处理数据,以避免数据混乱,如出库单确认时,源库房与目的库房的库存信息必须同时更新,否则确认操作失败。(4)数据查询。利用SQLServer数据库操作语言、.NET访问数据库技术和第3方控件DeveloperExpress2011,将二级生产单位和部门日常管理所用的查询条件集中,实现多条件模糊查询。(5)数据显示。利用SQLServer数据库视图、.NET访问数据库技术和WinForm控件,将数据以可识别的形式在界面中显示。(6)安全权限控制。通过角色授权功能保障信息的安全和控制用户的权限,在用户登录系统时,系统验证用户信息的合法性,进入系统后只允许操作已授权的菜单功能。

3应用效果

系统于2013年2月正式上线运行。系统运行后改善了成本管理现状,收到较好的效果,主要表现为:(1)实现成本细化管理,将分厂级成本管理粒度细化到加工工序成本管理粒度;(2)成本项目采用直接投入以及系数分摊和工艺分摊等分摊模式,更加科学合理;(3)系统不依赖于Excel表格,自动化和信息化程度更高;(4)核算后,所有产品的单位成本与产量的乘积得出的消耗金额总和与“钢花”的数据完全一致,每个产品的消耗金额由于分摊模式的改变存在少许误差,但在允许范围内;(5)系统仅由3名专业人员历时7个月完成,开发周期短、成本低,为公司新产品开发、品种效益排序和创效测算提供了准确的数据支持。

4结束语

试运行过程中,曾发现一些问题,如同一用户名多人同时在线操作,会造成对数据库的重复操作,影响核算数据的准确性。为避免此类问题,每条单据执行确认操作时,系统会依据DataGridView控件中显示的数据主键,查询数据库中的该条单据确认状态字段,若确认状态为1,就不会重复执行确认操作。目前系统运行正常。有效的成本管理是企业在市场竞争和经营销售中的重要保障,当今日益发展的计算机和信息技术为成本管理提供了强有力的技术支撑,从而极大地促进了成本管理理论在实际应用中的发展,提高了成本电算化水平,为企业决策层提供便捷有效的成本信息支持。

作者:夏海蛟 汪剑 单位:武汉钢铁集团鄂城钢铁有限责任公司设备信息化部