APP下载

基于B/S模式的期刊邮寄标签管理系统的设计与实现

2016-11-12李松林饶华英向晓丽陈义中

关键词:字段标签管理系统

李松林,饶华英,向晓丽,陈义中

(武汉工程大学研究设计院,湖北 武汉 430074)



基于B/S模式的期刊邮寄标签管理系统的设计与实现

李松林,饶华英,向晓丽,陈义中

(武汉工程大学研究设计院,湖北 武汉430074)

采用asp.net技术、C#编程语言、Access数据库,基于B/S模式设计开发了适用于期刊编辑部的邮寄标签管理系统,实现了邮寄标签的信息管理、数据分析与统计、自动排序、批量裁剪等功能。

asp.net; B/S模式;期刊;邮寄标签;管理系统

随着信息技术的发展,期刊编辑部的信息化、网络化管理水平有了很大的进步[1-2]。不少期刊编辑部都已经采用了期刊在线采编系统、网络协同办公系统(OA)等,这类系统对于提高期刊编辑部的工作效率和规范化管理水平发挥了非常重要的作用[3-4]。

期刊的发刊工作是期刊编辑部工作内容中非常重要的一环,是与读者、作者、编委等进行交流、扩大期刊影响力的重要手段。每期的期刊都需要邮寄给多个不同地址的用户,具有数据量大、地址范围广、数据统计困难等特点。目前普遍采用的方式是将邮寄信息汇总打印,然后通过人工进行统计、裁剪和粘贴。可能存在数据重复、格式错误、统计错误、裁剪效率低下等问题,而目前主流的网络办公系统都未集成邮寄标签管理的相关功能。基于此,作者使用asp.net技术,采用三层(表现层、业务逻辑层、数据访问层)架构体系,基于B/S模式设计开发了适用于期刊编辑部的邮寄标签管理系统[5-9],实现了邮寄标签的信息管理、数据分析与统计、自动排序、批量裁剪等功能,可大幅提升期刊编辑部邮寄标签的处理效率和信息化管理水平。

1 数据库设计

采用Access数据库,设计了邮寄标签分类表、邮寄标签信息表、打印任务表、日志信息表、用户信息表,表间通过Id进行关联。其中,邮寄标签信息表和打印任务表的字段设计见表1、表2:

其中,“标签分类”字段与邮寄标签分类表进行对应,用于对标签信息的分类(如作者、编委等)进行区分;“邮寄总数”字段为该信息邮寄期刊的总份数;“是否本地”字段用于区分信息所在地为本地或是外地;“邮编”、“地址”、“补充地址”、“单位”、“收件人”、“补充信息”等字段为邮寄标签的详细信息;“备注”字段用于添加备注信息;“操作者Id”和“添加时间”字段用于记录操作来源。

其中,“打印任务名称”字段用于给当前打印任务进行命名;“打印标签Id列表”字段为需要打印的邮寄标签信息的Id序列,以半角逗号(,)分隔,其中的各个Id与邮寄标签信息表中的标签信息Id对应;“备注”字段用于添加备注信息;“本地1份统计”、“本地2份统计”、“本地3份统计”、“外地1份统计”、“外地2份统计”、“外地3份统计”分别统计打印的邮寄标签信息中的本地和外地邮寄期刊的份数,在添加打印信息时由业务逻辑层进行统计和记录;“打印时间”字段记录了该打印信息的实际打印时间;“操作者Id”和“添加时间”字段用于记录操作来源。

表1 邮寄标签信息表

表2 打印任务表

2 业务逻辑设计

采用C#编程语言和面向对象的程序设计思想,以邮寄标签管理、打印任务管理、打印模板管理、系统日志管理和用户管理为主要功能进行期刊邮寄标签管理系统的开发。邮寄标签管理系统的业务流程如图1所示。

图1 业务流程图

2.1邮寄标签管理

邮寄标签管理模块所包含的功能有:标签信息的添加、修改和删除;标签信息的列表分页显示;标签信息按分类或属性的筛选;标签信息数据统计;信息的综合查询或按字段查询;标签信息的批量添加等。标签信息的管理界面如图2所示:

图2 标签信息管理界面

2.1.1标签信息的添加添加标签信息时系统自动对比数据库中的已有数据,实现数据的查重和提醒,同时根据标签信息的邮编数据自动判断该记录的本地或外地属性,批量添加数据时自动扫描区分信息并校正格式,自动与数据库中的字段进行对应后入库。标签信息添加界面如图3所示:

图3 标签信息添加界面

