会员卡管理系统技术解析(十三)库存卡作废记录查询

来源:互联网 发布:怎么联系淘宝在线客服 编辑:程序博客网 时间:2024/05/01 22:03

会员卡管理系统技术解析(十三)库存卡作废记录查询

库存卡作废记录查询这个模块功能可以查看员工录入的库存卡作废记录信息。可以通过日期(如20150528)或记录单号对单据进行模糊筛选查询。还可以对单据进行审核、删除等操作。

1.1界面效果图


3.1.1.1(图1)

从界面可以看到本项目这里用到的控件有:

控件名称

说明

搜索框(easyui-searchbox)

第一要设置每个控件的id,第二设置样式不设置也有默认,第三(data-options)是数据操作:可以设置控件的一些属性和事件

表格控件(easyui-datagrid)

表格超链接操作列

文本框(表单元素input)

1.2功能实现

第1步:数据库(与控件使用方法)

1、表与关系

1.1库存卡作废记录


表1:会员卡建卡明细表(Pw_MembershipCardDetails)

用于存放建卡记录明细信息

列名

数据类型

主键/外键

说明

MembershipCardDetailsID

int

主键

会员卡建卡明细ID

MembershipCardID

int

外键

会员卡建卡记录表, 会员卡建卡记录ID

MembershipCardTypeID

int

外键

会员卡类型表, 会员卡类型ID

MembershipCardStorageLocationID

int

外键

会员卡保管地点表,保管地点ID

StateOfTheMembershipCardID

int

外键

基础属性集合明细表,会员卡状态ID

ChangeTheMembershipCardID

int

外键

基础属性集合明细表,变更会员卡状态ID

UpdateRankID

int

外键

会员卡级别表,会员卡级别ID

KeeperID

int

外键

员工表,保管人ID

Remarks

nchar(200)

 

备注

MembershipCardCardNumber

nchar(50)

 

会员卡卡号

SpecifyTheValidityTime

date

 

有效期指定时间

ValidityTime

date

 

有效期时间

WriteCardStatus

nchar(10)

 

写卡状态

WriteTime

date

 

写卡时间

NominalAmount

money

 

面值金额

 

表2:库存卡作废记录表(Pw_StoreCardInvalid)

用于存放库存卡作废记录信息。

列名

数据类型

主键/外键

说明

StoreCardInvalidID

int

主键

库存卡记录自动编号

RecordNum

nchar(18)

 

记录编号

BookerID

int

外键

员工表,登记人

BookTime

date

 

登记时间

VerifierID

int

外键

员工表,审核人

VerifyTime

date

 

审核时间

IsVerify

nchar(5)

 

审核状态

InvalidReason

nchar(200)

 

作废原因


 











表3:库存卡作废明细表(Pw_StoreCardInvalidDetails)

用于存放库存卡作废明细信息。

列名

数据类型

主键/外键

说明

StoreCardInvalidDetailsID

int

主键

库存卡明细自动编号

StoreCardInvalidID

int

外键

库存卡作废记录表,审核相关

MembershipCardDetailsID

int

外键

建卡明细表,会员卡卡号

InvalidStateBefore

int

外键

基础属性集合明细表,作废前状态

RecordInvalid

bit

  

记录作废否

 



表4: 员工表(Sys_Staff)

用于存放员工信息

列名

数据类型

主键/外键

说明

StaffID

int

主键

员工ID

MembershipCardStorageLocationID

int

外键

会员卡保管地点表,会员卡保管地点ID

ZoneID

int

外键

区域表,区域ID

IDTypeID

int

外键

基础属性集合明细表,证件类型ID

IDNumber

nchar(20)

 

证件号码

Birthday

date

 

出生日期

MailingAddress

nchar(30)

 

通讯地址

Email

nchar(20)

 

E-mail

PrivateCallNumber

nchar(20)

 

私人电话

MobileNumber

nchar(20)

 

手机号码

StaffDegree

nchar(20)

 

员工学历

Vehicle

nchar(20)

 

交通工具

FamilyMembers

int

 

家庭成员数量

HobbiesAndInterests

nchar(30)

 

兴趣爱好

StaffName

nchar(20)

 

员工姓名

ESEX

nchar(10)

 

员工性别

 

1.2库存卡作废记录明细


