| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package xin.glue.ui.common;
- import com.posdata.glue.biz.constants.PosBizControlConstants;
- import com.posdata.glue.context.PosContext;
- public class PosGridMultiSave extends PosDBEngine {
- /*
- * rowStatus:网格状态属性
- * writeLog :是否需要记录到日志
- * sqlkey-count:需要执行更新的表格数目
- * allkey-count:级联执行更新的表格数目
- * dao :所使用的DAO
- * 更新语句 :'sqlkey-u' + 序号,如 sqlkey-u0,sqlkey-u1,...
- * 参数 :'param-u' + 序号,多个参数以竖线分隔,如 REG_ID|REG_DATE
- * 插入语句 :'sqlkey-i' + 序号
- * 参数 :'param-i' + 序号
- * 删除语句 :'sqlkey-d' + 序号
- * 参数 :'param-d' + 序号
- */
- public String runActivity(PosContext ctx) {
- int count = 1;
- if (getProperty("sqlkey-count") != null)
- count = Integer.parseInt(getProperty("sqlkey-count").trim());
- int allcount = 1;
- if (getProperty("allkey-count") != null)
- allcount = Integer.parseInt(getProperty("allkey-count").trim());
- String[] rowStatus = null;
- if (getProperty("rowStatus") == null)
- rowStatus = (String[]) ctx.get("rowStatus");
- else
- rowStatus = (String[]) ctx.get(getProperty("rowStatus"));
- if (rowStatus == null || rowStatus.length == 0)
- return PosBizControlConstants.SUCCESS;
- Initialize();
- int rowCount = rowStatus.length;
- // 2. Get Parameter( 各语句参数名获取 )
- for (int i = 0; i < count; i++) {
- setParamMap(ctx, "sqlkey-u" + i, "param-u" + i, rowCount);
- setParamMap(ctx, "sqlkey-i" + i, "param-i" + i, rowCount);
- setParamMap(ctx, "sqlkey-d" + i, "param-d" + i, rowCount);
- }
- for (int i = 0; i < allcount; i++) {
- setParamMap(ctx, "sqlkey-au" + i, "param-au" + i, rowCount);
- setParamMap(ctx, "sqlkey-ai" + i, "param-ai" + i, rowCount);
- setParamMap(ctx, "sqlkey-ad" + i, "param-ad" + i, rowCount);
- }
- setParamIndex();
- String allStatus = getProperty("allStatus");
- if (allStatus == null || "".equals(allStatus))
- allStatus = "uid";
- for (int i = 0; i < rowCount; i++) {
- if (allStatus.indexOf(rowStatus[i]) > -1) {
- for (int j = 0; j < allcount; j++) {
- Execute(ctx, "sqlkey-au" + j, "param-au" + j, 'u');
- Execute(ctx, "sqlkey-ai" + j, "param-ai" + j, 'i');
- Execute(ctx, "sqlkey-ad" + j, "param-ad" + j, 'd');
- }
- }
- if ("u".equals(rowStatus[i])) {
- for (int j = 0; j < count; j++)
- Execute(ctx, "sqlkey-u" + j, "param-u" + j, 'u');
- } else if ("i".equals(rowStatus[i])) {
- for (int j = 0; j < count; j++)
- Execute(ctx, "sqlkey-i" + j, "param-i" + j, 'i');
- } else if ("d".equals(rowStatus[i])) {
- for (int j = 0; j < count; j++)
- Execute(ctx, "sqlkey-d" + j, "param-d" + j, 'd');
- }
- adjustParamIndex();
- }
- return PosBizControlConstants.SUCCESS;
- }
- }
|