基于B-S的文印公司账务管理系统研发

2017-06-29 12:00:34袁明明张永强
计算机应用与软件 2017年5期
关键词:文印经办人非现金

曾 强 袁明明 张永强

1(河南理工大学安全科学与工程学院 河南 焦作 454000)2(河南理工大学后勤集团公司 河南 焦作 454000)

基于B-S的文印公司账务管理系统研发

曾 强1袁明明1张永强2

1(河南理工大学安全科学与工程学院 河南 焦作 454000)2(河南理工大学后勤集团公司 河南 焦作 454000)

以M文印公司为例,研究开发一套基于B-S的文印公司账务管理系统。首先,在对比分析C-S和B-S优缺点的基础上,根据M文印公司分布式管理特点,提出开发基于B-S的账务管理系统的总体技术解决方案。然后,依次对基于B-S的M文印公司账务管理系统进行了系统分析、总体功能设计、数据库设计、程序设计和安全设计。最后,通过应用实施验证了所研发的基于B-S的文印公司账务管理系统的有效性。

账务管理系统 B-S结构 系统分析 系统设计 程序设计 安全设计

0 引 言

随着社会的不断进步,人们对文印服务的需求越来越旺盛。很多文印服务组织从只拥有一个文印部迅速扩展到拥有多个地理上相对分散的文印部,从而形成具有一定规模的文印公司。随着文印公司规模的不断扩大,原来粗放的管理模式越来越不适应,从而产生了对其各文印部进行统一管理的需求。账务管理是文印公司最重要、最繁琐的管理内容,其中记账和统计是两项重要业务。经调查发现,大多数文印公司的记账方式落后,通常采用手工记账或Excel电子记账,很少采用系统记账。手工记账是最落后的记账方式,其主要缺点如下:其一,信息无法共享;其二,统计工作繁琐;其三,统计准确性难以保证;其四,存在较大的安全隐患,一旦纸质账本丢失将给公司带来重大损失;其五,客户满意度低,客户在清账时核对工作量大,尤其当客户在同一文印公司的不同文印部均存在账务时,其清账工作量更大。相对于手工记账而言,Excel电子记账在以上五个方面均有一定程度的改进,但仍然存在一些不足:其一,账务虽可在公司内部通过文件传递方式实现共享,但效率低下而不及时;其二,统计工作量仍然较大且不及时,每次统计需要将各个文印部的账务汇总后进行,汇总和统计需要较长时间;其三,统计的准确性因统计工作量大而受到影响;其四,仍存在一定的安全隐患,虽可通过文件备份的方式保证账务不丢失或少丢失,但若账务文件在传递或保存过程中被非法获取将给公司带来较大麻烦;其五,客户清账工作量仍然不小。基于此,对于具有一定规模的文印公司,以网络化的账务管理系统取代落后的账务管理方式势在必行。

当前流行的网络化管理系统有C-S模式和B-S模式两种。C-S模式是一种两层结构,其优点在于它具有较强的交互性和较快的处理速度、存取安全、界面友好,其缺点在于它是一种肥客户端模式、可扩展性差、开发维护成本高,、受地理位置的限制。B-S模式是一种三层结构,其优点在于它是一种瘦客户端模式、具有良好的跨平台性和可扩展性、更新容易、开发维护成本低、不受地理位置的限制。虽然B-S模式也存在其缺点,例如存取速度、存取安全性不如C-S模式,但是该模式突破了地理位置的限制,更适合于地理位置分散型组织的网络化管理,只要有效进行程序设计和安全设计,其缺点可以得到有效克服。

M文印公司拥有1个总部和4个文印部,它们在地理位置上具有分布式特点,适合选用B-S模式的管理系统。基于此,本文以M文印公司为例,研究并开发了一套基于B-S的文印公司账务管理系统。

1 系统分析

M文印公司始建于2011年,位于X高校,最初拥有1个文印店(X文印部),后因业务范围扩展,在Y高校又增加了1个分店(Y文印部),在社会上增加了2个分店(Z文印部、W文印部),从而形成了1个虚拟总部与4家分店的经营管理模式,总部设有多名管理员,各分部设有多名记账员。M文印公司的组织结构如图1所示。

图1 M文印公司组织结构图

拟开发的账务管理系统希望实现各个分店账务的统一管理,提高统计效率、准确性、安全性,同时提高客户满意度。经过与M公司主管的多次调查与沟通,确定系统的具体设计目标如下:

(1) 记账员能及时准确记录客户的消费账务;

