Esempio n. 1
0
        /// <summary>
        /// 按查询条件输出结果集
        /// </summary>
        /// <param name="sb"></param>
        /// <returns></returns>
        private DataTable BuildStrategy(SubjectStrategyBuilder sb)
        {
            try
            {
                string sql = sb.BuildMainQueryString();

                QueryAgent qa     = new QueryAgent();
                EntityData entity = qa.FillEntityData("Subject", sql);
                qa.Dispose();

                return(entity.CurrentTable);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            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   m_strRootId        = Request.QueryString["RootId"] + "";              //数据分类

            string m_SubjectSetCode = Request["SubjectSetCode"] + "";

            DataTable m_Table = new DataTable("Subject");

            m_Table.Columns.Add("SubjectCode");
            m_Table.Columns.Add("SubjectSetCode");
            m_Table.Columns.Add("SubjectName");
            m_Table.Columns.Add("SubjectFullName");
            m_Table.Columns.Add("IsDebit");
            m_Table.Columns.Add("IsCrebit");
            m_Table.Columns.Add("Layer");
            m_Table.Columns.Add("ChildNodesCount");
            m_Table.Columns.Add("ShowChildNodes");

            m_Table.Columns.Add("DisplayHref");                                         // 是否显示链接
            m_Table.Columns.Add("DisplaySpan");                                         // 是否显示文字

//			EntityData m_Subject=SubjectDAO.GetSubjectBySubjectSet(m_SubjectSetCode);
//			DataTable m_DataTable=m_Subject.Tables["Subject"];

            //查询条件
            SubjectStrategyBuilder sb = new SubjectStrategyBuilder();

            sb.AddStrategy(new Strategy(SubjectStrategyName.SubjectSetCode, m_SubjectSetCode));

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

                DataView m_DV;

                if (m_strRootId == "")
                {
                    sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, "1"));
//					m_DV = new DataView(m_DataTable,"layer='1'","",DataViewRowState.CurrentRows);
                }
                else
                {
                    sb.AddStrategy(new Strategy(SubjectStrategyName.SubjectCode, m_strRootId));
//					m_DV = new DataView(m_DataTable,"SubjectCode='" + m_strRootId + "'","",DataViewRowState.CurrentRows);
                }

                DataTable m_DataTable = BuildStrategy(sb);
                m_DV = new DataView(m_DataTable);

                foreach (DataRowView m_Row in m_DV)
                {
                    DataRow m_NewRow = m_Table.NewRow();

                    this.FillRow(ref m_NewRow, m_Row);

                    m_Table.Rows.Add(m_NewRow);
                }
                #endregion
            }
            else if (m_strGetType == "ChildNodes")
            {
                #region 取某节点子目录
//				DataView m_DV=new DataView(m_DataTable,"layer='"+m_strLayer+"' and SubjectCode like '"+m_strNodeId+"%'","",DataViewRowState.CurrentRows);

                sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, m_strLayer));
                sb.AddStrategy(new Strategy(SubjectStrategyName.ParentCode, m_strNodeId));

                DataTable m_DataTable = BuildStrategy(sb);
                DataView  m_DV        = new DataView(m_DataTable);

                foreach (DataRowView m_Row in m_DV)
                {
                    DataRow m_NewRow = m_Table.NewRow();

                    this.FillRow(ref m_NewRow, m_Row);

                    m_Table.Rows.Add(m_NewRow);
                }
                #endregion
            }
            else if (m_strGetType == "SelectLayer")
            {
                #region 取制定层数结果
//				DataView m_DV=new DataView(m_DataTable,"layer='1'","",DataViewRowState.CurrentRows);

                sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, "1"));

                DataTable m_DataTable = BuildStrategy(sb);
                DataView  m_DV        = new DataView(m_DataTable);

                foreach (DataRowView m_Row in m_DV)
                {
                    DataRow m_NewRow = m_Table.NewRow();

                    this.FillRow(ref m_NewRow, m_Row);

                    m_Table.Rows.Add(m_NewRow);
                    if (int.Parse(m_strSelectedLayer) > 1)
                    {
                        m_NewRow["ShowChildNodes"] = "1";
                        this.FillSelectedLayerData(ref m_Table, m_SubjectSetCode, m_Row["SubjectCode"].ToString(), 2, int.Parse(m_strSelectedLayer), m_DataTable);
                    }
                }
                #endregion
            }
            else if (m_strGetType == "All")
            {
                #region 取所有结果
//				DataView m_DV=new DataView(m_DataTable,"layer='1'","",DataViewRowState.CurrentRows);

                sb.AddStrategy(new Strategy(SubjectStrategyName.Layer, "1"));

                DataTable m_DataTable = BuildStrategy(sb);
                DataView  m_DV        = new DataView(m_DataTable);

                foreach (DataRowView m_Row in m_DV)
                {
                    DataRow m_NewRow = m_Table.NewRow();

                    this.FillRow(ref m_NewRow, m_Row);

                    m_Table.Rows.Add(m_NewRow);

                    if (int.Parse(m_NewRow["ChildNodesCount"].ToString()) > 0)
                    {
                        m_NewRow["ShowChildNodes"] = "1";
                        this.FillAllData(ref m_Table, m_SubjectSetCode, m_Row["SubjectCode"].ToString(), 2, m_DataTable);
                    }
                }
                #endregion
            }
            else if (m_strGetType == "SingleNode")
            {
                #region 单个节点
//				DataView m_DV=new DataView(m_DataTable,"SubjectCode='"+Request.QueryString["NodeId"]+""+"'","",DataViewRowState.CurrentRows);

                sb.AddStrategy(new Strategy(SubjectStrategyName.SubjectCode, m_strNodeId));

                DataTable m_DataTable = BuildStrategy(sb);
                DataView  m_DV        = new DataView(m_DataTable);

                foreach (DataRowView m_Row in m_DV)
                {
                    DataRow m_NewRow = m_Table.NewRow();

                    this.FillRow(ref m_NewRow, m_Row);

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

            Response.Write(RmsPM.WebControls.TreeView.XmlTree.GetDataToXmlString(m_Table));
            Response.End();
        }