表1:库存卡作废明细表(Pw_StoreCardInvalidDetails)

用于存放库存卡作废明细信息。

列名

数据类型

主键/外键

说明

StoreCardInvalidDetailsID

int

主键

库存卡明细自动编号

StoreCardInvalidID

int

外键

库存卡作废记录表,审核相关

MembershipCardDetailsID

int

外键

建卡明细表,会员卡卡号

InvalidStateBefore

int

外键

基础属性集合明细表,作废前状态

RecordInvalid

bit

记录作废否

 

表2: 会员卡保管地点(Sys_ MembershipCardStorageLocation)

用于存放会员卡保管地点信息

列名

数据类型

主键/外键

说明

MembershipCardStorageLocationID

int

主键

会员卡保管地点ID

MembershipCardStorageLocationFatherID

int

外键

会员卡保管地点父ID

MarkerTypeID

int

外键

标记类型ID

Name

nchar(20)

 

名称

LevelAtTheEndOfTheTag

bit

 

末级标记否

DuplicatedRecord

bit

 

复制记录否

Code

nchar(10)

 

代码

EncodingRules

int

 

编码规则

 

表3:会员卡卡种表(Sys_MembersKakaKind)

用于存放会员卡卡种表信息

列名

数据类型

主键/外键

说明

MembersKakaKindID

int

主键

会员卡卡种ID

MembersKakaCode

nchar(10)

 

会员卡卡种代码

MembersKakaKindsOfNames

nchar(30)

 

会员卡卡种名称

Invalid

bit

 

作废否

 


 

表4:会员卡建卡明细表(Pw_MembershipCardDetails)

用于存放建卡记录明细信息

列名

数据类型

主键/外键

说明

MembershipCardDetailsID

int

主键

会员卡建卡明细ID

MembershipCardID

int

外键

会员卡建卡记录表, 会员卡建卡记录ID

MembershipCardTypeID

int

外键

会员卡类型表, 会员卡类型ID

MembershipCardStorageLocationID

int

外键

会员卡保管地点表,保管地点ID

StateOfTheMembershipCardID

int

外键

基础属性集合明细表,会员卡状态ID

ChangeTheMembershipCardID

int

外键

基础属性集合明细表,变更会员卡状态ID

UpdateRankID

int

外键

会员卡级别表,会员卡级别ID

KeeperID

int

外键

员工表,保管人ID

Remarks

nchar(200)

 

备注

MembershipCardCardNumber

nchar(50)

 

会员卡卡号

SpecifyTheValidityTime

date

 

有效期指定时间

ValidityTime

date

 

有效期时间

WriteCardStatus

nchar(10)

 

写卡状态

WriteTime

date

 

写卡时间

NominalAmount

money

 

面值金额

 


 

表5:会员卡类型(Sys_ MembershipCardType)

用于存放会员卡类型信息

列名

数据类型

主键/外键

说明

MembershipCardTypeID

int

主键

会员卡类型ID

MembersKakaKindID

int

外键

会员卡卡种ID

MembershipCardLevelID

int

外键

会员卡级别ID

MembershipCardIssuanceID

int

外键

会员卡发行方式ID

UseObjectID

int

外键

使用对象ID

DailyManagementFormID

int

外键

日常管理形式ID

TrackMediumID

int

外键

磁道介质ID

PreferentialWayID

int

外键

优惠方式ID

CardValidityPeriodSpecifiedID

int

外键

卡有效期指定方式ID

HairpinWithFaceValue

bit

 

发卡时有面值否

StoredValueCoupons

bit

 

储值优惠券标记否

ParticipateInTheScore

bit

 

参与消费积分否

leadCode

nchar(10)

 

前导码

PostpositionCode

nchar(10)

 

后置码

RequireTheSystemToMakeCard

bit

 

需要系统制卡否

NeedCompulsoryInspectionCard

bit

 

需要强制验卡否

LengthOfThePeriodOfValidity

nchar(10)

 

有效期长度

TrackContentEncryption

bit

 

磁道内容加密否

Invalid

bit

 

作废否

MembershipCardTypeCode

nchar(10)

 

会员卡类型代码

MembershipCardTypeName

nchar(30)

 

会员卡类型名称

KeepRecordsOfConsumption

bit

 