2.1.2标签信息的查询标签信息的查询检索采用模糊匹配的方式,由于本系统中各字段的内容长度有限,采用模糊匹配的查询效率足以满足实际要求。

2.2打印任务管理

打印任务管理为本系统的核心功能,包括打印任务的添加、修改(补充)、标签信息的的打印等功能,同时还实现了邮寄标签信息的组合筛选、分类排序、汇总统计等功能。打印任务管理界面如图4所示:

图4 打印任务管理界面

2.2.1打印任务的添加与修改系统默认将自动添加当期的作者标签数据、指定数目的某分类的随机标签数据及其它分类的全部标签数据来生成当期的打印任务。此外,还支持通过按分类或编号添加标签数据、直接从数据库中选择并添加标签数据以及按编号排除不需要打印的标签数据的功能。标签数据添加完成后系统进行实时的分类统计和汇总,并实时反馈统计结果。

可以通过打印信息添加功能继续添加新的标签数据;可以补充打印指定数目的某分类的随机标签数据;在打印任务管理页面会显示当前打印标签信息的详细列表,可以对标签信息进行筛选和剔除。

2.2.2标签信息的打印本系统设计了3种标签信息的打印方式:打印当前任务全部的标签信息、打印指定分类的标签信息和补充打印指定数目的某分类的标签信息。

标签打印版式设计为横向排版,采用4×4的布局方式。实现了标签数据的分类排序(按“标签分类”、“邮寄份数”、“所在地”3级排序)、邮寄份数的自动拆分和分类统计、打印信息的自动分页、裁剪参考线的自动设置等功能。核心业务代码如下:

private void drawPrintPanel( )

