Exemple #1
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            try
            {
                m_TreeType     = Request["TreeType"] + "";
                m_CheckBalance = Request["CheckBalance"] + "";

                m_CostBudgetSetCode = Request.QueryString["CostBudgetSetCode"] + "";                    //预算设置表编号

                string   m_strGetType       = Request.QueryString["GetType"] + "";                      //数据分类
                string   m_strLayer         = Request.QueryString["Layer"] + "";                        //需要取的层数
                string   m_strNodeId        = Request.QueryString["NodeId"] + "";                       //父节点编号
                string[] m_Layers           = (Request.QueryString["Layers"] + "").Split('.');          //定点展开的序列
                string   m_strSelectedLayer = Request.QueryString["SelectedLayer"] + "";                //定层展开的深度
                string   fromNodeCode       = Request["FromNodeCode"] + "";

                DataTable m_Table = new DataTable("CBS");
                m_Table.Columns.Add("CostCode");                                                // 费用编号
                m_Table.Columns.Add("ParentCode");                                              // 父Code
                m_Table.Columns.Add("CostName");                                                // 费用项名称
                m_Table.Columns.Add("Description");                                             // 说明
                m_Table.Columns.Add("Layer");                                                   // 层数---对应deep深度
                m_Table.Columns.Add("ChildNodesCount");                                         // 子节点数目
                m_Table.Columns.Add("ShowChildNodes");                                          // 是否显示子节点

                m_Table.Columns.Add("SortID");                                                  // 费用项编号
                m_Table.Columns.Add("DisplayHref");                                             // 是否显示费用项链接
                m_Table.Columns.Add("DisplaySpan");                                             // 是否显示费用项文字

                string projectCode = Request["ProjectCode"] + "";

                string accountPoint = Request["AccountPoint"] + "";

                EntityData m_Cost = null;

                if (m_strGetType == "CostBudgetSetRoot")
                {
                    m_Cost = BLL.CostBudgetRule.GetRootCBSBySet(projectCode, m_CostBudgetSetCode);
                }
                else
                {
                    if (accountPoint == "AccountPoint")
                    {
                        string budgetCode = CBSRule.GetCurrentDynamicCode(projectCode);
                        m_Cost = CBSDAO.GetCBSByBudgetCodeAccountPoint(budgetCode);
                    }
                    else
                    {
                        m_Cost = CBSDAO.GetCBSByProject(projectCode);
                    }
                }

                DataTable m_DataTable = m_Cost.CurrentTable;
                string    filter      = "";

                if (m_strGetType == "")
                {
                    #region 取第一层

                    filter = " isnull(ParentCode,'') =''";

                    DataView m_DV = new DataView(m_DataTable, filter, " SortID ", DataViewRowState.CurrentRows);
                    foreach (DataRowView m_Row in m_DV)
                    {
                        DataRow m_NewRow = m_Table.NewRow();

                        this.FillRow(ref m_NewRow, m_Row, m_DataTable);

                        m_Table.Rows.Add(m_NewRow);
                    }
                    #endregion
                }
                else if (m_strGetType == "CostBudgetSetRoot")
                {
                    #region 取第一层(针对某张预算设置表)

                    DataView m_DV = new DataView(m_DataTable, filter, " SortID ", DataViewRowState.CurrentRows);
                    foreach (DataRowView m_Row in m_DV)
                    {
                        DataRow m_NewRow = m_Table.NewRow();

                        this.FillRowCostBudgetDtl(ref m_NewRow, m_Row, m_DataTable);

                        m_Table.Rows.Add(m_NewRow);
                    }
                    #endregion
                }
                else if (m_strGetType == "ChildNodes")
                {
                    #region 取某节点子目录

                    filter = "ParentCode='" + m_strNodeId + "'";
                    DataView m_DV = new DataView(m_DataTable, filter, "SortID", DataViewRowState.CurrentRows);
                    foreach (DataRowView m_Row in m_DV)
                    {
                        DataRow m_NewRow = m_Table.NewRow();

                        this.FillRow(ref m_NewRow, m_Row, m_DataTable);

                        m_Table.Rows.Add(m_NewRow);
                    }
                    #endregion
                }
                else if (m_strGetType == "SelectLayer")
                {
                    #region 取指定层数结果

                    filter = "Deep='1'";

                    DataView m_DV = new DataView(m_DataTable, filter, "SortID", DataViewRowState.CurrentRows);
                    foreach (DataRowView m_Row in m_DV)
                    {
                        DataRow m_NewRow = m_Table.NewRow();
                        this.FillRow(ref m_NewRow, m_Row, m_DataTable);

                        m_Table.Rows.Add(m_NewRow);
                        if (int.Parse(m_strSelectedLayer) > 1)
                        {
                            m_NewRow["ShowChildNodes"] = "1";
                            this.FillSelectedLayerData(ref m_Table, m_Row["CostCode"].ToString(), 2, int.Parse(m_strSelectedLayer), m_DataTable);
                        }
                    }
                    #endregion
                }
                else if (m_strGetType == "All")
                {
                    #region 取所有结果

                    filter = "ParentCode='1'";
                    DataView m_DV = new DataView(m_DataTable, filter, " SortID ", DataViewRowState.CurrentRows);
                    foreach (DataRowView m_Row in m_DV)
                    {
                        DataRow m_NewRow = m_Table.NewRow();

                        this.FillRow(ref m_NewRow, m_Row, m_DataTable);

                        m_Table.Rows.Add(m_NewRow);

                        if (int.Parse(m_NewRow["ChildNodesCount"].ToString()) > 0)
                        {
                            m_NewRow["ShowChildNodes"] = "1";
                            this.FillAllData(ref m_Table, m_Row["CostCode"].ToString(), 2, m_DataTable);
                        }
                    }
                    #endregion
                }
                else if (m_strGetType == "SingleNode")
                {
                    #region 单个节点

                    filter = "CostCode='" + Request.QueryString["NodeId"] + "" + "'";

                    DataView m_DV = new DataView(m_DataTable, filter, " SortID ", DataViewRowState.CurrentRows);
                    foreach (DataRowView m_Row in m_DV)
                    {
                        DataRow m_NewRow = m_Table.NewRow();

                        this.FillRow(ref m_NewRow, m_Row, m_DataTable);

                        m_Table.Rows.Add(m_NewRow);
                    }
                    #endregion
                }
                m_Cost.Dispose();

                Response.Write(RmsPM.WebControls.TreeView.XmlTree.GetDataToXmlString(m_Table));
                Response.End();
            }
            catch (Exception ex)
            {
                ApplicationLog.WriteLog(this.ToString(), ex, "");
            }
        }