保存消费记录否

TotalLengthCardNumber

int

 

卡号总长度

OpenTheCouponAccount

bit

 

开通优惠券账户否

 

第2步:服务层接口(IService)

首先,在之前创建的包“MEMBCERP.IService”下创建一个名为“KuCunKaGuanLiIService”的类,并更改KuCunKaGuanLiIService类的类型,接着,定义查询库存卡作废记录的方法接口,截图如下:


3.1.1.2.2(图1)

 

 

代码如下:

package MEMBCERP.IService;import java.util.List;public interface KuCunKaGuanLiIService {public List SelectAllKuCunKaZuoFeiJiLu();/*查询全部库存卡作废记录*/public List SelectMianZhiJinE(int HuiYanKaZuoFeiID);/*根据会员卡作废ID,查询面值金额*/public List SelectKuCunKaZuoFeiMingXi(int KuCunKaZuoFeiID);/*根据库存卡作废ID查询库存卡作废明细*/public List SelectAllKuCunKaZuoFeiJiLu(String MoHuJiLuBianHao, String MoHuZuoFeiYuanYin);/*根据模糊记录编号和模糊作废原因查询全部库存卡作废记录*/}

第3步:服务层(Service)

首先,在之前创建的包“MEMBCERP.Service”下创建一个名为“KuCunKaGuanLiService”的类,接着,定义查询库存卡作废记录的方法接口实现,截图如下:


3.1.1.2.3(图1)

 

 

代码如下:

