/// <summary> /// 读取数据库内容 /// </summary> /// <returns></returns> private List <BllTreeNodeInfo> GetBllTreeNodes() { string strErr = ""; string strSql = "SELECT treeid,parentid,vc_Name,vc_Code,i_BindType,BindID,i_Sort " + "from m_blltree where unitid='" + m_UINTID + "'"; DataTable dtBllTree = MysqlDB.Instance.GetDataTable(out strErr, strSql); List <BllTreeNodeInfo> lstNodes = new List <BllTreeNodeInfo>(); if (dtBllTree != null && dtBllTree.Rows.Count > 0) { for (int i = 0; i < dtBllTree.Rows.Count; i++) { BllTreeNodeInfo node = new BllTreeNodeInfo() { BindID = dtBllTree.Rows[i]["BindID"].ToString() + "", NodeName = dtBllTree.Rows[i]["vc_Name"].ToString() + "", TreeID = dtBllTree.Rows[i]["TreeID"].ToString() + "", TreeParentID = dtBllTree.Rows[i]["parentid"].ToString() + "", // Sort = int.Parse(dtBllTree.Rows[i]["i_Sort"].ToString()), }; lstNodes.Add(node); } } return(lstNodes); }
private List <BllTreeNodeInfo> TestDebug() { string path = Application.streamingAssetsPath + "/m_blltree.csv"; //string path = @"C:\Users\Administrator\Desktop\beiyong\WebGL\StreamingAssets\m_blltree.csv"; m_Text.text = path; DataTable dtBllTree = OpenCSV(path); List <BllTreeNodeInfo> lstNodes = new List <BllTreeNodeInfo>(); if (dtBllTree != null && dtBllTree.Rows.Count > 0) { for (int i = 0; i < dtBllTree.Rows.Count; i++) { BllTreeNodeInfo node = new BllTreeNodeInfo() { NodeName = dtBllTree.Rows[i][2].ToString(), TreeID = dtBllTree.Rows[i][0].ToString(), TreeParentID = dtBllTree.Rows[i][1].ToString(), }; lstNodes.Add(node); } } return(lstNodes); }
/// <summary> /// 添加节点 /// </summary> /// <param name="bllNodes"></param> /// <param name="devNodes"></param> /// <param name="child"></param> /// <param name="parent"></param> private void AddTreeNode(List <BllTreeNodeInfo> bllNodes, List <DevNodeInfo> devNodes, BllTreeNodeInfo child, BllTreeNodeInfo parent) { parent.Children.Add(child); List <BllTreeNodeInfo> findNodes = bllNodes.FindAll((tn) => { return(tn.TreeParentID.Equals(child.TreeID)); }); foreach (BllTreeNodeInfo tempNode in findNodes) { AddTreeNode(bllNodes, devNodes, tempNode, child); } //Add DevNodes if (findNodes == null || findNodes.Count <= 0) { //Bind Dev if (child.BindType == 2) { // Add DevNodes List <DevNodeInfo> tempDevNodes = devNodes.FindAll((dev) => { return(dev.DevID.Equals(child.BindID)); }); child.DevNodes.AddRange(tempDevNodes); //devNodes.RemoveAll() } } bllNodes.Remove(child); }
/// <summary> /// 添加信息,递归调用暂未使用 /// </summary> private void AddInfo(BllTreeNodeInfo info) { if (info.Children.Count > 0) { foreach (BllTreeNodeInfo item in info.Children) { m_TestList.Add(new UTreeData(item.TreeID, item.TreeParentID, item.NodeName, null)); AddInfo(item); } } else { Debug.Log("进入测点层"); } }
void Start() { List <BllTreeNodeInfo> bllTreeNodes = TestDebug(); BllTreeNodeInfo topTreeNode = new BllTreeNodeInfo(); ///topNodes即为读取的树信息 m_NeedInfo = bllTreeNodes.FindAll((tn) => { return(tn.TreeParentID.Equals("0")); }); foreach (BllTreeNodeInfo tempNode in m_NeedInfo) { AddTreeNode(bllTreeNodes, tempNode, topTreeNode); } }
//给服务器发送消息 m_MqttClient.Publish(m_Topic, Encoding.UTF8.GetBytes(sendmsg), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, true); #endregion #region 数据库相关代码 /// <summary> /// 读取数据库数据 /// </summary> private void CreateTreeNodes() { BllTreeNodeInfo topTreeNode = new BllTreeNodeInfo(); List <BllTreeNodeInfo> bllTreeNodes = GetBllTreeNodes(); List <DevNodeInfo> devNodes = GetDevNodes(); ///topNodes即为读取的树信息 m_NeedInfo = bllTreeNodes.FindAll((tn) => { return(tn.TreeParentID.Equals("0")); }); foreach (BllTreeNodeInfo tempNode in m_NeedInfo) { AddTreeNode(bllTreeNodes, devNodes, tempNode, topTreeNode); } }
private void AddTreeNode(List <BllTreeNodeInfo> bllNodes, BllTreeNodeInfo child, BllTreeNodeInfo parent) { parent.Children.Add(child); List <BllTreeNodeInfo> findNodes = bllNodes.FindAll((tn) => { return(tn.TreeParentID.Equals(child.TreeID)); }); foreach (BllTreeNodeInfo tempNode in findNodes) { AddTreeNode(bllNodes, tempNode, child); } bllNodes.Remove(child); }
private List <BllTreeNodeInfo> GetAllTreeInfo(JsonData ddd) { List <BllTreeNodeInfo> lstNodes = new List <BllTreeNodeInfo>(); if (ddd != null && ddd.Count > 0) { for (int i = 0; i < ddd.Count; i++) { BllTreeNodeInfo node = new BllTreeNodeInfo() { NodeName = ddd[i]["name"].ToString(), TreeID = ddd[i]["id"].ToString(), TreeParentID = ddd[i]["pid"].ToString(), }; lstNodes.Add(node); } } return(lstNodes); }
/// <summary> /// 将读取的UI树数据存储起来 /// </summary> private List <BllTreeNodeInfo> GenerateHierarchy() { List <BllTreeNodeInfo> lstNodes = new List <BllTreeNodeInfo>(); if (m_CurrentGenerateDatas != null && m_CurrentGenerateDatas.Count > 0) { for (int i = 0; i < m_CurrentGenerateDatas.Count; i++) { BllTreeNodeInfo blinfo = new BllTreeNodeInfo() { NodeName = m_CurrentGenerateDatas[i].CurName, TreeID = m_CurrentGenerateDatas[i].CurID, TreeParentID = m_CurrentGenerateDatas[i].ParentID.ToString(), }; lstNodes.Add(blinfo); } } return(lstNodes); }
/// <summary> /// 点击获取某一物体的所有层级 /// </summary> public string GenerateData() { //yield return new WaitForSeconds(1f); m_listinf = GenerateHierarchy(); Debug.Log("Unity读取到树结构:" + m_listinf.Count); BllTreeNodeInfo topTreeNode = new BllTreeNodeInfo(); ///topNodes即为读取的树信息 m_NeedInfo = m_listinf.FindAll((tn) => { return(tn.TreeParentID.Equals("0")); }); foreach (BllTreeNodeInfo tempNode in m_NeedInfo) { AddTreeNode(m_listinf, tempNode, topTreeNode); } JsonData AllJSData = JsonMapper.ToJson(topTreeNode); string AllStrData = AllJSData.ToString(); return(AllStrData); #region 测试本地存取 //Debug.Log("所有的数据:" + AllStrData); //string path = Application.persistentDataPath; //if (Directory.Exists(path)) //{ // Debug.Log("当前存储路径" + path); //} //FileStream file = new FileStream(path + "/Test.txt", FileMode.Create); //byte[] bts = System.Text.Encoding.UTF8.GetBytes(AllStrData); //file.Write(bts, 0, bts.Length); //Debug.Log("保存成功!"); //if (file != null) //{ // file.Close(); //} #endregion }