某店POS积分管理系统商品分类交易状况统计毕业设计论文.doc_第1页
某店POS积分管理系统商品分类交易状况统计毕业设计论文.doc_第2页
某店POS积分管理系统商品分类交易状况统计毕业设计论文.doc_第3页
某店POS积分管理系统商品分类交易状况统计毕业设计论文.doc_第4页
某店POS积分管理系统商品分类交易状况统计毕业设计论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

毕毕 业业 设设 计计( 论论 文文) 某店某店 pospos 积分管理系统积分管理系统 商品分类,交易状况统计商品分类,交易状况统计 论论文作者姓名:文作者姓名: 申申请请学位学位专业专业: : 申申请请学位学位类别类别: : 指指导导教教师师姓姓名名( (职职称称) ): : 论论文提交日期:文提交日期: 某店某店 pospos 积分管理系统积分管理系统 商品分类,交易状况统计商品分类,交易状况统计 摘摘 要要 现在,百货店已经成为我们生活中不可缺少的一部分,而为了给客户提供 更方便的服务平台,给商家提供更有效的管理手段设计了 pos 积分管理系统。 向消费者发放积分这种手段在国内外各百货店都是很流行的。有了积分卡, 消费者可以通过参加各种积分活动获得更多礼品或打折的利益,商家也可以通 过发放积分这种方式来提升自己的市场竞争力,增加社会经济效益,从而使商 家和消费者都能获利。 在整个系统中我主要负责用于分析的商品分类数据生成和用于分析的分店 铺交易状况统计两个模块,它们在系统中起着重要的作用。商品分类数据文件 是根据其他模块生成的数据文件信息,按照指定的格式和要求生成一份具有分 析价值的新的数据文件。而用于分析的分店铺交易状况统计是对各个分店铺在 某交易日的交易情况的统计,对商家来说具有很强的市场参考分析价值。 系统是基于日文版 windows 2000 操作系统,采用 c.net 开发语言,并使 用 sql server 2000 的数据库来实现的。 关键词关键词:计算机应用技术;信息管理系统;pos;商品分类;交易情况 an integral management of pos system for a department store statistics to commodity classification and transaction data abstract nowadays, shopping in department store has become an essential part of our life. in order to offering a more convenient service platform for customers and a more effective management tool for merchants, a pos system is designed. it is very popular to issue points to consumers in large department stores in domestic and abroad. consumers can gain more present or direct discount by participating in any activity by using the point card. the enterprise also can improve its marketing competition and increase the socioeconomic benefits. it is benefit for both the enterprises and consumers. in this system, my task is to realize the module of analysis commodity classification data and the module of analysis sub-shop. they both play important roles in the system. the analysis of commodity classification data file is based on other module data, and generated a valued file according to some format and require. and the analysis of sub-shop trading statistics data is of great market reference value for the business. the modules are developed by use of c# language and sql server 2000 databases on the platform of japanese system windows 2000. key words: computer application technology; information management systems; pos; commodity classification; transactions 目目 录录 论文总页数:30 页 1引言1 2系统概述1 3模块需求分析1 3.1模块功能需求2 3.2模块性能要求3 3.3模块其他需求3 4可行性研究4 4.1技术可行性4 4.2经济可行性4 5数据库及数据文件设计4 5.1数据流程图4 5.2数据表及数据文件结构设计6 6环境搭建9 6.1安装 microsoft visual studio.net 2003 .9 6.2安装 microsoft sql server 2000 .9 6.3安装 subversion(svn)9 7模块功能代码实现过程9 7.1用于分析的商品分类数据生成模块的实现9 7.2用于分析的分店铺交易状况统计的实现.15 8模块测试结果.20 8.1用于分析的商品分类数据生成模块的测试结果.20 8.2用于分析的分店铺交易状况统计模块的测试结果.26 结 论.27 参考文献.28 致 谢.29 声 明.30 1 1引言引言 21 世纪的今天,人类已步入一个高速发展的信息时代。随着科学技术的不 断发展和日益更新,计算机技术的发展更是尤为突出,并在人们的生活当中发 挥着越来越重要的作用,已经成为人们生活中不可或缺的一个角色。进而产生 了运用计算机技术开发的各式各样的产品来提高人们的工作管理效率,如各种 各样的信息管理系统等,而 pos 积分管理系统便是其中一种类型的信息管理系 统。 pos 积分管理这个概念在人们的记忆中并不陌生,它是风靡于各大企业经 营管理中的一种先进的管理方式,也是提高管理效率的一种手段。随着 wto 的 步伐加快,国际化竞争必然加剧,国际国内市场将面临更为激烈的争夺。参与 市场竞争,更多的要靠先进超前的经营管理观念和方法、系统的战略规划、科 学的市场分析、规范的管理运作、入微的客户服务、优秀的员工队伍等综合实 力。经营绩效是公司管理的重心,建立先进的管理系统,对推动公司战略实现、 提高经营业绩是非常重要的。因此 pos 积分管理系统就是在具备先进科学技术 条件下,以先进超前的经营管理观念为基础而设计的一套先进的管理系统。 为了满足某百货店的需求,这里设计具有以下优点的 pos 积分管理系统。 如:检索迅速,提供有效的数据分析和市场参考,可靠性高,稳定性强,更新 方便,保密性好,成本低,使用方便等等。有了这些优点,各大企业可以利用 pos 积分管理系统通过积分的手段提高经营绩效,达到增加利润的目的,增加 个企业之间的竞争,从而促进社会经济的发展。 在系统中,我主要负责用于分析的商品分类数据生成和用于分析的分店铺 交易状况统计这两个模块。结合所学的知识,基于日文 windows 2000 操作系统,采 用 c#.net 开发语言,并使用 sql server 2000 的数据库来实现分析的商品分类 数据生成以及用于分析的分店铺交易状况统计的功能。下面介绍开发过程中实 现该模块的具体情况。 2 2系统概述系统概述 系统是某大型百货店的一套 pos 积分管理系统,百货店通过使用本系统可 以进行对积分的管理,用户信息的管理,交易数据的统计以进行实时的市场分 析等活动。整个系统主要负责用于分析的商品分类数据生成和用于分析的分店 铺交易状况统计两个模块,它们在系统中起着重要的作用。商品分类数据文件 是根据其他模块生成的数据文件信息,按照指定的格式和要求生成一份具有分 析价值的新的数据文件。而用于分析的分店铺交易状况统计是对各个分店铺在 某交易日的交易情况的统计,对商家来说具有很强的市场参考分析价值。 该系统是采用 c/s 结构开发,为提高处理效率,降低成本,使用了大量批 处理,以及定时处理机制。 3 3模块需求分析模块需求分析 在现代社会的商业竞争中,善于分析消费者的消费习惯,消费能力和需求 从而做出正确的判断来制定更新的发展方向是十分重要的。而各种用于分析的 数据就可以为企业进行这样的判断提供参考。所以在这里我负责了关于生成分 析用数据的两个模块:用于分析的商品分类数据生成和用于分析的分店铺交易 状况统计。 3.13.1 模块功能需求模块功能需求 用于分析的商品分类数据生成模块 基本资料: 1. 商品分类参数文件:此文件是由其他模块工作生成的数据,包括分类阶 层区分,有效区分,分类称呼和此文件生成的日期。 2. 商品大分类数据:包括大分类编号,大分类名汉字(日文汉字) ,大分 类假名,注册年月日,注册时刻,更新年月日,更新时刻和输入者。 3. 商品中分类数据:包括大分类编号,中分类编号,中分类名汉字(日文 汉字) ,中分类假名,删除日期,注册年月日,注册时刻,更新日期,更新时刻 和输入者。 4. 商品小分类数据:包括大分类编号,中分类编号,小分类编号,小分类 名汉字(日文汉字) ,小分类假名,pos 部门,等级,购买者代码,删除日期, 购买者标识,注册年月日,注册时刻,更新日期,更新时刻和输入者。 处理功能需求: 1.从 ini 文件中读取企业名和企业代码,本地系统日志路径和商品分类参 数文件路径。并从系统得到当前时期,从商品分类参数文件得到此参数文件生 成的日期。并按照客户要求的格式生成名为“” (头记录)的记 录。当 ini 文件不存在,打不开或者打开后读取的项目有错的时候提示错误信 息并保存到系统日志,终止程序。 2.从商品分类参数文件中得到分类阶层区分,有效区分和分类称呼的信息。 并按照客户要求的格式生成名为“ a” (数据记录 a)的记录, 商品分类参数文件的目录不存在或者商品分类参数文件不存在或文件存在但是 文件为空的时候提示错误并终止。 3.分别从大分类数据表,中分类数据表,和小分类数据表这三张列名不同 的表中得到相应的分类代码,分类名和部门名,按照大分类,中分类,小分类 的主从关系生成名为“ b” (数据记录 b)的顺序记录,当大分 类,中分类,小分类中任意一张数据表为空的时候,此记录都为 0 件。 4.统计总共的记录条数并生成名为“” (结束记录)的记录。 5.在服务器的数据库和本地保存响应的日志文件。 用于分析的分店铺交易状况统计模块 基本资料: 1.会员交易数据文件:此文件由其他模块生成,是一个已排好序文件,包 括店铺代码,终端号,流水号,交易年月日,交易时间(时) ,交易时间(分) , 会员代码,积分种类,积分状态,本次积分,总积分,交易金额,交易积分, 总交易金额(含税) ,积分对象金额,积分标准金额,积分倍率,负责人代码, 确认人代码,积分卡使用次数,优惠等级,优惠倍率,退货交易。 处理需求功能: 1.ini 文件中读取本地系统日志路径和会员交易文件路径,当 ini 文件不 存在,打不开或者打开后读取的项目有错的时候提示错误信息并保存到系统日 志,终止程序。 2.从会员交易文件中读取数据,文件目录不存在或者文件不存在或者文件 存在但是其中记录为空的时候,提示错误并终止。 会员文件正确读取后,开始处理,但是当数据文件中退货交易一项标识为 “2”的情况下跳过不处理。 3.当交易日,店铺代码未发生变化的时候,统计当日该店铺的交易总件数, 交易金额和交易的积分数。同时当会员代码发生变化的时候,会员数加“1” , 但是当会员代码没有发生变化的时候则不做加“1”处理。 4.当交易日或者店铺代码发生变化的时候,输出统计数据,并初始化各个 统计用的工作区。 5.生成的数据文件中包含营业日,店铺代码,交易金额,交易件数,交易 积分数,会员数,和备注。 6.在服务器的数据库和本地保存响应的日志文件。 3.23.2 模块性能要求模块性能要求 1.实现所要求的功能。 2.可调用性强。 3.稳定性强。 3.33.3 模块其他需求模块其他需求 开发环境需求 1.硬件需求:数据库服务器一台,项目管理服务器一台,单体编程测试主 机一台。 2.操作系统:日文版 windows 2000。 3.开发平台:microsoft .net framework sdk v1.1,microsoft visual studio .net 2003。 4.开发语言:c#。 5.数据库:microsoft sql server 2000。 6.管理工具:subversion(svn)1.30。 时间需求 学习使用日文版 windows 2000 操作系统,学习 c#语言,完成日文式样书 分析理解,系统需求分析,所负责两个模块功能实现以及单体测试报告需要 3 个月时间。 4 4可行性研究可行性研究 4.14.1 技术可行性技术可行性 1.以 c#作为该模块的开发工具,是因为它是目前使用最为广泛的编程语言 之一,并且具有简单、现代、面向对象、类型安全、版本控制、兼容等特点。 2.以 microsoft sql server 2000 作为该模块的数据库,是因为 sql server 2000 数据库学起来较为简单,容易使用,因此使用数据库查询语句, 条件查询语句以及写入语句,对数据库进行查询取值,并向数据库里写入数据。 3.在一些技术难题方面,由于有指导老师的指导和相关的参考文献,而且还 有网上众多的网友所提供的资料,使得在开发过程中所遇到的困难都能够一一得 到解决。 4.24.2 经济可行性经济可行性 随着科学技术的发展,特别是计算机技术的飞跃发展,使得计算机在人们 的生活使用中越来越普遍。计算机的普遍使用说明人们的生活水平提高了,从 而也说明了计算机的价格越来越被众多人所接受。然而价格的低廉并不是说产 品的质量不好,是因为技术的飞跃发展使得产品的成本降低。因此开发 pos 积 分管理系统所需要的成本也是该百货店所能接受的,并且通过 pos 积分管理系 统的管理使得客户获得相应的好处,从而使百货店获得更高的利益。除此之外 它还具有很多优点,例如: 1.可以随时获得客户的基本资料,以及店铺的基本资料,通过这些可以增 加客户与百货店之间的相互信任度。保证交易中的安全性。 2.方便百货店对客户积分的管理以及更新,以便让客户在符合条件的情况 下享受某种特别优惠待遇,从而增加客户对百货店的满意度,吸引更多的客户。 3.方便百货店详细掌握交易状况,对其进行准确地分析,了解客户的需求, 从而更好地完善自身的销售、服务、管理等,提高自身在激烈竞争下的竞争力 和存活力。 因此,开发 pos 积分管理系统是可行的。 5 5数据库及数据文件设计数据库及数据文件设计 5.15.1 数据流程图数据流程图 用于分析的商品分类数据生成模块(见图 5-1) 图 5-1 用于分析的商品分类数据生成数据流程图 流程说明: 该流程涉及两个数据文件和三个数据库表。其中包括一个输入文件和一个 输出文件,三个数据表都是输入数据表。 商品分类参数文件:fsptb_item_class_par.csv,输入数据文件,存放商 品分类的参数。 大分类数据表:smtb_dai_bunrui,输入数据表,存放商品大分类的相关信 息。 中分类数据表:smtb_chu_bunrui,输入数据表,存放商品中分类的相关信 息。 小分类数据表:smtb_sho_bunrui,输入数据表,存放商品小分类的相关信 息。 大分类 于分析的商品分类数据生 成 商品分类参 数文件 商品分类数据 文件 中分类小分类 商品分类数据文件:shoyyyymmdd.dat,输出数据文件,存放模块成功运行 后生成的数据。 用于分析的分店铺交易状况统计模块(见图 5-2) 图 5-2 用于分析的分店铺交易状况统计数据流程图 流程说明: 该流程涉及两个数据文件。包括一个输入数据文件和一个输出数据文件。 会员交易文件:fsp_eft010.csv(已排好序) ,存放会员交易的相关信息。 交易状况统计数据文件:fsp_uriage_kei.dat,存放按照客户要求统计的 相关交易数据信息。 5.25.2 数据表及数据文件结构设计数据表及数据文件结构设计 表 5-1 fsptb_item_class_par.csv(商品分类参数文件) 项目编号项目中文名项目英文名类型长度 1分类阶层区分 1kaisou_kubun1c1 2分类阶层区分 2kaisou_kubun2c1 3分类阶层区分 3kaisou_kubun3c1 用于分析的分店铺交易 状况统计 会员交易文 件 交易状况统计 数据文件 4分类阶层区分 4kaisou_kubun4c1 5有效区分 1yuukou_kubun1c1 6有效区分 2yuukou_kubun2c1 7有效区分 3yuukou_kubun3c1 8有效区分 4yuukou_kubun4c1 9分类称呼 1kaisou_kosyou1c30 10分类称呼 2kaisou_kosyou2c30 11分类称呼 3kaisou_kosyou3c30 12分类称呼 4kaisou_kosyou4c30 13数据开始日期rekiyou_date字符8 表 5-2 smtb_dai_bunrui(大分类数据表) 主键列名中文名称类型长度是否允许空 dai_bunrui大分类代码char2not null dai_bunrui_name_kanji大分类名汉字char10 dai_bunrui_name_kana大分类名假名char10 toroku_ymd注册日期char8 toroku_hms注册时刻char6 update_ymd更新日期char8 update_hms更新时刻char6 input_tanto输入负责人char6 表 5-3 smtb_chu_bunrui(中分类数据表) 主键列名中文名称类型长度是否允许空 dai_bunrui大分类代码char2not null chu_bunrui中分类代码char2not null chu_bunrui_name_kanji中分类名汉字char10 chu_bunrui_name_kana中分类名假名char10 chu_sakujo_kikan删除日期char3 toroku_ymd注册日期char8 toroku_hms注册时刻char6 update_ymd更新日期char8 update_hms更新时刻char6 input_tanto输入负责人char6 表 5-4 smtb_sho_bunrui(小分类数据表) 主键列名中文名称类型长度是否允许空 dai_bunrui大分类代码char2not null chu_bunrui中分类代码char2not null sho_bunrui小分类代码char3not null sho_bunrui_name_kanji小分类名汉字char10 sho_bunrui_name_kana小分类名假名char10 pos_bumon部门char4 class等级char5 buyer_cd购买者代码char4 sho_sakujo_kikan删除日期char8 buyer_araigae_fg购买者标识char1 toroku_ymd注册日期char8 toroku_hms注册时刻char6 update_ymd更新日期char8 update_hms更新时刻char6 input_tanto输入负责人char6 表 5-5 fsp_eft010.csv(会员交易文件) 项目编号项目中文名项目英文名类型长度 1店铺代码tenpo_codec5 2终端号pos_noc6 3流水号torihiki_noc6 4交易年月日torihiki_ymdc8 5交易时间(时)torihiki_hhc2 6交易时间(分)torihiki_mmc2 7会员代码member_codec16 8积分种类pointo_sbtc2 9积分状态statusc2 10本次积分pointn9 11总积分all_pointn9 12交易金额net_uriage_mn9 13交易积分uriaga_tensun7 14总交易金额(含税)all_uriage_mn9 15积分对象金额point_mn9 16积分标准金额point_rmn4 17积分倍率point_ritc2 18负责人代码sekinin_noc6 19确认人代码tantou_noc6 20积分卡使用次数card_riyosuc7 21优惠等级yutai_rankc2 22优惠倍率yutai_bairitc2 23退货交易henpin_kbnc1 6 6环境搭建环境搭建 6.16.1 安装安装 microsoftmicrosoft visualvisual studio.netstudio.net 20032003 执行安装程序,出现安装初始画面。按照提示进入安装界面。设置安装文 件夹为“c:program filesmicrosoft visual studio .net 2003” ,继续按 照安装提示安装直到安装结束。此时开始菜单的程序组中新增了一个 “microsoft visual studio .net 2003” 。 6.26.2 安装安装 microsoftmicrosoft sqlsql serverserver 20002000 开发某店 pos 积分管理系统时,共同使用一个数据库服务器,因此 microsoft sql server 2000 的安装是在服务器上进行的,这里的模块不涉及 数据库 microsoft sql server 2000 的安装,只是使用。 6.36.3 安装安装 subversion(svn)subversion(svn) 首先,在项目管理服务器(9)上安装 subversion 服务器,一 切设置均采用默认设置。然后在管理服务器上新建好开发项目的各模块文件夹 和共通函数的空文件。第二步,在开发用计算机上安装客户端 tortoisesvn, 采用默认设置即可。第三步,安装 subversion 用于 microsoft visual studio .net 2003 的插件 ankhsvn,采用默认安装即可。 7 7模块功能代码实现过程模块功能代码实现过程 由于是商业软件,根据客户要求,其中涉及到的判断控制语句很多,特别 是对于文件的判断。 用于分析的商品分类数据生成和用于分析的分店铺交易状况统计这两个模 块详细实现过程如下: 7.17.1 用于分析的商品分类数据生成模块的实现用于分析的商品分类数据生成模块的实现 共通文件(common.ini)的使用:这里所谓的共通文件是存放了大部分系 统中各个模块所需要的文件的路径和一些其他例如数据库连接字符串,客户方 提供的企业信息等相关信息,所以基本上每个模块都需要读取共通文件中的一 些信息和判断共通文件是否存在以及文件中各项目的值是否正确。共通文件操 作接口属于一个单独模块,我在这里只作判断和调用。相关代码及说明如下: iniconfig conf = new iniconfig(); /实例化一个新的共通函数接口。 if(conf.errorstring = “1“) /在共通文件操作接口中对出错字符串进行了定义, “1”的时候为共通文件不存在,“2”的时候 为文件打不开,“3”的时候为文件中模块所需 的项目的值有错。 /提示出错语句并保存日志到数据库服务器 if(conf.errorstring = “2“) /提示出错语句并保存日志到数据库服务器 if(conf.errorstring = “3“) /提示出错语句并保存日志到数据库服务器 string logpath = conf.logfile; /从共通文件中得到日志文件的路径 string findspath = conf.fsptb_item_class_par string enterprisecode = conf.enterprisecode; string enterprisename = conf.enterprisename; /从共通文件文件中得到其他 模块所需的信息 对商品分类参数文件的判断: string findspath = conf.fsptb_item_class_par; /商品分类参数文件所 在目录 if(!directory.exists(findspath) /判断目录是否存在 /提示出错语句并保存日志到数据库服务器 if(!file.exists(conf.fsptb_item_class_par) /提示出错语句并保存日志到数据库服务器 if(file.exists(conf.fsptb_item_class_par) sr = new streamreader(conf.fsptb_item_class_par); string readstr = sr.readline(); if(readstr = null) /提示出错语句并保存日志到数据库服务器 对商品分类参数文件的读取操作:在这里用了 c#文件 i/o 的 stream 类。 由于 csv 文件的各项目是用“,”隔开,故同时使用了 split 的方法来实现对 各项目的读取。 streamreader sr; sr=new streamreader(conf.fsptb_item_class_par,encoding.default); string temp = sr.readline(); temp = sr.readline(); /由于这个 csv 文件包含了列名,故从第二行开始才 是数据信息。 string str = temp.split(new char,); string kaisou_kubun1 = str0; string rekiyou_date = str12; 通过以上代码便完成了对商品分类参数文件这个 csv 格式的文件内容的读 取。 数据库操作:本项目有一个数据库连接操作接口,故本模块对几张数据库 表操作的核心代码如下: conn = new skyconnect(); 这里使用了变长数组来存放读取的数据信息: arraylist arrdai = new arraylist(); arraylist arrchu = new arraylist(); arraylist arrsho = new arraylist(); arraylist arrtotal = new arraylist(); string sqldai = “select dai_bunrui,dai_bunrui_name_kanji from smtb_dai_bunrui“; string sqlchu = “select dai_bunrui,chu_bunrui,chu_bunrui_name_kanji from smtb_chu_bunrui“; string sqlsho = “select dai_bunrui,chu_bunrui,sho_bunrui,sho_bunrui_name_kanji from smtb_sho_bunrui“; 按照客户要求的格式,从三张不同列长的表中读取所需要的数据排好序组 成新的记录,同时要求其中任意一张表为空的情况下这条记录都为0件,最初希 望通过直接用数据库操作语句的方式来实现几张表的组合,如用内联接,外联 接和合并查询union等,经过很多方法的尝试,都失败了,最后经过长时间的思 考和尝试,选用了dataset,datatable和datarow来实现了这个功能,具体操作 如下: dataset ds1 = new dataset(); dataset ds2 = new dataset(); dataset ds3 = new dataset(); ds1 = conn.getdataset(sqldai); ds2 = conn.getdataset(sqlchu); ds3 = conn.getdataset(sqlsho); if(ds1.tables0.rows.count = 0 | ds2.tables0.rows.count = 0 | ds3.tables0.rows.count = 0) /任意一张数据表为空的时候 sw.writeline(“記録0件!“); sw.flush(); else datatable tb = new datatable(); tb = ds1.tables0; foreach(datarow dr in tb.rows) arrdai.add(“ “ + recordflag3 + “ “ + “0000“ + dr0.tostring() + “ “ + “000000“ + “ “ + “000000“ + “ “ + “000000“ + “ “ + dr1.tostring(); ds2 = conn.getdataset(sqlchu); tb = ds2.tables0; foreach(datarow dr in tb.rows) arrchu.add(“ “ + recordflag3 + “ “ + “0000“ + dr0.tostring() + “ “ + “0000“ + dr1.tostring() + “ “ + “000000“ + “ “ + “000000“ + “ “ + dr2.tostring(); ds3 = conn.getdataset(sqlsho); tb = ds3.tables0; foreach(datarow dr in tb.rows) arrsho.add(“ “ + recordflag3 + “ “ + “0000“ + dr0.tostring() + “ “ + “0000“ + dr1.tostring() + “ “ + “0000“ + dr2.tostring() + “ “ + “000000“ + “ “ + dr3.tostring(); for(int i = 0;i arrdai.count;i+) arrtotal.add(arrdaii); for(int i = 0;i arrchu.count;i+) arrtotal.add(arrchui); for(int i = 0;i arrsho.count;i+) arrtotal.add(arrshoi); arrtotal.sort(); for(int i = 0;i arrtotal.count;i+) sw.writeline(arrtotali); sw.writeline(); conn.dispose(); sw.flush(); sw.close(); 写系统日志:将系统的各个处理过程写成系统日志保存在数据库服务器并 在本地生成 log 文件,这里使用一条结束日志来说明具体实现方法。 string p_sel2 = “e“; /结束 log string p_msg2 = “終了“;/结束 log 提示 string p_appnm = “fspb1360“;/模块提示 string p_funcnm4 = “終了“;/项目名 string p_jobnm = “sk-wanxiao“;/操作工作号 string p_errdetail6 = “終了“;/信息提示 string p_inifile = “common.ini“;/inifile conn = new skyconnect(); 将日志写入数据库服务器。 conn.sqlexecute(“insertfsptb_log(p_sel,p_msg,p_appnm,p_funcnm, p_jobnm,p_errdetail, p_inifile)values(“ + p_sel2 + “,“ + p_msg2 + “,“ + p_appnm +“,“ + p_funcnm4 + “,“ + p_jobnm + “,“ + p_errdetail6 + “,“ + p_inifile + “)“); conn.dispose(); 将日志写入本地日志文件 sw = new streamwriter(logpath,true,encoding.default); sw.writeline(“0 1 2 3 4 5 6 7“,datetime.now,p_sel2,p_msg2,p_appnm,p_funcnm4,p_jobnm,p_err detail6,p_inifile); sw.writeline(); sw.flush(); sw.close(); 以上便是本模块一些主要功能的核心代码和实现方法。 7.27.2 用于分析的分店铺交易状况统计的实现用于分析的分店铺交易状况统计的实现 这里的共通文件的操作,会员交易文件操作,系统日志的创建和前一模块 类似,故不再另举例说明,下面介绍一下模块功能实现的核心算法: 从会员交易文件中得到需求的几个属性。 sw = new streamwriter(datapath,true,encoding.default); sr = new streamreader(conf.pos_torihiki,encoding.default); string temp = sr.readline(); string str = temp.split(new char,); string tenpo_code = str0; string torihiki_ymd = str3; string member_code = str6; string net_uriage_m = str11; string uriage_tensu = str12; string henpin_kbn = str22; string yobi = “; 各个计数器初始化。 int neturiage = 0; int uriagetensu = 0; int torihikicount = 0; int membercount = 0; string oldtenpo_code = “; string oldtorihiki_ymd = “; string oldmember_code = “; bool first = true; /判断是否为第一次交易 while(temp != null) if(henpin_kbn = “2“)/退货标识是“2”的情况下跳过不做处理 为了实现模块功能,由于采用的方法是逐条读取数据来比较,故定义了几 个临时变量oldtenpo_code,oldtorihiki_ymd,oldmember_code来存放上一条记 录的对应项目的值,便于两条记录进行比较。比较的时候,采用的方法是只要 当日期或者店铺代码任意一个发生变化的时候变把前面所统计的数据打印一次, 从而组成这个分析数据。 else if(henpin_kbn != “2“) torihikicount = 1; membercount = 1; neturiage = convert.toint32(net_uriage_m); uriagetensu = convert.toint32(uriage_tensu); oldtenpo_code = tenpo_code; oldtorihiki_ymd = torihiki_ymd; oldmember_code = member_code; else if(henpin_kbn != “2“) neturiage = convert.toint32(net_uriage_m) + neturiage; uriagetensu = convert.toint32(uriage_tensu) + uriagetensu; if(member_code != oldmember_code) membercount = membercount + 1; else if(member_code = oldmember_code) 当本次读取的店铺代码与上一条的不一样的时候。 else if(tenpo_code != oldtenpo_code) sw.writeline(“0 1 2 3 4 5 6“,oldtorihiki_ymd,oldtenpo_code,neturiage,torihikicount,uriagetensu, membercount,yobi); sw.flush(); membercount = 1; torihikicount = 1; neturiage = convert.toint32(net_uriage_m); uriagetensu = convert.toint32(uriage_tensu); else if(torihiki_ymd != oldtorihiki_ymd) if(tenpo_code = oldtenpo_code) neturiage = convert.toint32(net_uriage_m) + neturiage; uriagetensu = convert.toint32(uriage_tensu) + uriagetensu; if(member_code != oldmember_code) membercount = membercount + 1; else if(member_code = oldmember_code) else if(tenpo_code != oldtenpo_code) sw.writeline(“0 1 2 3 4 5 6“,oldtorihiki_ymd,oldtenpo_code,neturiage,torihikicount,uriagetensu, membercount,yobi); sw.flush(); membercount = 1; torihikicount = 1; neturiage = convert.toint32(net_uriage_m); uriagetensu = convert.toint32(uriage_tensu); temp = sr.readline(); 读取下一条,如果为空的话,跳出循环。 if(temp = null) break; if(henpin_kbn = “2“) else if(henpin_kbn != “2“) oldtenpo_code = tenpo_code; oldtorihiki_ymd = torihiki_ymd; oldmember_code = member_code; 读取下一条的各项目值。 str = temp.split(new char,); tenpo_code = str0; torihiki_ymd = str3; member_code = str6; net_uriage_m = str11; uriage_tensu = str12; henpin_kbn = str22; 由于while循环结束的时候,上面判断的最后一条记录为空,有可能导致前 面一条或者几条记录的数据不会被处理,故在循环外还应再对最后一条数据进 行判断处理,这样才能完整的处理会员交易文件里面的所有数据。 if(henpin_kbn = “2“) else if(henpin_kbn != “2“) if(tenpo_code = oldtenpo_code neturiage = convert.toint32(net_uriage_m) + neturiage; uriagetensu = convert.toint32(uriage_tensu) + uriagetensu; if(member_code != oldmember_code) membercount = membercount + 1; else if(member_code = oldmember_code) else if(tenpo_code = oldtenpo_code | (torihiki_ymd = oldtorihiki_ymd) torihikicount = 1; membercount = 1; neturiage = neturiage = convert.toint32(net_uriage_m); uriagetensu = convert.toint32(uriage_tensu); sw.writeline(“0 1 2 3 4 5 6“,torihiki_ymd,tenpo_code,neturiage,torihikicount,uriagetensu,membe rcount,yobi); sw.flush(); sw.close(); 以上便是本模块功能实现的核心算法。 8 8模块测试结果模块测试结果 两个模块的功能都实现并完成了测试。这里列出一些具有代表性的测试结 果。 8.18.1 用于分析的商品分类数据生成模块的测试结果用于分析的商品分类数据生成模块的测试结果 模块共包含共通文件取得处理

温馨提示

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

评论

0/150

提交评论