package MEMBCERP.Service;import java.util.List;import MEMBCERP.IDAO.IDAO;import MEMBCERP.IService.KuCunKaGuanLiIService;import MEMBCERP.pojo.PwMembershipCardDetails;import MEMBCERP.pojo.PwStoreCardInvalid;import MEMBCERP.pojo.PwStoreCardInvalidDetails;import MEMBCERP.pojo.PwStoreCardInvalidRecovery;import MEMBCERP.pojo.PwStoreCardInvalidRecoveryDetails;import MEMBCERP.pojo.SysMembershipCardStorageLocation;public class KuCunKaGuanLiService implements KuCunKaGuanLiIService{private IDAO dao;/*操作持久类*/public IDAO getDao() {return dao;}public void setDao(IDAO dao) {this.dao = dao;}/*查询全部库存卡作废记录*/@Overridepublic List SelectAllKuCunKaZuoFeiJiLu(){try {/*尝试运行代码*/StringBuffer queryString=new StringBuffer();/*实例化StringBuffer*//*拼接需要查询的字段*/queryString.append("SELECT KuCunKaZuoFeiJiLu.storeCardInvalidId, KuCunKaZuoFeiJiLu.recordNum, " +"DengJiRen.staffName, KuCunKaZuoFeiJiLu.bookTime, KuCunKaZuoFeiJiLu.isVerify, " +"KuCunKaZuoFeiJiLu.verifyTime, ShenHeRen.staffName, KuCunKaZuoFeiJiLu.invalidReason ");/*实例化表*/queryString.append("FROM PwStoreCardInvalid AS KuCunKaZuoFeiJiLu, " +"SysStaff AS DengJiRen, SysStaff AS ShenHeRen ");/*表与关系 满足条件*/queryString.append("WHERE KuCunKaZuoFeiJiLu.bookerId = DengJiRen.staffId " +"AND KuCunKaZuoFeiJiLu.verifierId = ShenHeRen.staffId ");return dao.findByHql(queryString.toString());} catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/return null;}}/*根据会员卡作废ID,查询与上对应的面值金额*/@Overridepublic List SelectMianZhiJinE(int HuiYanKaZuoFeiID){try {/*尝试运行代码*/StringBuffer queryString=new StringBuffer();/*实例化StringBuffer*//*拼接需要查询的字段*/queryString.append("SELECT HuiYuanKaMingXi.nominalAmount ");/*实例化表*/queryString.append("FROM PwStoreCardInvalidDetails AS KuCunKaZuoFeiMingXi, " +"PwMembershipCardDetails AS HuiYuanKaMingXi "); /*表与关系 满足条件*/queryString.append("WHERE KuCunKaZuoFeiMingXi.storeCardInvalidId = ? " +"AND KuCunKaZuoFeiMingXi.membershipCardDetailsId = HuiYuanKaMingXi.membershipCardDetailsId ");return dao.findByHql(queryString.toString(),new Object[]{HuiYanKaZuoFeiID});} catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/return null;}}/*根据库存卡作废ID查询库存卡作废明细*/@Overridepublic List SelectKuCunKaZuoFeiMingXi(int KuCunKaZuoFeiID){try {/*尝试运行代码*/StringBuffer queryString=new StringBuffer();/*实例化StringBuffer*//*拼接需要查询的字段*/queryString.append("SELECT KuCunKaZuoFeiMingXi.storeCardInvalidDetailsId, " +"HuiYuanKaMingXi.nominalAmount, HuiYuanKaKaZhong.membersKakaKindsOfNames, " +"HuiYuanKaLeiXing.membershipCardTypeName, BaoGuanDiDian.name, " +"HuiYuanKaMingXi.membershipCardCardNumber, KuCunKaZuoFeiMingXi.recordInvalid, " +"HuiYuanKaMingXi.membershipCardDetailsId  ");/*实例化表*/queryString.append("FROM PwStoreCardInvalidDetails AS KuCunKaZuoFeiMingXi, " +"PwMembershipCardDetails AS HuiYuanKaMingXi, SysMembershipCardType AS HuiYuanKaLeiXing, " +"SysMembersKakaKind AS HuiYuanKaKaZhong, SysMembershipCardStorageLocation AS BaoGuanDiDian ");/*表与关系 满足条件*/queryString.append("WHERE KuCunKaZuoFeiMingXi.storeCardInvalidId = ? " +"AND KuCunKaZuoFeiMingXi.membershipCardDetailsId = HuiYuanKaMingXi.membershipCardDetailsId " +"AND HuiYuanKaMingXi.membershipCardTypeId = HuiYuanKaLeiXing.membershipCardTypeId " +"AND HuiYuanKaLeiXing.membersKakaKindId = HuiYuanKaKaZhong.membersKakaKindId " +"AND HuiYuanKaMingXi.membershipCardStorageLocationId = BaoGuanDiDian.membershipCardStorageLocationId  ");return dao.findByHql(queryString.toString(),new Object[]{KuCunKaZuoFeiID});} catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null;}}/* 根据模糊记录编号 MoHuJiLuBianHao * 模糊作废原因 MoHuZuoFeiYuanYin * 查询全部库存卡作废记录 * */@Overridepublic List SelectAllKuCunKaZuoFeiJiLu(String MoHuJiLuBianHao, String MoHuZuoFeiYuanYin){try {/*尝试运行代码*/StringBuffer queryString=new StringBuffer();/*实例化StringBuffer*//*拼接需要查询的字段*/queryString.append("SELECT KuCunKaZuoFeiJiLu.storeCardInvalidId, KuCunKaZuoFeiJiLu.recordNum, " +"DengJiRen.staffName, KuCunKaZuoFeiJiLu.bookTime, KuCunKaZuoFeiJiLu.isVerify," +"KuCunKaZuoFeiJiLu.verifyTime, ShenHeRen.staffName, KuCunKaZuoFeiJiLu.invalidReason ");/*实例化表*/queryString.append("FROM PwStoreCardInvalid AS KuCunKaZuoFeiJiLu, " +"SysStaff AS DengJiRen, SysStaff AS ShenHeRen ");/*表与关系 满足条件*/queryString.append("WHERE KuCunKaZuoFeiJiLu.bookerId = DengJiRen.staffId " +"AND KuCunKaZuoFeiJiLu.verifierId = ShenHeRen.staffId " +"AND KuCunKaZuoFeiJiLu.recordNum like '%' + ?+'%' " +"AND KuCunKaZuoFeiJiLu.invalidReason like '%' + ?+'%' ");return dao.findByHql(queryString.toString(),new Object[]{MoHuJiLuBianHao,MoHuZuoFeiYuanYin});} catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/return null;}}}

第4步:方法层(Action)

首先,在之前创建的包“MEMBCERP.Action”下创建一个名为“KuCunKaGuanLiAction”的类。然后,继承“baseAction”。接着,定义查询库存卡作废记录的方法,截图如下:


3.1.1.2.4(图1)

 

代码如下:

