package xin.glue.ui.B.B01; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.PosJdbcDao; import com.posdata.glue.dao.manager.PosQueryDefinition; import com.posdata.glue.dao.manager.PosQueryManager; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRowSet; /** * @Description 获取错误订单信息,多条件可选查询{界面ID:UIB015110} * @author 梅贵平{meiguiping} * @date 2008-12-6 上午09:24:31 * @JDK Version jdk1.4.2 */ public class FindErrorOrderForm extends PosActivity { public String runActivity(PosContext context) { String[]ORDNO = (String[])context.get("ORDNO");//订单号 String[]ORDSEQ = (String[])context.get("ORDSEQ");//序号 String[]startTime = (String[])context.get("startTime");//开始时间 String[]endTime = (String[])context.get("endTime");//结束时间 PosParameter param = new PosParameter(); PosGenericDao dao = this.getDao("mesdao"); int j = 0; StringBuffer sql = getManagerSql("UIB015110_01.SELECT"); //获取query.xml中的SQL语句 if(!"%".equals(ORDNO[0]))//若订单号不为空 { sql.append("\n AND T1.ORD_NO LIKE ?"); param.setWhereClauseParameter(j++, ORDNO[0]); } if(!"".equals(ORDSEQ[0]))//若订单序号不为空 { sql.append(" AND T1.ORD_SEQ = ?"); param.setWhereClauseParameter(j++, ORDSEQ[0]); } if(!"0000".equals(startTime[0]) && !"9999".equals(endTime[0]))//若开始时间和结束时间都不为空 { sql.append(" AND T1.ERR_DTIME BETWEEN ? AND ? "); param.setWhereClauseParameter(j++, startTime[0]); param.setWhereClauseParameter(j++, endTime[0]); } sql.append(" ORDER BY T1.ERR_DTIME DESC , T1.DSG_ERROR_CD ASC , T1.ORD_NO||T1.ORD_SEQ ASC"); PosRowSet rowset = dao.findByQueryStatement(sql.toString() , param);//无任何条件时,param不会对结果造成影响 context.put("ErrorOrdResult", rowset); return PosBizControlConstants.SUCCESS; } public StringBuffer getManagerSql(String id)//通过ID获取SQL语句 { PosJdbcDao dao = (PosJdbcDao)this.getDao("mesdao"); PosQueryManager ppt = dao.getQueryManager(); PosQueryDefinition x = ppt.getQueryDefinition(id); return new StringBuffer(x.getQueryStatement()); } }