税务登记管理系统

摘 要

税务信息化中的税务登记管理,是整个税收征收管理的首要环节,是税务机关对纳税人进行纳税管理的一项基本制度,也是纳税人已经纳入税务机关监督管理的一项证明。系统针对以往税收管理出现的一些问题,有效的解决了效率低下与纳税工作不完善的矛盾。

在进行了全面的需求分析和系统设计的基础上,系统以Win2000平台,基于B/S系统,即浏览器/服务器模式。开发工具为微软.NET,并通过ODBC与后端数据库SQLServer2000相连,实现了ASP.NET的税务登记管理系统。

系统组成模块包括:税务登记模块、税种登记模块、状态管理模块,三个模块有机结合,实现了用户在税务登记管理方面的需求。

本文详细介绍了系统的开发环境、需求分析、总体设计、详细设计以及系统实现中的技术和方法。

关键词 税务信息化;税务登记管理;B/S模式;

Abstract

The information-based medium tax administration of tax administration registers the management, is the initial link that the whole revenue from tax collects the management, is tax office to the taxpayer carries on pay tax to manage of a basic system, is also a certificate that the taxpayer has already brought into the tax office direct management. The system aims at some problems that former revenue from tax management appear, resolving the efficiency effectively lowly with pay tax the not perfect antinomy of work.

In carrying on the foundation of overall need analysis and the system design, system with terrace of Win2000, according to the system of B/ S, namely browser/ server mode. Develop the tool is the Microsoft.NET, and pass the ODBC and carry the database SQLServer2000 to connect with each other behind, the tax administration that carried out the ASP.NET registers to manage the system.

The system constitutes the mold piece to include:

The tax administration registers the mold piece, tax to grow to register the mold piece, the appearance management  mold piece, three molds piece is organic to combine, carrying out the customer to register the need of manage the aspect in the tax administration.

This text was detailed to introduce the development environment, the need analysis, total design, detailed design and the technique and the method within the system realization of the system.

Keywords  The tax administration is information-based;The tax administration registers the management; Mode of B/ S;

目 录

 

Abstract

第1章 绪论

1.1 概述

1.2 课题背景

1.3 主要工作内容

第2章 相关技术

2.1 动态页面的技术和方法

2.1.1 微软动态页面创建技术

2.1.2 动态Web页面创建方法的比较

2.2 ASP.NET技术

2.3 B/S模式体系架构

2.4 ODBC访问数据库技术

2.5 本章小结

第3章 需求分析与总体设计

3.1 引言

3.2 税务管理系统总体框架

3.3 建立系统功能模型

3.3.1 组织模块图

3.3.2 基本流程图

3.3.3 税务登记管理子模块模型

3.3.4 状态管理

3.3.5 税种登记

3.4 功能概述

3.5 本章小结

第4章 详细设计以及系统实现

4.1 硬件开发环境

4.2 软件开发环境

4.2.1 Windows2000 Server

4.2.2 SQL Server2000数据库

4.2.3 VisualStudio2003开发工具

4.2.4 ADO.NET

4.3 数据库建库

4.3.1 整体概述

4.3.2 数据库设计概述

4.3.3 数据库关系表文字说明

4.3.4 数据库安全

4.4 登陆页面以及主界面的实现

4.4.1 登陆页面设计

4.4.2 主界面设计

4.5 功能模块的实现

4.5.1 企业开业登记

4.5.2 税种登记管理

4.5.3 状态管理

第5章 系统测试与总结

5.1 测试

5.1.1 本地上传目录

5.1.2 远程上传目录

5.1.3 测试结果总结

5.2 总结

 

 

参考文献

附录1  外文文献译文

附录2  外文文献原文

  1. 绪论
    1. 概述

税务登记系统,是利用计算机对税务上所用到的各种税务,税种进行登记管理,不必像以往手工录入,从而节省了时间和人力,也通过网络和一些约束关系,避免很多不必要的麻烦和错误。税务登记是税务管理的一项重要的组成部分,是进行双定管理、财务管理、发票管理、涉税文书管理、办税员管理的基础。

    1. 课题背景

从20世纪80年代开始,旨在提高税务办公效率的税务信息化系统,成为办税的一个突破。而作为税务征管部门,在当前信息产业的强烈影响下正在发生着巨大的变化,主要一个方面发生在管理信息系统上。税务部门多方面的需要,使他们不得不建设管理信息系统,尽管现在已经有很多成型的税务MIS系统,但是多数是基于C/S结构开发的这种系统的缺点是用户界面不够友好、不方便医院间的交流、数据冗余度大、而且安全性方面也存在诸多隐患,所以C/S向B/S转型迫在眉睫。另外国内很多中小城市由于各方面原因,暂时还不能够配备数据库管理系统,经过需求分析得知,他们没有配备数据库管理系统的主要原因有两方面,一是经费问题,二是目前在一些纳税工作人员计算机水平相对较低,所以如果能够开发一套价格低廉,而且方便各个层次的人使用的数据库管理系统也是十分必要的。

国外目前在税务管理信息系统这一领域的发展相对迅速,由于经济条件的差异,国外很多国家地方已配备了十分先进的管理信息系统,而且由很多国外知名软件企业主持开发的带有图形化界面的医院管理信息系统,以其高质量和高安全性在业界享有相当好的口碑,但是这一类软件结构复杂,根据中国的国情和语言的障碍等诸多原因,不便于我国的税务人员不便迅速掌握,而且由于经济的差异,我们也很难接受相对高昂的价格,所以我们应该开发出拥有自主知识产权的高水平软件产品。

在网络的背景下,税务登记有了更好的平台,基于B/S的开发模式,通过Internet/Intranet访问后台数据库的三层模式,与税务其他环节以及模块间进行连接,实现了税务信息化的方便快捷,极大的提高了办税的效率。

税收是我国国民经济宏观调控的重要手段之一,在国计民生中占有非常重要的地位。近年来,为了加强税收监管和保障税收来源,我国税务部门将信息化建设作为各项改革的突破口,大力实施“科技兴税”战略,广泛推行税收信息管理系统和机关办公自动化系统,使税收管理的现代化水平获得了较大提高。与此同时,我国税收收入持续快速增长,连年增收1000亿元人民币左右,2000年增收额超过2000亿元人民币,税收收入已占到我国GDP比重的14%。有关税务专家认为,这一切与我国税务系统突飞猛进的信息化建设是密不可分的。 国家税务总局领导多次指出,在以现代化的技术加强税收管理,建立一套高效优质的现代化税务管理体系的同时,如何以更高的效率和准确性为企业、个人提供更好的服务,也对税务行业提出了严峻的挑战,这同样需要通过信息技术建立强大的支撑平台。

现在,建立在计算机网络基础之上的电子税务登记管理系统的应用和概念在逐渐的进入人们的生活。

税务登记管理,是整个税收征收管理的首要环节,是税务机关对纳税人进行纳税管理的一项基本制度,也是纳税人已经纳入税务机关监督管理的一项证明。应用计算机网络进行税务登记管理,一方面税务机关能够更全面、及时掌握本地区从事工业、商业、交通运输业、饮食服务业、建筑安装业等各行业的纳税人的户数,准确掌握税源的分布情况,科学、合理地调动征管力量,防止漏户,有效地组织税收征收管理工作,减少税款的“跑、冒、滴、漏”;另一方面,也有利于增强纳税人依法纳税的观念,提高纳税人申报率,可以保证应缴交税款及时足额地缴入国库。

    1. 主要工作内容

本系统主要进行了以下几项工作:

1.对项目需求进行调研,确定系统需求

2.对系统的功能模块进行进一步划分,对系统所需实现的功能进行详细分析和总体设计

3.对数据库进行设计,使用ASP.NET进行页面设计, 使用C#.NET对每个功能模块编写相应代码实现相应功能,使用ADO.NET技术连接后台数据库。

4.上传,发布,进行系统测试。

  1. 相关技术
    1. 动态页面的技术和方法

对于新类型的文档内容, 特别是那些涉及成为允许在页面上输入信息的文档(例如 HTML 中<INPUT>等窗体控件),开发一种能够读取这种信息并加以利用的应用程序成为必然。很明显,传递从其他应用程序中得到的内容,特别是特定类型的数据库的内容,需要一种新的方法。每次都需要重写一个基于文本的页面,对于提供时事性很强的信息当然不是一个理想的做法。对于Web服务器来说,提供一个接口是其他应用程序能够与之相连成为一种常用的方法。通过这个接口,定制的可执行程序能够接收来自客户端的信息,包括通过点击超级链接或在浏览器中键入统一资源定位符(URL)所提出的页面请求的细节。应用程序对客户端的请求能够生成相应的响应,而不是从服务器磁盘上读取文本或标记文件。从这些早期方法开始,逐渐形成一套完整的系列方法动态创建网页,以相应用户的请求或信息的变化。