package MEMBCERP.Action;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import MEMBCERP.Function.encodingFunction;import MEMBCERP.IService.KuCunKaGuanLiIService;import MEMBCERP.pojo.PwMembershipCardDetails;import MEMBCERP.pojo.PwMembershipCardRecipientsDetails;import MEMBCERP.pojo.PwStoreCardInvalid;import MEMBCERP.pojo.PwStoreCardInvalidDetails;import MEMBCERP.pojo.PwStoreCardInvalidRecovery;import MEMBCERP.pojo.PwStoreCardInvalidRecoveryDetails;import MEMBCERP.pojo.SysMembershipCardStorageLocation;public class KuCunKaGuanLiAction extends baseAction {private KuCunKaGuanLiIService kuCunKaGuanLiService;private JSONObject JSObj;private JSONArray JSArr;    private String MSG;private int INT;    public KuCunKaGuanLiIService getKuCunKaGuanLiService() {return kuCunKaGuanLiService;}public void setKuCunKaGuanLiService(KuCunKaGuanLiIService kuCunKaGuanLiService) {this.kuCunKaGuanLiService = kuCunKaGuanLiService;}public JSONObject getJSObj() {return JSObj;}public void setJSObj(JSONObject jSObj) {JSObj = jSObj;}public JSONArray getJSArr() {return JSArr;}public void setJSArr(JSONArray jSArr) {JSArr = jSArr;}public String getMSG() {return MSG;}public void setMSG(String mSG) {MSG = mSG;}public int getINT() {return INT;}public void setINT(int iNT) {INT = iNT;}/*查询全部库存卡作废记录*/public String getKuCunKaZuoFeiJiLu(){/*实例化一个Array数组*/JSONArray jsArr=new JSONArray();/*实例化一个Object数组*/JSONObject jsObj=new JSONObject();/*调用服务层方法,查询全部库存卡作废记录*/List lsKuCunKaZuoFeiJiLu=this.kuCunKaGuanLiService.SelectAllKuCunKaZuoFeiJiLu();for (int i = 0; i < lsKuCunKaZuoFeiJiLu.size(); i++) {Object[] obj=(Object[])lsKuCunKaZuoFeiJiLu.get(i);/*清空jsObj数组*/jsObj.clear();jsObj.put("KuCunKaZuoFeiID", obj[0]);double ZuoFeiZongJinE=0.00;List LsZuoFeiJinE = this.kuCunKaGuanLiService.SelectMianZhiJinE(Integer.parseInt(obj[0].toString().trim()));for (int j = 0; j < LsZuoFeiJinE.size(); j++) {ZuoFeiZongJinE=ZuoFeiZongJinE+Double.parseDouble(LsZuoFeiJinE.get(j).toString());} jsObj.put("ZuoFeiZongJinE",ZuoFeiZongJinE );jsObj.put("ZuoFeiShuLiang", LsZuoFeiJinE.size());jsObj.put("JiLuBianHao", obj[1]);jsObj.put("DengJiRen", obj[2]);jsObj.put("DengJiShiJian", obj[3]);jsObj.put("ShenHeZhuangTai", obj[4]);if(obj[4].toString().trim().equals("未审核")){jsObj.put("ShenHeShiJian"," ");jsObj.put("ShenHeRen"," ");}else {jsObj.put("ShenHeShiJian", obj[5]);jsObj.put("ShenHeRen", obj[6]);}jsObj.put("ZuoFeiYuanYin", obj[7]);/*将jsObj数组添加到jsArr数组*/jsArr.add(jsObj);}/*实例化一个哈希表*/HashMap<String, Object> jsMap=new HashMap<String, Object>();/*将jsArr数组写入到jsMap中*/jsMap.put("rows", jsArr);/*转换数组类型,并返回数组*/JSObj=JSONObject.fromObject(jsMap);return SUCCESS;}/*根据库存卡作废ID查询库存卡作废明细*/public String getKuCunKaZuoFeiMingXi(){/*实例化一个Array数组*/JSONArray jsArr=new JSONArray();/*实例化一个Object数组*/JSONObject jsObj=new JSONObject();/*获取页面传递过来的参数*/int KuCunKaZuoFeiID = Integer.parseInt(this.getRequest().getParameter("KuCunKaZuoFeiID").trim());/*调用服务层方法,根据库存卡作废ID查询库存卡作废明细*/List lsKuCunKaZuoFeiMingXi=this.kuCunKaGuanLiService.SelectKuCunKaZuoFeiMingXi(KuCunKaZuoFeiID);/*循环遍历服务层返回的结果集*/for (int i = 0; i < lsKuCunKaZuoFeiMingXi.size(); i++) {Object[] obj=(Object[]) lsKuCunKaZuoFeiMingXi.get(i);/*清空jsObj数组*/jsObj.clear();/*写入参数*/jsObj.put("KuCunKaZuoFeiMingXiID", obj[0]);jsObj.put("MianZhiJinE", obj[1]);jsObj.put("KaZhongZhongLei", obj[2].toString().trim()+"•"+obj[3].toString().trim());jsObj.put("BaoGuanDiDian", obj[4]);jsObj.put("HuiYuanKaKaoHao", obj[5]);if(obj[6].toString().trim().equals("true")){jsObj.put("ZuoFeiHuiFuFou","已恢复使用");}else {jsObj.put("ZuoFeiHuiFuFou","库存卡作废");}/*将jsObj数组添加到jsArr数组*/jsArr.add(jsObj);}HashMap<String, Object> jsMap = new HashMap<String, Object>();/*将jsArr数组写入到jsMap中*/jsMap.put("rows", jsArr);/*转换数组类型,并返回数组*/JSObj=JSONObject.fromObject(jsMap);return SUCCESS;}/* 根据模糊记录编号 MoHuJiLuBianHao * 模糊作废原因 MoHuZuoFeiYuanYin * 查询全部库存卡作废记录 * */public String MoHuChaXunKuCunKaZuoFeiJiLu() {/*实例化一个Array数组*/JSONArray jsArr=new JSONArray();/*实例化一个Object数组*/JSONObject jsObj=new JSONObject();/*获取页面传递过来的参数*/String MoHuJiLuBianHao=this.getRequest().getParameter("MoHuJiLuBianHao").trim();String MoHuZuoFeiYuanYin=encodingFunction.getMethodEncoding(this.getRequest().getParameter("MoHuZuoFeiYuanYin").trim());/*调用服务层方法,模糊查询库存卡作废记录*/List lsMoHuChaXun=this.kuCunKaGuanLiService.SelectAllKuCunKaZuoFeiJiLu(MoHuJiLuBianHao,MoHuZuoFeiYuanYin);/*循环遍历服务层返回的结果集*/for (int i = 0; i < lsMoHuChaXun.size(); i++) {Object[] obj=(Object[])lsMoHuChaXun.get(i);/*清空jsObj数组*/jsObj.clear();/*写入参数*/jsObj.put("KuCunKaZuoFeiID", obj[0]);double ZuoFeiZongJinE=0.00;List LsZuoFeiJinE = this.kuCunKaGuanLiService.SelectMianZhiJinE(Integer.parseInt(obj[0].toString().trim()));for (int j = 0; j < LsZuoFeiJinE.size(); j++) {ZuoFeiZongJinE=ZuoFeiZongJinE+Double.parseDouble(LsZuoFeiJinE.get(j).toString());} jsObj.put("ZuoFeiZongJinE",ZuoFeiZongJinE );jsObj.put("ZuoFeiShuLiang", LsZuoFeiJinE.size());jsObj.put("JiLuBianHao", obj[1]);jsObj.put("DengJiRen", obj[2]);jsObj.put("DengJiShiJian", obj[3]);jsObj.put("ShenHeZhuangTai", obj[4]);if(obj[4].toString().trim().equals("未审核")){jsObj.put("ShenHeShiJian"," ");jsObj.put("ShenHeRen"," ");}else {jsObj.put("ShenHeShiJian", obj[5]);jsObj.put("ShenHeRen", obj[6]);}jsObj.put("ZuoFeiYuanYin", obj[7]);/*将jsObj数组添加到jsArr数组*/jsArr.add(jsObj);}/*实例化一个哈希表*/HashMap<String, Object> jsMap=new HashMap<String, Object>();/*将jsArr数组写入到jsMap中*/jsMap.put("rows", jsArr);/*转换数组类型,并返回数组*/JSObj=JSONObject.fromObject(jsMap);return SUCCESS;}}

