//设置默认COMMAND 和 ACTION private void setRangeDefault() { foreach (XRange range in ranges.Values) { if (range.cfg.CRUDP.Contains("R") && (range.getCommandByEvent(SysEvent.Btn_Search) == null || !range.getCommandByEvent(SysEvent.Btn_Search).ContainsKey(0))) {//当配置CRUDP中包含R 并且 SEARCH按钮未绑定事件 时,设置默认SEARCH COMMAND,并且绑定在 SEARCH按钮上 CommandCfg cmdSearch = MakeDefaultCMD("Btn_Search", range.Name, "R"); ActionCfg actSearch = MakeDefaultAct(cmdSearch.CommandName, range.Name, "R", "SQL_Search"); initCommand(cmdSearch); initAction(actSearch); } if (range.cfg.CRUDP.Contains("C") && range.getCommandByEvent(SysEvent.Btn_New) == null) {//当配置CRUDP中包含C 并且NEW按钮未绑定事件 时,设置默认INSERT COMMAND,并且绑定在 NEW 按钮上 CommandCfg cmdInsert = MakeDefaultCMD("Btn_New", range.Name, "C"); ActionCfg actInsert = MakeDefaultAct(cmdInsert.CommandName, range.Name, "C", "SQL_Insert"); initCommand(cmdInsert); initAction(actInsert); } if (range.cfg.CRUDP.Contains("U") && range.getCommandByEvent(SysEvent.Btn_Edit) == null) {//当配置CRUDP中包含U 并且EDIT按钮未绑定事件 时,设置默认UPDATE COMMAND,并且绑定在 EDIT 按钮上 CommandCfg cmdUpdate = MakeDefaultCMD("Btn_Edit", range.Name, "U"); ActionCfg actUpdate = MakeDefaultAct(cmdUpdate.CommandName, range.Name, "U", "SQL_Update"); initCommand(cmdUpdate); initAction(actUpdate); } if (range.cfg.CRUDP.Contains("D") && range.getCommandByEvent(SysEvent.Btn_Delete) == null) {//当配置CRUDP中包含D 并且DELETE按钮未绑定事件 时,设置默认DELETE COMMAND,并且绑定在 DELETE 按钮上 CommandCfg cmdDelete = MakeDefaultCMD("Btn_Delete", range.Name, "D"); ActionCfg actDelete = MakeDefaultAct(cmdDelete.CommandName, range.Name, "D", "SQL_Delete"); initCommand(cmdDelete); initAction(actDelete); } } }
//根据CfgCommand 初始化单个command private void initCommand(CommandCfg cmdcfg) { XCommand cmd = new XCommand(cmdcfg); commands.Add(cmd.CommandName, cmd); XRange range = getRangeByName(cmd.cfg.RangeName); range.setCommand(cmd); }
public XCommand(CommandCfg cfg) { actions = new Dictionary <int, XAction>(); this.cfg = cfg; this.CommandName = cfg.CommandName; this.CommandSeq = int.Parse(cfg.CommandSeq); this.Async = cfg.Async.Length > 0 ? true : false; this.e = (SysEvent)Enum.Parse(typeof(SysEvent), cfg.EventType, true); setSheet(); }
//设置默认COMMAND 配置 private CommandCfg MakeDefaultCMD(String EventType, String rangename, String crudp) { CommandCfg cfg = new CommandCfg(); cfg.Async = ""; //默认为同步 cfg.CommandName = "dft_cmd_" + rangename + "_" + EventType; //默认为dfg_cmd_+RANGE名+_+事件类型 cfg.CRUDP = crudp; cfg.CommandDesc = "Default"; cfg.EventType = EventType; cfg.NeedLog = "1"; //默认为需要日志 cfg.CommandSeq = "0"; //默认 Seq号为0 cfg.RangeName = rangename; return(cfg); }