RTX開發教程[第三步:web部門的增刪改實現]

1、首先我們創建一個 RootObject

public class BasePage : System.Web.UI.Page
    {
        protected IRTXSAPIRootObj RtxRootObj;
        public BasePage()
        {
            RtxRootObj = new RTXSAPIRootObj();
            RtxRootObj.ServerIP = "127.0.0.1";
            RtxRootObj.ServerPort = 8006;
        }
    }



後面的頁面都會繼承 BasePage  類

2、讀取部門信息

 	    IRTXSAPIDeptManager dept = RtxRootObj.DeptManager;
            string xml = dept.GetChildDepts(""); //取父節點
            XmlDataDocument xmldoc = new XmlDataDocument();
            xmldoc.LoadXml(xml);
            
            foreach (XmlNode xn in xmldoc.SelectNodes("Departments/Department"))
            {
                string Name = xn.Attributes["Name"].Value;            
                
            }


這樣就把頂級部門讀取出來了 剩下的只需要用

string parentDeptName = XXX

dept.GetChildDepts(parentDeptName );

循環就可以讀取下一級部門了,然後添加到Tree即可。


3、修改部門信息

            IRTXSAPIDeptManager dept = RtxRootObj.DeptManager;
            dept.SetDeptName(舊名稱,新名稱);



4、刪除部門
IRTXSAPIDeptManager dept = RtxRootObj.DeptManager;    
dept.DelDept("部門名稱", true);

5、增加部門,爲了防止重名的出現,我們添加一個是否存在的校驗

            IRTXSAPIDeptManager dept = RtxRootObj.DeptManager;
            if (dept.IsDeptExist("部門名稱"))
            {
                Alert.ShowInParent("名稱已經存在!不能添加!", MessageBoxIcon.Warning);
                return;
            }
            dept.AddDept("部門名稱","父部門名稱,如果爲空,則爲頂級節點");




但是有一個值得注意地方是 GetChildDepts("部門1"),如果存在同名的部門,那麼只會讀取到第一個...
部門1
----部門1-2
--------部門1
------------部門1-3
部門2
------部門2-1

如果碰到這樣的有2個部門1, 那麼 GetChildDepts("部門1") 只會取到  【部門1-2】,而不戶取到【部門1-3】,那麼我們上面的代碼循環讀取就進入死循環了....這裏在編程的時候要注意,由於GetChildDepts只能通過部門名稱來取值,API沒能取到部門的Id,所以這也是一個限制....不知道是他們估計的還是咋樣.....

V2.0已經修復這個bug了~~原來是我大意。沒仔細閱讀SDK文檔,採用絕對路徑即可


實現




代碼下載 http://blog.csdn.net/livelymoon/article/details/9794067


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章