第5步:applicationContext与struts2的配置

A、applicationContext配置

<!-- 库存卡管理 --><bean id="KuCunKaGuanLiService" class="MEMBCERP.Service.KuCunKaGuanLiService">    <property name="dao">        <ref bean="dao"/>    </property></bean><bean id="KuCunKaGuanLiAction" class="MEMBCERP.Action.KuCunKaGuanLiAction" parent="baseAction">    <property name="kuCunKaGuanLiService">        <ref bean="KuCunKaGuanLiService"/>    </property></bean>


B、struts2配置

<!-- 库存卡作废 --> <action name="getKuCunKaZuoFeiJiLu" class="KuCunKaGuanLiAction" method="getKuCunKaZuoFeiJiLu">           <result type="json">           <param name="root">JSObj</param>           </result>        </action>        <action name="getKuCunKaZuoFeiMingXi" class="KuCunKaGuanLiAction" method="getKuCunKaZuoFeiMingXi">           <result type="json">           <param name="root">JSObj</param>           </result>        </action>        <action name="MoHuChaXunKuCunKaZuoFeiJiLu" class="KuCunKaGuanLiAction" method="MoHuChaXunKuCunKaZuoFeiJiLu">           <result type="json">           <param name="root">JSObj</param>           </result>        </action>

