论文部分内容阅读
【摘要】文章介绍了基于Delphi和SQL Server的科研经费管理系统设计方案。全面分析了系统的技术路线、功能模块,提出了在Delphi编程环境下的实现技术。
【关键词】Delphi;SQL;Server;经费管理
【中图分类号】TP31【文献标识】A
【文章编号】1671-5969(2007)06-0180-03
随着高校的教育信息技术水平的高速发展,高校各项管理制度变革正大步推进。科研管理作为高校管理的重要部分,也正沿着管理技术信息化的方向发展。目前国内的大部分高校都已使用计算机来对科研管理工作的很多方面进行系统管理,如科研课题管理、成果管理等。但是,在某些方面还有所欠缺。本文将在分析现有科研经费管理方式的基础上提出科研经费管理信息系统的设计方案,全面阐述了该系统模块的功能和结构并给出了实现技术。
一、现状分析
目前,国内大部分高校对科研经费的管理仅仅停留在手工管理阶段,且水平较低,由于不能及时了解各个科研项目的进度和开支情况,项目经费超支或挤占其他项目经费的现象时有发生,为了彻底解决这个方面的问题,在广泛调研的基础上,结合我们高校科研经费管理工作的实际,我们开发了这套“科研经费管理信息系统”,以便让科研处的经费管理更有条理性、科学化,更加方便地对科研经费的入帐、预算和开支等情况进行查询、统计等管理。
二、系统功能和模块设计
(一)系统功能
该系统主要用于完成项目分类和各个科研课题经费的入帐、开支等信息管理,以及实施对各种信息的查询、报表打印等功能。项目分类即根据项目经费的来源渠道将科研项目划分为不同种类,如国家自然科学基金项目、国家社会科学基金项目、区科技厅项目、教育厅项目、学校科研项目等,以便于了解各类项目的总投入、支出和结余情况。系统还提供了详尽的查询功能,用户可以通过组合条件、模糊查询的方法查询各类项目、各明细项目的开支和结余情况,对查询的结果可以浏览或打印。
(二)模块设计
1.系统结构。本系统的总体结构设计模块图如下图所示:
本系统使用的流程是先由管理员进行系统数据的初始化,然后由用户登录系统进行相关的各种操作。该系统主要实现的功能有四个:入账管理、开支管理、查询报表、系统管理。由使用权限系统角色可以分为两种类型:
(1)系统管理员:该用户可以进行系统中所有的操作,可以对系统进行修改,排除故障。
(2)普通用户:该用户可以进行科研经费的查询操作,这主要是为一般的科研人员所设置。
(二)模块设计
(1)入账管理模块。入帐管理模块主要是将来源渠道不同的科研经费划分为不同种类进行入帐,同时需要输入项目所属的类别、项目负责人、立项日期、计划完成日期以及拨款金额等信息,以便于了解各个科研项目详细情况。
(2)开支管理模塊。开支管理模块主要用于项目经费的开支控制,经费开支凭证是根据项目的实际开支数或根据财务部门的实际报销数为依据,输入时还需输入费用发生的日期、凭证编号、摘要等信息,以便于日后查询各个项目的开支情况。
pay=RIQI+BIANHAO+ZILIAO+CHALV+HUIYI+SHEBEI+ZIXUN+YINSHUA+OTHER+ALL
3.查询报表模块。查询报表模块是该系统的一个重要组成部分,用户可以通过组合条件、模糊查询的方法查询各类项目、各明细项目的开支和结余情况,对查询的结果可以浏览或者打印各类项目的余额账、打印各明细项目的余额账等。
三、实现技术
本系统的设计目的是在WINDOWS环境下使用Delphi编程技术访问SQL Server数据库,通过对数据库的管理来对科研经费的各种信息进行分配与管理。其基本思路是:在设计数据库的基础之上,通过自定义函数的建立实现数据窗口与数据表的合理结合。
在本系统的设计中,我们采用了SQL Server数据库来存放科研经费管理的所有数据,以备应用程序访问。Delphi是用于开发数据库应用程序强有力的工具。Delphi通过BDE、ADO、dbExpress等数据驱动和访问机制,可以访问多种数据格式以及开发灵活的客户/服务器体系(简称C/S)的数据库应用系统。Delphi开发环境集成了一个功能强大的本地数据库管理系统SQL Server,并自动地包含从SQL Server数据接口产品衍生过来的数据库引擎BDE,与其他本地数据库相比,SQL Server的兼容性好,存取效率较高。本系统用到的方法主要是应用SQL语言(Structure Query Language 结构化查询语言)配合Delphi对象进行数据的查询/新增/删除/修改等操作。
// 新增入账数据的实现
procedure TFormMain.Btn_RZClick(Sender: TObject);
begin
Table_RZ.Open;// 打开数据集
Table_RZ.Append; // 追加一条新记录
Table_RZ.FieldByName('LEIBIE').AsString := Edt_XMLB.Text; // 项目类别
Table_RZ.FieldByName('BIANHAO').AsString := Edt_XMBH.Text; // 项目编号
Table_RZ.FieldByName('MINGCHENG').AsString := Edt_XMMC.Text;// 项目名称
Table_RZ.FieldByName('XINGMING').AsString := Edt_XMFZ.Text; // 项目负责
Table_RZ.FieldByName('JINGER').AsFloat := Edt_JE.Text;// 项目金额
Table_RZ.FieldByName('LIXIANG').AsDateTime := Edt_LXRQ.Text;// 立项日期
Table_RZ.FieldByName('DAODI').AsDateTime := Edt_DQRQ.Text;// 到期日期
Table_RZ.Post;// 保存更新记录
End;
// 数据查询(模糊查询功能)的实现
Query_CX: TQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Cb_XMLB: TComboBox;
Edt_XMFZ: TEdit;
Edt_XMBH: TEdit;
Edt_XMMC: TEdit;
Dtp_DateS: TDateTimePicker;
Dtp_DateE: TDateTimePicker;
RBtn_LXRQ: TRadioButton;
RBtn_DQRQ: TRadioButton;
Btn_CX: TButton;
procedure TForm2.Btn_CXClick(Sender: TObject);
begin
Query_CX.Close; // 关闭数据库连接
Query_CX.SQL.Clear; // 清除SQL语句
Query_CX.SQL.Add('Select * From CHAXUN');
if RBtn_LXRQ.Checked then // 日期条件
Query_CX.SQL.Add(' Where LIXIANG >=:DateS And LIXIANG <=:DateE')
else
Query_CX.SQL.Add(' Where DAODI >=:DateS And DAODI <=:DateE');
Query_CX.ParamByName('DateS').AsDate := Dtp_DateS.Date;
Query_CX.ParamByName('DateE').AsDate := Dtp_DateE.Date;
ifCb_XMLB.Text <> '所有类别' then// 类别条件
begin
Query_CX.SQL.Add(' And LEIBIE =:LEIBIE');
Query_CX.ParamByName('LEIBIE').AsString := Cb_XMLB.Text;
end;
if Edt_XMBH.Text <> '' then// 编号条件
begin
Query_CX.SQL.Add(' And BIANHAO =:BIANHAO');
Query_CX.ParamByName('BIANHAO').AsString := Edt_XMBH.Text;
end;
if Edt_XMMC.Text <> '' then// 项目名称,支持模糊查询
begin
Query_CX.SQL.Add('And MINGCHENG Like :MINGCHENG');
Query_CX.ParamByName('MINGCHENG').AsString := '%' + Edt_XMMC.Text + '%';
end;
ifEdt_XMFZ.Text <> '' then// 负责人,支持模糊查询
begin
Query_CX.SQL.Add(' And XINGMING Like :XINGMING');
Query_CX.ParamByName('XINGMING').AsString := '%' + Edt_XMFZ.Text + '%';
end;
Query_CX.SQL.Add(' Order By BIANHAO ASC');// 按项目编号升序排列
Query_CX.Prepare;
Query_CX.Open;// 打开连接,进行查询
end;
四、系统安全设计
(一)用户密码的加密
对数据库设置密码,用户登录需要帐号以及密码。用户帐号密码由管理员分配,不能进行自己注册,密码在数据库中进行加密保存。为了防止用户密码的泄露,需要对用户密码进行加密。目前最常用的方法是MD5算法。MD5是一种不可逆的算法,它把所有的数据都转换成一个128位的数据,而这个数据不能通过返函数的方式推导出原来的数据。如果要判断某数据是否与原来的数据相等,只能把新的数据进行一次MD5变换,然后用该变换结果与原来数据的变换结果比较,如果相等我们则认为两个原始数据是相等的。MD5真的很安全吗?实际上,从MD5诞生之日起,来自美国名为Van Oorschot和Wiener的两位密码学专家就发现了一个暴力搜寻冲突的函数,并预算出“使用一个专门用来搜索MD5冲突的机器可以平均每24天就找到一个冲突”。有关MD5的破译还包括“野蛮攻击”(也就是用“穷举法”从所有可能产生的结果中找到被MD5加密的原始明文)、“生日攻击”、“微分攻击”等多种破译方法。尽管如此,要破译MD5密码还是需要很多计算机时间,在一般的密码场合还够用,或者只要对MD5算法进行一些修改就够用了。如果需要更安全,可改用SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等算法。
(二)身份鉴别与授权
目前的Web应用系统所采用的身份鉴别和授权方法,都是通过输入用户名和密码的方式实现的,是一种简单和有效的方法。另外,为了防止有人通过机器暴力攻击,现在许多系统还附加了一个验证码,该验证码是一个已通过干扰处理的数字图片,机器一般不容易识别出来。但是,既然有人加干扰,就有人在研究如何识别干扰图片,所以这种方法也并非万全的方法。同时,在软件中,设立过滤器,让所有企图使用他人帐号访问,多次密码测试的用户,退出系统,并对该帐号进行24小时禁用或直到管理员重新赋予权限。
本系统是一个独立的部门内部管理系统,使用选项卡的简单操作界面實现了整个系统的各种功能,使得用户对经费的各种管理更加简洁方便,系统用户和数据的维护都很简单,强大的查询和报表打印功能为部门的管理方便地提供各种经费信息,是实用性较强的数据库管理软件。
研究与开发出一套实用的科研经费管理通用软件,实现科研经费管理的规范化信息化,并将其与科研管理其他方面的系统有效的连接起来,是今后科研管理系统乃至教育的各个系统提高管理工作的一个重要发展方向,具有时代意义,有助于增进国内教育水平的大幅度提高,提高国内高科技信息技术的高速发展。
【参考文献】
[1]刘前进,王蒙,张宏林,等.Delphi数据库编程技术[M].北京:人民邮电出版社,1999.
[2]林金霖.DELPHI6实务经典[M].中国铁道出版社,2000.
[3]侯太平,童爱红.DELPHI7数据库编程[M].北京:清华大学出版社,2004.
【作者简介】张丽娟(1980-),女,广西河池人,供职于广西民族大学科研处,研究方向:科研管理技术。
【关键词】Delphi;SQL;Server;经费管理
【中图分类号】TP31【文献标识】A
【文章编号】1671-5969(2007)06-0180-03
随着高校的教育信息技术水平的高速发展,高校各项管理制度变革正大步推进。科研管理作为高校管理的重要部分,也正沿着管理技术信息化的方向发展。目前国内的大部分高校都已使用计算机来对科研管理工作的很多方面进行系统管理,如科研课题管理、成果管理等。但是,在某些方面还有所欠缺。本文将在分析现有科研经费管理方式的基础上提出科研经费管理信息系统的设计方案,全面阐述了该系统模块的功能和结构并给出了实现技术。
一、现状分析
目前,国内大部分高校对科研经费的管理仅仅停留在手工管理阶段,且水平较低,由于不能及时了解各个科研项目的进度和开支情况,项目经费超支或挤占其他项目经费的现象时有发生,为了彻底解决这个方面的问题,在广泛调研的基础上,结合我们高校科研经费管理工作的实际,我们开发了这套“科研经费管理信息系统”,以便让科研处的经费管理更有条理性、科学化,更加方便地对科研经费的入帐、预算和开支等情况进行查询、统计等管理。
二、系统功能和模块设计
(一)系统功能
该系统主要用于完成项目分类和各个科研课题经费的入帐、开支等信息管理,以及实施对各种信息的查询、报表打印等功能。项目分类即根据项目经费的来源渠道将科研项目划分为不同种类,如国家自然科学基金项目、国家社会科学基金项目、区科技厅项目、教育厅项目、学校科研项目等,以便于了解各类项目的总投入、支出和结余情况。系统还提供了详尽的查询功能,用户可以通过组合条件、模糊查询的方法查询各类项目、各明细项目的开支和结余情况,对查询的结果可以浏览或打印。
(二)模块设计
1.系统结构。本系统的总体结构设计模块图如下图所示:
本系统使用的流程是先由管理员进行系统数据的初始化,然后由用户登录系统进行相关的各种操作。该系统主要实现的功能有四个:入账管理、开支管理、查询报表、系统管理。由使用权限系统角色可以分为两种类型:
(1)系统管理员:该用户可以进行系统中所有的操作,可以对系统进行修改,排除故障。
(2)普通用户:该用户可以进行科研经费的查询操作,这主要是为一般的科研人员所设置。
(二)模块设计
(1)入账管理模块。入帐管理模块主要是将来源渠道不同的科研经费划分为不同种类进行入帐,同时需要输入项目所属的类别、项目负责人、立项日期、计划完成日期以及拨款金额等信息,以便于了解各个科研项目详细情况。
(2)开支管理模塊。开支管理模块主要用于项目经费的开支控制,经费开支凭证是根据项目的实际开支数或根据财务部门的实际报销数为依据,输入时还需输入费用发生的日期、凭证编号、摘要等信息,以便于日后查询各个项目的开支情况。
pay=RIQI+BIANHAO+ZILIAO+CHALV+HUIYI+SHEBEI+ZIXUN+YINSHUA+OTHER+ALL
3.查询报表模块。查询报表模块是该系统的一个重要组成部分,用户可以通过组合条件、模糊查询的方法查询各类项目、各明细项目的开支和结余情况,对查询的结果可以浏览或者打印各类项目的余额账、打印各明细项目的余额账等。
三、实现技术
本系统的设计目的是在WINDOWS环境下使用Delphi编程技术访问SQL Server数据库,通过对数据库的管理来对科研经费的各种信息进行分配与管理。其基本思路是:在设计数据库的基础之上,通过自定义函数的建立实现数据窗口与数据表的合理结合。
在本系统的设计中,我们采用了SQL Server数据库来存放科研经费管理的所有数据,以备应用程序访问。Delphi是用于开发数据库应用程序强有力的工具。Delphi通过BDE、ADO、dbExpress等数据驱动和访问机制,可以访问多种数据格式以及开发灵活的客户/服务器体系(简称C/S)的数据库应用系统。Delphi开发环境集成了一个功能强大的本地数据库管理系统SQL Server,并自动地包含从SQL Server数据接口产品衍生过来的数据库引擎BDE,与其他本地数据库相比,SQL Server的兼容性好,存取效率较高。本系统用到的方法主要是应用SQL语言(Structure Query Language 结构化查询语言)配合Delphi对象进行数据的查询/新增/删除/修改等操作。
// 新增入账数据的实现
procedure TFormMain.Btn_RZClick(Sender: TObject);
begin
Table_RZ.Open;// 打开数据集
Table_RZ.Append; // 追加一条新记录
Table_RZ.FieldByName('LEIBIE').AsString := Edt_XMLB.Text; // 项目类别
Table_RZ.FieldByName('BIANHAO').AsString := Edt_XMBH.Text; // 项目编号
Table_RZ.FieldByName('MINGCHENG').AsString := Edt_XMMC.Text;// 项目名称
Table_RZ.FieldByName('XINGMING').AsString := Edt_XMFZ.Text; // 项目负责
Table_RZ.FieldByName('JINGER').AsFloat := Edt_JE.Text;// 项目金额
Table_RZ.FieldByName('LIXIANG').AsDateTime := Edt_LXRQ.Text;// 立项日期
Table_RZ.FieldByName('DAODI').AsDateTime := Edt_DQRQ.Text;// 到期日期
Table_RZ.Post;// 保存更新记录
End;
// 数据查询(模糊查询功能)的实现
Query_CX: TQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Cb_XMLB: TComboBox;
Edt_XMFZ: TEdit;
Edt_XMBH: TEdit;
Edt_XMMC: TEdit;
Dtp_DateS: TDateTimePicker;
Dtp_DateE: TDateTimePicker;
RBtn_LXRQ: TRadioButton;
RBtn_DQRQ: TRadioButton;
Btn_CX: TButton;
procedure TForm2.Btn_CXClick(Sender: TObject);
begin
Query_CX.Close; // 关闭数据库连接
Query_CX.SQL.Clear; // 清除SQL语句
Query_CX.SQL.Add('Select * From CHAXUN');
if RBtn_LXRQ.Checked then // 日期条件
Query_CX.SQL.Add(' Where LIXIANG >=:DateS And LIXIANG <=:DateE')
else
Query_CX.SQL.Add(' Where DAODI >=:DateS And DAODI <=:DateE');
Query_CX.ParamByName('DateS').AsDate := Dtp_DateS.Date;
Query_CX.ParamByName('DateE').AsDate := Dtp_DateE.Date;
ifCb_XMLB.Text <> '所有类别' then// 类别条件
begin
Query_CX.SQL.Add(' And LEIBIE =:LEIBIE');
Query_CX.ParamByName('LEIBIE').AsString := Cb_XMLB.Text;
end;
if Edt_XMBH.Text <> '' then// 编号条件
begin
Query_CX.SQL.Add(' And BIANHAO =:BIANHAO');
Query_CX.ParamByName('BIANHAO').AsString := Edt_XMBH.Text;
end;
if Edt_XMMC.Text <> '' then// 项目名称,支持模糊查询
begin
Query_CX.SQL.Add('And MINGCHENG Like :MINGCHENG');
Query_CX.ParamByName('MINGCHENG').AsString := '%' + Edt_XMMC.Text + '%';
end;
ifEdt_XMFZ.Text <> '' then// 负责人,支持模糊查询
begin
Query_CX.SQL.Add(' And XINGMING Like :XINGMING');
Query_CX.ParamByName('XINGMING').AsString := '%' + Edt_XMFZ.Text + '%';
end;
Query_CX.SQL.Add(' Order By BIANHAO ASC');// 按项目编号升序排列
Query_CX.Prepare;
Query_CX.Open;// 打开连接,进行查询
end;
四、系统安全设计
(一)用户密码的加密
对数据库设置密码,用户登录需要帐号以及密码。用户帐号密码由管理员分配,不能进行自己注册,密码在数据库中进行加密保存。为了防止用户密码的泄露,需要对用户密码进行加密。目前最常用的方法是MD5算法。MD5是一种不可逆的算法,它把所有的数据都转换成一个128位的数据,而这个数据不能通过返函数的方式推导出原来的数据。如果要判断某数据是否与原来的数据相等,只能把新的数据进行一次MD5变换,然后用该变换结果与原来数据的变换结果比较,如果相等我们则认为两个原始数据是相等的。MD5真的很安全吗?实际上,从MD5诞生之日起,来自美国名为Van Oorschot和Wiener的两位密码学专家就发现了一个暴力搜寻冲突的函数,并预算出“使用一个专门用来搜索MD5冲突的机器可以平均每24天就找到一个冲突”。有关MD5的破译还包括“野蛮攻击”(也就是用“穷举法”从所有可能产生的结果中找到被MD5加密的原始明文)、“生日攻击”、“微分攻击”等多种破译方法。尽管如此,要破译MD5密码还是需要很多计算机时间,在一般的密码场合还够用,或者只要对MD5算法进行一些修改就够用了。如果需要更安全,可改用SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等算法。
(二)身份鉴别与授权
目前的Web应用系统所采用的身份鉴别和授权方法,都是通过输入用户名和密码的方式实现的,是一种简单和有效的方法。另外,为了防止有人通过机器暴力攻击,现在许多系统还附加了一个验证码,该验证码是一个已通过干扰处理的数字图片,机器一般不容易识别出来。但是,既然有人加干扰,就有人在研究如何识别干扰图片,所以这种方法也并非万全的方法。同时,在软件中,设立过滤器,让所有企图使用他人帐号访问,多次密码测试的用户,退出系统,并对该帐号进行24小时禁用或直到管理员重新赋予权限。
本系统是一个独立的部门内部管理系统,使用选项卡的简单操作界面實现了整个系统的各种功能,使得用户对经费的各种管理更加简洁方便,系统用户和数据的维护都很简单,强大的查询和报表打印功能为部门的管理方便地提供各种经费信息,是实用性较强的数据库管理软件。
研究与开发出一套实用的科研经费管理通用软件,实现科研经费管理的规范化信息化,并将其与科研管理其他方面的系统有效的连接起来,是今后科研管理系统乃至教育的各个系统提高管理工作的一个重要发展方向,具有时代意义,有助于增进国内教育水平的大幅度提高,提高国内高科技信息技术的高速发展。
【参考文献】
[1]刘前进,王蒙,张宏林,等.Delphi数据库编程技术[M].北京:人民邮电出版社,1999.
[2]林金霖.DELPHI6实务经典[M].中国铁道出版社,2000.
[3]侯太平,童爱红.DELPHI7数据库编程[M].北京:清华大学出版社,2004.
【作者简介】张丽娟(1980-),女,广西河池人,供职于广西民族大学科研处,研究方向:科研管理技术。