(2) 为防止记账员事后修改账务造成数据不可信,不允许记账员修改账务,若出现错记情况,可通过添加抵销记录的方式进行纠错;

(3) 对于现金账务,记账时只记录消费内容和消费金额信息;

(4) 对于非现金账务(发票转账、内部转账),记账时需记录客户、经办人、消费内容及消费金额等信息;

(5) 每名记账员仅隶属于一个部门,其所记账务隶属于其所隶属的部门;

(6) 记账员能且只能查询自己部门的账务;

(7) 记账员能进行客户管理、经办人管理、经办关系管理;

(8) 管理员能且只能查询、统计各部门的账务而不能修改或删除账务,以实现对各部门绩效的准确考核;

(9) 管理员能进行内部用户管理、部门管理,以保证只有合法用户才能进入系统进行管理;

(10) 管理员能对非现金账务进行收账和清账;

(11) 客户能查询自己的非现金账务;

(12) 经办能查询自己经办的非现金账务;

(13) 记账员、客户、经办人、管理员能修改个人资料,尤其是密码;

(14) 系统应具有良好的数据输出功能,如导出数据到Excel、打印输出等;

(15) 系统应具有较强的安全性。

根据M公司的组织结构、设计目标及数据量不太大的特点,本文提出采用如下的系统解决方案:

(1) 服务器端:提供IIS服务;

(2) 客户端:能上网的计算机,最好配备打印机;

(3) 开发模式:B-S;

(4) 数据库:Access 2007;

(5) 开发语言:ASP+VBSCRIPT+JAVASCRIPT。

2 系统总体功能设计

2.1 系统功能模块设计

根据系统分析结果,设计的系统总体功能模块如图2所示。

图2 系统总体功能模块设计

(1) 部门管理 实现公司部门的管理。目前公司包括总部(虚拟部门)、X文印部、Y文印部、Z文印部、W文印部共五个部门,随着业务范围的扩展与变化,可能还会增加、删除公司部门或修改部门资料。

(2) 内部用户管理 实现公司内部用户(记账员、管理员)的管理。一个部门可设有多名内部用户,一名员工可拥有多个账号(相同角色或不同角色),一个用户唯一隶属于一个部门。

(3) 客户管理 实现公司客户的管理。这里的客户特指以非现金方式(发票转账或内部转账方式)支付账款的固定客户(单位、个人),不包括以现金方式支付的客户(散户或固定客户)。每一笔非现金方式支付的账务唯一隶属于某一个客户。

(4) 经办人管理 实现账务经办人的管理。非现金支付账款的账务须指定经办人,该经办人可以是客户本身、也可以是其他人。

(5) 经办关系管理 出于安全考虑,并非数据库中的所有经办人都能经办某客户的账务,而只有经过客户“授权”的经办人才能经办该客户的账务,这种“授权”特指具有有效的经办关系,本模块实现经办关系的添加、删除或修改。

(6) 资料管理 实现系统用户(客户、经办人、记账员、管理员)资料的查询与修改。

(7) 记账 记账是本系统的核心功能模块,包括非现金记账和现金记账两个子模块。非现金记账包括发票转账、内部转账两种,记账时要指定账务的客户、经办人、消费内容和金额等信息。现金记账不需指定客户和经办人,只需记录消费内容、金额等信息。

(8) 清账管理 现金记账的账务是现支现记,不需要后续再次清账,而非现金记账的账务则需要后续收账后进行清账操作。

(9) 账务查询与统计 实现系统用户进行账务的查询与统计。客户能查询统计其以非现金方式支付的账务。经办人能查询统计其以非现金方式经办的账务。记账员能查询统计本部门发生的所有账务,包括现金账务和非现金账务。管理员能查询统计公司发生的所有账务,包括现金账务和非现金账务。

2.2 系统角色及权限划分

如上所述,本系统共设计了四种角色,分别是记账员、管理员、客户、经办人,其中记账员、管理员属于公司内部用户,客户、经办人属于公司外部用户。各角色的权限划分见表1所示。

表1 系统各角色权限划分表

3 数据库设计

根据系统分析和功能模块设计的要求,按照数据库规范化设计思想,设计了本系统的数据库[7-8]。

3.1 数据表设计

(1) 部门:此表用于存储文印公司下设各部门的信息。如表2所示。

表2 部门

(2) 内部用户:此表用于存储文印公司管理员、记账员信息。如表3所示。

表3 内部用户