第6步:视图层调用

库存卡作废记录:


3.1.1.2.6(图1)

HTML代码:

<table id="dgKuCunKaZuoFei" class="easyui-datagrid" title="库存卡作废记录" style="height:235px;"          data-options="singleSelect:true,rownumbers:true,loadMsg:'加载中,请稍后...',url:'getKuCunKaZuoFeiJiLu',           idField:'KuCunKaZuoFeiID',onClickRow:getKuCunKaZuoFeiMingXi, onSelect:getSelect">         <thead>            <tr>               <th data-options="field:'JiLuBianHao',width:120,align:'center'">记录编号</th>               <th data-options="field:'ZuoFeiShuLiang',width:80,align:'center'">作废数量</th>               <th data-options="field:'ZuoFeiZongJinE',width:80,align:'center'">作废总金额</th>               <th data-options="field:'ZuoFeiYuanYin',width:160,align:'center'">作废原因</th>               <th data-options="field:'DengJiRen',width:100,align:'center'">登记人</th>                 <th data-options="field:'DengJiShiJian',width:110,align:'center'">登记时间</th>                                  <th data-options="field:'ShenHeZhuangTai',width:100,align:'center'">审核状态</th>                                  <th data-options="field:'ShenHeRen',width:100,align:'center'">审核人</th>               <th data-options="field:'ShenHeShiJian',width:110,align:'center'">审核时间</th>               <th data-options="field:'KuCunKaZuoFeiID',width:120,align:'center',formatter:KuCunKaZuoFeiCaoZuo">操作</th>            </tr>         </thead>       </table>

JavaScript代码:

/*库存卡作废记录,超链接操作列*/function KuCunKaZuoFeiCaoZuo(KuCunKaZuoFeiID, row, rowIndex) {return  "<a href='javascript:shenHe(" + KuCunKaZuoFeiID + "," + rowIndex+ ")'>审核</a>  " + "<a href='javascript:shanChu(" + KuCunKaZuoFeiID + "," + rowIndex+ ")'>删除</a> ";}//开启审核var ShenHeKuCunKaZuoFeiID=0;function shenHe(KuCunKaZuoFeiID, rowIndex) {if (dgShenHeFou == "已审核") {alert("记录编号【"+dgJiLuBianHao+ "】已通过审核,无法再进行审核!");} else {$('#FromShenHeRen').show();ShenHeKuCunKaZuoFeiID=KuCunKaZuoFeiID;$('#dgShenHeRen').datagrid('reload');}} //删除记录function shanChu(KuCunKaZuoFeiID, rowIndex) {if (dgShenHeFou == "已审核") {alert("记录编号【"+dgJiLuBianHao+ "】已通过审核,无法再进行删除!");} else {  if (confirm("是否删除记录编号为【"+dgJiLuBianHao+"】的数据?")) {$.getJSON("deleteKuCunKaZuoFei?KuCunKaZuoFeiID=" + KuCunKaZuoFeiID, function(result) {if (result == "true"){$('#dgKuCunKaZuoFei').datagrid('reload');$('#dgKuCunKaZuoFeiMingXi').datagrid('reload',null);alert("删除成功!");}});   } }}/*获取选中行的行号和数据 KuCunKaZuoFeiID*/    var dgShenHeFou="";     var dgJiLuBianHao="";    function getSelect(rowIndex,rowData){   dgShenHeFou=rowData.ShenHeZhuangTai.trim();   dgJiLuBianHao=rowData.JiLuBianHao.trim();}/*获取库存卡作废明细*/function getKuCunKaZuoFeiMingXi(){var row = $('#dgKuCunKaZuoFei').datagrid('getSelected');if(row){ $("#dgKuCunKaZuoFeiMingXi").datagrid({url:"getKuCunKaZuoFeiMingXi?KuCunKaZuoFeiID="+row.KuCunKaZuoFeiID});}}

