凭证管理及报表分析系统_第1页
凭证管理及报表分析系统_第2页
凭证管理及报表分析系统_第3页
凭证管理及报表分析系统_第4页
凭证管理及报表分析系统_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(科研训练、毕业设计)题目:凭证管理及报表分析系统姓名:陈肖如学院:软件学院系:软件工程专业:软件工程年级:2003级学号:03368004指导教师(校内):史亮职称:讲师指导教师(校外):王磊职称:工程师2005年6凭证管理及报表分析系统[摘要]我国加入WTO以后,我国金融业将面临来自国外的竞争,也给中国金融业带来了压力,如何利用更加科学和高效的手段对经营数据进行分析,是商业银行业务发展的需要。在此背景下,我们开发了凭证管理及报表分析系统。该系统采用J2EE架构,使用了MVC模式,并以目前较为流行的基于J2EE的应用程序框架Struts作为开发框架,尝试了J2EE在信息管理领域和数据统计领域中的应用。凭证管理及报表分析系统是基于Web的凭证及报表的生成打印系统。该系统可以协助银行管理人员管理特种转帐明细记录,并从中获取有价值的统计信息,从而达到管理分析和决策支持的目的。[关键词]J2EEStrutsB/S架构MVC模型JavaBeanVouchermanagementandreportanalysissystem[Abstract]AfterjoiningtoWTO,Chinawillfacethecompetitiontofinanceindustryfromoverseas,thus,ourcommercialbanksmustthinkabouthowtoanalyzethebusinessdatamorescientifically.Withthisbackground,wedeveloptheVouchermanagementandreportanalysissystem.TryingtouseJ2EEininformationmanagementdomainanddatastatisticsdomain,thesystemuseJ2EEstructure,theMVCpatternandtheStrutsframework.Thissystemwillhelpthebankmanagermanagethedealingrecord,andgetvaluableinformationfromthem.[Keyword]J2EEStrutsB/SMVCJavaBean目录中文摘要Abstract第1章绪论 11.1引言 11.2研究背景与研究意义 11.3工作内容 21.4论文组织结构 2第2章J2EE相关技术介绍 32.1J2EE(Java2EnterpriseEdition) 32.2MVC模式 42.3Struts框架 52.4本章小结 6第3章系统总体架构设计 73.1总体功能框架 73.2应用系统的数据流向 83.3部分组件的的设计 83.3.1数据事件对象(Event) 83.3.2数据访问对象(DataAccessObject) 93.4本章小结 10第4章部分模块的设计与实现 114.1登陆界面 114.2凭证管理模块的设计与实现 124.2.1凭证管理顺序图 124.2.2界面实现 134.3报表分析模块的设计与实现 164.3.1相关名词的说明 164.3.2操作流程图 184.3.2界面实现 184.4本章小结 24第5章部分技术难点的实现 255.1Struts中分页显示的实现 255.1.1searchResult.jsp 255.1.2PaginationBean.java 265.2金额转换的实现 275.2本章小结 32第六章总结 33致谢语 34参考文献 35第1章绪论1.1引言当前,随着技术的日益进步,传统的软件开发两层结构正逐渐转变为多层体系结构,但在带来巨大的灵活性的同时,也增加了创建、测试、配置、管理和维护应用组件的复杂性;企业、公司纷纷需要参与到Internet中来,各种业务都进入了网络,这些企业级应用的快速增长促使其需要一个强壮的、企业级的、以web为中心的应用结构来支撑。以J2EE技术为代表的分布式对象技术和组件技术为解决上述的种种问题提供了一条很好的途径。J2EE技术的运用,降低了开发多层服务的成本和复杂性,使企业面对新的需求能够迅速部署和增强服务,极大地提高软件的生产率。本系统对J2EE技术的采用,充分体现了其技术优点。1.2研究背景与研究意义在金融领域,尽管目前正在进行数据大集中,但是仍然有许多的业务数据需要手工以书面形式传送。这种重复工作,加大了业务处室的工作负担,在一定程度上也影响工作效率。同时,在我国加入WTO以后,我国金融业将面临来自国外的竞争,也给中国金融业带来了压力。如何利用更加科学和高效的手段对经营数据进行分析,是商业银行业务发展的需要。当前,现代商业银行基本上已经建立起了完备的业务系统,积累了相对丰富的历史数据,可以利用这些宝贵的历史数据为银行服务,包括从历史数据中发现金融市场的发展规律、预测业务未来的变化趋势、洞悉业务经营的状况、预测和监控风险、辅助决策者发现新的利润增长点、优化银行的资金配置、帮助银行更加稳健地实现银行的管理和经营目标。1.3工作内容凭证管理及报表分析系统是基于Web的凭证及报表的生成打印系统。该系统可以协助银行管理人员管理特种转帐明细记录,并从中获取有价值的统计信息,从而达到管理分析和决策支持的目的。具体包括:交易记录的查询、修改功能,凭证的预览打印功能,传统报表以及图形报表的定制、打印功能,和一般的系统管理功能。1.4论文组织结构本文将依次介绍以下内容:在第二章中,我们将主要介绍J2EE相关技术,包括J2EE的基本概念,其常见模式MVC(Model-View-Controller)的体系结构,以及目前较为流行的基于J2EE的应用程序开发框架Struts的基本组成。在第三章中,我们将提出凭证管理及报表分析系统的总体设计,包括系统的功能框架、数据在系统中的流向和部分组件的设计。在第四章中,我们将给出本系统的具体实现。主要包括凭证管理模块的实现顺序、界面实现,和报表分析模块的操作流程、界面实现等。在第五章中,我们将以Struts中的分页显示,以及金额数值向中文大写金额的转换这两个技术难点的实现细节为例,介绍本系统的一些技术特点。第2章J2EE相关技术介绍Java2平台企业版,也就是J2EE,定义了开发多层企业应用程序的标准。它的诞生并不是偶然的,它是在各种条件积累成熟之下的产物。2.1J2EE(Java2EnterpriseEdition)J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议――通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是J2EE典型的多层结构[1]:(1)Clienttier客户层一般为浏览器或其他应用。客户层普遍地支持HTTP协议,也称客户代理。(2)WEBtierWEB应用层在J2EE中,这一层由WEB容器运行,它包括JSP,SERVLET等WEB部件。(3)EJBtier企业组件层企业组件层由EJB容器运行,支持EJB,JMS,JTA等服务和技术。(4)EIStier企业信息系统层企业信息系统包含企业内传统信息系统如财务,CRM等,特点是有数据库系统的支持。图2-1J2EE体系架构2.2MVC模式MVC(Model-View-Controller)模式是交互式应用程序广泛使用的一种体系结构。它有效地在存储和展示数据的对象中区分功能模块以降低它们之间的连接度,这种体系结构将传统的输入、处理和输入模型转化为图形显示的用户交互模型,或者换一种说法,是多层次的Web商业应用;MVC体系结构具有三个层面:模型(Model)、视图(View)和控制(Controller),每个层面有其各自的功能作用,MVC体系结构如下:图2-2MVC模型(B/S模式)[2]模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这一层就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传送给控制器。控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作;在一个图形界面中,常见的用户输入包括点击按钮和菜单选择。在Web应用中,它包括对Web层的HTTPGET和POST的请求;控制层可以基于用户的交互和模型层的操作结果来选择下一个可以显示的视图,一个应用程序通常会基于一组相关功能设定一个控制层的模块,甚至一些应用程序会根据不同的用户类型具有不同的控制层设定,这主要是由于不同用户的视图交互和选择也是不同的[3]。在模型层、视图层和控制层之间划分责任可以减少代码的重复度,并使应用程序维护起来更简单。同时由于数据和商务逻辑的分开,在新的数据源加入和数据显示变化的时候,数据处理也会变得更简单。2.3Struts框架Struts是Apache软件基金会资助的一个开放源代码框架,是一个免费的开源的WEB层的应用框架。Struts有一组相互协作的类(组件)、Serlvet以及jsptaglib组成。基于struts构架的web应用程序基本上符合Model2的设计标准,可以说是MVC设计模式的一种变化类型。Struts是一个webframwork,而不仅仅是一些标记库的组合。但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和ObjectRelationBridge。在视图层,Struts能够与JSP,VelocityTemplates,XSL等等这些表示层组件想结合。图2-3Struts架构2.4本章小结本章主要介绍了J2EE的基本概念,其常见模式MVC(Model-View-Controller)的体系结构,以及目前较为流行的基于J2EE的应用程序开发框架Struts的基本组成。下一章将提出凭证管理及报表分析系统的总体设计方案。第3章系统总体架构设计系统总体设计是指根据项目的需求,结合项目背景,提出系统的开发方案,并做出系统的总体开发结构的设计。3.1总体功能框架如下图所示:系统设置系统设置用户管理报表定制柱状图报表饼状图报表报表打印凭证管理及报表分析系统凭证管理系统管理报表分析记录查询记录修改凭证打印凭证预览图3-1功能模块图3.2应用系统的数据流向数据的流向图如下:WebBrowserWebBrowserStrutsActionFormRequestEventActionDispatcherBusinessLogicDAODatabasestartResponseEvent图3-2数据流向图(1)浏览器的请求通过HTTP协议进入Struts的Web层架构,由ActionServlet来处理客户端的HTTP请求。当ActionServlet接收到客户请求后,会根据配置文件中的映射关系,将客户请求转交给合适的处理器进行处理。(2)处理器直接调用不同的业务逻辑处理这些请求;或分发这些请求到其他的处理器进行二次处理甚至三次处理,形成处理链。(3)业务逻辑处理层根据不同的请求参数对象和数据做相应的处理,然后通过DAO(DataAccessObject)返回数据对象(VO)给业务层。(4)数据对象通过ResponseEvent,传回给客户端。3.3部分组件的的设计3.3.1数据事件对象(Event)数据事件对象又包括请求事件对象(RequestEvent),返回事件对象(ResponseEvent)。通过事件来实现服务器与客户端之间数据的传送。实现方式:(1)RequestEvent实现了java.IO.Serializable接口,用来封装向EJB核心层传递的消息。RequestEvent是一个抽象类,在使用的时候必须要实现此抽象类。他的实现类将一系列将要传送给EJB核心层的属性封装,并为这些属性设置getter和setter方法。这些属性封装的是ValueObject对象类型。比如说,对于web客户端,我们将把在JSP页面生成的ActionForm(javabean)对象作为RequestEvent对象的一个属性,并为它生成getter和setter方法。RequestEvent对象会在客户端被生成,并作为参数传递给处理器,最终被对应的业务逻辑处理,并在处理之后被清除。(2)ResponseEvent同样也实现了java.IO.Serializable接口,用来封装从EJB核心层传递到各种不同的客户端的数据。类似于RequestEvent,ResponseEvent中要封装一些ValueObject(javabean),这些ValueObject是根据不同的业务流程所产生的。ValueObject的封装形式要根据不同的业务流程去具体判断,这里不做详细的描述。此外,如果在ResponseEvent对象中要封装相同的ValueObject类的多个对象时,要使用ArrayList对象来把这多个ValueObject对象封装起来。ResponseEvent的生存周期与RequestEvent正好相反,也就是说,哪里生成的RequestEvent,那里就清除相应的ResponseEvent;哪里清除RequestEvent,那么就对应的生成ResponseEvent。3.3.2数据访问对象(DataAccessObject)数据访问对象(DAO)封装了对数据源的访问和操作,以保证业务逻辑对数据源的透明访问。业务逻辑都通过DAO来实现对数据库的访问所以业务逻辑只看到业务逻辑的操作方法,看不到后台的数据库的具体实现,这就实现了业务逻辑与数据逻辑的分离。实现方式:每个BusinessObject对应一个(Table),但是能够操作多个数据库表。每个数据库表对应一个DAO。简化业务逻辑与数据访问的层次,不设置单独的BusinessObject层,将BusinessObject和DAO合成一层。也就是说,对于对应多个数据库表的BusinessObject,直接在主要的DAO中包含将对其他辅表的DAO的访问,这种BusinessObject和DAO在一个Class中实现的对象称为BPO。BusinessObject中只应该包含数据层的逻辑,不能包含业务流程层的逻辑。DAO类中不仅能处理对单个对象(Row/Record),而且能够处理多个对象(RowSet/RecordSet),这也是符合OO的概念的体现。3.4本章小结本章描述了系统的总体设计,包括系统的功能框架、数据在系统中的流向和部分组件的设计。下一章将阐述系统部分模块的详细设计。第4章部分模块的设计与实现凭证管理和报表分析是本系统的核心模块,本章将对这两个模块的设计和实现进行详细介绍。4.1登陆界面基于银行内部管理的需要,凭证管理及报表分析系统不支持用户的注册,而是采用用户及其权限预分配的使用方法,因此在登陆界面上不出现注册功能。系统登陆界面如图4-1:图4-1登陆界面4.2凭证管理模块的设计与实现4.2.1凭证管理顺序图用户在进入凭证管理界面后可以进行以下操作:(1)输入0个或多个条件,进行明细记录的查询。(2)若查询结果不为空,选择一条记录进行修改。(3)若查询结果不为空,选择一条记录预览对应的电子凭证。(4)重新进行查询。如图4-2:预览该记录电子凭证预览该记录电子凭证打印预览的凭证打印多个凭证execute(ActionMapping,ActionForm,ServletResult,ServletResponse)对查询结果调用分页逻辑查询记录分页显示翻页修改记录修改成功或取消execute(ActionMapping,ActionForm,ServletResult,ServletResponse)查询界面(jsp)预览打印分页逻辑查询结果(jsp)修改重新查询图4-2凭证管理顺序图4.2.2界面实现记录查询页面用户根据提示,输入0个或任意多个查询条件,输入0个条件视为无条件限制,并且支持商户名字段的中文模糊查询。如图4-3:图4-3记录查询页面4.2.2对查询所得结果进行分页显示。每条记录所显示的字段为:该记录在查询结果中的编号、日期、付款人帐号、付款人名称、付款人开户行、收款人帐号、收款人名称、收款人开户行、金额和用途,其中金额字段由数据库表中的净金额字段与交易金额字段相减得出。对需要打印电子凭证的记录,可利用复选框,进行一次性打印。如图4-4:图4-4结果输出页面记录修改页面对查询所得的某条记录,点击其后面的“修改”按钮,进入记录修改页面。由于记录内容的特殊性,只有规定的字段可以作出修改。为了避免对信息的非法修改,修改页面做出了相应的设置,使修改仅限于允许的范围。若修改成功,返回修改前的查询结果输出页面,并更新被修改的记录。如图4-5:图4-5记录修改页面凭证预览页面对查询所得的某条记录,点击其后面的“预览”按钮,弹出该条记录对应的电子凭证的预览页面。凭证的具体名称为“特种转帐贷方凭证”,其规格遵循《中华人民共和国票据法》。该电子凭证可直接打印。如图4-6:图4-6凭证预览页面4.3报表分析模块的设计与实现4.3.1相关名词的说明利润由于需求的特殊性,本系统的操作对象为银行特种转帐明细记录,每笔转帐所得利润即该笔转帐收取的手续费,手续费按以下方式收取:(1)计算应付金额应付金额=净金额-交易金额(4-1)(2)应付金额为正时不收取手续费(3)应付金额为负时收取手续费,具体数额按以下公式计算:a.付款人开户行为异地他行(XXX行):手续费(50元封顶)=基本费3元/笔(至少收3元)+应付金额×1%(4-2)b.付款人开户行为异地我行(XX建行):手续费(50元封顶)=基本费1元/笔(至少付1元)+应付金额×0.5%(4-3)c.付款人开户行为本地我行(厦门建行):手续费=基本费1元/笔(只收1元)(4-4)d.付款人开户行为本地他行(厦门X行):手续费(50元封顶)=基本费2元/笔(至少收2元)+应付金额×0.5%(4-5)利润贡献度利润贡献度是一个短期的、某一时点上的和基于历史分析的概念。对本系统而言,利润贡献度就是某客户或客户组群或某一时间段,在某一期间为企业带来的利润。利润贡献度分析的主要目标是帮助银行了解其利润贡献度构成因子的分布状况,使行领导能够从不同角度进行绩效评估,制定相应的经营策略,进一步完善分行及业务部门的自身分析和流程规划。维度在数据仓库的概念中,维度(Dimension)是用来反映业务的一类属性,这类属性的集合构成一个维度,如时间、地理位置或产品。而在数据挖掘与OLAP的概念中,其目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心就是"维"这个概念。

