//------------------C#侧调用脚本接口 //------------------测试面向对象,成员变量访问性能 public void ObjectRead() { ScriptObj Obj = new ScriptObj(); StringA name; int nTotal = 0; uint nBegin = os.GetTickCount(); for (int i = 0; i < 200000; ++i) { name = Obj.Item.Name; nTotal += Obj.Item.Attrib.MP + Obj.Item.Attrib.HP; } uint nEnd = os.GetTickCount(); PrintTime("ObjectRead", nEnd - nBegin); }
public void ObjectWrite() { ScriptObj Obj = new ScriptObj(); StringA name = "Obj"; uint nBegin = os.GetTickCount(); for (int i = 0; i < 200000; ++i) { Obj.Item.Name = name; Obj.Item.Attrib.MP = i; Obj.Item.Attrib.HP = i; } uint nEnd = os.GetTickCount(); PrintTime("ObjectWrite", nEnd - nBegin); }
/// <summary> /// 根据数据名称获取数据 /// </summary> /// <param name="p_name">数据名称</param> /// <returns></returns> public async Task <RptData> GetData(string p_name) { if (_dataSet.TryGetValue(p_name, out var data)) { return(data); } RptDataSourceItem srcItem; if (Root == null || (srcItem = Root.Data.GetDataSourceItem(p_name)) == null) { return(null); } Table tbl = null; if (srcItem.IsScritp) { // 通过脚本获取数据源 if (ScriptObj != null) { tbl = await ScriptObj.GetData(p_name); } else { Kit.Warn($"未定义报表脚本,无法获取数据【{p_name}】"); } } else { tbl = await AtRpt.Query(srcItem.Srv, srcItem.Sql, Params); } if (tbl != null) { var rptData = new RptData(tbl); _dataSet[p_name] = rptData; return(rptData); } return(null); }
public override void Execute() { AutoApp.Logger.WriteInfoLog(string.Format("Starting Group Steps execution {0}", _actionData.Name)); Singleton.Instance<SavedData>().UpdateParams(_actionData.Params); _script = FileHandler.ExtructScriptFromFile(Singleton.Instance<SavedData>().GetVariableData(_actionData.Name)); AutoApp.Logger.WriteInfoLog(string.Format("Starting script execution: {0}", Singleton.Instance<SavedData>().GetVariableData(_actionData.Name))); _script.Execute(); if (_script.Status == Enums.Status.NoN) ActionStatus = Enums.Status.Pass; else if (_script.Status == Enums.Status.Pass) ActionStatus = Enums.Status.Pass; AutoApp.Logger.WriteInfoLog(string.Format("Finished Group Steps execution {0}", _actionData.Name)); }
private void UpdateLables() { _script = FileHandler.ExtructScriptFromFile(_actionData.Name); if (_script == null) { AutoApp.Logger.WriteFailLog(string.Format("Script {0} does not exist", _actionData.Name)); return; } int stepEntetiesCount = _script.Entities.Count; for (int i = 0; i < stepEntetiesCount; i++) { StepEntity s = _script.Entities[i]; if (s.Action.TypeId == Enums.ActionTypeId.Lable) { var lable = (LabelAction)s.Action; lable.LableList = _lableList; if (lable._type == LabelAction.ActionType.Create) _lableList.Add(lable._actionData.LableName, new LableObject(lable._actionData.LableName, lable._actionData.Loops)); // _lableList.Add(lable._actionData.LableName, new LableObject(lable._actionData.LableName, int.Parse(Singleton.Instance<SavedData>().GetVariableData(lable._actionData.Loops)))); } } }