Beispiel #1
0
 ///<summary>恢复之前的当前对象相关显示</summary>
 void resetTopoBrowseSelecedView()
 {
     if (topoBrowseSelectedObject == null)
     {
         return;
     }
     topoBrowseSelectedObject.color = traceColor;                                       //设置前一个当前对象色为跟踪色
     foreach (var item in (topoBrowseSelectedObject.busiTopo as TopoData).relationObjs) //恢复可选对象为普通色
     {
         PowerBasicObject obj = distnet.findObj(item.id);
         if (!topoTranceList.Contains(obj))
         {
             obj.color = normalColor;
         }
     }
 }
Beispiel #2
0
        ///<summary>
        ///根据dbopkey取得的数据库描述定义,批量载入运行数据。
        ///isRealRun参数:ture载入实时运行数据,false载入规划模拟运行数据
        ///返回设置了运行数据的对象列表
        ///</summary>
        public List <PowerBasicObject> batchLoadRunData(DistNet distnet, bool isRealRun)
        {
            DataLayer.DataProvider.curDataSourceName = dbdesc.datasourceName;

            List <PowerBasicObject> result = new List <PowerBasicObject>();
            string sql = isRealRun ? this.rundataSelectAll : this.planningSelectAll;
            string sim = isRealRun ? this.rundataSimAll : this.planningSimAll;
            //若为模拟数据,需预填对象id
            KeyValuePair <DataLayer.EReadMode, DataTable> kvp;

            if (DataLayer.DataProvider.dataStatus == DataLayer.EDataStatus.模拟 && (simRunDataDataTable == null || simPlanningDataTable == null))
            {
                DataTable dtids = DataLayer.DataProvider.getDataTableFromSQL(acntSelectAllID, false);
                if (dtids == null || dtids.Rows.Count == 0)
                {
                    System.Windows.MessageBox.Show("模拟对象序列来源于台账页面的acntSelectAllID语句,但查询为空导致模拟失败,请检查!");
                }
                List <string> ids = dtids.AsEnumerable().Select(p => p[0].ToString()).ToList();
                kvp = DataLayer.DataProvider.getDataTable(null, sim, ids, DataLayer.EReadMode.模拟);
            }
            else
            {
                kvp = DataLayer.DataProvider.getDataTable(sql, sim, isRealRun ? this.simRunDataDataTable : this.simPlanningDataTable);
            }
            if (kvp.Key == DataLayer.EReadMode.模拟)
            {
                if (isRealRun)
                {
                    this.simRunDataDataTable = kvp.Value;
                }
                else
                {
                    this.simPlanningDataTable = kvp.Value;
                }
            }
            foreach (DataRow dr in kvp.Value.Rows)
            {
                string id;
                if (kvp.Key == DataLayer.EReadMode.数据库读取)
                {
                    id = dr[(isRealRun ? rundataTableRelation : planningTableRelation).mainTable.keyFieldName].ToString();
                }
                else
                {
                    id = dr[0].ToString(); //模拟数据固定为第一字段为ID字段
                }
                PowerBasicObject obj = distnet.findObj(id);
                if (obj != null)
                {
                    loadRundata(dr, obj, kvp.Key, isRealRun);
                    result.Add(obj);
                }
            }
            return(result);
        }