(3) 客户:此表用于存储客户信息,包括单位客户和个人客户两类,单位客户记录名称、部门地址、负责人、负责人固话、负责人手机、负责人办公室、负责人邮箱等信息;个人客户记录名称、身份证号、所属部门、个人办公室、个人固话、个人手机、个人邮箱等信息。如表4所示。

表4 客户

(4) 经办人:此表用于存储经办人信息,如表5所示。

表5 经办人

(5) 经办关系:此表用于存储经办关系信息。客户与经办人之间是多对多的关系,某经办人只能经办在此表中具有有效经办关系的客户的账务,如表6所示。

表6 经办关系

(6) 账务:此表用于存储客户的账务。如表7所示。

表7 账务

3.2 数据库关系设计

表间关系的设计是数据库设计的重要环节,不设计表间关系或设计了不正确的表间关系会导致后序程序设计代码的冗长或数据不完整、不正确甚至丢失。表间关系设计包括数据表之间的关联关系和触发关系。本系统设计的表间关联关系设计如图3所示。本系统触发关系的设计考虑了数据的正确性和安全性两个因素[9]。为保证数据的正确性,选中了“实施参照完整性”和“级联更新相关字段”。考虑到安全因素,为保证不因删除父表中的记录而使子表中的相关记录被级联删除,不选中“级联删除相关记录”选项。例如因某种原因,某客户不再是公司的客户,但其账务仍然属于公司,如果选中了“级联删除相关记录”选项,若不小心把该客户删除而使账务表中与该客户相关的账务级联删除则会导致公司的账务不完整。以客户表和账务表为例,其触发关系设计如图4所示。

图3 表间关联关系

图4 表间触发关系

4 程序设计

程序设计内容较多,限于篇幅,仅以“记账”和“账务查询与统计”模块为例进行介绍。

(1) 记账

记账包括非现金记账和现金记账两种。非现金记账设计界面如图5所示,其设计思路如下:记账员在选择客户后,再根据经办关系选择该客户有效的经办人,选择消费内容并输入消费金额,点“确定”进行账务添加。具体代码略。

现金记账设计界面如图6所示。如3.2节所述,由于客户与账务、经办人与账务之间的触发关系选中了“实施参照完整性”选项,因此要求在账务表中记录的账务必须指定客户和经办人。但是考虑到现金记账的方便性,图6的设计并不让记账员选择客户和经办人,从而产生了矛盾,为了化解此矛盾,系统中做了如下的创新性设计:首先,在客户表中人工增加一条记录,编码为xjkh,名称为现金客户,同理,在经办人中也人工增加一条记录xjjbr,名称为现金经办人,并且这两条记录不允许删除和修改其编码;然后,通过程序添加一笔现金记录,其中客户默认值为“xjkh”、经办人默认值为“xjjbr”、记账类型默认值为“现金”、清账标志默认值为“是”。其设计思路实际上是将所有以现金方式支付的客户都归为现金客户(虚拟客户),其账务的经办人统一为现金经办人(虚拟经办人)。

图5 非现金记账

(2) 账务查询与统计

账务查询与统计设计界面如图7所示。该模块实现模糊查询某记账员所属部门的所有账务,分为查询条件和账务列表两部分,记账员在查询条件中进行条件设定,点“查询”即可在账务列表部分列出符合条件的非现金账务并进行记录数和金额的统计。实现模糊查询的部分语句如下[10]:

<%

……

set conn = Server.CreateObject(″ADODB.Connection″)

connstr=″Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=****** ;Data Source=″&Server.MapPath

(″db/wymis.mdb″)

conn.Open connstr

Set oRs = Server.CreateObject( ″ADODB.Recordset″)

sSql=″select * from 账务 where 归属部门=‴& session(″gsbm″) & ‴and 客户编码 like ′%″ & request.form(″客户编码″) & ″%′ and 经办人编码 like ′%″ & request.form (″经办人编码″) & ″%′ and 记账类型 like ′%″ & request.form (″记账类型″) & ″%′ and 清账标志 like ′%″ & request.form (″清账标志″) & ″%′ order by 记账时间 asc″

oRs.Open sSql, conn, 0, 1

……

%>

图7 账务查询与统计设计界面

说明:wymis.mdb是数据库名称,db是其存放的文件夹,******是其打开密码,session(″gsbm″)在记账员进行系统登录时进行赋值,它记录记账员所属部门编码。

5 安全设计

系统安全是一个管理系统必须考虑的因素,失去安全性的系统即使管理效率再高也没有人敢使用。为此本系统从数据库加密、用户密码加密、用户身份验证和代码加密四个方面进行了安全设计[6]。

(1) 数据库加密