“维”一般包含着层次关系,通过把一个实体的多项重要的属性定义为多个维,使用户能对不同维上的数据进行比较。在本系统中,统计分析在客户和时间这两个维度上进行,客户维度有(所有客户)-(单个客户)这两个层次;时间维度有(年度)-(季度)-(月份)这三个层次。4.3.2操作流程图NNo选择维度选择度量和参照基准生成报表是否要生成图形报表Yes显示图形报表是否要重新定制YesNo图4-7报表定制流程图4.3.2界面实现维度选择进行报表定制的第一步,是选择统计的维度。本系统有客户和时间这两个维度供选择,可选择时间维度,或客户维度,或同时选择时间和客户维度。如图4-8:图4-8维度选择度量选择进行报表定制的第二步,是选择统计的度量。根据第一步所选的维度,可选择不同的度量。包括对维度层次的选择,和对利润贡献度计算的参照基准的选择。参照基准即利润贡献度的时间跨度。维度选择客户时,度量选择界面如图4-9。维度选择时间和客户时,度量选择界面如图4-10。图4-9度量选择1图4-10度量选择报表展示根据前面用户输入的定制条件,统计利润额及利润贡献度,生成报表。用户可根据需要,查看对应的柱状图报表或饼状图报表,或对报表进行打印。以统计维度为时间为例,生成报表如图4-11:以统计维度为客户为例,生成报表如图4-12:图4-11报表1图4-12报表柱状图报表图形报表是对传统报表的一个现代化的表现形式,为客户提供了更为直观的统计信息。对生成的报表,可查看其对应的柱状图报表。以统计维度为时间为例,生成报表如图4-13:以统计维度为客户为例,生成报表如图4-14:图4-13柱状图1图4-14柱状图饼状图报表同样,对生成的传统形式报表,可查看其对应的饼状图报表。以统计维度为时间为例,生成报表如图4-15:图4-15饼状图4.4本章小结本章以凭证管理模块和报表分析模块为例,介绍了本系统的具体实现。主要内容包括凭证管理模块的实现顺序、界面实现,和报表分析模块的操作流程、界面实现等。下一章将剖析开发过程中部分技术难点的实现。第5章部分技术难点的实现在前面的章节中,系统的设计工作已经得到详细的说明,本章将对体现本系统技术特点的部分技术难点进行分析。5.1Struts中分页显示的实现目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,比在应用服务器层做缓存更为有效。本系统采用后者实现分页。5.1.1searchResult.jsp……//跳到第一页<html:linkparamId="curren_page"paramName="first_page"page="/paginationBean.do"> [第一页]</html:link>//翻到上一页<logic:presentname="previous"><html:linkparamId="curren_page"paramName="previous"page="/paginationBean.do"> [上一页]</html:link></logic:present>//翻到下一页<logic:presentname="next"><html:linkparamId="curren_page"paramName="next"page="/paginationBean.do"> [下一页]</html:link></logic:present>//跳到最后一页<html:linkparamId="curren_page"paramName="last_page"page="/paginationBean.do"> [最后一页]</html:link>……5.1.2PaginationBean.java……intpage_count=0;//总页数intcurren_page=0;//当前页码intprevious=0;//上一页页码intnext=0;//下一页页码try{ HttpSessionsession=request.getSession(); RecordDaodao=(RecordDao)session.getAttribute("RecordDao"); page_count=((Integer)session.getAttribute("page_count")).intValue(); curren_page=Integer.parseInt(request.getParameter("curren_page")); dao.setPagination_SQL(curren_page); RecordVo[]recordVoArray=dao.searchRecord(); session.setAttribute("RecordVo",recordVoArray); previous=curren_1; if(previous>=0)//若有上一页 request.setAttribute("previous",newInteger(previous));next=curren_page+1; if(next<page_count)//若有下一页 request.setAttribute("next",newInteger(next));}……5.2金额转换的实现预览电子凭证时,金额一栏需要自动填写符合规范的中文大写金额,其转换由转换器AmountConvertor实现。/*AmountConvertor.java*用于把数值型金额转换成字符串型的中文大写金额*/importjava.text.*;importjava.math.*;publicclassAmountConvertor{ StringChineseAmount; publicAmountConvertor() {} /**********************格式化函数**************************/ publicStringtoFormatedString(doubleamount)//把数值转为"0.00"格式的字符串 { if(amount<0) { ChineseAmount+="负"; amount=Math.abs(amount); } //double型转为BigDecimal型 BigDecimalb=newBigDecimal(Double.toString(amount)); BigDecimalone=newBigDecimal("1"); doubleround=b.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue(); DecimalFormatdf=newDecimalFormat("0.00");//显示为2位小数的格式 Stringdigit=df.format(round).toString();//转为字符串 returndigit; } /**********************主转换函数****************************/ publicStringAmountConvert(doubleamount) { ChineseAmount=""; /*1.格式化*/ StringformatedString=this.toFormatedString(amount); //分析数值,转换为大写金额 Stringfragment1="",fragment2="",fragment3=""; chartail; intdecimalPosition=formatedString.indexOf("."); //一个数值分为多个部分处理: //整数部分每4位作为一个部分,小数作为一个部分 /*2.处理整数部分*/ if(decimalPosition>=5&&decimalPosition<=8) { fragment1=formatedString.substring(0,decimalPosition-4); fragment2=formatedString.substring(decimalPosition-4,decimalPosition); fragment3=formatedString.substring(decimalPosition+1); fragment1=this.fragmentConvert(fragment1); fragment2=this.fragmentConvert(fragment2); tail=fragment1.charAt(fragment1.length()-1); ChineseAmount+=fragment1+"万"; if((tail=='拾'||tail=='佰'||tail=='仟')//万位为0且千位不为0 &&!fragment2.equals("") &&fragment2.charAt(0)!='零') ChineseAmount+="零"; //加"零"字 } elseif(decimalPosition>=1&&decimalPosition<=4)//整数分为1部分 { fragment2=formatedString.substring(0,decimalPosition); fragment2=this.fragmentConvert(fragment2); fragment3=formatedString.substring(decimalPosition+1); } ChineseAmount+=fragment2; if(!fragment1.equals("")||!fragment2.equals(""))//整数部分不为0 ChineseAmount+="元"; elseif(fragment3.equals("00"))//整数部分为0且小数部分也为0 { ChineseAmount="零元"; returnChineseAmount; } /*3.处理小数部分*/ if(fragment3.equals("00"))//整数部分不为0但小数部分为0 ChineseAmount+="整"; else//小数部分不为0 {//第一位小数为0 if(fragment3.charAt(0)=='0'&&!ChineseAmount.equals("")) ChineseAmount+="零"; elseif(fragment3.charAt(0)!='0')//第一位小数不为0 ChineseAmount+=this.numberConvert(fragment3.charAt(0))+"角"; if(fragment3.charAt(1)!='0')//第二位小数不为0 ChineseAmount+=this.numberConvert(fragment3.charAt(1))+"分"; } returnChineseAmount; } /**********************4位转换函数**************************/ publicStringfragmentConvert(Stringfragment)//以1—4位数为单位进行转换 { inti=1; StringconvertedFragment=""; intlength=fragment.length(); //千位转换 if(length==4) { if(fragment.charAt(0)=='0')//千位为0 { for(i=1;i<length;i++) { if(fragment.charAt(i)!='0') break; } if(i==length)//4位都为0 returnconvertedFragment; convertedFragment+="零"; fragment=newString(fragment.substring(i)); length=fragment.length(); } else//千位不为0 { convertedFragment+=this.numberConvert(fragment.charAt(0))+"仟"; fragment=newString(fragment.substring(1)); length--; } } //百位转换 if(length==3) { if(fragment.charAt(0)=='0')//百位为0 { for(i=1;i<length;i++) { if(fragment.charAt(i)!='0') break; } if(i==length)//3位都为0 returnconvertedFragment; convertedFragment+="零"; fragment=newString(fragment.substring(i)); length=fragment.length(); } else//百位不为0 { convertedFragment+=this.numberConvert(fragment.charAt(0))+"佰"; fragment=newString(fragment.substring(1)); length--; } } //十位转换 if(length==2) { if(fragment.charAt(0)=='0')//十位为0 { if(fragment.charAt(1)=='0')//2位都为0 returnconvertedFragment; convertedFragment+="零"; } else//十位不为0 { convertedFragment+=this.numberConvert(fragment.charAt(0))+"拾"; } fragment=newString(fragment.substring(1)); length--; } //个位转换 if(length==1) { if(fragment.charAt(0)!='0')//个位不为0 convertedFragment+=this.numberConvert(fragment.charAt(0)); returnconvertedFragment; } returnconvertedFragment; } /**********************字符转换函数*************************/ publicStringnumberConvert(charnumber)//阿拉伯数字对应的中文大写数字 { switch(number) { case'0': return"零"; case'1': return"壹"; case'2': return"贰"; case'3': return"叁"; case'4': return"肆"; case'5': return"伍"; case'6': return"陆"; case'7': return"柒"; case'8': return"捌"; case'9': return"玖"; } return""; }}5.2本章小结本章主要以Struts中的分页显示,以及金额数值向中文大写金额的转换这两个技术难点的实现细节为例,介绍了本系统的一些技术特点。第六章总结凭证管理及报表分析系统采用了现代的网络技术、计算机技术和信息技术,在对报表及凭证的管理国际化、规范化、标准化和程序化的基础上,完成有关数据的收集、传送、加工、处理、存储和输出等工作,并能生成具有价值的报表和符合准则的电子凭证。因此,该系统是以现代技术为手段,结合现代管理思想和方法,具备一定的管理分析和决策支持功能的信息系统,具有良好的界面和方便、灵活的操作方式。凭证管理及报表分析系统的开发使用目前流行的Struts框架,采用基于网络的B/S架构,结合Jsp、Javascript和xml等技术,按照3层模型来搭建整个系统。Struts为Web应用提供了一个通用的架构,使开发人员可以把精力集中在如何解决实际业务问题上。另外,开发周期明显地缩短了,可以快捷地开发出结构清晰、表示与内容分离、高性能、高扩展性、高可靠性、高安全性的应用程序,也提高了软件的可维护性和代码重用性。该系统的建设符合当前的技术发展方向,具备了良好的开放性和扩展性,为本系统的发展在技术持续性和可延伸化方面奠定了基础。致谢语感谢厦门大学及软件学院领导给我们提供一个良好的氛围,使我们能够顺利的完成本科毕业设计。感谢建设银行厦门开发中心!在毕业论文实习期间,公司为我提供了一个良好的实习环境,使我能够有机会体验软件项目开发的的整个过程,并从实践中学到了许多东西。衷心感谢建设银行厦门开发中心的王磊老师和软件学院的史亮老师!两位老师时刻关注论文的进展情况,并且花费了时间和精力给以指导和审核。感谢父母家人对我无私的关怀和支持。感谢好友们的理解和帮助。最后感谢在近二十年学生生涯中帮助我、鼓励我的所有人!参考文献[1]刘湛.J2EE全面简介[N]./study/jsp/2004082519350225217.html.2001-7[2]郭燕.基于MVC的B/S体系结构的应用研究[D].南京:南京化工职业技术学院自动控制系,2003.[3]务实.J2EE体系结构设计[N]./developer/code/story/0,3800066897,39174509,00.htm.2005-1-14.[4]马岩.用Struts开发基于MVC的Web应用[N]./Edu/Development/Java/0541312201368124.htm.2005-4-13.[5]龚永生.当前流行的J2EEWEB应用架构分析[N]./developerworks/cn/java/l-j2eeArch/index.html.2001-7-12.[6]王燕莉.基于J2EE的金融领域综合信息应用案例[N]./cio/solution/htm2004/20040429_09S4A.asp.2005-2-27.[7]黄理,李积善,曹林有等.用JSP轻松开发Web网站[M].北京:北京希望电子出版社,2000.[8]陆荣幸,郁洲,阮永良等.J2EE平台上MVC设计模式的研究与实现[J].计算机应用研究,2003年,第20卷第3期:144-147[9]RodJohnson.《J2EE设计开发编程指南》[M].北京:电子工业出版社.