用于这些应用程序的接口仍然在使用,并被称为公共网关接口(Common Gateway Interface CGI),这是一种可用任何语言(如C语言)实现的标准。它产生于那些使用(cgi-bin)目录的应用程序(这里“bin”代表二进制代码,而不是文本)。

早期的应用程序都是编译后的程序,通常用C或C++编写。然而这自然要懂得C语言的编程方法,并且每当对程序作很小的文字上或标记上的变动,都必须重新编译、重新生成可执行文件,这就限制了CGI和动态页面的使用。

取而代之的是开发了一种用脚本语言创建页面的方法,这种语言就是使用摘要和报告语言,或简称为Perl,她允许信息的创建者以一种非常类似于简化版C或者C++的语言编写代码。在Perl脚本中,可以“写“文本和标记,用标准输入(stdin)和标准输出(stdout)函数通过

CGI与Web服务器通信,输出到浏览器。

Perl在Web上仍然是一种流行的语言,特别是在基于UNIX或Linux的系统上。然而这种语言掌握起来不是很容易,特别是对于那些没有C或者C++语言基础的Web开发人员更是如此。现在,一些新的脚本语言出现了,使创建网页更加容易。服务器端脚本技术对于服务器端的脚本需要用某种类型的中间应用程序,或插件程序来连接。它必须能够接受用户请求,读取并解释合适的基于服务器的脚本文件,接着创建输出页,并传送给Web服务器, 在那里作为响应发送给客户端。在某些情况下,这个人物画分为两个部分:一个应用程序或插件程序处理与Web服务器的往来通信(一般通过CGI)。另一个处理解释和执行脚本。这就是ASP中的情况,脚本引擎的使用与在其它环境下相同。Perl是第一个流行的服务器端脚本语言,但是目前已经出现很多其它的语言。在Unix及基于Linux的系统上,一种新的称之为PHP(Personal Home Page)的语言正变得越来越流行。还有一些语言的目标是一些特定类型的用户,例如TCL就是一种在科学环境下是复杂的数学运算简化的语言。

      1. 微软动态页面创建技术

微软随Windows NT推出了他们的Web服务器软件――IIS。这是一个踢供了很多功能的相当标准的软件,它支持CGI。然而微软也提供了另外一个接口,允许使用C和C++等编译语言生成可执行文件,使操作更加高效。这就是Internet服务器应用编程接口(Internet Server Application Programming Interface,ISAPI)。它能够提供比传统Perl引擎和其他技术所依赖的stdin和stdout更为广泛地对Web服务器的访问。

此后微软和其他第三方开发商推出了许多能通过ISAPI连接到IIS的应用软件,这就是为什么ASP能够连接到IIS以及其他微软服务器端动态技术的原因。在ASP之前,用的最广泛的是Internet数据库连接器(Internet Data Connector,IDC)。ASP为Web开发者使用微软的平台开辟了一个新的天地,这是采用数据库中的数据创建动态网页更加容易。特别是它引入了模版(template),即包含了带有能够插入数据库查询结果的文本和标记的模版文件。现有的(或将过时的)其他微软服务器端页面创建技术有db Web 和 OLEISAPI。事实上,db Web就是OLEISAPI的实现,而对于多数人来说,迄今只是证实了这一技术在实际应用中的不适应性。OLEISAPI是通过特殊版本的ISAPI接口与IIS通信的一些COM对象。Web服务器软件调用COM对象中单个指定函数并以参数为用户的请求提供细节。COM对象返回的是作为字符串的页面的文本和标记,然后作为响应发送给客户端。

OLEISAPI首创了COM对象的动态Web页面创建,为编程人员提供通过编译的Active X DLL创建动态页面的能力。然而它所使用的特定的实现和数据通信技术对于较小的任务和内部网(Intranet)工作缺乏有效性和可扩展性。同时,每当改变页面的文本和标记时,也需要重新便以动态链接库。

      1. 动态Web页面创建方法的比较

比较动态页面创建技术是一个既困难又敏感的任务,然而理解各种接口和与之相关联的应用程序的差异性又是很重要的。当创建与Web服务器交互的应用程序时,涉及到的两个主要的问题是它们对Web服务器本身稳定性的影响,以及处理多发或并发页面请求的效率。这两个问题是相互联系的,又是相互排斥的。

应用CGI和ISAPI的编译的可执行应用程序(不是DLL文件),通常在服务器计算机上以进程外(out-of-process)方式运行,这就意味着他们要作为单独应用程序运行,占有单独的与Web服务器应用程序不同的内存空间。操作系统将其作为一个单独的进程进行管理,禁止他们访问本身所占内存以外的内存。因此,如果一个进程外应用程序失败,不会影响到Web服务器。同样,假如应用程序包含错误,企图直接写入Web服务器的内存,会因一般性保护错误停止运行。进程外应用程序也会因用户或操作系统的命令而终止,这时代码会从内存中自动卸载。因为运行进程外程序意味着访问Web服务器内存的请求被禁止,所要求的或产生的输出结果值不能直接传送给Web服务器。所以必须执行一种跨进程调用,但这比在同一进程内访问内存要多花费几倍时间。对于可执行文件的装载和卸载时间还有一定的影响。相反,应用进程内(in-process)程序通常是能够使用ISAPI或OLEAPI接口的DLL(不是单独的可执行文件),因为其运行在Web服务器的内存空间中,可以直接访问Web服务器内存中得值,这可提供更快的访问和相应。然而其代码的错误或失败会影响到Web服务器,例如DLL文件中的代码直接写入包含Web服务器操作代码的内存空间,可能会引起Web服务器的失败。

    1. ASP.NET技术

ASP.NET是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序。与以前的Web开发模型相比,ASP.NET提供了数个重要的优点:

1.增强的性能。ASP.NET是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET可利用早期绑定、实时编译、本机优化和核外缓存服务。这相当于在编写代码行之前便提高了性能。

2.世界级的工具支持。ASP.NET框架补充了Visual Studio集成开发环境中的大量工具箱和设计器。WYSIWYG编辑、拖放服务器控件和自动部署知识这个强大工具所提供功能中的少数几种。

3.威力和灵活性。由于ASP.NET基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵活性。.NET框架类库、小戏处理和数据访问解决方案都可从Web无缝访问。ASP.NET也与语言无关,所以可以选择最适合应用程序的语言, 或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到ASP.NET时保留基于COM的开发中的现有投资。

4.简易性。ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如:ASP.NET页框架使您可以生成将应用程序逻辑与表示代码清除分开的用户界面,和在类似Visual Basic的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用技术和垃圾回收)简化了开发。

5.可管理性。ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和Web应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理“哲学也扩展到了ASP.NET框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。

6.可缩放和可用性。ASP.NET在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。

7.自定义性和可扩展性。ASP.NET随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入“代码。实际上,可以用自己编写的自定义组件扩展或替换ASP.NET运行库的任何子组件。

8.安全性。借助内置的Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。

Microsoft Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。使用ASP可以组合HTML页、脚本命令和ActiveX组建以创建交互的Web页和基于Web的功能强大的应用程序。ASP应用程序很容易开发和修改。

    1. B/S模式体系架构

近年来,随着Internet/Intranet的迅猛发展,企业纷纷建立自己的Internet,以加强企业内部的联系,增强企业竞争力。Internet/Intranet中不断出现的网络新技术,带给OA全新的应用模式。C/S模式与B/S模式的优劣比较见表2-1。

B/S模式

       C/S模式

具有分布式的特点,可以随时随地的进行业务处理。业务扩展简单方便,通过增加网页即可增加服务器功能。维护简单方便,只要改变网页,即可实现所有用户的同步更新。开发简单,共享性强。

由于客户端与服务器的直接相连,没有中间环节,因此响应速度快。客户操作界面设计人性化,具有直观,简单,方便的特点,可以满足客户个性化的需求。同时由于开发是针对性的,因此操作界面漂亮,样式多样,可以充分满足客户自身的个性化要求

个性化特点明显降低,无法实现具有个性化的设计要求。操作的习惯性是以鼠标为最基本的操作方式,无法满足快速操作的要求。页面动态刷新,响应速度明显下降。专用性的打印输出难以实现,有以对票据等的打印,难以实现套打输出,难以实现某些特殊功能要求