库存卡作废记录模糊搜索:


3.1.1.2.6(图2)

 

HTML代码:

<table>          <tr class="JianKaclass">        <td>记录编号:<input type="text" id="txtMoHuJiLuBianHao" /></td><td>作废原因:<input type="text" id="txtMoHuZuoFeiYuanYin" /></td><td><a onClick="btMoHuChaXun()" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a></td><td><a href="KuCunKaGuanLi/KuCunKaZuoFeiInsert.jsp" class="easyui-linkbutton" data-options="iconCls:'icon-add'">添加</a></td>          </tr>        </table>

JavaScript代码:

/*模糊查询库存卡作废记录*/    function btMoHuChaXun(){    $("#dgKuCunKaZuoFei").datagrid({url:"MoHuChaXunKuCunKaZuoFeiJiLu?MoHuJiLuBianHao="+$('#txtMoHuJiLuBianHao').val()+"&MoHuZuoFeiYuanYin="+$('#txtMoHuZuoFeiYuanYin').val()});}

库存卡作废记录明细:


3.1.1.2.6(图3)

 

HTML代码:

<table id="dgKuCunKaZuoFeiMingXi" class="easyui-datagrid" title="库存卡作废明细" style="height:245px;"         data-options="singleSelect:true,rownumbers:true,loadMsg:'加载中,请稍后...'">         <thead>            <tr>               <th data-options="field:'HuiYuanKaKaoHao',width:200,align:'center'">会员卡卡号</th>                                 <th data-options="field:'KaZhongZhongLei',width:200,align:'center'">会员卡类型</th>               <th data-options="field:'BaoGuanDiDian',width:200,align:'center'">保管地点</th>               <th data-options="field:'ZuoFeiHuiFuFou',width:200,align:'center'">作废状态</th>                <th data-options="field:'MianZhiJinE',width:150,align:'center'">面值金额</th>                              <th data-options="field:'KuCunKaZuoFeiMingXiID',width:130,align:'center',formatter:KuCunKaZuoFeiMingXiCaoZuo">操作</th>             </tr>         </thead>       </table>

JavaScript代码:

/*库存卡作废明细,超链接操作列*/function KuCunKaZuoFeiMingXiCaoZuo(KuCunKaZuoFeiMingXiID, row, rowIndex) {return  "<a href='javascript:shanChuMingXi(" + KuCunKaZuoFeiMingXiID + "," + rowIndex+ ")'>删除</a> ";}   //删除明细function shanChuMingXi(KuCunKaZuoFeiMingXiID, rowIndex) {if (dgShenHeFou == "已审核") {alert("记录编号【"+dgJiLuBianHao+ "】已通过审核,无法再进行删除!");} else {$.getJSON("deleteKuCunKaZuoFeiMingXi?KuCunKaZuoFeiMingXiID=" + KuCunKaZuoFeiMingXiID+"&d="+new Date(), function(result) {if (result == "true"){$('#dgKuCunKaZuoFei').datagrid('reload');$('#dgKuCunKaZuoFeiMingXi').datagrid('reload');alert("删除成功!");}}); }}

至此,会员卡管理系统技术解析(十三)库存卡作废记录查询 技术解析完毕。

注意:仅供学习,禁止用于商业用途!否则,后果自负。
@最终解析权归本人所有

0 0
原创粉丝点击