基于ASP和SPT技术的高校准实时账务查询系统

时间:2024-04-26 07:03:26 5A范文网 浏览: 论文范文 我要投稿


  论文检测天使-免费论文相似性查重http://www.jiancetianshi.com
[1]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr二、系统模型br />
该准实时查询系统的模型或拓扑结构如图1所示,其具体实现原理如下:首先是信息的传递过程,Web服务器通过两块网络适配器分别连接财务局域网和校园网,在Web服务器上运行SPT应用程序,来获取账务服务器中的财务数据,然后加工处理成信息使用者能够看懂的信息并提供给ASP应用程序调用,完成财务信息的提取、加工和发布;其次是网络模式的选论文格式择,基于校园网络的客户端(Client)是以B/S(Browse/Server)方式实现查询,不需要安装任何定制软件,只需IE浏览器即可,维护成本低且不受空间限制。Web服务器与账务系统的连接是以C/S(Client/Server)模式,要求专门的应用程序来定制需要发布的信息,完成财务数据再加工的过程;再次是准实时的实现,考虑到财务数据的安全性和数据再加工,本文将SPT应用程序加入Windows操作系统的任务计划中,可设定每间隔一段时间激发一次,间隔时间越短,则实时性越强。

三、系统设计

本系统不仅能提供以项目方式核算的财务查询,而且也能提供以科目余额为分析对象的业务查询。1.数据结构在财务系统中,项目代码和科目代码都是唯一的,因此,在用户信息表中,项目代码和科目代码可设置为查询的关键字段。在此系统中,每个用户至多可查询7个项目和两个科目,它们的顺序对应着用户登录时的下拉列表项(在本表中事先设置ID=1的记录为各项目和科目代码对应的类属名称),这类用户在权限设置上称为一般用户,其登录时只能按列表项选择要查询的项目或科目;用户名要求为经费项目负责人的真实姓名,这样可以用户名作为关键字段来查询该项目负责人的所有经费项目,这类用户在权限设置上称为主管级用户,其登录时不需选择项目,登录后直接显示该用户负责的所有项目;特殊级用户则显示所有用户信息表中已注册用户,各非空项目代码和科目代码设为超链接,直接点击查询。在实际应用中通过权限识别还加入了科研和教务板块。(2)项目信息表xmzw(见表2)一般信息管理系统中都要考虑到表结构设计中的数据冗余性,因而以上项目表数据是不能直接从财务系统中取得的,可按照以下公式计算而得:期末项目余额=年初余额+本年项目收入-上年和本年项目往来借方余额之和-项目支出对于预算事业类项目,本年项目收入就是当年预算数,其他非预算类项目则为当年取得的收入。因此表2是通过C/S端应用程序加工而成的。考虑到本系统是准实时的,所以加入项目余额截止时间点字段,以供查询者参考。(3)科目余额信息表kmzw(见表3)从设计者角度来说,只要是财务系统中的会计科目,都能够进行查询。就高校具体情况而言,查询一般的事业支出科目或资产类科目是没有意义的,绝大部分信息使用者关心的还是一些代管类、暂存类和专用基金类科目。科目信息表也与项目信息表一样,数据是不能直接获得的,需要加工提炼后才能得到该科目本年度收支余完整的信息。其计算公式按一般的复式记账平衡公式计算即可。表3科目余额信息表(4)凭证明细表pzdmxz记账凭证明细表是账务系统中记录最完整、信息最全的一张数据表,它是产生其他财务信息的基础,因此,本表图2用户信息表、项目信息表、科目余额信息表、凭证明细表之间的关系(E—R实体关系图)财务管理信息化可原封不动获取过来被ASP应用程序调用,以显示某项目或某个科目相对应的明细账信息。(5)表际关系可以通过E—R实体关系图来表示以上几张表的内在逻辑关系:2.主要代码(1)C/S端设计C/S端实际上是一个账务数据的获取和再加工程序。财务系统中的数据只能为专业人员所用,因而财务数据只有提炼成信息,加工成知识才能为更广泛的使用者充分利用。这一过程可具体分两个步骤来实现,首先是利用VFP(Visual FoxPro)开发平台中内嵌的SPT技术实现远程连接,将远程财务数据获取至Web服务器;其次是利用VFP语言来开发一个数据处理的应用程序,加工成客户端需求的信息。①SPT远程连接目前主流财务核算软件的后台数据库基本是SQLServer和Oracle(理论上只要提供ODBC接口都可以),其在VFP中通过SPT技术连接的程序源代码是:Con_sql=SQLSTRINGCONNECT("DRIVER=SQLSERVER};SERVER=CWC;UID=SA;PWD=JPYE;APP=MI-CROSOFT?VISUAL FOXPRO?;DATABASE=ZW")&&定义连接SQLServer句柄其中:cwc为账务服务器名;SA为SQLServer的用户名,其口令为JPYE;数据库名为ZW。sqlsetprop(0,"displogin",3)con_oracle=sqlstringconnect("DRIVER={MicrosoftODBC for Oracle};UID=CW;PWD=JPYE;SERVER=O-RA_SERVER;")&&定义连接Oracle句柄其中:CW为数据库用户名;JPYE为数据库口令;O-RA_SERVER为账务服务器名。ifcon_oracle<=0messagebox("连接账务服务器失败!",48,"错误信息")returnelsemessagebox("连接账务服务器成功!",64,"成功信息")endifcon_exe=SQLEXEC(CON_ORACLE,"SELECT*FROM科目余额表","TEMP1")&&取所有月份的科目余额数据同理,可以获取所有需要再加工的各种账表,如记账凭证表、项目信息表、项目余额表及科目项目余额表等。②VFP数据处理代码首先是对项目的处理,处理后的信息应包括项目的收支余和项目明细账,在项目明细账中过滤掉已冲销的往来账,并把借贷术语改为支出和收入,这样即使非专业人员也能一目了然,财务信息就变得清晰易懂了;其次是对科目的处理,处理后的信息应包含科目的收支余和科目明细账,由于科目查询主要是代管类、暂存类和专用基金类科目,其明细账的借贷方也可改为支出和收入方。同理也可以做更复杂的处理,如某项目用于本科教学水平评估的4项教学经费数、若干会计期间的比较等。本文应用的是复旦天翼财务系统,这里的代码可根据不同单位的实际情况和需要提供的财务信息而定,在此仅举科目余额信息表处理过程以作参考。AMT="AMT"+Alltrim(Str(Year(Date())))con_exe=SQLEXEC(CON_ORACLE,"SELECT*FROM&AMT","TEMP1")Select*Fromtemp1 IntoDbf&AMT&&将远程获取的临时表保存到本地Use&AMTExclusiveAlter Table&AMTAdd Column AMT00 N(16,2)Replace All AMT00 With(D_AMOUNT)ForSMONTH=0&&计算余额在贷方的期初数Replace All AMT00 With(J_AMOUNT)ForSMONTH=0 And AMT00=0&&计算余额在借方的期初数IndexOn Alltrim(Code)Toamtind&&code为科目代码Total On Alltrim(Code)To kk Fields J_AMOUNT,D_AMOUNTAlter Table kk Add Column rq DatetimeAlter Table kk Add Column d_yek N(16,2)Alter Table kk Add Column j_yek N(16,2)Alter Table kk Add Column amttotal N(16,2)Select kkReplace All amttotal With(D_AMOUNT-J_AMOUNT)For Substr(Code,1,1)="2".Or.;SUBSTR(Code,1,1)="3".Or.Substr(Code,1,1)="4"&&计算贷方期末数Replace All d_yek With(D_AMOUNT-AMT00)ForSubstr(Code,1,1)="2".Or.;SUBSTR(Code,1,1)="3".Or.Substr(Code,1,1)="4"&&计算本年收入Replace amttotal With(J_AMOUNT-D_AMOUNT)For SUBSTR(Code,1,1)="1"Or Substr(Code,1,1)="5"Replace All j_yek With(J_AMOUNT-AMT00)ForSUBSTR(Code,1,1)="1"Or Substr(Code,1,1)="5"Replace All rq With Datetime()CopyTokmzwType Fox2(2)B/S端设计B/S端是将信息显示给最终使用者,由于ASP代码本身对数据处理能力有限,所以其主要作用就是提取C/S端已加工完成的财务信息进行网络发布。①登录时部分代码当前年度上一年度‘登录时选择项