public virtual IPara GetTargetPara(IEventArgs args, IPara source) { IPara replace = ExpSetParser.GetReplaceValue(unitPara.GetPara(), args); if (replace != null) { return(replace); } IParable p1 = args.GetUnit(unitPara.GetUnit()); if (p1 != null) { IPara p = unitPara.GetPara(args); if (p == null) { p = source.Initial(op, unitPara.GetPara()); } return(p); } else { if (!StringUtil.IsNullOrEmpty(unitPara.GetUnit())) { return(source.Initial(op, unitPara.GetUnit() + "." + unitPara.GetPara())); } else { return(source.Initial(op, unitPara.GetPara())); } } }
private void SetArg(FuncArg arg, IList <ArgValue> funcArgs, IEventArgs args) { ArgValue fa = GetArgValue(arg, funcArgs, args); if (fa != null) { IPara para = ParaUtil.GetPara(arg.GetType()); if (para != null) { try { IPara old = new ParaExp(fa.GetValue()).GetSourcePara(args); if (old != null) { if (old.GetValue() != null) { para = para.Initial("=", old.GetValue().ToString()); } else { para = para.Initial("=", string.Empty); } } else { para = para.Initial("=", FreeUtil.ReplaceNumber(fa.GetValue(), args)); } } catch (Exception) { para = para.Initial("=", FreeUtil.ReplaceNumber(fa.GetValue(), args)); } para.SetName("arg_" + arg.GetName()); args.GetDefault().GetParameters().TempUse(para); IPara p = (IPara)para.Borrow(); p.SetName(arg.GetName()); if (para.GetValue() != null) { p.SetValue("=", para); } args.GetDefault().GetParameters().TempUse(p); FreeLog.FuncArg(p.ToString()); } else { // 非简单变量 ((BaseEventArgs)args).TempUse(arg.GetName(), args.GetUnit(fa.GetValue())); } } }