1、目 录1引言12系统技术及运行环境12.1 ASP.NET简介12.2 Visual Studio 2005简介12.3 SQL Server 2005简介23系统分析23.1需求分析23.2可行性分析24总体设计34.1项目规划34.2系统功能图34.3系统功能介绍35数据库设计46主要模块设计66.1前台普通人员登录66.2预算上报76.3添加预算106.3预算执行126.4报销单上报146.5预算查询156.6修改密码176.7后台财务人员登录176.8项目(部门)查询186.9添加项目(部门)206.10预算详情查询216.11报销单信息236.12 汇总表信息247结束语25致 谢2
2、6参考文献271引言随着中国高等教育改革的深化和发展,高校预算成为高校财务管理的一项重要工作,在高校各项管理工作中日渐占据了举足轻重的地位。当前各高校普遍采用的财务管理软件,大多数都没有预算科目额度控制的功能,无法进行实时的预算控制,需要通过手工记账的方式来管理。树立科学编制预算, 严格预算程序和预算执行的观念规范会计核算,是高校不断提高管理水平的重要保障,也能使有限的资金发挥最大的经济效益。 本文探讨如何更好地将高校的财务核算工作和预算控制相结合,进行相应的财务决策计划、控制和分析。 本文将根据高校财务和预算管理的需要,简要总结预算控制理论中的预算控制模式、控制环节和控制方法以及预算管理系统
3、的定义和特点。并且针对高校财务管理系统中的预算管理模块作一研究,从而试图寻找适合高校的预算控制模式和方法。本文将详细介绍高校预算控制实施的内容和心得,并对目前高校预算控制模式和预算管理系统的改进提出了设想,从中总结出的成功或失败的经验可以为其他类型的非盈利组织提供可资借鉴的一般性规律。2系统技术及运行环境2.1 ASP.NET简介ASP.NET 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的的优势。执行效率的大幅提高。ASP.NET是把基于通用语言的程序在服务器上运行。是将程序在服务器端首次运行时进行编译
4、,这样的执行效果,当然比一条一条的解释强很多。简单性和易学性。ASP.NET是运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。2.2 Visual Studio 2005简介Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framewo
5、rk 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。 Visual Studio 2005是微软在2005年发布的一个VS版本。.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。2.3 SQL Server 2005简介SQL Server 2005是微软公司SQL Server生产线上的最受期待的产品。在成千上万的电子邮件、成百上千
6、的规格说明以及大量的编译的基础上,SQL Server 2005确保了自己是Windows平台上数据库应用程序中最具戏剧性的新型数据库平台。管理工具。SQL Server 2005引入一整套管理工具和管理API,管理工具和管理API使得SQL Server使用更方便、管理更轻松,并且支持大规模SQL Server部署操作。数据转换服务(DTS)的增强。DTS在SQL Server 2005中全部重新设计了、提供全面的企业提取、转换和装载平台。它也被重新命名为SQL服务器集成服务(SQL Server Integration Services)。3系统分析3.1需求分析通过初步调查和分析,以及和
7、学校计划财务处人员进行交谈,要求系统需要具有以下功能: 通过网络,实现预算的方便快捷管理; 由于网站的使用客户多,分布广泛,要求有较好的权限管理; 方便的实现预算上报和报销单上报以及增删改查操作; 通过后台对项目(部门)实现增删改查操作,以及对项目(部门)的各种渠道的预算或报销单进行那个审核或取消审核; 网站有良好的操作界面;3.2可行性分析(1)经济可行性目前我国高校的预算管理普遍存在管理思想保守、管理方式僵化、管理方法落后等问题.本文对高校预算管理体系建设进行探讨,旨在打破旧的高校预算管理理念,建立一个适应现代高校事业发展的、科学的预算管理体制,从管理方式及管理方法等全方位地改变高校预算管
8、理模式。(2)技术可行性本系统将大大改善数据处理速度,并且更加方便的对数据进行管理,同时可以减少人力资源的浪费以及工资支出 。对现有软件不会产生冲突,对使用的操作系统来说有很好的兼容性、稳定性。需要短时间来熟悉新系统,但不需要大量的培训。在以上限制条件下利用现有技术和人员,完全可以实现预期目标。开发人员应尽职尽责,尽量在规定期限内完成项目。4总体设计4.1项目规划项目(部门)预算管理系统是一个财务管理系统,是一个ASP.NET开发的B/S应用程序,由项目(部门)负责人前台申报预算、报销单和财务人员后台管理审核两大部分组成。(1)前台功能模块前台功能主要包括预算上报,报销单上报,预算查询,修改密
9、码。(2)后台管理模块后台主要包括项目(部门)管理,预算查询及审核,报销单查询及审核,汇总表查询及修改,修改密码。4.2系统功能图本预算管理系统网站,功能结构如图4.1所示:登录前台页面后台页面预算上报预算执行预算查询修改密码项目信息预算信息报销单信息汇总表信息修改密码图4.1 系统功能结构图4.3系统功能介绍前台页面主要包括以下的功能模块:l 预算上报:显示登录项目(部门)的不同渠道的所有预算信息。点击预算上报按钮实现预算添加。还可以对未审核的预算进行修改或删除。l 预算执行:显示登录项目(部门)的各个渠道的报销单信息。点击报销单上报实现报销单的添加。还可以对未审核的报销单进行修改或删除。l
10、 预算查询:显示登录项目(部门) 的不同渠道的所有预算信息,点击详细显示所有报销单信息。l 修改密码:项目(部门)的负责人可以自行修改密码。后台页面主要包括以下的功能模块:l 查看所有项目信息:显示所有项目(部门)的详细信息。可以进行增删改操作。点击预算信息查看对应项目(部门)的预算信息。l 查看所有预算信息:查看所有项目(部门)的预算信息,可以进行审核或取消审核操作。点击报销单信息可以查看对应项目(部门)和渠道的所有报销单信息。选择下拉列表里的不同项目(部门)可以查看对应的预算信息。l 查看所有报销单信息:可以进行审核或取消审核操作。选择下拉列表里的不同项目(部门)可以查看对应的报销单信息。
11、l 查看所有汇总表信息:查看所有预算的执行情况。可以修改预算金额。选择下拉列表里的不同项目(部门)可以查看对应的汇总表信息。l 修改密码:财务人员可自行修改密码。5数据库设计本系统的库采用Microsoft SQL Server 2005数据库,数据库名为Finance。以下是数据库表关系图,如图5.1所示:图5.1 数据库表关系图Finance数据库包括Items,Categories,Budgets,BankrollGather,Notes。(1)项目表Items该表是财务管理人员负责添加,修改,删除,用户平台可修改密码。其表的结构见表5.1。表5.1 Items表字段名数据类型备注Ite
12、mIdint主键自动增加1 Not nullItemNamevarchar(200)Not nullCategoryvarchar(50)Not nullManagervvarchar(50)Not nullPasswordvarchar(50)默认值123456 Not null(2)财务类别表Categories 该表是财务管理人员负责添加、修改和删除。其表的结构见表5.2。表5.2 Categories表字段名数据类型备注CategoryIdint主键自动增加1 Not nullCategoryNamevarchar(200)Not null(3)项目预算表Budgets该表是用户平台负
13、责添加数据,在审核状态”False”状态用户平台可以修改,删除数据;财务管理人员平台负责审核,审核完成以下操作:1.修改审核状态为”True”2.将项目编码, 报销渠道,预算金额,插入资金汇总表。其表的结构见表5.3。表5.3 Budgets表字段名数据类型备注ItemIdint外键 Not nullChannelvarchar(200)外键 Not nullBudgetMoneyNot nullExcusevarchar(500)Not nullAuditingbit默认值0 Not null(4)资金汇总表BankrollGather项目编码,报销渠道,预算金额由项目预算表Budgets提
14、供,预算执行金额由提供,财务管理人员平台可以修改预算金额字段)。其表的结构见表5.4。表5.4 BankrollGather表字段名数据类型备注ItemIdint外键 Not nullChannelvarchar(200)外键 Not nullBudgetMoneyNullBudgetExecuteMoneyNull(5)报销单表Notes该表是用户负责添加数 据,在审核状态” False”状态下用户平台可以修改,删除; 财务管理人员平台负责审核,审核完成以下操作1根据部门代码,报销渠道 查找部门资金表,判断预算余额,累加预算使用金额,2修改审核状态为”已审核” 。其表结构见表5.5。表5.5
15、 Notes表字段名数据类型备注NoteIdint主键自动增加1 Not nullItemIdint外键 Not nullChannelvarchar(200)Not nullCategoryIdint外键 Not nullDescribeVarchar(500)NullOperatorvarchar(200)NullCertifiervarchar(50)NullAssessorvarchar(50)NullCostmoneyNullAuditingbitNullUserdefined1-5varchar(200)NullUserdefined6-10intNull6主要模块设计6.1前台普
16、通人员登录环境科学与工程系的负责人xx登录,输入用户名和密码,项目名称选择“环境科学与工程系”。 单击登录按钮,通过ItemId是否为“0”判断是后台登录还是前台登录,ItemId为“0”时是后台财务人员登录,不为“0”时是前台普通用户登录。用户名密码跟正确则进入预算上报页面(SubmitBudget.aspx),若用户名密码错误,则显示“用户名或密码错误!”。如图6.1所示:图6.1 项目(部门)管理人员登录相关方法代码如下所示:protected void btnLogin_Click1(object sender, EventArgs e) Item item = new Item();
17、 item.Manager = this.txtLoginId.Text; item.Password = this.txtPwd.Text; item.ItemId = int.Parse(this.DropDownList1.SelectedValue); Item nitem = BudgetProBLL.ItemManager.login(item); if (nitem != null & nitem.ItemId != 0) Sessionnitem = nitem; Response.Redirect(/CommonUser/SubmitBudget.aspx); else if
18、 (nitem != null & nitem.ItemId = 0) Sessionnitem = nitem; Response.Redirect(/Admin/ItemsList.aspx); else this.lblMessage.Text = 用户名或密码错误!; 6.2预算上报预算上报页面(SubmitBudget.aspx),单击图中手型按钮可以修改预算,单击红叉按钮删除预算,如图6.2所示:图6.2 预算上报此页面所涉及的主要方法代码如下:protected void Page_Load(object sender, EventArgs e) if(!Page.IsPostB
19、ack) if (Sessionnitem = null) Response.Redirect(Login.aspx); else Bind(); private void Bind() Item item = (Item)Sessionnitem; List budgets=BudgetProBLL.BudgetManager.getBudgetsByItemId(item.ItemId); if(budgets.Count=0) this.lblMessage.Visible = true; this.lblMessage.Text = item.ItemName+暂时没有任何预算!; r
20、eturn; this.GridView1.DataSource =budgets ; this.GridView1.DataKeyNames = new string channel; this.GridView1.DataBind();protected void btnBudget_Click(object sender, EventArgs e) Response.Redirect(AddBudget.aspx);protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) this.GridVi
21、ew1.EditIndex= e.NewEditIndex; Bind(); bindChannel(e.NewEditIndex);/绑定channelprivate void bindChannel(int num) IList lists = BudgetProBLL.BudgetManager.GetChannels(); (this.GridView1.Rowsnum.FindControl(ddlChannel) as DropDownList).DataSource = lists; (this.GridView1.Rowsnum.FindControl(ddlChannel)
22、as DropDownList).DataBind(); string originalChannel =this.GridView1.DataKeysnum.Value.ToString(); for (int i = 0; i 0) this.lblMessages.Text = 已存在此预算!; return; else int num1 = BudgetProBLL.BudgetManager.AddBudget(budget); Response.Redirect(SubmitBudget.aspx); 6.3预算执行预算执行页面(BudgetExecute.aspx),如图6.6所
23、示:图6.6 预算执行相关方法代码如下所示:protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) if (Sessionnitem = null) Response.Redirect(Login.aspx); else BindNote(); private void BindNote() Item item = (Item)Sessionnitem; IList notes = BudgetProBLL.NoteManager.GetNotesByItemId(item.ItemId); if(n
24、otes.Count=0) this.lblMessage.Visible = true; this.lblMessage.Text = item.ItemName+暂时没有报销单!; this.GridView1.DataSource = notes; this.GridView1.DataBind();protected void btnReport_Click(object sender, EventArgs e) Response.Redirect(AddNote.aspx);protected void GridView1_RowDataBound(object sender, Gr
25、idViewRowEventArgs e) if (e.Row.RowType = DataControlRowType.DataRow) e.Row.Attributes.Add(onmouseover, currentcolor=this.style.backgroundColor;this.style.backgroundColor=#ff9900); e.Row.Attributes.Add(onmouseout, this.style.backgroundColor=currentcolor;); Label lblAuditing = (Label)e.Row.FindContro
26、l(lblAuditing); ImageButton imgbtnEdit = (ImageButton)e.Row.FindControl(imgbtnEdit); ImageButton imgbtnDelete = (ImageButton)e.Row.FindControl(imgbtnDelete); if (lblAuditing.Text = 已审核) imgbtnEdit.Visible = false; imgbtnDelete.Visible = false; else imgbtnEdit.Visible = true; imgbtnDelete.Visible = t
27、rue; ImageButton imgbtn = (ImageButton)e.Row.FindControl(imgbtnDelete); imgbtn.Attributes.Add(onclick, return confirm(您确认要删除吗?);); protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) string cmd = e.CommandName; int noteId = Convert.ToInt32(e.CommandArgument); if (cmd = Del
28、ete) BudgetProBLL.NoteManager.DeleteNotesByNoteId(noteId); if (cmd = Edit) Response.Redirect(EditNote.aspx?noteId= + noteId); BindNote();6.4报销单上报报销单上报(AddNote.aspx)页面,如图6.7所示:图6.7 报销单上报单击上报按钮,相关方法代码如下:protected void btnOK_Click(object sender, EventArgs e) Item item=(Item)Sessionnitem; Note note = ne
29、w Note(); note.ItemId = item.ItemId; note.Channel = this.ddlChannel.SelectedItem.ToString(); int categoryId=int.Parse(this.ddlCategory.SelectedValue); note.Categories = BudgetProBLL.CategoryManager.GetCategoryById(categoryId); note.Operator1 = this.txtOperator.Text; note.Cetifier = this.txtCertifer.
30、Text; note.Assessor = this.txtAssessor.Text; note.Describe = this.txtDescribe.Text; note.Cost =decimal.Parse(this.txtCost.Text); string message=BudgetProBLL.NoteManager.AddNote(note); Response.Redirect(BudgetExecute.aspx);6.5预算查询预算查询(BudgetSearch.aspx)页面,如图6.8所示:图6.8 预算查询点击详细按钮显示登录项目(部门)的对应渠道的所有报销单信
31、息(BudgetDetail.aspx),如图6.9所示:图6.9 报销单信息BudgetDetail.aspx页显示内容的相关方法代码如下:private void BindNotes() string channel = Request.QueryStringchannel.ToString(); Item item = (Item)Sessionnitem;IList notes =BudgetProBLL.NoteManager.GetNotesByItemIdAndChannel(item.ItemId,channel); if(notes.Count=0) this.lblMess
32、age.Visible = true; this.lblMessage.Text = item.ItemName+的+channel+预算暂时没有报销单!; return; this.GridView1.DataSource = notes; this.GridView1.DataBind(); protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowType = DataControlRowType.DataRow) e.Row.Attributes.Add(onmou
33、seover, currentcolor=this.style.backgroundColor;this.style.backgroundColor=#ff9900); e.Row.Attributes.Add(onmouseout, this.style.backgroundColor=currentcolor;); Label lblAuditing = (Label)e.Row.FindControl(lblAuditing);ImageButton imgbtnEdit = (ImageButton)e.Row.FindControl(imgbtnEdit); ImageButton imgbtnDelete = (ImageButton)e.Row.FindControl(imgbtnDelete); if (lblAuditing.Text = 已审核) imgbtnEdit.Visible = false; imgbtnDelete.Visible = false; else imgbtnEdit.Visible = true; imgbtnDelete.Visible = t