由于是针对性的开发,因此缺少通用性的特点,业务变更或者改变不够灵活,需要重新开发,增加了维护和管理的难度。需要专门的客户端安装程序,分布功能弱。兼容性差,对于不同开发工具之间很难兼容。开发成本较高。

表2-1 C/S模式与B/S模式的比较

    1. ODBC访问数据库技术

ODBC(Open DataBase Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Service Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖于任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,任何数据库都可以用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有数据库。

一个完整的ODBC系统由:应用程序(Application);ODBC管理器(Administrator):找任务是安装ODBC驱动程序和管理数据源;驱动程序管理器(Driver Manager):用于管理ODBC驱动程序;ODBC API:ODBC驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。数据源:它包含了数据库位置和数据库类型等信息,是一种数据连接的抽象。

应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责加工程序对ODBC API的调用窗体给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

    1. 本章小结

本章详细介绍了ASP.NET以及相关技术,介绍了网络编程的基本原理。详细介绍了B/S模式,阐述了本系统的开发模型。最后介绍了数据库技术,详细说明了本次课题要使用的SQL Server2000数据库的应用环境和如何实现用ODBC技术访问数据库的解决方案。

  1. 需求分析与总体设计
    1. 引言

本系统的组建过程是按照软件工程的方法,从需求分析、总体设计、详细设计三个步骤完成,并用快速原型法生成数据库和网页,经运用实践后再作修改。由于实践的关键不是软件工程的方法,而是网页和网上数据库的连接技术,所以只给出简单的网页和数据库资料。

本系统面向需要进行税务登记的部门,是当前非常流行非常需要的软件项目需求。它有利于提高纳税人申报效率。设计可与数据库交互的网站,这些交互功能,如:查询、插入、修改等是ASP.NET所支持的。本系统采用B/S模式进行系统地设计与实现。

本系统所实现的目标:

管理员用户可进行用户资料的管理以及用户权限的分配,以及实现相关页面的自定义维护和升级操作。

普通用户能够进行自身资料的修改,对自己的纳税申报信息进行填写和修改,并且上传。

    1. 税务管理系统总体框架

管理服务子系统各模块功能简述:

  1.税务登记管理

对纳税人的生产经营及其他应税行为进行登记。提供开业登记、变更登记、停复业处理、注销登记、验证换证、纳税人信誉等级管理、非正常户处理、违章处理等功能。向税务管理信息系统的各子系统提供纳税人的基本状态信息。

2.双定管理

税务机关依据国家有关税收法律规定,对个体工商户实行定期定额管理,对财务不健全的小企业所得税实行定率或定额管理,即在一定期限内,结合纳税人的实际经营情况及财务核算水平,核定纳税人的销售收入(或营业收入)和应纳税额。包括资质认定、典型调查、税种登记、定期定额清册、统计查询等。

 3.财务管理

  对地方税务机关负责管理的企业财务情况进行登记,录入数据,查询统计分析数据,一方面可为申报征收提供可比参数,另一方面也可为税务稽查提供被查户财务核算状况的信息,并且可以通过企业财务报表汇总分析为地方经济宏观发展起指导作用。

4.发票管理

    实现税务机关对发票在计划、印制、领购、库存、缴销、稽核等内外各环节监督管理,发挥“以票管税”的作用。提供发票所本级的印制、发放、库存、财务的管理和分局(所)下级单位的领购、发售、库存、缴销、稽核等各环节的日常事务,输出各类证、表,控制发票的流向,为纳税申报、税务稽查提供信息。

    5.涉税文书管理

    受理审批纳税人在申报纳税及生产经营管理中,需要税务机关审批的各类涉税文书。提供申报方式、缴库方式、延期申报、延期缴纳税款、减免税、外出经营税收管理及其他各种审批功能和管理。

6.办税员管理

对企业办税员进行登记、统计、查询等管理功能,并提供给其他模块有关办税员的信息,防止其他人员冒充办税员进行涉税事务处理而造成不必要的损失,提高了系统的保密性。 

                         图 3-1各模块间关系图

说明:

    [税务登记管理]模块为其他模块提供纳税人税务登记的有关基本信息;[税务登记管理]中的停复业信息传递给[双定管理];

    [发票管理]模块将定额户填用发票信息传递给[双定管理],为定额核定提供依据;将发票缴销信息传递给[税务登记管理],为“注销登记”及“非正常户认定” 提供依据;

    [涉税文书管理]模块分别为[双定管理]、[财务管理]、[发票管理]提供文书信息;

    [办税员管理]模块为[发票管理]、[财务管理]、[涉税文书管理]模块提供纳税人有关办税员基本信息,促使纳税人在购领发票、报送资料、办理涉税文书时持《办税员证》处理。 以上各功能模块的关系见图3-1。

    1. 建立系统功能模型

由于本系统的开发数据网也与网上数据库连接,采用不同页面实现不同功能模块的设计模式,所以采用面向对象的设计方法。而其中最重要的一条设计步骤就是---------建立系统功能模型。

      1. 组织模块图

图3-2 组织模块图

税务登记管理可分为三大功能模块,分别为:税务登记管理模块、税种登记管理模块、状态管理模块。税务登记系统功能模块组成见图3-2。

      1. 基本流程图

                   图3-3流程图

在面向对象的设计方法中,基本系统模型由若干个数据源点/终点,及一个处理框组成,这个框代表了系统加工、变换数据的整体功能。基本系统模型指明了目标系统的边界,是系统与外面世界间交互事件的参数。

该图是本系统的基本系统模型。系统中的信息来源和最终收者都是登记申报用户,因此,本系统的数据源点/终点都是项目申报用户。同时另一个数据终点为系统档案管理数据库,因此,所有登记申报以及项目审批的数据都要自动归档保存。税务登记的基本流程见图3-2。

      1. 税务登记管理子模块模型

根据纳税人的开业申请资料,对具备开业条件的内资企业、外商投资企业、外国企业、个体户、行政事业单位、外来户、自然人等纳税人,分配一个唯一编码,再审核纳税人的工商登记信息(违章处理资料),若违章,则先处理违章并注销已处理的违章,然后依据工商登记信息,进行开业登记管理。税务登记管理子模块流程见图3-3。

  

      

                图3-4登记流程图

      1. 状态管理

依据纳税人停业、复业、延期复业、变更、注销等申请资料,先检查是否具有停业、延期复业、变更、注销的条件,如果不具备条件(各种申请资料)则将资料退还给纳税人,若具备条件,再检查有无违章现象,若存在则先处理违章,并注销违章,然后分别作如下处理:

   (1)检查纳税人申报是否齐全,发票是否全部缴销,如是则登记纳税人停业信息,并打印停业通知书;

   (2)若纳税人提交复业申请资料,先根据内部信息(复业期限)审核纳税户是否按期复业,若是按期,则收回停业通知,登记复业信息,发回封存的税务登记证、发票。若已超期,检索纳税户是否已办理延期手续,若未办理延期手续则登记违章信息,若已办理延期手续,则按正常复业处理;

   (3)依照工商登记信息登记纳税户的变更信息,再检查是否须重新打印税务登记证,对须重新打印的,则打印税务登记证正副本;

   (4)检查纳税人的发票资料、申报征收资料和工商登记信息,如果纳税人已将发票缴销已办理工商注销且已全部申报,稽查案件全部处理则办理纳税人的注销手续,登记纳税人注销资料,同时打印注销通知书。

 状态管理流程见图3-5。

            

              

图3-5状态管理流程图

      1. 税种登记

税务机关根据税收管理的需要,对纳税人应征收的各税、费种进行鉴定登记,为申报征收提供信息。税种登记流程见图3-5。

图3-6 税种登记流程图

    1. 功能概述

1.用户注册:采用用户自己注册的方式,数据库中人员表应添加一项注册状况,0为未处理注册,1为已通过注册,2为未通过注册。

2.密码验证:采用客户端Java Applet加密,保证用户信息安全。

3.权限码验证:对于不同权限用户采用权限码的方式区别。

4.密码修改:用户通过此页面填写旧密码以及新密码,其中旧密码需

要输入两次。填写的数据送交修改密码页面处理。修改密码页面用来处理填写密码页面提交的数据,同时根据该数据提供的数据检查旧密码是否正确,如不正确则返回填写密码页面重新填写,如正确则对数据库的用户表中相应用户数据的密码进行修改。此处的密码操作应注意密码加密的问题。

5.个人资料修改:修改个人资料页面:用户在该页面输入预修改数据,修改内容参考用户表相应项目,修改后的信息提交处理个人资料页面处理。处理个人资料页面:该页面用于处理修改个人资料页面提交的内容,判断是否合乎数据库的数据要求,不合乎要求的数据返回至修改个人资料页面重新填写,合乎要求的数据在数据库中对用户表相应记录作相应修改并存储。

6.项目信息设置:此部分的页面只有拥有设置项目信息权限的人才能

操作。分为项目名称定义,项目字段属性两部分内容。这是一个自定义流程,管理者可通过添加项目名称及其内容,自动生成不同种类项目申报报表。

    1. 本章小结

本章介绍了系统的需求分析以及系统总体设计的内容。详细分析了系统的功能模块,以及系统数据流图,同时对数据流中一些数据处理框进行了描述。

本章的重点是基本系统模型图,是整个系统实现的指导部分。

另外分别介绍了税务登记模块,税种登记模块以及状态管理模块的特点以及功能需求。

  1. 详细设计以及系统实现
    1. 硬件开发环境

系统是B/S模式的系统,其开发环境要求是用户必须与服务器互连,必须在网络环境下才能实现,在开发过程中,只开发网络服务器端的程序,用户通过浏览器进行数据交互和操作,完成整个系统的开发。

    1. 软件开发环境

我开发的税务登记系统是一个B/S模式的系统,系统考虑到数据安全性以及效率的同时也考虑到用户的需求,软件开发环境选择了符合开发要求的Windows2000 Server系统平台,和流行且安全的SQL Server2000数据库系统,以及界面用好,开发组件众多,功能强劲的程序设计平台VisualStudio.net 2003。

      1. Windows2000 Server

 Windows2000是Windows家族中最为优秀的面向网络以及开发的操作系统。由于Windows2000 Server版有着和Windows家族其他版本同样友好的操作界面,并借拥有强大的网络管理功能,使其赢得了广大网络用户的喜爱,而且其安全性也有着很大的提高,而对于我所要开发的系统,正符合用户的需要,由于它具有这些特性和优点,我才选择这样的平台来作为开发和运行的平台。

  1. 支持多种客户机以及与其他网络系统的互连
  2. 比其他网络操作系统支持更多的网络协议
  3. 内置良好的安全措施和容错能力
  4. 内置的Internet/Intranet功能
  5. 性能监视
  6. 界面友好,易于配置,易于管理
  7. 支持NTFS文件系统
  8. 易于使用与管理网络打印功能
  9. 提供许多工具,用来记录与跟踪网络活动
  10. 支持IIS,与VisioStudio.net结合良好
      1. SQL Server2000数据库

Microsoft SQL Server 2000是一套完整的数据库和分析产品,可迅速提供下一代可扩展电子商务,各种业务和数据仓库解决方案,并且具有对Windows操作系统良好的兼容性。它具有以下优点:

    1. 完全的Web支持

SQL Server2000 提供了以Web标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许用户使用内置的存储过程以 XML 格式轻松存储和检索数据。用户可以使用XML更新程序容易的插入、更新和删除数据。

    1. 高度的可伸缩性和可靠性

使用SQL Server2000可以获得非凡的可伸缩性和可靠性。通过向上伸缩和向外扩展的能力,SQL Server2000 满足了苛刻的电子商务和企业应用程序的要求。

    1. 对数据库的操作

SQL Server 管理两种类型的数据库:系统数据库和用户数据库。系统数据库存储 SQL Server 专用的用于管理自身和用户数据库的数据, 用户数据库用于存储用户数据。 SQL Server 创建的系统数据库包括 Master、model、tempdb、msdb,还会创建一个叫PUBS的用户数据库样本。SQL Server中,数据库把所有的数据与数据库对象都放在一系列操作文件中,并用文件和文件组管理这些操作系统文件。文件分为3种:主文件、从属文件、日志文件,每个文件只能从属于一个数据库。

主文件是一个数据库的起始点,一个数据库文件只能有一个主文件而且必须有一个主文件。主文件的扩展名是MDF。从属文件的数目是任意的,一般一个小型的数据库可能没有从属文件,而一个大型数据库可能存在多个从属文件。从属文件和主文件一同存储数据以及数据库对象。从属文件的扩展名是NDF。日志文件用来存放数据库的事务日志信息,这些信息对恢复数据库是十分关键的,一般一个数据库必须至少有一个日志文件。日志文件的扩展名是LDF。

在本系统中,仅用到了数据库的创建、查询、存储关系表的操作。

      1. VisualStudio2003开发工具

Visual Studio 是一套基于dot net Framework的完整的企业级开发工具,用于生成桌面和基于团队的企业级 Web 应用程序。除了生成高性能的桌面应用程序外,还可以使用 Visual Studio 基于组件的强大开发工具和其他技术,简化基于团队的企业级解决方案的设计、开发和部署。

重要技术列表:

.net Remoting

Enterprise Service

Web Service

ASP.NET

      1.  ADO.NET

ADO.NET是Microsoft ActiveX Data Object(ADO,ActiveX数据对象)的改进。它是一个基于标准的程序设计模型,用于创建分布式的、数据共享的应用程序。 

使用ADO.NET的任何软件解决方案的中心是数据集。数据集(data set)是指内存中的数据库数据的副本。数据集可以包含任意数目的数据表,每个数据表一般对应一个数据表或视图。一个数据集组成了数据库数据的一个“断开的”视图。也就是说,它可以在没有到包含对应表或视图的数据库的活动连接情况下,存在于内存中。

运行时,组件可以交换数据集。也就是说,一个组件可以将数据集传递给另一个组件。例如,一个CustomerOrder组件可以包含一个带有关于一份订单以及下这份订单的客户的详细信息的数据集。 这个组件可以包括执行关于订单处理的规则的商务逻辑。这个组件可以将数据集提交给某个用户界面组件(例如,Windows窗体或Web窗体)以显示给用户。

为了适应在组件间进行数据集交换,ADO+使用了一个基于XML的保持和传递格式。也就是说,要将一个数据集从一个组件传递给另一个组件, ADO+解决方案将内存中的数据(数据库)表示为一个XML文件,然后将这个XML文件发送给另一个组件。

用户可以使用DataSet对象,对数据集中的内容进行处理。DataSet对象允许使用与关系型模型一致的方法对数据集的内容进行处理。例如,DataSet对象有一个DataTable对象集合,每个DataTable对象都有列、行,并且与其他的DataTable对象有关联。 当一个组件将数据集传递给另一个组件时,接收组件将把接收到的数据集物化为一个DataSet对象。

除了在组件间传递数据集外,ADO解决方案必须协调数据集和对应的数据库表间的活动。例如,为了使用来自数据库表PriceList的定价信息对数据集进行物化,解决方案必须从这个数据库中检索这些信息,然后将它发布给这个数据集中适当的DataTable对象。类似地,如果这个组件允许用户改变价格,那么这个解决方案必须将更新的数据传递给这个数据库。

为了协调数据集与底层的数据源之间的数据交换,ADO.NET解决方案使用了一个称为数据集命令(data set command)的对象。微软提供了两个数据集命令对象:

SQLDataSetCommand对象

这个对象是在数据集内的一个表与 SQL Server数据库中的一个表或视图之间进行通信的媒介。现在该对象支持SQL Server 7.0及其更高版本。

ADODataSetCommand对象

这个对象是在数据集内的一个表与任何拥有OLE DB提供者的数据源内的一个表或视图之间进行通信的媒介。

ADO.NET是VS.NET解决方案中的关键组件。

    1. 数据库建库
      1. 整体概述

文档名称:税务登记管理系统数据库设计

用工具及约定:使用图表来描述数据库表的属性,用文字进行详细描 述。数据库设计工具使用的是SQL Server2000。

表名命规则:用汉语拼音简写(小写),所属子系统名+表名。

表的格式:表中的列:列名、含义、类型、空值、取值、备注

列名规则:汉语拼音简写(小写)

空值填写规则:准许为空用y,不准许为空

用n取值:

1.取值是代码用dm 不是不填;

2.默认值

备注中的内容:取值其来源是那个代码表、该列取值规则表中最后一行的完整性约束:该表的主键,外键及外键参照表

      1. 数据库设计概述 

以数据库为基础的信息系统通常称为数据应用系统,它一般具有系统的采集、组织、抽取和传播等功能、由于数据库应用系统的开发是一项软件工程、又具有自己的特点,因此称为“数据库工程”。

在数据库设计过程中,贯彻了软件工程的思想。按照软件生存期的概念,我们把数据库应用系统从开始规划到最后被新系统所取代而停止使用的整个期间称为数据库系统的生存期。数据库系统生存期一般划分为七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行和维护。前五个阶段称为分析和设计阶段,后三个阶段称为实现和运行阶段。

本次数据库设计经历了概念设计、逻辑设计、物理设计。其中概念结构的设计是整个数据库设计的关键,在概念设计阶段,我们进行了数据抽象,设计局部概念模型,在此基础上将局部概念模式综合成全局概念模式。

数据库逻辑设计的目标是从概念结构导出特定的DBMS可处理的数据库的逻辑结构。一般分为三步:①把概念结构向一般的关系型数据模型转换;②向特定的DBMS(Oracle8i)支持下的数据模型转换;③最后进行模型优化。

数据库物理设计为一个给定的逻辑结构选取一个最适合应用环境的物理结构的过程,包括确定数据库在物理设备上的存储结构和访问方法。在此阶段确定了数据库标主键和索引的设计。

在总体设计过程中,本着数据分布集中处理,并行计算的理念,决定选定以高性能、高可用性和高扩充性为特征的并行数据库系统,充分利用多处理器平台的工作能力,在联机事务处理(OLTP)与决策支持(DSS)应用这两种典型环境中提供更快的响应时间与更大的事务吞吐量。此外,采用集群方式构建并行机系统还可以适应业务发展的需要,扩展性能优良。从而以税收网络为依托,实现全省地税部门从下向上采集各种宏观税收信息和微观信息,从上到下传输各种上级部门的有关经济信息和各项法规政策信息。进而实现税收法制化和规范化,推动税收征管改革的不断发展和完善。

      1. 数据库关系表文字说明

用户表:用户帐号,用户密码,其中主键为:用户帐号。

登记基本情况表:纳税人识别号、纳税人名称、法定代表人、身份证件名称、证件号码、注册地址、邮政编码、生产经营地址、经营地址邮政编码、生产经营范围、所属主管单位、工商机关名称、营业执照名称、营业执照字号、发照日期、开业日期、有效期限、生产经营期限、从业人数、经营方式、登记注册类型、行业、财务负责人、办税人员、联系电话、隶属关系、注册资本、E-mail地址、征收点、所在片区、征收分片、预算管理形式、国家标准代码,其中主键为:纳税人识别号。

分支机构表:机构识别号、纳税人名称、法定代表人、设立时间、营运资金、注册地址、联系电话、邮政编码、备注,其中主键为:机构识别号。

投资方情况表:识别号、注册资金、企业名称、所占投资比、注册类型,其中主键为:识别号。

开户银行情况表:银行名称、银行账号、货币名称,其中主键为:银行名称、银行账号 。

税种登记表:纳税人名称、税种号、项、款、税目、征收率或单位税额、行业、税种登记人,其中主键为:纳税人名称、税种号。

      1. 数据库安全

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。

SQL Server提供多层安全。在最外层,SQL Server的登陆安全性直接集成到Windows NT/2000的安全上,它允许Windows NT服务器验证用户。使用这种“Windows验证“SQL Server就可以利用Windows NT/2000的安全特性,例如安全验证和密码加密、审核、密码过期、最短密码长度、以及在多次登陆请求无效后所定账号。

首先使用户标识和验证。用户标识和验证是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户表示自己的名字或身份。

每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。

SQL Server身份验证方式:用户必须使用一个登陆账号,才能连接到SQLServer中。SQL Server可以识别两类的身份验证方式,即:SQL Server身份验证(SQL Server Authentication)方式和Windows身份验证(Windows Authentication)方式。

身份验证模式:当SQL Server在Windows NT/2000上运行时,系统管理员必须指定系统的身份验证模式类型。SQL Server的身份验证模式有两种:

Windows身份验证(Windows Authentication)模式和混合模式(Mixed Mode)。

本次系统的安全策略为混合模式(Windows身份验证方式和SQLServer身份验证方式)。混合模式最适合用于外界用户访问数据库或不能登陆到Windows域时。混合方式的SQL Server身份验证方式有下列优点:混合方式允许非Windows NT/2000客户、Internet客户和混合的客户组连接到SQL Server中;SQL Server身份验证方式又增加了一层基于Windows的安全保护。

    1. 登陆页面以及主界面的实现
      1. 登陆页面设计

登陆页面:此页面用于注册用户,用户填写自己的账号和密码后,此页面将这些数据送交核查页面处理,如核实正确则登陆。如果用户尚未注册,可在此页面中调用用户注册页面。

核查登陆信息页面:此页面用于处理登陆页面提交的数据,查找是否有相应的用户并进行密码校检,如无该用户或者密码校验失败则返回登陆页面让用户重新填写登陆信息,如有该用户并且密码校验成功则调用主业面。登陆窗口如图4-1所示。

图4-1登陆窗口

      1. 主界面设计

用户登陆后,根据不同用户权限分别进入各自控制界面。本系统中的管理员主界面,见4-2。该界面用asp.net设计,可以通过new按钮链接到新增记录对话框,也可以通过查询按钮查询,还可以进行相关的编辑和删除。主界面设计见图4-2。

                          图4-2登记主窗口

    1. 功能模块的实现
      1. 企业开业登记

1.功能描述

实现企业的开业登记功能,录入开业登记表中的项目和附加信息(如开户银行情况、投资方情况、分支机构情况、工商执照清单等)。录入人员可以对自己录入的信息进行修改,系统管理员可以对录入人员录入的登记信息进行修改和删除。开业登记流程见表4-1。

2.算法描述

新开业登记一般的SQL语句为:

insert glfw_swdj … values …

insert glfw_khyh … values …

insert glfw_tzfqk … values …

   insert glfw_jnfzjg … values …

系统管理员或录入员发生修改时一般的SQL语句为

update glfw_swdj set …where sbh=:纳税人识别号

update glfw_khyh set …where sbh=:纳税人识别号 and yhmc=:银行名称

update glfw_tzfqk set …where sbh=:纳税人识别号 and tzfmc=:投资方名称

    update glfw_jnfzjg set …where sbh=:纳税人识别号 and fzjgsbh=:分支机构纳税人识别号

系统管理员进行删除时一般的SQL语句为

delete from glfw_swdj where sbh=:纳税人识别号

delete from glfw_khyh where sbh=:纳税人识别号 and yhmc=:银行名称

delete from glfw_tzfqk where sbh=:纳税人识别号 and tzfmc=:投资方名称

    delete from glfw_jnfzjg where sbh=:纳税人识别号 and fzjgsbh=:分支机构纳税人识别号

打印税务登记证时一般的SQL语句为

select mc,fddbr,jyfwzy … from glfw_swdj where sbh=:给定的管理识别号

表4-1税务登记流程表

模块名称:

税务登记

涉及的数据库表

Glfw_swdj、glfw_khyh、glfw_jwtzfqk、glfw_jnfzjg

输入输出界面

输入界面参考内资企业税务登记表(dj001),输出界面参考税务登记证正副本。

输入(I)

处理过程(P)

输出(O)

纳税人识别号

内资企业税务登记表

  1. 自动生成一个纳税人的识别号,允许用户手工修改;
  2. 如果用户输入的管理识别号、纳税人名称、工商字号、组织机构代码已经在glfw_swdj中存在,给出提示,转1;否则,转3;
  3. 允许用户按照内资企业税务登记表的顺序输入各项目,必须输入的项目给出提示,设计必要的规则、缺省和取值范围;
  4. 一般通过数据窗口进行提交;

针对税务登记的各种查询;

内资企业税务登记证的证本和副本;

涉及的数据库表

Glfw_swdj

输入输出界面

输入界面参考内资企业税务登记表,输出界面参考内资企业税务登记证正副本。

输入(I)

处理过程(P)

输出(O)

纳税人识别号

1)根据输入的纳税人识别号,查询glfw_swdj,找到相应的纪录;