{

DataSet ds = bllEmailType.GetList(0, "", "Id asc");

foreach (DataRow row in ds.Tables[0].Rows)

{

FYMail.Model.PrintList info = new FYMail.Model.PrintList();

info.EmailTypeId = Convert.ToInt32(row["Id"]);

info.TypeName = row["TypeName"].ToString();

info.TemplateString = row["TemplateString"].ToString();

info.Items = new List();

printlist.Add(info);

}

model = bll.GetModel(this.Id);

if (model != null)

{

DataSet dsEmailBase = bllEmail.GetList(0, "Id>0 and Id IN(" + model.EmailList.TrimStart(',') + "0)", "Id asc");

foreach (DataRow row in dsEmailBase.Tables[0].Rows)

{

foreach (FYMail.Model.PrintList listItem in printlist)

{

if (listItem.EmailTypeId == Convert.ToInt32(row["EmailType"]))

{

string tmpStr = listItem.TemplateString.Replace("$邮编$",

row["Postcode"].ToString()).Replace("$地址1$", row["Address"].ToString()).Replace("$地址2$", row["Address2"].ToString()).Replace("$单位$", row["Department"].ToString()).Replace("$收件人$", row["Consignee"].ToString()).Replace("$其它$", row["OtherInfo"].ToString());

CalPrintList(temStr,row);

……

pageCount = orderPrintStr.Count / 16 + (orderPrintStr.Count % 16 == 0 0 : 1);

string pageTemplateStr = "

";

prtStr = new StringBuilder();

string outputStr = "";

for (int i = 0; i < pageCount; i++)

{

outputStr = pageTemplateStr.Replace("$位置1$", setPrtString(i * 4)).Replace("$位置2$", setPrtString(i * 4 + 1)).Replace("$位置3$", setPrtString(i * 4 + 2)).Replace("$位置4$", setPrtString(i * 4 + 3))

.Replace("$位置5$", setPrtString((pageCount + i) * 4)).Replace("$位置6$", setPrtString((pageCount + i) * 4 + 1)).Replace("$位置7$", setPrtString((pageCount + i) * 4 + 2)).Replace("$位置8$", setPrtString((pageCount + i) * 4 + 3))

.Replace("$位置9$", setPrtString((pageCount * 2 + i) * 4)).Replace("$位置10$", setPrtString((pageCount * 2 + i) * 4 + 1)).Replace("$位置11$", setPrtString((pageCount * 2 + i) * 4 + 2)).Replace("$位置12$", setPrtString((pageCount * 2 + i) * 4 + 3))

.Replace("$位置13$", setPrtString((pageCount * 3 + i) * 4)).Replace("$位置14$", setPrtString((pageCount * 3 + i) * 4 + 1)).Replace("$位置15$", setPrtString((pageCount * 3 + i) * 4 + 2)).Replace("$位置16$", setPrtString((pageCount * 3 + i) * 4 + 3));

if (i % 5 != 0)

{

outputStr = outputStr.Replace("background:url(../../images/4_4.jpg) left top no-repeat;", "");

}

prtStr.Append(outputStr).Append(" ");

}

PrtText.Text = prtStr.ToString();

}

标签信息的打印预览效果如图5如示,打印出的标签信息已由系统自动分类排序,使用裁纸机根据裁剪参考线进行批量裁剪后即可发布。

图5 打印预览效果

2.3打印模板管理

系统可对每个分类的标签信息进行打印样式设定,通过打印模板进行管理。其中某个分类的打印模板代码如下:

$邮编$  $份数$ 

$地址1$

$地址2$

$单位$

$收件人$    $其它$

以上代码中,以符号“$”包含的信息与数据库中的相应字段一一对应;“ ”为HTML语言中空格的转义字符,实现打印空格的作用;嵌入的HTML标签(如span标签)可以进行自定义的样式设置。

2.4系统日志管理

系统日志用于记录用户的访问和操作,记录的字段包括:用户Id、用户名、来源IP、操作类型、操作时间等,用于监控系统的运行状态。

2.5用户管理

用户管理模块实现了用户的登陆、注销、密码修改等功能。

为简化管理流程,本系统仅设计了2个层次的用户级别:普通管理员和系统管理员。其中,普通管理员可以进行邮寄标签信息的管理和打印信息的管理;系统管理员除了以上权限外,还可以进行打印模板设置及日志信息查看等。

3 前端界面设计

系统前端界面设计为左右分栏框架结构,左侧为导航区,右侧为数据显示与处理区。其中,左侧导航区可隐藏。

前端页面采用HTML编码,通过与页面分离的CSS样式文件进行格式设置,兼容主流的IE、Chrome、Firefox、Safari和Opera浏览器,同时采用基于jQuery框架的java脚本进行前端数据验证及用户交互。

前端主页外观如图6所示:

图6 管理系统主界面

4 安全与性能优化

为保障系统的信息安全,对敏感信息(如用户密码)采用了MD5不可逆加密处理;通过完善编码防止SQL注入、密码猜解、木马上传等恶意攻击手段;通过系统日志记录系统的运行情况,监测系统的运行状态。

另外,主要从以下几个方面优化系统的性能:对程序算法进行优化,避免使用高复杂度的算法;对需要频繁使用的数据进行缓存,提高反应速度;减少对系统性能影响较大的操作次数,避免对数据库的反复多次读取。

5 发布与部署

本系统采用Visual Studio 2008软件进行编译和发布。部署时服务端使用支持Access数据库的windows server 2003或以上版本操作系统,运行IIS 6.0或以上版本服务程序,安装.net framework 3.5运行环境;客户端全部基于浏览器进行操作,无需安装任何其它软件。

6 结论

采用asp.net技术、C#编程语言、Access数据库,基于B/S结构设计开发了适用于期刊编辑部的邮寄标签管理系统,实现了邮寄标签的信息管理、数据分析与统计、自动排序、批量裁剪等功能,有助于提升期刊编辑部邮寄标签的处理效率和信息化管理水平。

[1]张莹莹,胡大卫,段学俭,等.现代出版的编辑业务流程数字化再造[J].印刷杂志,2011,(4):21~25.

[2]林江娇.信息化视野下科技期刊的网络化发展初探[J].机电产品开发与创新,2013,26(5):143~144.

[3]曾婷.期刊稿件采编系统的发展现状及展望[J].江汉大学学报(自然科学版),2012,40(4):101~104.

[4]鲁立,闻浩,郭萍,等.基于在线采编系统的期刊管理实践[J].编辑学报,2015,27(1):55~57.

[5]肖晶.基于NET平台的期刊在线采编管理信息系统的设计与实现[D].厦门:厦门大学,2013.

[6]胡明玲.三层体系结构模式期刊管理系统分析及实现[J].情报杂志,2004,23(8):70~71,74.

[7]管胜波,张敬泉.基于C/S和B/S模式的图书管理系统的设计与实现[J].现代计算机:下半月版,2008,(4):114~117.

[8]刘丛.基于B/S架构的编辑部管理信息系统的设计与实现[D].成都:电子科技大学,2013.

[9]张诚,马跃,何先刚.期刊云架构及创建策略研究[J].出版发行研究,2012,(10):9~12.

2016—05—24

李松林(1985—),男,湖北松滋人,硕士,工程师.

陈义中,工程师,E-mail:378111416@qq.com。

G232

A

1009-2714(2016)03-0120-07

猜你喜欢

字段标签管理系统
图书馆中文图书编目外包数据质量控制分析
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
海盾压载水管理系统
标签化伤害了谁
科学家的标签
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述