会员卡管理系统技术解析(十三)库存卡作废记录查询
来源:互联网 发布:怎么联系淘宝在线客服 编辑:程序博客网 时间: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)
通讯地址
nchar(20)
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("删除成功!");}}); }}
至此,会员卡管理系统技术解析(十三)库存卡作废记录查询 技术解析完毕。
注意:仅供学习,禁止用于商业用途!否则,后果自负。
@最终解析权归本人所有
- 会员卡管理系统技术解析(十三)库存卡作废记录查询
- 会员卡管理系统技术解析(十五) 库存卡作废恢复记录查询
- 会员卡管理系统技术解析(十四) 库存卡作废记录添加
- 会员卡管理系统技术解析(十六)库存卡作废恢复记录添加
- 会员卡管理系统技术解析(十一)会员卡作废记录查询
- 会员卡管理系统技术解析(十三)会员卡换卡记录查询
- 会员卡管理系统技术解析(十二)添加会员卡作废记录
- 会员卡管理系统技术解析(九)会员卡领卡记录查询
- 会员卡管理系统技术解析(七) 会员卡建卡记录查询
- 会员卡管理系统技术解析(四)会员卡发放记录查询
- 会员卡管理系统技术解析(十一)会员卡退领记录查询
- 会员卡管理系统技术解析(七)会员卡挂失记录查询
- 会员卡管理系统技术解析(十七)库存年卡有效期变更
- 会员卡管理系统技术解析(八)会员卡建卡记录添加
- 会员卡管理系统技术解析(十) 会员卡领卡记录添加
- 会员卡管理系统技术解析(十四)添加会员卡换卡记录
- 会员卡管理系统技术解析(六) 会员卡退卡
- 会员卡管理系统技术解析(十二)会员卡退领记录添加
- BinarySearch的java语言实现
- (五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql安装
- Docker解析及轻量级PaaS平台演练(三)--Dockerfile编写
- 我的第一个汇编语言程序:HelloWorld
- vim学习笔记
- 会员卡管理系统技术解析(十三)库存卡作废记录查询
- 中国式教育-虎妈猫爸给我的启发
- MySQL-MMM实现MySQL高可用
- C语言,推箱子游戏
- vb.net版机房收费系统重构的成长历程(功能实现篇)
- 钟表维修管理系统技术解析 维修记录(五)
- 最近学习状态的感受
- 关闭窗口前提示
- (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结