2)取出打印税务登记证正副本所需要的信息;

3)提供打印预览功能

4)如果打印多份税务登记证副本,将其自动编号并纪录

企业税务登记证的正本和副本;

      1. 税种登记管理
  1. 功能描述

应纳税种有关情况登记,录入或修改纳税人的有关基本情况。税种登记流程见表4-2。

2.算法描述:税种登记的SQL语句的一般格式为:

insert glfw_szdj values(…)

                   表4-2税种登记流程表

模块名称:

税种登记

涉及的数据库表

Glfw_szdj

输入输出界面

输入输出界面参考纳税人税种登记表

输入(I)

处理过程(P)

输出(O)

管理识别码

税种登记的各项信息

根据输入的纳税人的管理识别号,首先判断该户是否是双定户,如果是双定户,从glfw_dehd_sz中提取定额申请核定表的信息,在此基础上,录入税种登记的其他各项信息,如果不是双定户,则只能进行一般的税种登记。

企业登记税种单据

      1. 状态管理

功能描述

状态管理主要受理纳税人的税务登记变更申请,录入税务登记变更表,由主管税务机关进行审批,如果需要变更税务登记证内容的,主管税务机关登记管理环节应收回原税务登记证(正副本),按变更后的内容,重新制发税务登记证的正副本。状态管理流程见表4-3。

