目 录
论文总页数:30页
——积分失效与数据分析模块的实现............................................................................... 0
3.2.1 积分失效详细代码设计......................................................................... 8
3.2.2 数据分析模块详细代码设计................................................................ 13
4.2.2 建立JDBC-ODBC桥接器....................................................................... 17
4.2.4 对数据库操作..................................................................................... 18
5.1.1 积分失效模块单元检测表................................................................... 20
5.1.2 分析用POS明细作成模块单元检测表.................................................. 23
5.2.1 测试页面截图..................................................................................... 24
5.2.2 测试结果数据..................................................................................... 26
随着社会科学技术突飞猛进的发展,计算机的应用已经普及到经济和社会的各个领域。长期以来人们所使用的传统的单纯凭借人力进行管理的销售方式,已经无法适应当今社会的现状,同时也存在着很多弊端,如成本较高、安全性低、效率难以提高等。因此,作为计算机应用的一个方面,利用其强大的运算能力,进行销售管理具有无法替代的优势。其高效、可靠、稳定等优点已得到了消费者和销售企业一致的好评。
不同类型的销售行业有自己的特点,对于零售业而言,是一个成本敏感,同时具有大规模的分布性和灵活多变的特点。因此,如何处理好在一个高度分布的网络环境中,多种软硬件平台的管理、部署和升级,适应实际的需求变化,为用户提供一种可靠的低成本运作模式,成为零售业解决方案成功的关键。
针对这一情况,希望研究出一套POS积分管理系统,用来对商品销售情况、会员消费情况、分店经营情况等信息进行系统高效的管理。降低甚至消除不必要的成本和费用,给客户带来更大效益。而本课题的研究正是要在这个系统之下开发出积分失效和数据分析两个模块。其中积分失效模块对一年内未购买任何物品的会员,进行积分过期失效处理。这样做可以刺激用户消费,提高销售业绩。而数据分析模块则是对商品销售信息进行分析,对各种类型的商品销售情况,销售利润做成数据资料以供外部分析使用。
作为以JAVA语言为基础的商务型软件,此次研究主要采用面向对象的方法进行软件开发。尽可能模拟人类习惯的思维方式来分析和解决问题,保证软件系统的稳定性和可复用性以及良好的维护性。在程序中,采用了JDBC—ODBC桥的方式,进行数据库连接。另外,由于是商务软件,就要考虑到用户在使用该系统时有可能出现的各种错误,并针对这些错误制定出解决的方案。整个开发过程分为四个部分,包括分析工程、设计工程、制造工程、测试工程。下面将详细对上述过程进行细致的描述。
由于该百货店实行会员管理模式,每个会员都有代金消费点数,其中就存在部分会员在获得消费点后,因某些原因长期未能进行消费,但仍要对他们的消费点进行管理,这就给整个管理系统带来了负担,同时也占用了很多不必要的资源,无形中增大了管理的成本。为了解决这个问题,就需要建立一个模块来定期检查会员消费情况,对限定时间内未消费的用户进行积分失效处理,以节约系统资源,同时,也在一定程度上刺激会员消费。
把握市场动向,提高销售利润是企业的最终目标。在企业管理日趋科学化的今天,如何准确及时地进行生产经营决策是销售企业面临的严峻问题。要求决策者准确及时地捕捉到销售信息,分析销售情况,随时根据历史的销售情况,对下一步的生产经营科学地进行决策。销售分析需要大量的基础数据,但是如果将原始的销售信息直接用于分析又会给分析工作带来很大不便,是效率无法提高。因此就需要将原始销售信息进行整理,处理成决策分析所需的数据资料,进行保存。
- 硬件需求:计算机一台
- 操作系统:Windows 2000(日文)
- 开发语言:Java
- 开发工具:eclipse
- 数据库:Microsoft SQL Server 2000
- 其他软件:Microsoft SQL Server 2000 Driver for JDBC Service,Subversion(S VN)1.30
- 积分失效
从会员信息表中,找出一年前注册,当前点数不为0,且一年内未进行消费的用户,对其积分进行清零处理。
-
- 数据分析
对每日POS消费记录文件进行数据处理,生成用于外部数据分析的明细文件
会员数据:包括会员的基本信息数据(入会日期,会员编码,姓名,住址,联系电话,出生年月日,会员种类,入会店铺编码等等);
积分数据:包括积分卡基本信息数据(会员编码,现在积分点,累计积分点,输出累计积分点,增加累计积分点,基本累计积分点,购买次数,购买累计金额等等);
店铺数据:包括店铺基本信息数据(店铺编码,店铺名称,DOMINANT编码,住址,联系电话等等);
用于进行数据分析处理的原始销售信息存放于一个名为FSP_EFI010.DAT的文件中,其数据格式如表1所示:
表1 原始销售信息文件数据格式
数据名称 | 数据字段长度(位) |
店铺CODE | 6 |
Terminal NO | 6 |
交易序列号 | 5 |
交易日期 | 8 |
交易时间 | 2 |
会员NO | 13 |
JAN CODE | 13 |
商品名称 | 不定 |
消费点数 | 3 |
消费金额 | 6 |
会员价格 | 4 |
退货交易 | 1 |
折扣价 | 4 |
贴现价 | 4 |
按比例折扣价 | 4 |
按比例贴现价 | 4 |
按比例M&M值 | 4 |
GP CODE | 4 |
部门 CODE | 6 |
数据库表结构的设计在每一个开发项目中都是非常重要的一个部分,数据库表设计的好坏直接关系到开发过程中代码实现的功能强大与否,是否包含齐备客户所需求的功能。因此现在来介绍该模块所用到的数据库表的详细设计。各数据表定义如表2所示
表2 数据表定义
序号 | 表参数名 | 表名说明 |
1 | FSPTB_MEMBER | 记录会员基本信息 |
2 | FSPTB_MEMBER_STATUS | 记录会员状态信息 |
3 | FSPTB_POINT | 记录会员点数基本信息 |
4 | FSPTB_POINT_JNL | 记录会员点数更新履历 |
5 | FSPTB_POINT_RIREKI | 记录会员当日消费点数信息 |
表3 FSPTB_MEMBER(会员)
主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 |
◎ | MEMBER_CODE | 会员编码 | Char | 13 | NOT NULL |
NYUKAI_YMD | 入会年月日 | Char | 8 | NULL | |
SHIMEI_KANA_S | 日语假名性 | Char | 16 | NOT NULL | |
SHIMEI_KANA_N | 日语假名名 | Char | 16 | NOT NULL | |
SHIMEI_KANJI_S | 中文姓 | Char | 32 | NOT NULL | |
SHIMEI_KANJI_N | 中文名 | Char | 32 | NOT NULL | |
TEL_SHIGAI_1 | 电话1(市外) | Char | 8 | NOT NULL | |
TEL_SHINAI_1 | 电话1(市内) | Char | 8 | NOT NULL | |
TEL_BANGO_1 | 电话1(其它) | Char | 8 | NOT NULL | |
TEL_SHIGAI_2 | 电话2(市外) | Char | 8 | NOT NULL | |
TEL_SHINAI_2 | 电话2(市内) | Char | 8 | NOT NULL | |
TEL_BANGO_2 | 电话3(其它) | Char | 8 | NOT NULL | |
TEL_SHIGAI_3 | 电话3(市外) | Char | 8 | NOT NULL | |
TEL_SHINAI_3 | 电话3(市内) | Char | 8 | NOT NULL | |
TEL_BANGO_3 | 电话3(其它) | Char | 8 | NOT NULL | |
BIRTH_DAY | 出生年月日 | Char | 8 | NULL | |
MEMBER_KBN | 会员种类 | Char | 1 | NULL | |
FM_KBN | 性别 | Char | 1 | NULL | |
MEMBER_ZIP | 邮政编码 | Char | 8 | NOT NULL | |
ADDR_1 | 地址1 | Char | 32 | NOT NULL | |
ADDR_2 | 地址2 | Char | 48 | NOT NULL | |
ADDR_3 | 地址3 | Char | 48 | NOT NULL | |
ADDR_4 | 地址4 | Char | 48 | NOT NULL | |
NYUKAI_TENPO | 入会的店铺编码 | Char | 6 | NULL | |
MUKOU_KBN | 起效种类 | Char | 1 | NULL | |
HOLD_CODE | 家庭所属代码 | Char | 13 | NULL | |
ADD_YMDHMS | 注册时间 | Char | 14 | NULL | |
ADD_TANTOU | 注册负责人ID | Char | 6 | NULL | |
UPD_YMDHMS | 更新时间 | Char | 14 | NULL | |
UPD_TANTOU | 更新负责人ID | Char | 6 | NULL |
表4 FSPTB_MEMBER_STATUS(会员状态)
主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 |
◎ | MEMBER_CODE | 会员编码 | Char | 13 | NOT NULL |
OLD_MEMBER_CODE | 旧会员编码 | Char | 13 | NULL | |
DOMINANT_CODE | 优先级别编码 | Char | 3 | NOT NULL | |
TENPO_CODE | 店铺号码 | Char | 6 | NOT NULL | |
OLD_DOMINANT_CODE | 旧优先级别编码 | Char | 3 | NOT NULL | |
OLD_TENPO_CODE | 旧店铺编码 | Char | 6 | NOT NULL | |
UPD_KBN | 更新种类 | Char | 1 | NULL | |
MSTS_AUTO_ID | 记录番号 | Numeric | 15 | NULL |
表5 FSPTB_POINT(积分)
主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 |
◎ | MEMBER_CODE | 会员编码 | Char | 13 | NOT NULL |
OLD_MEMBER_CODE | 旧会员编码 | Char | 13 | NULL | |
YUTAI_RANK | 优惠等级 | Char | 2 | NULL | |
NOW_POINT | 现在积分点 | 9 | 8 | NULL | |
RUIKEI_POINT | 累计积分点 | 9 | 8 | NULL | |
OUT_RUIKEI_POINT | 支出的累计积分点 | 9 | 8 | NULL | |
ADD_RUIKEI_POINT | 增加的累计积分点 | 9 | 8 | NULL | |
KIHON_RUIKEI_POINT | 基本累计积分点 | 9 | 8 | NULL | |
BONUS_RUIKEI_POINT | 奖励累计积分点 | 9 | 8 | NULL | |
KAIAGE_R | 最后交易时间 | Char | 8 | NULL | |
TUKI_KAIAGE_M | 每月交易金额 | 9 | 10 | NULL | |
BEFORE_TUKI_KAIAGE_M | 上月交易金额 | 9 | 10 | NULL | |
KAIAGE_F | 交易次数 | 9 | 5 | NULL | |
KAIAGE_M | 交易金额 | 9 | 10 | NULL | |
MEMBER_WARIBIKI_M | 打折累计金额 | 9 | 10 | NULL | |
KOUNYU_M | 购买金额 | 9 | 10 | NULL | |
MUKOU_KBN | 起效种类 | Char | 1 | NULL | |
ADD_YMDHMS | 登陆时间 | Char | 14 | NULL | |
ADD_TANTOU | 登陆负责人ID | Char | 6 | NULL | |
UPD_YMDHMS | 更新时间 | Char | 14 | NULL | |
UPD_TANTOU | 更新负责人ID | Char | 6 | NULL | |
SYSTEM_UPD_YMDHMS | 系统更新时间 | Char | 14 | NULL |
表6 FSPTB_POINT_JNL(积分更新记录)
主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 |
TENPO_CODE | 店舗CODE | Char | 6 | NOT NULL | |
MEMBER_CODE | 会员CODE | Char | 13 | NOT NULL | |
CLIENT_NO | 顾客NO | Char | 8 | NOT NULL | |
ADD_POINT_B | 当日追加POINT(更新前) | 9 | 6 | NOT NULL | |
OUT_POINT_B | 当日支出POINT(更新前) | 9 | 6 | NOT NULL | |
NOW_POINT_B | 現在POINT(更新前) | 9 | 8 | NOT NULL | |
BONUS_POINT_B | 当日奖励POINT(更新前) | 9 | 8 | NOT NULL | |
OUT_KAIAGE_M_B | 当日減算金額(更新前) | 9 | 10 | NOT NULL | |
ADD_KAIAGE_M_B | 当日加算金額(更新前) | 9 | 10 | NOT NULL | |
TUKI_KAIAGE_M_B | 月购买金額(更新前) | 9 | 10 | NOT NULL | |
ADD_POINT_A | 当日追加POINT(更新后) | 9 | 6 | NOT NULL | |
ADD_RIYU_CODE | 追加理由CODE | Char | 2 | NOT NULL | |
OUT_POINT_A | 当日支出POINT(更新后) | 9 | 6 | NOT NULL | |
OUT_RIYU_CODE | 支出理由CODE | Char | 2 | NOT NULL | |
NOW_POINT_A | 現在POINT(更新后) | 9 | 8 | NOT NULL | |
BONUS_POINT_A | 当日奖励POINT(更新后) | 9 | 8 | NOT NULL | |
OUT_KAIAGE_M_A | 当日減算金額(更新后) | 9 | 10 | NOT NULL | |
ADD_KAIAGE_M_A | 当日加算金額(更新后) | 9 | 10 | NOT NULL | |
TUKI_KAIAGE_M_A | 月购买金額(更新后) | 9 | 10 | NOT NULL | |
KURIKOSHI_POINT | 转入POINT | 9 | 8 | NOT NULL | |
TODAY_POINT | 本日最終POINT | 9 | 8 | NOT NULL | |
UPD_YMDHMS | 更新日期 | Char | 14 | NOT NULL | |
UPD_TANTOU | 担当者CODE | Char | 6 | NOT NULL | |
JNL_AUTO_ID | 记录ID | Numeric | 15 | NOT NULL |
表7 FSPTB_POINT_RIREKI(积分当日消费记录)
主键 | 列(属性)名 | 中文名称 | 类型 | 宽度 | 是否允许为空 |
◎ | MEMBER_CODE | 会员CODE | Char | 13 | NOT NULL |
YMD | 日期 | Char | 8 | NOT NULL | |
YUTAI_RANK | 优待等级 | Char | 2 | NULL | |
KIHON_POINT | 当日基本POINT | 9 | 6 | NULL | |
BONUS_POINT | 当日奖励POINT | 9 | 6 | NULL | |
ADD_POINT | 当日追加POINT | 9 | 6 | NULL | |
OUT_POINT | 当日支出POINT | 9 | 6 | NULL | |
NOW_POINT | 現在POINT | 9 | 8 | NOT NULL | |
UPD_YMDHMS | 更新日期 | Char | 14 | NOT NULL | |
UPD_TANTOU | 担当者CODE | Char | 6 | NULL |
FSPTB_POINT_JNL |
FSPTB_POINT_RIREKI |
FSPTB_POINT |
FSPTB_MEMBER |
FSPTB_MEMBER_STATUS |
FSPTB_LOG |
积分失效模块 |
CSV |
|
图1 积分失效处理流图
FSP_EFI010.DAT |
POSYYYYMMDDXX.DAT |
分析数据作成模块 |
FSPTB_LOG |
|
图2 数据分析模块流图
图形注释: :数据文件 :数据库表 :功能模块 :数据流 |
图3 注释图
-
- 内部设计(详细设计)
- 程序初期设定。
如果出现错误,输出错误信息,程序结束。
- 输出开始日志记录。
(1)如果出现错误,程序结束。
(2)否则,取得系统前一年日期。
- 处理日期check。
(1)读入初始设定的会员信息数据文件。
-
- 如果出现错误,输出错误信息,程序结束。
- 否则,取得POINT实效日期。
(2)设定会员信息数据文件。
系统日期不是POINT实效处理日期的场合,输出信息,程序结束。
- POINT实效处理。
- CSV文件读入。
- 如果出现错误,输出错误信息,程序结束。
- 取得文件名。
- 打开CSV文件。
- POINT失效对象抽出(1)
- CSV文件读入。
- 从FSPTB_POINT中读取会员CODE。
条件:最后购买日期在一年前&&现在POINT不为0。
失效区分有效。
- 抽出失效区分有效数据。
- POINT失效对象抽出(2)
- 从FSPTB_POINT和FSPTB_MEMBER中读取会员CODE。
条件:会员CODE匹配;入会日期在一年以前;失效区分有效;买入次数为0;现在POINT不为0。
- 返回值不为空。
- 各表的更新处理
-
- 从FSPTB_POINT中取出匹配会员的数据。
条件:会员编号是匹配会员编号。
-
- 匹配会员的POINT信息更新。
参照“POINT信息项目移动表”。
-
- 从FSPTB_MEMBER中取出匹配会员的数据。
条件:会员编号是匹配会员编。
-
-
- 匹配用户数据的店铺CODE为NULL的场合。
-
输出信息,处理终止。
-
-
- 否则,取得店铺CODE。
- 从FSPTB_POINT_RIREKI中取出匹配会员的POINT履历信息数据。
-
条件:会员编号是匹配会员编号;日期在系统日期之前。
-
-
- 如果出现错误,输出错误信息,程序结束。
- 在FSPTB_POINT_JNL中追加数据。
- 匹配用户的POINT更新日志不存在。
-
参照“POINT更新日志新建项目移动表”。
-
-
- 匹配用户的POINT更新日志存在。
-
参照“POINT更新日志更新项目移动表”。
-
- FSPTB_POINT_RIREKI的追加更新。
条件:会员编号是匹配会员编号;日期在系统日期之前。
-
-
- 通过(4)取得的POINT履历是EOF的情况,新追加POINT履历。
-
参照“POINT履历(追加)项目移动表”。
-
-
- 通过(4)取得的POINT履历不是EOF的情况,存储初始状态,并更新,参照“POINT履历(更新)项目移动表”。
- 在FSPTB_POINT中检索匹配的用户数据。
-
条件:用户CODE是匹配用户CODE;
-
- 不是EOF的情况,程序结束。
- 如果是EOF ,在FSPTB_MEMBER追加新的数据。
参照“用户数据项目移动表”。
-
- CSV文件数据输出。
参照“CSV文件项目移动表”。
- 输出结束日志。
表8 POINT信息项目移动表
移动表名称 | 移动操作地址名称 | A | FSPTB_POINT | ||||
POINT信息项目移动表 | B | ||||||
C | |||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
现在POINT | 0 | ||||||
消费累计POINT | 消费累计POINT+当前POINT | ||||||
担当者CODE | NULL | ||||||
系统更新时间 | 执行操作时系统时间 | ||||||
表9 POINT更新日志新建项目移动表
移动表名称 | 移动操作地址名称 | A | FSPTB_MEMBER | ||||
POINT更新日志新建项目移动表 | B | FSPTB_POINT | |||||
C | |||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
店铺CODE | 店铺CODE | Y | FSPTB_MEMBER的店舗CODE的右3位数的值
| ||||
会员CODE | 会员CODE | Y | 同项目 | ||||
顾客NO | NULL | ||||||
当日追加POINT(更新前) | 0 | ||||||
当日支出POINT(更新前) | 0 | ||||||
现在POINT(更新前) | 现在POINT | Y | 同项目 | ||||
当日获赠POINT(更新前) | 0 | ||||||
当日减算金额(更新前) | 0 | ||||||
当日加算金额(更新前) | 0 | ||||||
月中购买金额(更新前) | 0 | ||||||
当日追加POINT(更新后) | 0 | ||||||
追加理由CODE | NULL | ||||||
当日追加POINT(更新后) | 现在POINT | Y | 同项目 | ||||
支出理由CODE | “04” | ||||||
现在POINT(更新后) | 0 | ||||||
当日奖励POINT(更新后) | 0 | ||||||
当日减算金额(更新后) | 0 | ||||||
当日加算金额(更新后) | 0 | ||||||
月中购买金额(更新后) | 0 | ||||||
转入POINT | 0 | ||||||
本日最终POINT | 0 | ||||||
更新时间 | 当前的时间 | ||||||
执行者CODE | NULL | ||||||
记录号 | 自动获取 | ||||||
表10 POINT更新日志更新项目移动表
移动表名称 | 移动操作地址名称 | A | FSPTB_MEMBER | ||||
POINT更新日志更新项目移动表 | B | FSPTB_POINT | |||||
C | FSPTB_POINT_RIREKI | ||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
店铺CODE | 店铺CODE | Y | FSPTB_MEMBER的店舗コード的右3位数的值
| ||||
会员CODE | 会员CODE | Y | 同项目 | ||||
顾客NO | NULL | ||||||
当日追加POINT(更新前) | 当日追加POINT | Y | 同项目 | ||||
当日支出POINT(更新前) | 当日支出POINT | Y | 同项目 | ||||
现在POINT(更新前) | 现在POINT( | Y | 同项目 | ||||
当日获赠POINT(更新前) | 当日获赠POINT | Y | 同项目 | ||||
当日减算金额(更新前) | 0 | ||||||
当日加算金额(更新前) | 0 | ||||||
月中购买金额(更新前) | 0 | ||||||
当日追加POINT(更新后) | 同项目 | ||||||
追加理由CODE | NULL | ||||||
当日追加POINT(更新后) | 当日追加POINT | Y | 同项目 | ||||
支出理由CODE | “04” | ||||||
现在POINT(更新后) | 0 | ||||||
当日奖励POINT(更新后) | 0 | ||||||
当日减算金额(更新后) | 0 | ||||||
当日加算金额(更新后) | 0 | ||||||
月中购买金额(更新后) | 0 | ||||||
转入POINT | 0 | ||||||
本日最终POINT | 0 | ||||||
更新时间 | 前一日的时间 | ||||||
执行者CODE | NULL | ||||||
记录号 | 自动获取 | ||||||
表11 POINT履历(追加)项目移动表
移动表名称 | 移动操作地址名称 | A | FSPTB_MEMBER | ||||
POINT履历(追加)项目移动表 | B | FSPTB_POINT | |||||
C | |||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
会员CODE | 会员CODE | Y | 同项目 | ||||
日期 | 执行时的时间 | ||||||
优待等级号 | 优待等级号 | Y | 同项目 | ||||
当日基本POINT | 0 | ||||||
当日奖励POINT | 0 | ||||||
当日追加POINT | 0 | ||||||
当日支出POINT | 现在POINT | Y | 同项目 | ||||
现在POINT | 0 | ||||||
更新时间 | 执行时时间 | ||||||
执行者CODE | NULL | ||||||
表12 POINT履历(更新)项目移动表
移动表名称 | 移动操作地址名称 | A | FSPTB_MEMBER | ||||
POINT履历(更新)项目移动表 | B | ||||||
C | |||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
当日支出POINT | Y | 当日支出POINT+现在POINT | |||||
现在POINT | 0 | ||||||
执行者CODE | Y | NULL | |||||
更新日期 | 执行操作时的日期 | ||||||
表13用户数据项目移动表
移动表名称 | 移动操作地址名称 | A | FSPTB_MEMBER | ||||
用户数据项目移动表 | B | ||||||
C | |||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
会员CODE | Y | 同项目 | |||||
旧会员CODE | NULL | ||||||
Dominant CODE | NULL | ||||||
店铺CODE | 店铺CODE | 同项目 | |||||
旧Dominant CODE | NULL | ||||||
旧店铺CODE | NULL | ||||||
更新区分 | “1” | ||||||
记录号 | 自动获取 | ||||||
- 初期处理。
(1)共通文件(INI)取得。
如存在错误,输出错误信息,程序结束。
(2)输出开始日志。
- 分析用POS明细文件作成。
(1)文件检查处理。
-
- 检查POS明细文件路径。
如果不存在,输出错误日志,程序结束。
-
- 生成POS明细文件。
如果超过99个,直接跳转到步骤3。
-
- 检查POS项目信息文件路径。
如果不存在,输出错误日志,程序结束。
-
- 检查POS项目信息文件。
如果不存在,输出错误日志,程序结束。
(2)读取POS项目信息文件。
当数据读完,结束。
(3)POS明细文件CODE作成。
(4)参照“项目数据移动表”。
- 结束处理。
输出结束日志。
表14项目数据移动表
移动表名称 | 移动操作地址名称 | A | FSP_EFI010.DAT | ||||
项目数据移动表 | B | ||||||
C | |||||||
D | |||||||
编辑项目名称 | 原项目名称 | A | B | C | D | 移动方式 | |
record区分 | record区分 | Y | 同项目 | ||||
店铺CODE | 店铺CODE | Y | 同项目 | ||||
register NO | terminal NO | Y | |||||
店铺CODE | 店铺CODE | Y | 同项目 | ||||
receipt NO | 购买编号 | Y | |||||
购买日期 | 购买日期 | Y | 同项目 | ||||
购买时间 | 购买时间 | Y | 同项目 | ||||
会员CODE | 会员CODE | Y | 同项目 | ||||
商品分类号1 | 大分类号 | Y | JAN CODE的左1~2位 | ||||
商品分类号2 | 中分类号 | Y | JAN CODE的左3~4位 | ||||
商品分类号3 | 小分类号 | Y | JAN CODE的左5~7位 | ||||
商品分类号4 | 细分类号 | Y | JAN CODE的左8~13位 | ||||
扩充预留 | “0” | ||||||
JAN CODE | Y | 如果FSP_EFI010.DAT中的JANCODE="0000000000000", JANCODE=""9999999"+GPCODE的右2位+部门CODE的右4位.否则, JANCODE等于FSP_EFI010.DAT中JANCODE | |||||
商品名 | 商品名 | Y | 同项目 | ||||
购买点数 | 购买点数 | Y | 同项目 | ||||
购买金额 | Y | FSP_EFI010.DAT中的‘消费金额’-折扣价-贴现价-按比例折扣价-按比例贴现价-按比例M&M值 | |||||
折扣价 | "0000000" | ||||||
特价区分 | FSP_EFI010.DAT中的‘会员价格’不等于0则设为“1”,否则设为“0” | ||||||
内税符号 | GPCODE的右2位=“90”且购买点数=“000”且部门CODE的右4位=“9701”或“9702”或“9703”,则置“1”; 退货交易=”1”或者购买金额的计算结果<0,则置“1”;其他情况置位空格 | ||||||
原价 | "000000" | ||||||
备注 | 两个空格 | ||||||
开发环境为Eclipse3.2,JDK包采用版本为jdk1.5.0_06。OBDC数据源为tokyosuper。数据库登录帐号:sa ;密码:123456。
图4 积分失效模块流程图
图5 数据分析模块模块流程图
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");/*注册数据库驱动程序为 SQL JDBC-ODBC驱动*/
}
catch (ClassNotFoundException e) { /*如无法找到该驱动,则捕获异常,并输出错误*/
// TODO Auto-generated catch block
e.printStackTrace();
}
INI文件中记录了本系统中所有数据文件的存储地址。因此,在开始模块编码前,一定要先读取该文件。专门建立一个类Iniread.java来实现各种功能。具体如下:
成员变量:
FileReader inOjb; //创建一个用来读取字符文件的对象
BufferedReader br; //创建一个使用默认大小输入缓冲区的缓冲字符输入流。
Connection con; //与特定数据库的连接
Statement stmt; //用于执行静态 SQL 语句并返回它所生成结果的对象
String url; //定义数据源名
String user; //定义数据源的login name
String password; //定义数据源的密码
/*构造方法(参数是为了进行数据库连接,在读取INI文件过程中如出现错误则将错误 日志输入数据库的LOG表)*/
Iniread(String url,String user,String password){
inOjb=new FileReader("FSP.INI");
br=new BufferedReader(inOjb);
…
…
}
/*此方法用于获取数据文件在服务器上的地址,参数是数据文件名*/
public String getaddress(String a) {
str=br.readLine(); //读取INI文件中的一行
…
…
}