package xin.glue.ui.common; //import java.lang.reflect.Array; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.vo.PosRowSet; public class PosMultiSearch extends PosDBEngine { public String runActivity(PosContext ctx) { /* * 传入参数说明: * 1. class: 类名(com.xin.ui.PosInitParam) * 2. dao : dao 名(testdao) * 3. sqlkey-count: sqlkey 数量 * 4. sqlkey 命名规则:'sqlkey' + 序号(0, 1, ...),如 sqlkey0, sqlkey1, ... * 5. param 参数规则: * 1) 参数命名规则:'param' + 参数序号 * 2) 与 sqlkey 对应关系:通过序号实现 * 6. resultkey:返回结果集前缀 * 1) 结果集命名规则:resultkey + '_' + 序号,如: * resultkey 设置为 ListResult,返回结果集为 ListResult_0, ListResult_1, ... */ int count = 1; if (getProperty("sqlkey-count") != null) count = Integer.parseInt(getProperty("sqlkey-count").trim()); if (count == 0) return PosBizControlConstants.SUCCESS; Initialize("true".equalsIgnoreCase(getProperty("writeLog"))); String resultkey = getProperty("resultkey"); if (resultkey == null) { resultkey = "ListResult"; for(int i = 0; i < count; i++) { String resultkeys = resultkey + "_" + i; setParamMap(ctx, "sqlkey" + i, "param" + i); Execute(resultkeys, ctx, "sqlkey" + i, "param" + i); } } else { String[] resultkeys = resultkey.split("\\|"); int length = resultkeys.length; for(int i = 0; i < count; i++) { setParamMap(ctx, "sqlkey" + i, "param" + i); Execute((i= newSize) { return array; } else { Class clsElement = cls.getComponentType(); Object newArray = Array.newInstance(clsElement, newSize); System.arraycopy(array, 0, newArray, 0, len); return newArray; } } else { throw new ClassCastException("need array"); } } private boolean containsKey(Object key, Object array) { if (array == null) return false; Class cls = array.getClass(); if (cls.isArray()) { int len = Array.getLength(array); for (int i=0; i