算法描述

录入税务登记变更表的SQL语句的一般格式为:

insert glfw_djbg values (…)

insert glfw_djbg_mx values (…)

税务机关进行审批的SQL语句的一般格式为:

update glfw_djbg set zgjgyj=:主管机关意见,fzr=:负责人,jbr=:经办人,spsj=:审批时间,sqzt= where sbh=:纳税人识别号 and sqsj=:申请时间

update glfw_swdj set 修改项目=:变更后内容 where sbh=:纳税人识别号

统计变更税务登记清册的SQL语句的一般格式为:

select sbh,mc,bgxm,bgqnr,bghnr,spsj from glfw_djbg_mx where spsj>:统计开始时间 and spsj<:统计结束时间

表4-3 税务登记变更申请处理表

模块名称:

税务登记变更申请处理

调用模块名称

状态管理模块

被调用模块名称

设置税务登记可变更项目

涉及的数据库表

Glfw_swdj、glfw_djbg、glfw_kbgxm

输入输出界面

输入界面参考税务登记变更表,输出界面参考各种税务登记证和变更税务登记清册

输入(I)

处理过程(P)

输出(O)

纳税人识别号

税务登记变更表(DJ009)

根据输入的纳税人识别号,检索glfw_swdj中是否存在该户,若不是正常户给出相应提示,如果是转2);

