public override void DoAction(IEventArgs args) { UnitPara up = UnitPara.Parse(FreeUtil.ReplaceVar(this.para, args))[0]; IPara para = up.GetPara(args); if (para != null) { double d = FreeUtil.ReplaceDouble(formula, args); if (para is IntPara) { para.SetValue("=", new IntPara(string.Empty, (int)d)); } if (para is FloatPara) { para.SetValue("=", new FloatPara(string.Empty, (float)d)); } if (para is DoublePara) { para.SetValue("=", new DoublePara(string.Empty, d)); } else { IPara v = new DoublePara("v", d); para.SetValue("=", v); } } }
public virtual ParaList GetParaList(string field, string value, IEventArgs args) { if (StringUtil.IsNullOrEmpty(order) && StringUtil.IsNullOrEmpty(unique)) { if (cache == null) { cache = new MyDictionary <string, MyDictionary <string, ParaList> >(); } if (cache.ContainsKey(field) && cache[field].ContainsKey(value)) { return(cache[field][value]); } } else { foreach (ParaList pl in list) { IPara para = pl.Get(field); if (para != null) { try { IPara temp = para.Initial("==", value); bool m = para.Meet("==", temp); temp.Recycle(); if (m) { return(pl); } } catch (Exception) { } UnitPara up = UnitPara.ParseOne(value); IPara vPara = up.GetPara(args); if (vPara != null && para.Meet("==", vPara)) { return(pl); } } } } return(null); }