using BLL; using BLL.Common; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; namespace FineUIPro.Web.ManHours { public partial class ManHoursStatistics : PageBase { string dis = ""; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string strSql = @" SELECT * FROM Sys_ActualManHourMonthSet where CONVERT(INT,Years)=" + DateTime.Now.Year + " and DepartId is null and Person=0"; DataTable dt = SQLHelper.GetDataTableRunText(strSql, null); if (dt != null && dt.Rows.Count > 0) { string json = JsonHelper.DataTableToJSON(dt); ActualManHour.Value = json; } BindDeptTree(""); BindGrid("D1@770DF268-7955-4E8E-9A47-95595B3E614C"); } } #region 查询 protected void TextBox_TextChanged(object sender, EventArgs e) { string UserName = txtUserName.Text; BindDeptTree(UserName); } #endregion #region Grid1行选择事件 /// /// Grid行选择事件 /// /// /// protected void Grid1_RowSelect(object sender, GridRowSelectEventArgs e) { string eProjectId = this.Grid1.SelectedRowID; if (!string.IsNullOrEmpty(eProjectId)) { BindGrid2(eProjectId); } } #endregion public void BindGrid2(string paramet) { try { string sId = ""; int Layer = 0; if (!string.IsNullOrEmpty(paramet)) { Layer = 1; sId = paramet; } SqlParameter[] parameter = new SqlParameter[] { new SqlParameter("@Layer",Layer), new SqlParameter("@sId",sId), new SqlParameter("@Start",""), new SqlParameter("@End","") }; DataSet ds = SQLHelper.RunProcedure("Proc_NewManHoursStatisticsChild", parameter, "t"); DataTable table1 = ds.Tables[0]; Grid2.RecordCount = table1.Rows.Count; //table1 = GetFilteredTable(Grid2.FilteredData, table1); var table = this.GetPagedDataTable(Grid2, table1); Grid2.DataSource = table; Grid2.DataBind(); OutputSummaryData2(table1); } catch (Exception ex) { throw ex; } } public void BindGrid(string paramet) { hidjson.Value = ""; int Layer = 0; string sId = ""; string DepartId = ""; string[] sIdArr = paramet.Split('@'); string Start = DateTime.Now.AddYears(-3).ToString("yyyyMM"); string End = DateTime.Now.ToString("yyyyMM"); string strSql1 = @" SELECT * FROM Sys_ActualManHourMonthSet where Years in ('" + (DateTime.Now.Year-1)+"','" +( DateTime.Now.Year-2 )+ "','" + DateTime.Now.Year + "') and DepartId='770DF268-7955-4E8E-9A47-95595B3E614C'"; DataTable dt1 = SQLHelper.GetDataTableRunText(strSql1, null); if (dt1 != null && dt1.Rows.Count > 0) { string json = JsonHelper.DataTableToJSON(dt1); hidchildJson.Value = json; } try { if (sIdArr[0].ToString() == "UD") { Layer = 1; sId = sIdArr[1].ToString(); DepartId = sIdArr[2].ToString(); } if (sIdArr[0].ToString() == "D1") { Layer = 2; sId = sIdArr[1].ToString(); } if (sIdArr[0].ToString() == "D2") { Layer = 3; sId = sIdArr[1].ToString(); } SqlParameter[] parameter = new SqlParameter[] { new SqlParameter("@Layer",Layer), new SqlParameter("@sId",sId), new SqlParameter("@Start",Start), new SqlParameter("@End",End), new SqlParameter("@DepartId",DepartId), }; DataSet ds = SQLHelper.RunProcedure("Proc_NewManHoursStatistics", parameter, "t"); DataTable table1 = ds.Tables[0]; DataTable table2 = ds.Tables[1]; Grid1.RecordCount = table1.Rows.Count; //table1 = GetFilteredTable(Grid1.FilteredData, table1); var table = this.GetPagedDataTable(Grid1, table1); Grid1.DataSource = table; Grid1.DataBind(); OutputSummaryData(table1); string json = JsonHelper.DataTableToJSON(table2); hidjson.Value = json; Grid2.DataSource = table2; Grid2.DataBind(); OutputSummaryData2(table2); } catch (Exception ex) { throw ex; } } private void OutputSummaryData(DataTable table) { DataTable source = table; float ManHoursTotal = 0.0f; float HoursTotal = 0.0f; foreach (DataRow row in source.Rows) { ManHoursTotal += Convert.ToInt32(row["ManHours"]); HoursTotal += Convert.ToInt32(row["Hours"]); } JObject summary = new JObject(); summary.Add("ManHours", ManHoursTotal.ToString("F2")); summary.Add("Hours", HoursTotal.ToString("F2")); Grid1.SummaryData = summary; } private void OutputSummaryData2(DataTable table) { DataTable source = table; float TaskPlanTotal = 0.0f; float TaskActualTotal = 0.0f; float NoPlannedTotal = 0.0f; foreach (DataRow row in source.Rows) { TaskPlanTotal += Convert.ToInt32(row["TaskPlan"]); TaskActualTotal += Convert.ToInt32(row["TaskActual"]); NoPlannedTotal += Convert.ToInt32(row["NoPlanned"]); } JObject summary = new JObject(); summary.Add("TaskPlan", TaskPlanTotal.ToString("F2")); summary.Add("TaskActual", TaskActualTotal.ToString("F2")); summary.Add("NoPlanned", NoPlannedTotal.ToString("F2")); Grid2.SummaryData = summary; } /// /// 加载部门人员 /// private void BindDeptTree(string UserName) { this.tvUser.Nodes.Clear(); try { // string strSql = @"SELECT distinct DepartId,DepartCode,DepartName,IsPost FROM View_Sys_Users where SupCheckItem='0'"; string strSql = "SELECT [DepartId] ,[DepartCode],[DepartName],SupCheckItem FROM [Base_Depart] where SupCheckItem='0' and DepartCode='CTE' order by DepartCode"; DataTable table = SQLHelper.GetDataTableRunText(strSql, null); for (int i = 0; i < table.Rows.Count; i++) { TreeNode node = new TreeNode(); node.Text = table.Rows[i]["DepartName"].ToString(); node.NodeID = "D1@" + table.Rows[i]["DepartId"].ToString(); node.Expanded = true; node.EnableClickEvent = true; this.tvUser.Nodes.Add(node); BindDeptNodeTwo(node, table.Rows[i]["DepartId"].ToString(), UserName); } } catch (Exception ex) { Alert.ShowInParent(ex.ToString()); } } /// /// /// /// /// private void BindDeptNodeTwo(TreeNode DTnode, string DepartId, string UserName) { string strSql = @"SELECT [DepartId] ,[DepartCode],[DepartName] ,[SupCheckItem] FROM [Base_Depart] where SupCheckItem=@SupCheckItem"; List listStr = new List(); listStr.Add(new SqlParameter("@SupCheckItem", DepartId)); SqlParameter[] parameter = listStr.ToArray(); DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter); for (int i = 0; i < table.Rows.Count; i++) { TreeNode node = new TreeNode(); node.Text = table.Rows[i]["DepartName"].ToString(); node.NodeID = "D2@" + table.Rows[i]["DepartId"].ToString(); node.Expanded = true; node.EnableClickEvent = true; DTnode.Nodes.Add(node);//把指定的节点添加到控件中 BindDeptNodeThree(node, table.Rows[i]["DepartId"].ToString(), UserName); } } /// /// /// /// /// private void BindDeptNodeThree(TreeNode DTnode, string DepartId, string UserName) { try { string strSql = @"SELECT UserId,UserCode,UserName,DepartId,DepartCode,DepartName,RoleId,RoleName,IsPost FROM View_Sys_Users WHERE DepartId=@DepartId"; //SqlParameter[] parameter = new SqlParameter[] // { // new SqlParameter("@DepartId",DepartId) // }; List listStr = new List(); listStr.Add(new SqlParameter("@DepartId", DepartId)); if (!string.IsNullOrEmpty(UserName)) { strSql += " AND UserName=@UserName "; listStr.Add(new SqlParameter("@UserName", UserName)); } SqlParameter[] parameter = listStr.ToArray(); DataTable table = SQLHelper.GetDataTableRunText(strSql, parameter); for (int i = 0; i < table.Rows.Count; i++) { TreeNode node = new TreeNode(); node.Text = table.Rows[i]["UserName"].ToString(); node.NodeID = "UD@" + table.Rows[i]["UserId"].ToString() + "@" + table.Rows[i]["DepartId"].ToString(); node.Expanded = true; node.EnableClickEvent = true; DTnode.Nodes.Add(node);//把指定的节点添加到控件中 } } catch (Exception ex) { Alert.ShowInParent(ex.ToString()); } } /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(dis); } /// /// 分页 /// /// /// protected void Grid2_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(dis); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { //Grid1.PageSize = Convert.ToInt32(this.ddlPageSize.SelectedValue); //BindGrid(dis); } /// /// 树节点选择 /// /// /// protected void tvUser_NodeCommand(object sender, FineUIPro.TreeCommandEventArgs e) { dis = e.Node.NodeID.ToString(); BindGrid(e.Node.NodeID.ToString()); } } }