录入税务登记变更表,变更的项目由系统维护模块设定,在选择变更项目时,如果是法定代表人或负责人,应对该法定代表人或负责人在任期内履行纳税义务的情况进行提示

主管税务机关进行审批,修改glfw_djbg,glfw_swdj中的有关项目

由用户选择,是否重新打印税务登记证。

针对税务登记变更的各种查询;

各种税务登记证

变更税务登记清册(DJ058)

  1. 系统测试与总结
    1. 测试
      1. 本地上传目录

最后的工作就是将开发完成的系统放在网络上进行测试。第一步,就是本地测试。在测试的计算机上安装IIS,将要测试的文件拷贝到C:\Inetpub\wwwroot目录下,重新启动IIS,在局域网内的计算机只要在浏览器里输入服务器计算机的标识或者IP地址,即可访问本系统。

      1. 远程上传目录

将系统上传至Internet服务器的空间上,进行实际运行测试。所使用的空间必须是能够支持ASP.NET的服务器。选择合适的域名,在所有可以连接互联网的浏览器中输入该域名,即可访问本系统。

      1. 测试结果总结

单元测试任务包括:(1)模块接口测试;(2)模块局部数据结构测试;(3)模块边界条件测试;(4)模块中所有独立执行通路测试;(5)模块的各条错误处理通路测试。

测试接口正确与否应该考虑下列因素:(1)输入的实际参数与形式参数的个数是否相同;(2)输入的实际参数与形式参数的属性是否匹配;(3)输入的实际参数与形式参数的量纲是否一致;(4)调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;(5)调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;(6)调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;(7)调用预定义函数时所用参数的个数、属性和次序是否正确;(8)是否存在与当前入口点无关的参数引用;(9)是否修改了只读型参数;(10)各模块对全程变量的定义是否一致;(11)是否把某些约束作为参数传递。

如果模块内包括外部输入输出,还应该考虑下列因素:(1)文件属性是否正确;(2)OPEN/CLOSE语句是否正确;(3)格式说明与输入输出语句是否匹配;(4)缓冲区大小与记录长度是否匹配;(5)文件使用前是否已经打开;(6)是否处理了文件尾;(7)是否处理了输入/输出错误;(8)输出信息中是否有文字性错误。

局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现以下几类错误:(1)不合适或不相容的类型说明;(2)变量无初值;(3)变量初始化或省缺值有错;(4)不正确的变量名(拼错或不正确地截断);(5)出现上溢、下溢和地址异常。

基本路径测试和循环测试是最常用且最有效的测试技术。常见的错误包括:(1)误解或用错了算符优先级;(2)混合类型运算;(3)变量初值错;(4)精度不够;(5)表达式符号错。

比较判断与控制流紧密相关,测试用例还应致力于发现下列错误:(1)不同数据类型的对象之间进行比较;(2)错误地使用逻辑运算符或优先级;(3)因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;(4)比较运算或变量出错;(5)循环终止条件不可能出现;(6)迭代发散时不能退出;(7)错误地修改了循环变量。

出错处理通路同样需要认真测试,着重检查下列问题:(1)输出的出错信息难以理解;(2)记录的错误与实际遇到的错误不相符;(3)在程序自定义的出错处理段运行之前,系统已介入;(4)异常处理不当;(5)错误陈述中未能提供足够的定位出错信息。

边界条件测试是单元测试中最后也是最重要的一项任务。采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。

    1. 总结

系统测试部分为软件工程里的必需模块,是对软件的功能实现情况,可用性以及可维护性的保证,本次测试中对于一些问题都找到了一些相关的解决方法,基本实现了总体设计里的功能模块。

千万不要删除行尾的分节符,此行不会被打印。“结论”以前的所有正文内容都要编写在此行之前。

结 论

本系统运用软件工程原理,通过需求分析、总体设计、详细设计、系统实现、测试总结,完成了税务登记子系统。本系统所实现的税务登记功能,其界面友好、功能完善、使用方便快捷、安全高效,使纳税信息得到网络上的共享,使税务录入人员录入工作可在网络上实现,提高了办公效率。

在本系统的开发过程中将ASP.NET技术应用到税务登记管理业务当中,将当代先进的B/S三层结构技术和税务的业务良好地结合在一起,基于B/S结构,实现了零客户端以及税务信息化,对我国税务机关的信息化建设起到了积极意义。

本系统实现了企业开业登记功能,税种登记功能,状态管理功能。基本完成了税务录入人员在功能上需求。

由于时间和技术上的一些原因,本软件还是存在一些缺陷和不足之处,比如:界面不够精美、功能还应再加强。

不要自己写,要利用word来自动生成。详情请看最后一页

致 谢

首先我的毕业设计能够得以顺利完成,是与哈工大首创集团杨绪岩老师的全力支持和热心帮助分不开的,当我在开发过程中遇到问题的时候,杨老师每次都能给予耐心、全面的解答,没有半句怨言,真正作到为人师表、授业解惑。这套软件无论是在初期设计阶段还是后期运行阶段都得到了指导教师、公司领导和纳税单位的好评,是他们的支持才有这套软件的成功,

其次我要感谢软件学院教师,范国祥老师、张广澍老师、姚霖老师,在我毕业设计的收尾阶段,他们勤勤恳恳,诲人不倦,帮我指正错误和误区,收获很大。

最后我还要感谢软件学院黄虎杰院长,在我毕业设计期间多次给我鼓励和技术帮助,使我顺利通过难关,再次表示深深的谢意。

由于各位老师的教诲和热心的帮助,我在毕业设计的过程中所遇到的困难基本上都很快得到解决。作为软件学院的首届本科毕业生,我感到骄傲的同时也深深感觉到自己知识储备的不足,在开发过程中感到压力很大,而学院却给我们相对优越的实习环境,学院分配给我们每人一台高档计算机,这样的条件足以保证我们的毕业设计任务能够圆满完成,在此对学院表示感谢。

通过毕业设计,不仅完成了我的学业,更重要的是使我对从需求分析到具体功能实现,再到最终测试和维护的软件工程有了深刻的理解,新的思维方法对我的思想也产生了极大的影响。现在我的动手能力和独立解决问题的能力得到了很大的锻炼和提高。

另外,在任务的完成过程中,由于开发语言和环境的相近性,我还得到了课题组同学的大力支持和帮助。高磊同学、王海生同学、刘伟同学、张学之同学还有同机房的其他同学都给予了我很大的帮助,正是他们的无私奉献才能够让我顺利地完成毕业设计,在此我真诚地向他们表示最衷心的感谢。

参考文献

1 邴兴东、李军. 企业税务注销登记存在的问题及对策. 税务纵横, 2003:3-5

