| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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<length)?resultkeys[i]:resultkeys[length-1], ctx, "sqlkey" + i, "param" + i);
- }
- }
- return PosBizControlConstants.SUCCESS;
- }
- protected void Execute(String resultkey, PosContext context, String sqlKey, String paramKey) {
- PosRowSet rowset = (PosRowSet)super.Execute(context, sqlKey, paramKey);
- if ((rowset != null && rowset.hasNext()) || context.get(resultkey) == null)
- context.put(resultkey, rowset);
- }
- /*
- private Object expand(Object array, int newSize) {
- if (array == null) return null;
- Class cls = array.getClass();
- if (cls.isArray()) {
- int len = Array.getLength(array);
- if (len >= 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<len; i++) {
- if (key.equals([i])) return true;
- }
- }
- return false;
- }
- */
- }
|