using IwbZero.IocNamed; using IwbZero.IwbBase; using IwbZero.ToolCommon.LogHelpers; using IwbZero.ToolCommon.StringModel; using WeEngine.ComponentInfo; using WeEngine.Components.InterfaceFactory; namespace WeEngine.Components.Statements { /// /// 变量查询赋值 /// [IocNamed(CompStmtType.QueryVariables)] public class VariableQueryStatement : IStatementRunner { public bool Run(ComponentRunner runner, IwbXmlNode poStatement) { this.LogDebug($"============[开始执行事务]====>[变量查询赋值]======>{runner.CurrentNode.NodePath}"); foreach (IwbXmlNode node in poStatement.Nodes) { if (node.Name.UAndT() == "Variable".UAndT()) { string name = node.GetChildValue("Name"); string targetPath = node.GetChildValue("TargetPath"); string targetName = node.GetChildValue("TargetName").UAndT(); var targetNode = runner.CurrentNode.CurPackageInfo.GetNodeByPath(targetPath); if (targetNode!=null && targetNode.Variables.ContainsKey(targetName)) { var value = ((IwbRtVariable) targetNode.Variables[targetName]).GetStringValue(); runner.SetValue(name,value ); this.LogDebug($"============[执行事务完成]====>[变量查询赋值]======>[{name}] [{targetName}--{value}] [{targetPath}]"); } } } return true; } } }