2 陈婉玲. 计算机辅助税务稽查的探讨. 中国会计电算化, 2003:1-4

3 李志龙.  过因特网发送催报催缴信息. 税收科技, 2002:1-3

4 刘玉山、郝林、张海燕. 税务登记证改革势在必行. 草原税务, 2002:3-5

5 H.M.Deitel、 P.J.Deitel、J.A.Listfield.  C# for Experienced Programmers. Publishing House of Electronics Industry.  2003

6 Niel M.Bornstein.  .NET and XML. O’Reilly,  2002:6-10

7 Fritz Onion.  Essential ASP.NET with Examples in C#. 2003:6-10

8 Carper.  My .net Book, 2003:15-35

9 Chris Ullman. Beginning ASP.NET 1.1 With Visual C#.NET2003, 2004:6-15

10  Jesse Liberty、 Dan Hurwitz.  Programming Asp.NET,  2003:52-66

11 陈英学.  ASP.NET深入编程.  北京希望出版社, 2001:47-60

12 王超,张彭. ASP.NET/XML深入编程技术. 北京希望出版社, 2002:32-40

附录1  外文文献译文

ASP.NET是什么?

ASP.NET是一个能在规划好框架的服务器上建造强大的网络应用。

ASP.NET提供几个重要的优于以前的网络发展模型之处:

"增强的性能。

ASP.NET能在服务器上编译普通语言运行环境

不象它的解释前人ASP.NET能利用早的结合、just-in-time编辑,本国的最佳化,贮藏箱的全然的服务。Unlike its interpreted predecessors, ASP.NET can take advantage of early binding, just-in-time compilation, native optimization, and caching services right out of the box.

这数量对戏剧性地较好的性能在你曾写一排密码之前。

"世界第一流水平的工具支持。

ASP.NET的骨架在在视力的电影制片厂整体的发展环境方面的个有钱的工具箱和设计者旁是与补体连结的。

所见即所得编辑、drag-and-drop服务员控制和自动的使用是刚才一特征很少这个强大的工具提供。

"力和柔性。

因为ASP.NET运行时间以普通的语言为基础,完全的台是对网应用启发者有用的力和柔性。

。净的骨架类图书馆,通知,数据通道解法从网全部是无缝地可以接近的。

ASP.NET也是语言独立的,因此你能选择语言最好地适用于你的应用或横过许多语言瓜分你的应用。

更多地,普通的语言运行时间相互操作性保证你的现存的对根据COM发展的投资当到ASP.NET移时保存。

"简单性。

ASP.NET使从对使用和地点外形的简单的形式屈服于和顾客证实做普通的任务是容易的。

例如,ASP.NET的页骨架允许你建造使用者界面从表演密码的干净分离的应用逻辑并触摸事件在一简单的,可视化Basic如同形式处理模型。

另外,普通的语言运行时间简化发展,同管理密码服务像自动的提及计算和垃圾收集。

"可管理性。

ASP.NET雇用一个根据正文、hierarchical外形系统,这简化应用对你的服务员环境和网应用安置。

因为外形消息是作为清楚的正文贮藏,新的安置可能没有地方的管理工具的帮助被适用。

这"零地方的管理"哲学延长到展开ASP.NET。同样的净的骨架应用。

一ASP.NET的骨架应用是以对服务员复制必要的文件对一个服务员简单地展开。

无服务员再起动被需要,甚至展开或替换跑编辑了密码。

"可量测性和可得到。

ASP.NET在头脑方面已经设计成有可量测性,有明确地简单明了的特征改进在成群方面的性能和多处理机环境。

更多地,是紧密地的过程被小毒蛇监视了并管理。净的运行时间,结果如果某人行为不端(漏僵持),一个新的过程能在帮助保留经常地可得到的你的应用触摸需要的它的地方创造了。

" Customizability和伸长率。

ASP.NET送一个很好因素建筑那允许启发者向他们的在适当的平面之处的密码。

事实上,延长或替换ASP.NET的任何亚成分是可能的。有你的自己的习惯写成分的净的运行时间。

实现定做的证实或国家的服务从未是更容易的。

"安全。

同在窗证实和per-application外形里建造,你能被保证你的应用是安全的。

捆概观和句法ASP.NET的数据。网介绍一个捆句法的新的宣言的数据。

这极端弹性的句法许可启发者不仅仅到数据源捆,也对简单的属性,收集、表示甚至结果从方法呼叫返回了。

接着的桌子展示一些新的句法的实例。

虽然这种句法显得类似于ASP.NET为答复的shortcut的。写-- < % = % > --它的行为是完全不同的。

而ASP.NET答复。写shortcut句法当页加工了,ASP.NET时估计。捆句法的净的数据当DataBind方法祈祷时仅仅估计。

DataBind是一个页和所有的服务员控制的方法。

当你呼唤在一次父母控制上的DataBind时,它到所有的控制的孩子成瀑布落下。

如此,例如,DataList1。DataBind()在DataList样板里在各控制上祈祷DataBind方法。

关于页--页的呼叫DataBind。DataBind()或简单地DataBind()--引起捆关于页表示估计的所有的数据。

DataBind是普通从Page_Load事件,如所示在接着的实例方面呼唤了。

你能使用几乎在任何地方次结合表示在宣言的部分一。aspx页提供了它对期望的数据在跑时间的类型估计。

简单的财产,表示和方法实例高于表演正文对使用者当估计时。

在这些情况方面,捆表示的数据必须对一个类型绳的价值估计。

在收集实例方面,捆表示的数据对为ListBox的DataSource财产的个有效的类型的价值估计。

你可能发现强迫在你的结合表示里的价值的类型生产愿望结果是必要的。

例如,如果计算是一个整数:

记录的数:< % #计数。ToString()% >对简单的属性捆ASP.NET。捆句法的净的数据支持,对公众的变量、页的属性和关于页的别的控制的属性捆。

接着的实例说明对关于页的个公众的变量和简单的财产捆。

注意这些价值在DataBind()以前起始了呼唤。

接着的实例说明对一个另一控制的财产捆。

对如同DataGrid、ListBox和HTMLSelect收集和目录目录服务员控制捆作为一个数据源使用一收集。

接着的实例说明对通常的普通的语言运行时间收集类型捆。

这些控制能仅仅捆向收集那支持IEnumerable、ICollection或IListSource界面。

普通最多的,你将对ArrayList、Hashtable、DataView和DataReader捆。

接着的实例说明对一个ArrayList捆。

接着的实例说明对一个DataView捆。

注意DataView类在系统方面给其定义。数据namespace。

接着的实例说明对一个Hashtable捆。

经常捆表示或方法,你在对你的页或一次控制捆以前将想要操作数据。

接着的实例说明对一次表示和一个方法的返回价值捆。

DataBinder。EvalASP.NET供给一个静的方法那估计迟的捆数据捆表示和随意地版式象一条绳一样的结果。

DataBinder。Eval是方便的在那它投启发者的明白的更非常除去对愿望数据类型必须强迫价值。

当数据捆在一张放样目录之内控制,因为数据行和数据领域必须经常都投了时特别是有用的。

作为一条通用绳一个整数将展示的地方,考虑接着的实例。

同标准的ASP.NET。捆句法的净的数据,你对纠正错误整齐必须首先投数据行的类型数据领域、IntegerValue。

其次,这作为一次对绳的讨论被通过。版式方法。

这句法能是复杂的和困难的以便想起。

比较起来,DataBinder。Eval简单地是一个有关三次讨论的方法:为数据项目的名字容器、数据领域名字和一条版式绳。

在一张如同DataList、DataGrid或重发器的放样目录里,名字容器总是是容器。DataItem。

页是另一名字容器那能和DataBinder一起使用。Eval。

版式绳讨论是随意的。

如果它省去了,DataBinder。Eval如所示在接着的实例方面返回一个类型物体的价值。

注意那DataBinder是重要的。因为它使用迟的捆反射, Eval在捆句法的标准的数据上能带一次引人注意的性能惩罚。

使用DataBinder。Eval有见识地,特别当绳格式不是需要时。

部分总结

1。ASP.NET句法的净的宣言的数据使用< % # % >符号。

2 .你能捆到数据源,页或另一控制的属性,收集,表示,结果从方法呼叫返回了。

3 .目录控制能捆向收集那支持ICollection、IEnumerable或IListSource界面,象ArrayList、Hashtable、DataView和DataReader。

4 . DataBinder。Eval是一个为迟的结合的静的方法。

它的句法比捆句法的标准的数据能是简单的,而性能是慢慢地。