公司制度建设大纲第一部分组织分工管理制度高速发展的社会要求企业必须高效运转,因此,对于任何一家公司而言,首先一条是要做到各部门权责分明,不能互相重叠,更不能互相牵扯,否则就会导致效率低下,现代公司的组织分工管理制度是防止互相扯皮,提高工作效率的惟一正确的手段,它主要包括以下几个方面一权责划分办法二公司董事会工作职责管理办法三公司董事长工作职责管理办法四公司管理委员会工作职责管理办法五公司执行委员会工作职责管理办法六公司总经理工作职责管理办法七公司副总经理工作职责管理办法八公司总裁工作职责管理办法九公司办公室职责管理办法十公司人事部工作职责管理办法十一公司财务部职责管理办法十二公司总务部职责管理办法十三公司营销部职责管理办法十四公司采购部职责管理办法二十二办公室主任副主任职责规定二十三人力源部经理岗位职责规定二十四销售部经理岗位职责规定二十五公关部经理岗位职责规定二十六发展部经理职责规定二十七采购部经理岗位职责规定二十八会计主管岗位职责规定三十收银出纳员岗位职责规定第二部分员工招聘管理制度最常见的获得人才的方法现代公司也都非常重视但关键是怎样招聘才能招到真正的人才很多公司招聘人才缺乏科学的制度仅凭招聘者的个人感觉或对应聘者的表面印象良好便草率决定结果招来的往往是滥竽充数的南郭先生科学的员工招聘管理制度具体细分为以下几个方面目的是对应聘者进行全方位的考察一公司员工录用规定二员工聘用规定三聘约人员管理办法四专业技术人员职位任用办法五公司管理人员录用办法六公司公关人员录用办法七新进人员任用办法八新进人员任用细则九面试操作规程第三部分考勤考核管理制度对员工的考勤和考核是企业人力资源管理中的一项重要内容过去对员工的考勤考核制度往往过于教条化把员工当作机器一样对待缺乏人情味而现代公司注重人本管理其考核制度的目的是使员工融入公司融入团队之中从而创造更大的效益其主要容包括一公司员工考勤管理制度二员工考勤与工作注意事项三员工出勤管理规定四员工打卡管理规定五员工出勤及奖励办法六员工考勤和休假管理办法七请假休假管理细则八员工给假细则九员工加班细则十员工综合考评制度第四部分薪资福利管理制度如何激励员工是现代企业管理的一项重要容激励的手段不外乎两种精神激励和物质激励但具体的形式则多种多样如目标管理员工参与决策工资制度福利制度等等薪资管理制度是其中最重要的激励措施包括工资福利和奖金科学的薪资管理制度能体现公司企业里每一个员工的贡献和价值使每一个员工都感到劳有所得自己的工作得到了承认因而激励他们更加努力地工作具体做法包括一公司薪给办法二员工待遇办法三薪金保密管理办法四员工核薪及升迁细则五机动加薪办法六职务工管理制度七职能工管理制度第五部分奖金激励管理制度奖金是现代公司激励员工的最常用也是最重要的方法奖金激励本质上是一种物质激励有利也有弊而员工参与公司管理则属于精神激励措施如何使奖金激励更具科学性利大于弊如何让员工通过参与企业管理更加发挥积极创造性为公司做出更大贡献是现代公司奖金激励管理制度的目的所在现代企业奖金激励管理制度主要包括以下几个方面的内容一公司奖励制度二员工出勤奖金办法三全勤奖金给付办法四从业人员年终奖金发给办法五从业人员各项津贴给付办法六年终奖金发放核计细则七责任奖金的计算及分配暂行办法八经营绩效奖金核发办法九效率奖金核发办法十绩效奖金发给办法十一员工参与公司管理规定第六部分员工培训管理制度二十一世纪是终身教育的世纪而对现代公司来说要迎接市场愈来愈激烈的竞争自己的员工就必须不断进步和提高要达到这一目的惟一途径就是对员工进行培训终身教育否则员工落伍公司也会被市场淘汰现代公司员工培训管理制度主要有以下几个方面一员工培训实施办法二新员工培训实施纲要三公司综合管理人员培训制度第七部分员工管理制度现代企业的各项管理最终都体现在对人的管理上只有建科学的员工管理制度才能保证各个部门各名员工各就各位各守其职从而实现企业的高效运转科学的员工管理制度主要包括一员工守则三员工着装管理规定四员工姓名牌管理办法五员工识别证使用准则六公司员工礼仪守则七临时人员管理办法九人员晋升管理办法十公司人员调动与降职管理规定十一公司辞退与辞职管理规定十二公司人员遣管理办法十三员工离职处理规定十四员工离职处理细则十五职员退职金给付细则第八部分会计出纳管理制度在任何一个现代公司里可以没有财务总监却不可以没有会计和出纳会计出纳工作管理制度是企业最基本的财务管理制度不管一个公司是多么小倘若没有这些制度其财务状况势必一塌糊涂现代会计出纳工作管理制度主要包括以下几个方面一财务部工作准则二财务管理规定三会计管理规范四会计管理制度五会计科工作细则六出纳作业处理细则七总公司财务及会计处理细则八分公司会计处理准则九财务分析撰写规则十表报管理规定十一公司内部稽核制度十二公司审计管理制度十三会计档案管理制度十四统计管理办法第九部分资金财产管理制度在现代公司的财务管理中对公司的资金财产的管理是财务管理的核心容任何一项管理不当都会使公司的财务状况一片混乱并直接导致决策者盲目决策造成难以估量的恶后果要想避免不当决策必须做好以下几个方面的管理工作一经营计划与预算管理制度二资金预算作业细则三资金管理办法四资金控制制度五资金筹措工作准则六借款和各项费用开支标准及审批程序七现金收支管理办法八传票审核职权划分办法九零用金管理规定十费用开支标准十一财产管理办法十二固定资产管理规定十三公司财务盘点制度第十部分账款票据管理制度如果说资金财产的管理制度是财务管理的核心内容账款票据的管理制度则是公司财务管理的基础所在只有公司的账款票据管理井井有条公司的资金资产管理才能顺理成章现代账款票据管理制度主要有以下几个方面一营业单位会计员账款作业绩效评核条例二应收票据与应收账款处理细则三账款管理细则四收款管理规定五会计员账款回收考核细则六业务员收款守则七应收账款及应收票据管理规定八问题账款处理细则九呆账管理细则第十一部分经营计划管理制度企业的经营计划是实现其经营目标的重要手段也是组织和指导企业生产有序进行的依据因而企业管理者必须加强经营计划管理工作对企业的生产任务进行统筹安排使其人财物等各种资源都得到充分利用建科学有效地经营计划管理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论