数据库是存储数据的容器,为防止随意打开和篡改数据库中的数据,必须首先给数据库设置打开密码。Access数据库打开密码的设置比较简单,在此不需赘述。

(2) 用户密码加密

经过加密的数据库并不能完全防止非法用户的侵入,如果用户密码采用明码存储,则非法用户一旦打开数据库,则其密码必然暴露无疑。为确保即使非法用户看到了密码却无法通过程序进入系统,需要对密码进行加密。本系统采用了md5算法对用户密码(内部用户密码、客户密码、经办人密码)进行加密和验证[11-12]。具体设计如下:系统用户在被添加时,将设置的用户密码通过md5算法进行转换(转换成32个字符的一串看似毫无规律的代码)后存入数据表(内部用户、客户、经办人),当用户进行系统登录时,程序将其输入的密码经过同样的算法转换后与根据用户名从数据库中提取的密码进行对照,若相同则是合法用户,否则是非法用户。

(3) 用户身份验证

为防止非法用户获得网页的地址后通过直接输入网址而绕开系统登录页面,需要在相应的网页中对用户进行身份验证[13]。具体设计如下:首先在登录页面验证为合法用户后用Session(″uname″)记录系统用户名,然后在需要进行身份验证的网页中用下面的JAVASCRIPT语句进行身份验证。以部门管理网页为例:

<%

on error resume next

sSql = ″select * from 内部用户 where 用户名=‴& session(″uname″) & ″″

oRs.Open sSql, conn, 0, 1

if oRs.eof or oRs(″类型″)<>″管理员″ then

