第1页共4页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共4页供电企业FOXPRO工资数据的共享张铁峰苑津莎刘建新(华北电力大学,河北保定071003)摘要:在电力企业信息化的过程中,由于信息技术发展及信息化实践的阶段性等原因,使得财务率先实现计算机管理,而财务软件由FoxPro制作的为多,近年来随着电力企业信息化在各个方面深入展开,迫切要求实现财务数据的共享。本文详细介绍了FoxPro工资数据共享的实现,对信息系统的集成与过渡运行具有参考价值。关键词:信息共享;ORACLE;FOXPRO;工资;引言FOXPRO作为较早的单机版数据库开发软件,以其灵活实用的优点获得了广泛的应用。但随着信息技术发展及信息化在各个方面深入展开,WEB技术的应用,数据共享的要求愈加迫切,大型共享数据库管理系统如Oracle、SqlServer等开始占主导地位。在电力企业信息化的过程中,由于信息化实践的阶段性及当时技术背景等历史原因,使得财务率先实现计算机管理,而财务软件由FoxPro制作的为多。随着企业级信息系统的建立,大多数情况下财务软件作为企业的核心不被替代,但财务数据的共享要求日益迫切,资产负债表、损益表、产品销售利润表等各种财务报表及员工工资表都需要实现共享。其中FoxPro工资数据的共享有些困难,下面就其存在的难题及解决方法作一介绍。1工资数据共享的困难在信息系统集成的过程中,为了实现工资数据的安全共享,一般将其迁入企业的大型共享数据库中。FoxPro工资数据共享的困难在于工资表没有固定的数据库结构,工资项目的增减也很灵活,其中还存有相当一部分中间计算字段或其他无用信息,在得不到原系统开发人员的帮助情况下,只有专职财务人员才能从数据库中挑选出有用的字段,而且由于每月一个工资数据文件,于是挑选的工作每月都要做。每月一个FoxPro数据库结构的工资表要实现向大型共享数据库的迁移并实现其集中是件困难的事,需要解决两个问题:第一,将每月工资数据存储在一个数据库表中。第二,正确存储每月要显示的工资表表头。2解决办法在实践中,本文采用以下方法实现向Oracle迁移FoxPro工资数据,实现归一化处理。首先,建立Oracle数据库表“工资数据表”(存放工资数据)、“工资表头表”(存放工资表头即工资各项名称)、“工资项显示属性表”(存放工资表各项是否显示,实际使用可用列宽度代替,宽度为0的项不显示),由于FoxPro工资表字段每月可不一样,多少和次序不定,因而以上Oracle三个表(以下简称三表)的字段需建的足够多(如已知月份字段数的二倍),为了方便起见,下面用中文进行Oracle数据库表的字段说明。对“工资数据表”建字段“职工编号”、“姓名”、“项1”、“项2”···“项第2页共4页第1页共4页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共4页99”、“年”、“月”其中“职工编号”、“姓名”为字符型,其他为数字型。对“工资表头表”建字段“职工编号”、“姓名”、“项1”、“项2”···“项99”、“年”、“月”,其中“年”、“月”为数字型,其他为字符型。对“工资项显示属性表”建字段“职工编号”、“姓名”、“项1”、“项2”···“项99”、“年”、“月”,全部为数字型。第二,将需要传输的某月FoxPro工资数据通过PowerBuilder的数据窗口读入Oracle数据库表“工资数据表”,将表头(FoxPro表对应的中文列名)写入“工资表头表”,初始化“工资项显示属性表”的各字段为一定值(比如250PowerBuilder单位,实际传时多出的字段置0即宽度为0不显示)。具体实现中首先建立数据传输窗口如图1,该窗口放四个按钮,三个数据窗口如图示:图1数据传输窗口其中,“表头表”对应的数据窗口为“工资表头表”的数据窗口对象。设“FoxPro”对应FoxPro工资表某月数据文件gz.dbf,传输时动态建立数据窗口对象。“oracle”对应Oracle的“工资数据表”的数据窗口对象。“查询本月”按钮可查本月FoxPro工资表是否已传输(“oracle”数据窗口有记录为已传输,否则未传)。“传输工资”按钮可将本月FoxPro工资表数据读出并放入“oracle”数据窗口,然后存入Oracle的“工资数据表”,还将本月Fo...