1。ASP.NET捆绑句法的净的宣言的数据使用< % # % >符号。

2 .你能捆到数据源,页或另一控制的属性,收集,表示,结果从方法呼叫返回了。

3 .目录控制能捆向收集那支持ICollection、IEnumerable或IListSource界面,象ArrayList、Hashtable、DataView和DataReader。

4 . DataBinder。Eval是一个为迟的结合的静的方法。

它的句法比捆句法的标准的数据能是简单的,而性能是慢慢地。

部分总结

1。DataList和重发器控制提供启发者调节了在数据捆目录的提出上的控制。

2 .给予捆数据被控制使用一个样板,象HeaderTemplate、FooterTemplate或ItemTemplate。

3 .重发器控制是一个通用的iterator,不插入东西在它的提出那别是在一个样板里包括。

4 . DataList控制在布置上提供更多控制和项目的风格,产量它的自己的提出为格式的密码。

5 . DataList支持能被对Datalist的线路事件管理人在页平面之处触摸根据命令而作的事件的选择,编辑/使/取消和同样地根据命令而作的事件。

6 . DataList支持为在次选择或editable项目的提出上的控制的个SelectedItemTemplate和EditItemTemplate。

7 .控制能前语法地从一个使用控制的样板收回。FindControl方法。

这应当在一个DataListItem上呼唤了从Datalist的项目收集收回。

附录2  外文文献原文

What is ASP.NET? 

ASP.NET is a programming framework built on the common language runtime that can be used on a server to build powerful Web applications. ASP.NET offers several important advantages over previous Web development models:

Enhanced Performance. ASP.NET is compiled common language runtime code running on the server. Unlike its interpreted predecessors, ASP.NET can take advantage of early binding, just-in-time compilation, native optimization, and caching services right out of the box. This amounts to dramatically better performance before you ever write a line of code.

World-Class Tool Support. The ASP.NET framework is complemented by a rich toolbox and designer in the Visual Studio integrated development environment. WYSIWYG editing, drag-and-drop server controls, and automatic deployment are just a few of the features this powerful tool provides.

Power and Flexibility. Because ASP.NET is based on the common language runtime, the power and flexibility of that entire platform is available to Web application developers. The .NET Framework class library, Messaging, and Data Access solutions are all seamlessly accessible from the Web. ASP.NET is also language-independent, so you can choose the language that best applies to your application or partition your application across many languages. Further, common language runtime interoperability guarantees that your existing investment in COM-based development is preserved when migrating to ASP.NET.

Simplicity. ASP.NET makes it easy to perform common tasks, from simple form submission and client authentication to deployment and site configuration. For example, the ASP.NET page framework allows you to build user interfaces that cleanly separate application logic from presentation code and to handle events in a simple, Visual Basic - like forms processing model. Additionally, the common language runtime simplifies development, with managed code services such as automatic reference counting and garbage collection.

Manageability. ASP.NET employs a text-based, hierarchical configuration system, which simplifies applying settings to your server environment and Web applications. Because configuration information is stored as plain text, new settings may be applied without the aid of local administration tools. This "zero local administration" philosophy extends to deploying ASP.NET Framework applications as well. An ASP.NET Framework application is deployed to a server simply by copying the necessary files to the server. No server restart is required, even to deploy or replace running compiled code.

Scalability and Availability. ASP.NET has been designed with scalability in mind, with features specifically tailored to improve performance in clustered and multiprocessor environments. Further, processes are closely monitored and managed by the ASP.NET runtime, so that if one misbehaves (leaks, deadlocks), a new process can be created in its place, which helps keep your application constantly available to handle requests.

Customizability and Extensibility. ASP.NET delivers a well-factored architecture that allows developers to "plug-in" their code at the appropriate level. In fact, it is possible to extend or replace any subcomponent of the ASP.NET runtime with your own custom-written component. Implementing custom authentication or state services has never been easier.

Security. With built in Windows authentication and per-application configuration, you can be assured that your applications are secure.

Data Binding Overview and Syntax 

ASP.NET introduces a new declarative data binding syntax. This extremely flexible syntax permits the developer to bind not only to data sources, but also to simple properties, collections, expressions, and even results returned from method calls. The following table shows some examples of the new syntax.

Although this syntax looks similar to the ASP shortcut for Response.Write -- <%= %> -- its behavior is quite different. Whereas the ASP Response.Write shortcut syntax was evaluated when the page was processed, the ASP.NET data binding syntax is evaluated only when the DataBind method is invoked.

DataBind is a method of the Page and all server controls. When you call DataBind on a parent control, it cascades to all of the children of the control. So, for example, DataList1.DataBind() invokes the DataBind method on each of the controls in the DataList templates. Calling DataBind on the Page -- Page.DataBind() or simply DataBind() -- causes all data binding expressions on the page to be evaluated. DataBind is commonly called from the Page_Load event, as shown in the following example.

You can use a binding expression almost anywhere in the declarative section of an .aspx page, provided it evaluates to the expected data type at run time. The simple property, expression, and method examples above display text to the user when evaluated. In these cases, the data binding expression must evaluate to a value of type String. In the collection example, the data binding expression evaluates to a value of valid type for the DataSource property of ListBox. You might find it necessary to coerce the type of value in your binding expression to produce the desired result. For example, if count is an integer:

Number of Records: <%# count.ToString() %> 

Binding to Simple Properties 

The ASP.NET data binding syntax supports binding to public variables, properties of the Page, and properties of other controls on the page.

The following example illustrates binding to a public variable and simple property on the page. Note that these values are initialized before DataBind() is called.

The following example illustrates binding to a property of another control. Binding to Collections and Lists 

List server controls like DataGrid, ListBox and HTMLSelect use a collection as a data source. The following examples illustrate binding to usual common language runtime collection types. These controls can bind only to collections that support the IEnumerable, ICollection, or IListSource interface. Most commonly, you'll bind to ArrayList, Hashtable, DataView and DataReader.

The following example illustrates binding to an ArrayList.

The following example illustrates binding to a DataView. Note that the DataView class is defined in the System.Data namespace.

The following example illustrates binding to a Hashtable.

Binding Expressions or Methods 

Often, you'll want to manipulate data before binding to your page or a control. The following example illustrates binding to an expression and the return value of a method.

DataBinder.Eval 

The ASP.NET framework supplies a static method that evaluates late-bound data binding expressions and optionally formats the result as a string. DataBinder.Eval is convenient in that it eliminates much of the explicit casting the developer must do to coerce values to the desired data type. It is particularly useful when data binding controls within a templated list, because often both the data row and the data field must be cast.

Consider the following example, where an integer will be displayed as a currency string. With the standard ASP.NET data binding syntax, you must first cast the type of the data row in order to retrieve the data field, IntegerValue. Next, this is passed as an argument to the String.Format method.

This syntax can be complex and difficult to remember. In contrast, DataBinder.Eval is simply a method with three arguments: the naming container for the data item, the data field name, and a format string. In a templated list like DataList, DataGrid, or Repeater, the naming container is always Container.DataItem. Page is another naming container that can be used with DataBinder.Eval.

The format string argument is optional. If it is omitted, DataBinder.Eval returns a value of type object, as shown in the following example.

It is important to note that DataBinder.Eval can carry a noticeable performance penalty over the standard data binding syntax because it uses late-bound reflection. Use DataBinder.Eval judiciously, especially when string formatting is not required.

Section Summary

The ASP.NET declarative data binding syntax uses the <%# %> notation.

You can bind to data sources, properties of the page or another control, collections, expressions, and results returned from method calls.

List controls can bind to collections that support the ICollection, IEnumerable, or IListSource interface, such as ArrayList, Hashtable, DataView, and DataReader.

DataBinder.Eval is a static method for late binding. Its syntax can be simpler than the standard data binding syntax, but performance is slower.

Section Summary

The DataList and Repeater controls provide developers fine-tuned control over the rendering of data-bound lists.

Rendering of bound data is controlled using a template, such as the HeaderTemplate, FooterTemplate, or ItemTemplate.

The Repeater control is a general-purpose iterator, and does not insert anything in its rendering that is not contained in a template.

The DataList control offers more control over the layout and style of items, and outputs its own rendering code for formatting.

The DataList supports the Select, Edit/Update/Cancel, and Item Command events, which can be handled at the page level by wiring event handlers to the DataList's Command events.

DataList supports a SelectedItemTemplate and EditItemTemplate for control over the rendering of a selected or editable item.

Controls can be programmatically retrieved from a template using the Control.FindControl method. This should be called on a DataListItem retrieved from the DataList's Items collection.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值