private void BindGrid() { int month = int.Parse(ddl_Month.SelectedValue); int organizecity = int.Parse(tr_OrganizeCity.SelectValue); int state = int.Parse(ddl_State.SelectedValue); if (MCSTabControl1.SelectedTabItem.Value == "0") { #region 显示汇总数据 gv_List.Visible = true; gv_DetailList.Visible = false; DataTable dtSummary = FNA_FeeApplyBLL.GetFLFeeSummary(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString())); if (dtSummary.Rows.Count == 0) { gv_List.DataBind(); return; } dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "行政属性" }, new string[] { "RTChannel", "DisplayFeeType", "Title" }, "Summary", true, false); MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "管理片区名称" }, 2, new string[] { "RTChannel", "DisplayFeeType", "Title" }, false); #region 重新计算总计行的费率 if (dtSummary.Rows.Count > 1) { foreach (DataRow dr in dtSummary.Rows) { if (dr[1].ToString().EndsWith("计") || dr[2].ToString().EndsWith("计")) { foreach (DataColumn dc in dtSummary.Columns) { if (dc.ColumnName.EndsWith("费率%")) { string title = dc.ColumnName; int pos = title.IndexOf('→'); if (pos > 0) { title = title.Substring(0, pos); if (dtSummary.Columns.Contains(title + "→1.返利费总计(元/月)→A.我司承担") && dtSummary.Columns.Contains(title + "→2.销量及费率→A.实际进货(元/月)") && (decimal)dr[title + "→2.销量及费率→A.实际进货(元/月)"] != 0) { dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→1.返利费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→2.销量及费率→A.实际进货(元/月)"] * 100, 1, MidpointRounding.AwayFromZero); } } } } } } } #endregion gv_List.DataSource = dtSummary; gv_List.DataBind(); if (dtSummary.Columns.Count >= 24) { gv_List.Width = new Unit(dtSummary.Columns.Count * 65); } else { gv_List.Width = new Unit(100, UnitType.Percentage); } MatrixTable.GridViewMatric(gv_List); MatrixTable.GridViewMergSampeValueRow(gv_List, 0); MatrixTable.GridViewMergSampeValueRow(gv_List, 1); #endregion } else { gv_List.Visible = false; gv_DetailList.Visible = true; if (ddl_State.SelectedValue == "1" && Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee")) { bt_Approve.Visible = false; bt_UnApprove.Visible = true; bt_Approve.OnClientClick = "return confirm('是否确认将所选中所有申请单批量设为审批通过?注意该操作可能耗时较长,请耐心等待!')"; bt_UnApprove.OnClientClick = "return confirm('是否确认将所选中所有申请单批量设为审批不通过?注意该操作可能耗时较长,请耐心等待!')"; } #region 组织明细查询条件 string condition = ""; condition += @"FNA_FeeApply.FeeType=7 AND EXISTS(SELECT 1 FROM MCS_FNA.dbo.FNA_FeeApplyDetail WHERE FNA_FeeApplyDetail.AccountTitle=82 AND FNA_FeeApplyDetail.ApplyID=FNA_FeeApply.ID AND BeginMonth=" + ddl_Month.SelectedValue + ")"; if (tr_OrganizeCity.SelectValue != "1") { Addr_OrganizeCityBLL orgcity = new Addr_OrganizeCityBLL(organizecity); string orgcitys = orgcity.GetAllChildNodeIDs(); if (orgcitys != "") { orgcitys += ","; } orgcitys += organizecity; condition += " AND FNA_FeeApply.OrganizeCity IN (" + orgcitys + ")"; } if (state == 0) { condition += " AND FNA_FeeApply.State IN (2,3) "; } else if (state == 1) { condition += @" AND FNA_FeeApply.State = 2 AND EXISTS ( SELECT EWF_Task_Job.Task FROM MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID INNER JOIN MCS_EWF.dbo.EWF_Task ON EWF_Task_Job.Task= EWF_Task.ID AND EWF_Task.App='4eb9e905-3502-4caf-88d0-aadcfec6e4dd' WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND EWF_Task_JobDecision.DecisionResult=1 and EWF_Task_Job.Status=3 AND FNA_FeeApply.ApproveTask=EWF_Task_Job.Task)" ; } else if (state == 2) { condition += " AND FNA_FeeApply.State = 3 "; } else if (state == 3) { AC_AccountMonth m = new AC_AccountMonthBLL(month).Model; condition += @" AND FNA_FeeApply.State IN (2,3) AND EXISTS (SELECT EWF_Task_Job.Task FROM MCS_EWF.dbo.EWF_Task_JobDecision INNER JOIN MCS_EWF.dbo.EWF_Task_Job ON EWF_Task_JobDecision.Job = EWF_Task_Job.ID INNER JOIN MCS_EWF.dbo.EWF_Task ON=EWF_Task_Job.Task=EWF_Task.ID AND EWF_Task.App='4eb9e905-3502-4caf-88d0-aadcfec6e4dd' WHERE EWF_Task_JobDecision.RecipientStaff=" + Session["UserID"].ToString() + @" AND EWF_Task_JobDecision.DecisionResult IN(2,5,6) AND FNA_FeeApply.ApproveTask=EWF_Task_Job.Task)" ; } #endregion gv_DetailList.ConditionString = condition; gv_DetailList.BindGrid(); } #region 是否可以批量审批 if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1510, "BatApproveFee")) { bt_Approve.Visible = (ddl_State.SelectedValue == "1"); bt_UnApprove.Visible = (ddl_State.SelectedValue == "1"); bt_Approve.Enabled = (ddl_State.SelectedValue == "1"); bt_UnApprove.Enabled = (ddl_State.SelectedValue == "1"); #region 判断费用申请进度 if (ddl_State.SelectedValue == "1") { Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]); DataTable dt = _staff.GetLowerPositionTask(2, int.Parse(tr_OrganizeCity.SelectValue), month); if (AC_AccountMonthBLL.GetCurrentMonth() - 1 <= int.Parse(ddl_Month.SelectedValue)) { string[] allowdays1 = Addr_OrganizeCityParamBLL.GetValueByType(1, 5).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' }); string[] allowdays2 = Addr_OrganizeCityParamBLL.GetValueByType(1, 6).Replace(" ", "").Split(new char[] { ',', ',', ';', ';' }); string date = DateTime.Now.Day.ToString(); if (allowdays1.Contains(date)) { bt_Approve.Enabled = false; } else if (allowdays2.Contains(date)) { DataTable dt2 = new DataTable(); if (_staff.Model.Position == 210) { dt2 = _staff.GetFillProcessDetail(2); } if (dt.Rows.Count > 0 || dt2.Rows.Count > 0) { bt_Approve.Enabled = false; } } else { bt_UnApprove.Enabled = false; } } else { bt_UnApprove.Enabled = false; } if (dt.Rows.Count > 0) { ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") + "?Type=2&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false); bt_Approve.Enabled = false; } } #endregion } else { bt_Approve.Visible = false; bt_UnApprove.Visible = false; } #endregion }
private void BindGrid() { int month = int.Parse(ddl_Month.SelectedValue); int organizecity = int.Parse(tr_OrganizeCity.SelectValue); DataTable dtSummary = new DataTable(); int state = int.Parse(ddl_State.SelectedValue); string accountname = ddl_Month.SelectedItem.Text; string preaccountname = DateTime.Parse(accountname + "-01").AddMonths(-3).ToString("yyyy-MM"); switch (MCSTabControl1.SelectedTabItem.Value) { case "0": { dtSummary = FNA_FeeApplyBLL.GetDiaplayFeeSummary(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString())); if (dtSummary.Rows.Count == 0) { gv_List.DataBind(); return; } dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员", "行政属性" }, new string[] { "RTChannel", "DisplayFeeType", "Title" }, "Summary", true, false); MatrixTable.TableAddRowSubTotal_Matric(dtSummary, new string[] { "责任人员" }, 3, new string[] { "RTChannel", "DisplayFeeType", "Title" }, false); #region 重新计算总计行的费率 if (dtSummary.Rows.Count > 1) { foreach (DataRow dr in dtSummary.Rows) { if (dr[0].ToString().EndsWith("计") || dr[2].ToString().EndsWith("计")) { foreach (DataColumn dc in dtSummary.Columns) { if (dc.ColumnName.EndsWith("费率%")) { string title = dc.ColumnName; int pos = title.IndexOf('→'); if (pos > 0) { title = title.Substring(0, pos); if (dtSummary.Columns.Contains(title + "→2.陈列费总计(元/月)→A.我司承担") && dtSummary.Columns.Contains(title + "→3.销量及费率→C." + accountname + "预计销量(元/月)") && (decimal)dr[title + "→3.销量及费率→C." + accountname + "预计销量(元/月)"] != 0) { dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→2.陈列费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→3.销量及费率→C." + accountname + "预计销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero); } } } if (dc.ColumnName.EndsWith("E.费率(较" + preaccountname + ")%")) { string title = dc.ColumnName; int pos = title.IndexOf('→'); if (pos > 0) { title = title.Substring(0, pos); if (dtSummary.Columns.Contains(title + "→2.陈列费总计(元/月)→A.我司承担") && dtSummary.Columns.Contains(title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)") && (decimal)dr[title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)"] != 0) { dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→2.陈列费总计(元/月)→A.我司承担"] / (decimal)dr[title + "→3.销量及费率→A." + preaccountname + "实际销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero); } } } } } } } #endregion } break; case "1": { dtSummary = FNA_FeeApplyBLL.GetDiaplayFeeByDisplay(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString())); if (dtSummary.Rows.Count == 0) { gv_List.DataBind(); return; } dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员" }, new string[] { "DisplayMode", "Title" }, "Summary", true, false); #region 重新计算总计行的费率 if (dtSummary.Rows.Count > 1) { foreach (DataRow dr in dtSummary.Rows) { if (dr[0].ToString().EndsWith("计")) { foreach (DataColumn dc in dtSummary.Columns) { if (dc.ColumnName.EndsWith("费率%")) { string title = dc.ColumnName; int pos = title.IndexOf('→'); if (pos > 0) { title = title.Substring(0, pos); if (dtSummary.Columns.Contains(title + "→B.我司费用") && dtSummary.Columns.Contains(title + "→D." + accountname + "预计销量(元/月)") && (decimal)dr[title + "→D." + accountname + "预计销量(元/月)"] != 0) { dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→B.我司费用"] / (decimal)dr[title + "→D." + accountname + "预计销量(元/月)"] * 100, 1, MidpointRounding.AwayFromZero); } } } } } } } #endregion } break; case "2": { dtSummary = FNA_FeeApplyBLL.GetByPayMode(month, organizecity, int.Parse(ddl_Level.SelectedValue), state, int.Parse(Session["UserID"].ToString())); if (dtSummary.Rows.Count == 0) { gv_List.DataBind(); return; } dtSummary = MatrixTable.Matrix(dtSummary, new string[] { "管理片区名称", "责任人员" }, new string[] { "付款周期", "Title" }, "Summary", true, false); #region 重新计算总计行的费率 if (dtSummary.Rows.Count > 1) { foreach (DataRow dr in dtSummary.Rows) { if (dr[0].ToString().EndsWith("计")) { foreach (DataColumn dc in dtSummary.Columns) { if (dc.ColumnName.EndsWith("比")) { string title = dc.ColumnName; int pos = title.IndexOf('→'); if (pos > 0) { title = title.Substring(0, pos); if (dtSummary.Columns.Contains(title + "→我司费用") && dtSummary.Columns.Contains("总计→我司费用") && (decimal)dr["总计→我司费用"] != 0) { dr[dc.ColumnName] = Math.Round((decimal)dr[title + "→我司费用"] / (decimal)dr["总计→我司费用"] * 100, 1, MidpointRounding.AwayFromZero); } } } } } } } #endregion } break; } gv_List.DataSource = dtSummary; gv_List.DataBind(); if (dtSummary.Columns.Count >= 24) { gv_List.Width = new Unit(dtSummary.Columns.Count * 65); } else { gv_List.Width = new Unit(100, UnitType.Percentage); } MatrixTable.GridViewMatric(gv_List); MatrixTable.GridViewMergSampeValueRow(gv_List, 0); MatrixTable.GridViewMergSampeValueRow(gv_List, 1); #region 是否可以批量审批 if (Right_Assign_BLL.GetAccessRight(Session["UserName"].ToString(), 1509, "BatApproveFee")) { bt_Approve.Visible = (ddl_State.SelectedValue == "1"); bt_UnApprove.Visible = (ddl_State.SelectedValue == "1"); bt_Approve.Enabled = (ddl_State.SelectedValue == "1"); bt_UnApprove.Enabled = (ddl_State.SelectedValue == "1"); #region 判断费用申请进度 if (ddl_State.SelectedValue == "1") { Org_StaffBLL _staff = new Org_StaffBLL((int)Session["UserID"]); DataTable dt = _staff.GetLowerPositionTask(1, organizecity, month); if (dt.Rows.Count > 0) { bt_Approve.Enabled = false; //bt_UnApprove.Enabled = false; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "message", "<script language='javascript'>var tempid = Math.random() * 10000; \r\n window.showModalDialog('" + Page.ResolveClientUrl("~/SubModule/Pop_ShowLowerPositionTask.aspx") + "?Type=1&StaffID=0&Month=" + ddl_Month.SelectedValue + "&City=" + tr_OrganizeCity.SelectValue + "&tempid='+tempid, window, 'dialogWidth:520px;DialogHeight=600px;status:yes;resizable=no');</script>", false); } } #endregion } else { bt_Approve.Visible = false; bt_UnApprove.Visible = false; } #endregion }
private void BindGrid() { int month = 0, organizecity = 0, staff = 0; if (int.TryParse(tr_OrganizeCity.SelectValue, out organizecity) && int.TryParse(ddl_AccountMonth.SelectedValue, out month)) { int.TryParse(select_Staff.SelectValue, out staff); //员工不选时,查看该片区所有人员跟踪表 DataTable dt = TC_TrackCardBLL.GetListByStaff(month, organizecity, staff, ddl_ISWanYuan.SelectedValue); if (dt.Rows.Count > 0) { #region 矩阵表 dt = MatrixTable.Matrix(dt, new string[] { "CityName1", "CityName2", "CityName3", "CityName4", "CityName5", "StaffName", "ClientName", "ShortName", "IsPromote", "Promotor", "Salesroom", "PreMonthSalesVolume", "TargetDate01", "TargetDate02", "TargetDate04", "TargetDate03" }, new string[] { "D", "TrackDate" }, new string[] { "Data01", "Data02", "Data04", "Data03" }, false, true); dt = MatrixTable.ColumnSummaryTotal(dt, new int[] { 1 }, new string[] { "Data01", "Data02", "Data04", "Data03" }); #endregion #region 加入行小计 MatrixTable.TableAddRowSubTotal_Matric(dt, new string[] { "CityName1", "CityName2", "CityName3", "CityName4", "CityName5", "StaffName" }, 11, new string[] { "Data01", "Data02", "Data04", "Data03" }, true); #endregion #region 统计完成率 dt.Columns.Add(new DataColumn("完成率%→Data01", Type.GetType("System.Int32"), "IIF([TargetDate01]=0,0,[合计→Data01]/[TargetDate01])*100")); dt.Columns.Add(new DataColumn("完成率%→Data02", Type.GetType("System.Int32"), "IIF([TargetDate02]=0,0,[合计→Data02]/[TargetDate02])*100")); dt.Columns.Add(new DataColumn("完成率%→Data04", Type.GetType("System.Int32"), "IIF([TargetDate04]=0,0,[合计→Data04]/[TargetDate04])*100")); dt.Columns.Add(new DataColumn("完成率%→Data03", Type.GetType("System.Int32"), "IIF([TargetDate03]=0,0,[合计→Data03]/[TargetDate03])*100")); #endregion #region 统计排名 dt.Columns.Add(new DataColumn("排名→Data01", Type.GetType("System.Int32"))); dt.Columns.Add(new DataColumn("排名→Data02", Type.GetType("System.Int32"))); dt.Columns.Add(new DataColumn("排名→Data04", Type.GetType("System.Int32"))); dt.Columns.Add(new DataColumn("排名→Data03", Type.GetType("System.Int32"))); DataView dv = new DataView(dt); dv.RowFilter = "CityName1<>'总计' AND CityName2<>'小计' AND CityName3<>'小计' AND CityName4<>'小计' AND CityName5<>'小计' AND StaffName<>'小计' AND ClientName<>'小计'"; int prevalue = -1, presort = 0; #region Data01完成率排名 dv.Sort = "[完成率%→Data01] DESC"; for (int i = 0; i < dv.Count; i++) { if ((int)dv[i]["完成率%→Data01"] == prevalue) { dv[i]["排名→Data01"] = presort; } else { dv[i]["排名→Data01"] = i + 1; prevalue = (int)dv[i]["完成率%→Data01"]; presort = i + 1; } } #endregion #region Data02完成率排名 dv.Sort = "[完成率%→Data02] DESC"; for (int i = 0; i < dv.Count; i++) { if ((int)dv[i]["完成率%→Data02"] == prevalue) { dv[i]["排名→Data02"] = presort; } else { dv[i]["排名→Data02"] = i + 1; prevalue = (int)dv[i]["完成率%→Data02"]; presort = i + 1; } } #endregion #region Data04完成率排名 dv.Sort = "[完成率%→Data04] DESC"; for (int i = 0; i < dv.Count; i++) { if ((int)dv[i]["完成率%→Data04"] == prevalue) { dv[i]["排名→Data04"] = presort; } else { dv[i]["排名→Data04"] = i + 1; prevalue = (int)dv[i]["完成率%→Data04"]; presort = i + 1; } } #endregion #region Data03完成率排名 dv.Sort = "[完成率%→Data03] DESC"; for (int i = 0; i < dv.Count; i++) { if ((int)dv[i]["完成率%→Data03"] == prevalue) { dv[i]["排名→Data03"] = presort; } else { dv[i]["排名→Data03"] = i + 1; prevalue = (int)dv[i]["完成率%→Data03"]; presort = i + 1; } } #endregion #endregion #region 列表字段名称替换 dt.Columns["CityName1"].ColumnName = "部"; dt.Columns["CityName2"].ColumnName = "省区"; dt.Columns["CityName3"].ColumnName = "区域"; dt.Columns["CityName4"].ColumnName = "城市"; dt.Columns["CityName5"].ColumnName = "县城"; dt.Columns["ClientName"].ColumnName = "门店全称"; dt.Columns["ShortName"].ColumnName = "门店简称"; dt.Columns["StaffName"].ColumnName = "员工"; dt.Columns["IsPromote"].ColumnName = "促销店"; dt.Columns["Promotor"].ColumnName = "促销员"; dt.Columns["Salesroom"].ColumnName = "门店容量(元)"; dt.Columns["PreMonthSalesVolume"].ColumnName = "上月销量"; dt.Columns["TargetDate01"].ColumnName = "任务→ →销量(元)"; dt.Columns["TargetDate02"].ColumnName = "任务→ →档案数(自抢档案)"; dt.Columns["TargetDate04"].ColumnName = "任务→ →档案数(NE提供档案)"; dt.Columns["TargetDate03"].ColumnName = "任务→ →送货上门数"; foreach (DataColumn c in dt.Columns) { if (c.ColumnName.EndsWith("→Data01")) { c.ColumnName = c.ColumnName.Replace("→Data01", "→销量(元)"); } if (c.ColumnName.EndsWith("→Data02")) { c.ColumnName = c.ColumnName.Replace("→Data02", "→档案数(自抢档案)"); } if (c.ColumnName.EndsWith("→Data04")) { c.ColumnName = c.ColumnName.Replace("→Data04", "→档案数(NE提供档案)"); } if (c.ColumnName.EndsWith("→Data03")) { c.ColumnName = c.ColumnName.Replace("→Data03", "→送货上门数"); } } #endregion gv_List.DataSource = dt; gv_List.DataBind(); gv_List.Width = new Unit(dt.Columns.Count * 50); MatrixTable.GridViewMatric(gv_List); } else { gv_List.DataBind(); } } }