Response.Write(″″

end if

oRs.close

%〉

以上代码根据session(″uname″)从内部用户表中查询该用户的类型,若该用户为管理员则正常访问该网页,否则不允许访问该网页。

(4) 代码加密

为防止非法用户进入网站所在服务器查看系统代码或复制系统代码后进行修改后使用,需要进一步对代码进行加密。本系统采用“ASP代码加密工具Script Encoder”对系统代码进行了加密[14],经过加密后的系统代码看似毫无规律的乱码,但能保证正常访问。非法用户并不能看懂代码的内容,并且难以解密,一旦非法用户改动其中某个网页的任意代码则会导致该网页不能正常访问,从而有效防止非法用户对复制的系统代码进行修改从而对原创者知识产权进行侵权。

另外,为防止非法用户删除、篡改服务器上的源程序从而导致系统瘫痪,需要管理员对源程序保留最新副本,并定期对服务器上的数据库进行下载备份。

6 系统应用实施

将开发的M文印公司账务管理系统部署在远程服务器上(网址为http://hpuzengqiang.gotoip2.com/wymis)进行了应用验证。考虑到保密的原因,本文使用的数据为模拟数据。图8是系统登录界面,用户选择身份,然后输入用户名和密码,通过验证后根据用户身份进入相应的系统主界面,图9是记账员主界面(用户名:lix),图10是管理员主界面(用户名:zhxq),限于篇幅,没有列出客户主界面和经办人主界面。在记账员主界面,点“账务”可进入部门账务管理界面,其中记账是其核心业务,图11是非现金记账界面,图12是现金记账界面。由于用户lix所属部门为X文印部,因此通过此主界面所记账务全部属于X文印部,图13是通过模糊查询得到的该部门2014/12/1-2014/12/15内部转账的账务。在管理员主界面,点“账务”可进入部门账务查询与统计界面。在此界面,管理员可以查询或统计各个部门账务,可以点击每笔清账标志为“否”的账务将其清账标志置为“是”从而实现单独清账,还可以先查询出要清账的账务,再点击“批量清账”将这些账务的清账标志全部置为“是”从而实现批量清账。图14是Y高校理化学院2014/12/1-2014/12/15未清账的账务,图15是点击“批量清账”完成批量清账后的账务。另外,以客户身份可进入客户主界面,通过此界面客户可以对其个人资料进行查询与修改,还可以查询自己消费的非现金账务;以经办人身份可进入经办人主界面,通过此界面经办人可以对其个人资料进行查询与修改,还可以查询自己经办的非现金账务,限于篇幅,在此不一一介绍。

图8 系统登录

图9 记账员主界面

图11 非现金记账

图12 现金记账

图13 X文印部2014/12/1-2014/12/15内部转账账务

图14 Y高校理化学院2014/12/1-2014/12/15未清账的账务

图15 Y高校理化学院2014/12/1-2014/12/15批量清账后的账务

7 结 语

应用实施结果表明:(1)本文研发的基于B-S的文印公司账务管理系统实现了该文印公司账务的网络化管理。客户可以在该公司除总部外的任何一个部门进行消费记账,其中非现金账务统一由管理员进行收账与清账,客户可随时随地查询统计自己的非现金账务,经办人可随随地查询统计自己经办的非现金账务,记账员可随时随地查询统计所属部门的账务(现金和非现金账务),管理员可随时随地查询统计各部门的账务从而实现部门绩效考核。(2)该系统具有较高的安全性、灵活性、高效性和准确性。(3)该系统应用范围较广,不仅适用于单个文印部的管理,更适用于多个文印部的统一管理,具有一定的推广应用价值。

[1] 耿俊豹,梁乾,魏曙寰,等.综合C/S和B/S模式的船舶信息管理系统[J].计算机工程,2005,31(13):215-216.

[2] 查修齐,吴荣泉,高元钧.C/S到B/S模式转换的技术研究[J].计算机工程,2014,40(1):263-267.

[3] 罗景泉,鄢萍,张研,等.一种B/S模式下车间层数据传输方案的研究与应用[J].重庆大学学报,2012(S1):6-10.

[4] 刘治理,马光文,戴露.基于三层B/S结构的梯级水电厂中长期优化调度[J].计算机工程,2006, 32(6):240-242.

[5] 张培科,胡乃联,董书革.基于B/S模式的矿山设备管理系统设计与实现[J].有色金属,2011,63(2):268-271.

[6] 张华桁,宋立群,柯科峰.B-S构架信息系统的安全策略研究与开发[J].计算机工程与应用,2004,40(13):159-162.

[7] 周汉平.数据库设计及其应用程序开发[M].北京:清华大学出版社,2010.

[8] 刘亚军,高莉莎.数据库设计与应用[M].北京:清华大学出版社,2007.

[9] 张科,高赟.基于Web环境下的Access动态数据库设计与实现[J].电化教育研究,2007(12):45-47.

[10] 范秀平,尚武.SQL语法范例手册[M].北京:科学出版社,2007.

[11] 何俊杰,李广锡.采用MD5加密算法保护用户口令[J].计算机工程,2000(S1):277-280.

[12] 张裔智,赵毅,汤小斌.MD5算法研究[J].计算机科学,2008,35(7):295-297.

[13] 宋维平,曾一,涂争光,等.B/S模式下OA系统的权限控制设计与实现[J].计算机工程与应用,2004,40(35):199-201.

[14] 陈莲娜,梁自力.ASP的作品保护[J].计算机应用,2003,23(S1):282-283.

RESEARCH AND DEVELOPMENT OF ACCOUNT MANAGEMENT SYSTEM FOR TYPING COPY CORPORATION BASED ON B-S

Zeng Qiang1Yuan Mingming1Zhang Yongqiang2

1(SchoolofEnergyScienceandEngineering,HenanPolytechnicUniversity,Jiaozuo454000,Henan,China)2(LogisticsGroupCompany,HenanPolytechnicUniversity,Jiaozuo454000,Henan,China)

With M Typing Copy Corporation as an example, this paper researches and develops a set of accounting management system based on B-S. Firstly, based on the comparative analysis of the advantages and disadvantages of C-S and B-S, this paper puts forward the overall technical solution of B-S-based account management system based on the distributed management characteristics of M Company. Then, the system analysis, overall function design, database design, program design and security design of M Company account management system based on B-S are carried out. Finally, through the implementation of application to verify the effectiveness of the accounting management system.

Account management system B-S structure System analysis System design Program design Safety design

2016-04-20。河南省教育厅科学技术研究项目(12B120005);河南理工大学博士基金项目(B2011-088)。曾强,副教授,主研领域:工业工程。袁明明,硕士生。张永强,硕士。

TP391

A

10.3969/j.issn.1000-386x.2017.05.056

猜你喜欢
文印经办人非现金
加强高校财务信息化建设的重要性
——基于复翼财务系统的使用
智能文印管理系统研究
惠普首推“智慧文印中枢” 开启新智慧办公时代
以3D打印为例探析高校文印市场
山东青年(2018年4期)2018-09-26 11:31:10
高速公路非现金联网支付体系建设探讨
优化高校财务报销流程探究
非现金支付方式在高速公路MTC收费中的应用与探讨
基于高速公路非现金支付卡应用的小额支付平台建设与发展
基于高速公路非现金支付卡的空中充值平台研究与建设
全新惠普文印管理服务项目为中国渠道合作伙伴开启新机会