One step at a time!一步一个脚印

成功的秘诀就是这四个字:永不抱怨

Ext.Ajax.request案例


背景:当创建完销售订单(SO)之后,如果要生产产品,必然要创建生产订单(PR),此时我们可以点击SO页 面创建生产订单按钮。想要PR生效则需要点击我们系统里面的POST按钮,此时问题来了...
问题:当点击POST按钮时我们必须判断SO的状态是否为OPEN或者SHIPPED,否则,则弹窗予以警告。
解决方法:
前台部分代码:

function checkReferenceSOStatus(name){ clickName = name; var params = {}; params.commandName="checkReferenceSOStatus"; params.referenceSONumber=document.getElementById("PB___referenceSONumber").value; Ext.Ajax.request({ url : PRODUCTION_URLMAP.MTOPROD_ORDER_LIST_JSON, //应该是个servlet吧 params: params, async: false, //这里填true和false差别在哪里啊? method : "POST", success : checkReferenceSOStatus_callback }); } function checkReferenceSOStatus_callback(returnVal) { var obj = Ext.util.JSON.decode(returnVal.responseText); if (obj.soStatus == 'ORDER_DRAFT'||obj.soStatus=='ORDER_CANCELLED'||obj.soStatus=='ORDER_CLOSED'){ isMTSSalesOrderOpenOrShipped = false; alert("${erp:getResStr3(requestScope.session,'MTOProductionOrder.Prop.Post.CheckSOStatus')}"); }else{ isMTSSalesOrderOpenOrShipped = true; page_action(clickName); } } var isMTSSalesOrderOpenOrShipped = false; function page_action(name) { clickName = name; if(name == "POST"){ var referenceSONumber = document.getElementById("PB___referenceSONumber").value; if (!Strings.isEmpty(referenceSONumber) && !isMTSSalesOrderOpenOrShipped){ checkReferenceSOStatus(name); return; } } }

后台部分代码:


private void checkReferenceSOStatus() {
		String referenceSONumber = requestBean.getValue("referenceSONumber");
		OrderHeader orderHeader = orderService.loadOrderHeaderBySequence(referenceSONumber);
		JSONObject qs = new JSONObject();
		qs.put("soStatus", orderHeader.getCurrentStatus().getStatusItem().getId());
		contextMap.put("JSONString", qs.toString());   //注意:保存的是JSON对象,以便在前台取值
	}



----以上都是个人学习用,欢迎大家指正,本人新手





            
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