提交代码

This commit is contained in:
高飞 2025-03-27 17:14:51 +08:00
parent 6eb3e01c1b
commit d3022cef86
3 changed files with 336 additions and 60 deletions

View File

@ -115,12 +115,28 @@
</f:RenderField> </f:RenderField>
<f:GroupField HeaderText="上月完成情况" TextAlign="Center"> <f:GroupField HeaderText="上月完成情况" TextAlign="Center">
<Columns> <Columns>
<f:TemplateField ColumnID="PlanNum" HeaderText="计划项" HeaderTextAlign="Center" TextAlign="Center" <f:RenderField Width="100px" ColumnID="PlanNum" DataField="PlanNum" FieldType="String" HeaderText="计划项" TextAlign="Right"
> HeaderTextAlign="Center">
<ItemTemplate> </f:RenderField>
<asp:Label ID="lblPlanNum" runat="server" Text='<%# ConvertPlanNum(Eval("ProjectId")) %>'></asp:Label> <f:RenderField Width="100px" ColumnID="CompletedNum" DataField="CompletedNum" FieldType="String" HeaderText="完成项" TextAlign="Right"
</ItemTemplate> HeaderTextAlign="Center">
</f:TemplateField> </f:RenderField>
<f:RenderField Width="100px" ColumnID="Rate" DataField="Rate" FieldType="Float" HeaderText="完成比例(%)" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:GroupField>
<f:GroupField HeaderText="累计完成情况" TextAlign="Center">
<Columns>
<f:RenderField Width="100px" ColumnID="TotalPlanNum" DataField="TotalPlanNum" FieldType="String" HeaderText="计划项" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TotalCompletedNum" DataField="TotalCompletedNum" FieldType="String" HeaderText="完成项" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TotalRate" DataField="TotalRate" FieldType="Float" HeaderText="完成比例(%)" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
</Columns> </Columns>
</f:GroupField> </f:GroupField>
</Columns> </Columns>
@ -138,6 +154,73 @@
</f:Tab> </f:Tab>
<f:Tab ID="Tab3" Title="周度计划统计" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server"> <f:Tab ID="Tab3" Title="周度计划统计" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server">
<Items> <Items>
<f:Grid ID="Grid3" ShowBorder="true" ShowHeader="false" Title="各项目基本情况" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="ProjectId" DataIDField="ProjectId" AllowSorting="true" MarginRight="15px"
SortField="ProjectName" SortDirection="ASC" OnSort="Grid3_Sort" EnableColumnLines="true" AllowPaging="true"
IsDatabasePaging="true" PageSize="20" OnPageIndexChange="Grid3_PageIndexChange" ForceFit="true"
EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar3" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpProject3" runat="server" Label="项目" Width="400px" LabelWidth="80px" LabelAlign="Right"
EnableEdit="true" OnSelectedIndexChanged="TextBox3_TextChanged" AutoPostBack="true">
</f:DropDownList>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="Button2" EnablePostBack="false" ToolTip="关闭" Text="关闭" runat="server" Icon="SystemClose" OnClientClick="closeNow();">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="55px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="150px" ColumnID="ProjectCode" DataField="ProjectCode" FieldType="String" HeaderText="项目号" TextAlign="Left"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="350px" ColumnID="ProjectName" ExpandUnusedSpace="true" DataField="ProjectName" FieldType="String" HeaderText="项目名称" TextAlign="Left"
HeaderTextAlign="Center">
</f:RenderField>
<f:GroupField HeaderText="上周完成情况" TextAlign="Center">
<Columns>
<f:RenderField Width="100px" ColumnID="PlanNum" DataField="PlanNum" FieldType="String" HeaderText="计划项" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="CompletedNum" DataField="CompletedNum" FieldType="String" HeaderText="完成项" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="Rate" DataField="Rate" FieldType="Float" HeaderText="完成比例(%)" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:GroupField>
<f:GroupField HeaderText="累计完成情况" TextAlign="Center">
<Columns>
<f:RenderField Width="100px" ColumnID="TotalPlanNum" DataField="TotalPlanNum" FieldType="String" HeaderText="计划项" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TotalCompletedNum" DataField="TotalCompletedNum" FieldType="String" HeaderText="完成项" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="TotalRate" DataField="TotalRate" FieldType="Float" HeaderText="完成比例(%)" TextAlign="Right"
HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:GroupField>
</Columns>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator3" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText3" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize3" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize3_SelectedIndexChanged">
</f:DropDownList>
</PageItems>
</f:Grid>
</Items> </Items>
</f:Tab> </f:Tab>
<f:Tab ID="TabOnlineMenuSet" Title="个人完成情况统计" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server" Hidden="True"> <f:Tab ID="TabOnlineMenuSet" Title="个人完成情况统计" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server" Hidden="True">

View File

@ -15,10 +15,13 @@ namespace FineUIPro.Web.DataShow
{ {
Funs.DropDownPageSize(this.ddlPageSize); Funs.DropDownPageSize(this.ddlPageSize);
Funs.DropDownPageSize(this.ddlPageSize2); Funs.DropDownPageSize(this.ddlPageSize2);
Funs.DropDownPageSize(this.ddlPageSize3);
ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
ddlPageSize2.SelectedValue = Grid2.PageSize.ToString(); ddlPageSize2.SelectedValue = Grid2.PageSize.ToString();
ddlPageSize3.SelectedValue = Grid3.PageSize.ToString();
BLL.ProjectService.InitProjectDropDownList(this.drpProject, true); BLL.ProjectService.InitProjectDropDownList(this.drpProject, true);
BLL.ProjectService.InitProjectDropDownList(this.drpProject2, true); BLL.ProjectService.InitProjectDropDownList(this.drpProject2, true);
BLL.ProjectService.InitProjectDropDownList(this.drpProject3, true);
BindGrid1(); BindGrid1();
} }
} }
@ -52,7 +55,7 @@ left join (
string cpara = string.Empty; string cpara = string.Empty;
if (this.drpProject.SelectedValue != Const._Null) if (this.drpProject.SelectedValue != Const._Null)
{ {
strSql += " AND p.ProjectId = @projectId"; strSql += " AND p.ProjectId = @projectId";
listStr.Add(new SqlParameter("@projectId", this.drpProject.SelectedValue)); listStr.Add(new SqlParameter("@projectId", this.drpProject.SelectedValue));
} }
SqlParameter[] parameter = listStr.ToArray(); SqlParameter[] parameter = listStr.ToArray();
@ -68,51 +71,125 @@ left join (
/// </summary> /// </summary>
private void BindGrid2() private void BindGrid2()
{ {
//string strSql = @"select ProjectId,ProjectCode, ProjectName from Base_Project where ProjectState =1 "; DataTable tb = new DataTable();
//List<SqlParameter> listStr = new List<SqlParameter>(); tb.Columns.Add(new DataColumn("ProjectId", typeof(String)));
//string cpara = string.Empty; tb.Columns.Add(new DataColumn("ProjectCode", typeof(String)));
//if (this.drpProject2.SelectedValue != Const._Null) tb.Columns.Add(new DataColumn("ProjectName", typeof(String)));
//{ tb.Columns.Add(new DataColumn("PlanNum", typeof(decimal)));
// strSql += " AND projectId = @projectId"; ///状态为已完成 tb.Columns.Add(new DataColumn("CompletedNum", typeof(decimal)));
// listStr.Add(new SqlParameter("@projectId", this.drpProject2.SelectedValue)); tb.Columns.Add(new DataColumn("Rate", typeof(decimal)));
//} tb.Columns.Add(new DataColumn("TotalPlanNum", typeof(decimal)));
tb.Columns.Add(new DataColumn("TotalCompletedNum", typeof(decimal)));
tb.Columns.Add(new DataColumn("TotalRate", typeof(decimal)));
//SqlParameter[] parameter = listStr.ToArray(); Model.SGGLDB db = Funs.DB;
//DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); var projects = from x in db.Base_Project where x.ProjectState == "1" orderby x.ProjectName select x;
//Grid2.RecordCount = tb.Rows.Count; if (this.drpProject2.SelectedValue != BLL.Const._Null)
//var table = this.GetPagedDataTable(Grid2, tb); {
//Grid2.DataSource = table; projects = projects.Where(x => x.ProjectId == this.drpProject2.SelectedValue).OrderBy(x => x.ProjectName);
//Grid2.DataBind(); }
//统计月份信息
DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01");
if (DateTime.Now.Day < 26)
{
months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.AddMonths(-1).Month.ToString() + "-01");
}
//2、获取当前项目指定月所有计划
var allMonthPlans = from x in db.JDGL_MonthPlan
where x.Months == months
select x;
//3、获取当前项目所有月计划
var allPlans = from x in db.JDGL_MonthPlan
where x.Months <= months
select x;
foreach (var item in projects)
{
double planNum = allMonthPlans.Where(x => x.ProjectId == item.ProjectId).Count();
double completedNum = allMonthPlans.Where(x => x.ProjectId == item.ProjectId && x.RealDate != null).Count();
double rate = planNum > 0 ? Math.Round((completedNum / planNum) * 100, 2) : 0;
double totalPlanNum = allPlans.Where(x => x.ProjectId == item.ProjectId).Count();
double totalCompletedNum = allPlans.Where(x => x.ProjectId == item.ProjectId && x.RealDate != null).Count();
double totalRate = totalPlanNum > 0 ? Math.Round((totalCompletedNum / totalPlanNum) * 100, 2) : 0;
DataRow row;
row = tb.NewRow();
row[0] = item.ProjectId;
row[1] = item.ProjectCode;
row[2] = item.ProjectName;
row[3] = planNum;
row[4] = completedNum;
row[5] = rate;
row[6] = totalPlanNum;
row[7] = totalCompletedNum;
row[8] = totalRate;
tb.Rows.Add(row);
}
Grid2.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid2, tb);
Grid2.DataSource = table;
Grid2.DataBind();
}
DataTable table = new DataTable(); /// <summary>
table.Columns.Add(new DataColumn("BaseId", typeof(String))); /// 绑定数据
table.Columns.Add(new DataColumn("SupId", typeof(String))); /// </summary>
table.Columns.Add(new DataColumn("Name", typeof(String))); private void BindGrid3()
table.Columns.Add(new DataColumn("ProjectId", typeof(String))); {
table.Columns.Add(new DataColumn("DrawingNo", typeof(String))); DataTable tb = new DataTable();
table.Columns.Add(new DataColumn("DrawingName", typeof(String))); tb.Columns.Add(new DataColumn("ProjectId", typeof(String)));
table.Columns.Add(new DataColumn("Part", typeof(String))); tb.Columns.Add(new DataColumn("ProjectCode", typeof(String)));
table.Columns.Add(new DataColumn("ProjectContent", typeof(String))); tb.Columns.Add(new DataColumn("ProjectName", typeof(String)));
table.Columns.Add(new DataColumn("Unit", typeof(String))); tb.Columns.Add(new DataColumn("PlanNum", typeof(decimal)));
table.Columns.Add(new DataColumn("Amount", typeof(decimal))); tb.Columns.Add(new DataColumn("CompletedNum", typeof(decimal)));
table.Columns.Add(new DataColumn("WorkTeam", typeof(String))); tb.Columns.Add(new DataColumn("Rate", typeof(decimal)));
table.Columns.Add(new DataColumn("State", typeof(String))); tb.Columns.Add(new DataColumn("TotalPlanNum", typeof(decimal)));
tb.Columns.Add(new DataColumn("TotalCompletedNum", typeof(decimal)));
tb.Columns.Add(new DataColumn("TotalRate", typeof(decimal)));
DataRow row; Model.SGGLDB db = Funs.DB;
row = table.NewRow(); var projects = from x in db.Base_Project where x.ProjectState == "1" orderby x.ProjectName select x;
row[0] = "0"; if (this.drpProject3.SelectedValue != BLL.Const._Null)
row[1] = null; {
row[2] = "工程量基础表"; projects = projects.Where(x => x.ProjectId == this.drpProject3.SelectedValue).OrderBy(x => x.ProjectName);
row[3] = ""; }
row[4] = ""; //统计月份信息
row[5] = ""; DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01");
row[6] = ""; if (DateTime.Now.Day < 26)
row[7] = ""; {
row[8] = ""; months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.AddMonths(-1).Month.ToString() + "-01");
row[9] = DBNull.Value; }
row[10] = ""; //2、获取当前项目指定月所有计划
row[11] = ""; var allWeekPlans = from x in db.JDGL_WeekPlan
table.Rows.Add(row); select x;
foreach (var item in projects)
{
var lastWeek = (from x in db.JDGL_WeekPlan where x.ProjectId == item.ProjectId && DateTime.Now > ((DateTime)x.EndDate).AddDays(1) orderby x.EndDate select x).FirstOrDefault();
double planNum = 0, completedNum = 0, rate = 0;
if (lastWeek != null)
{
planNum = allWeekPlans.Where(x => x.ProjectId == item.ProjectId && x.WeekNo == lastWeek.WeekNo).Count();
completedNum = allWeekPlans.Where(x => x.ProjectId == item.ProjectId && x.WeekNo == lastWeek.WeekNo && x.IsOK == true).Count();
rate = planNum > 0 ? Math.Round((completedNum / planNum) * 100, 2) : 0;
}
double totalPlanNum = allWeekPlans.Where(x => x.ProjectId == item.ProjectId).Count();
double totalCompletedNum = allWeekPlans.Where(x => x.ProjectId == item.ProjectId && x.IsOK == true).Count();
double totalRate = totalPlanNum > 0 ? Math.Round((totalCompletedNum / totalPlanNum) * 100, 2) : 0;
DataRow row;
row = tb.NewRow();
row[0] = item.ProjectId;
row[1] = item.ProjectCode;
row[2] = item.ProjectName;
row[3] = planNum;
row[4] = completedNum;
row[5] = rate;
row[6] = totalPlanNum;
row[7] = totalCompletedNum;
row[8] = totalRate;
tb.Rows.Add(row);
}
Grid3.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid3, tb);
Grid3.DataSource = table;
Grid3.DataBind();
} }
#region #region
@ -158,6 +235,7 @@ left join (
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid1(); BindGrid1();
} }
#endregion
/// <summary> /// <summary>
/// 查询 /// 查询
@ -168,7 +246,6 @@ left join (
{ {
this.BindGrid2(); this.BindGrid2();
} }
#endregion
#region #region
/// <summary> /// <summary>
@ -203,11 +280,64 @@ left join (
} }
#endregion #endregion
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox3_TextChanged(object sender, EventArgs e)
{
this.BindGrid3();
}
#region
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid3_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid3();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid3_Sort(object sender, GridSortEventArgs e)
{
BindGrid3();
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize3_SelectedIndexChanged(object sender, EventArgs e)
{
Grid3.PageSize = Convert.ToInt32(ddlPageSize3.SelectedValue);
BindGrid3();
}
#endregion
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e) protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
{ {
if (TabStrip1.ActiveTabIndex == 1) if (TabStrip1.ActiveTabIndex == 1)
{ {
BindGrid2(); if (this.Grid2.Rows.Count == 0)
{
BindGrid2();
}
}
else if (TabStrip1.ActiveTabIndex == 2)
{
if (this.Grid3.Rows.Count == 0)
{
BindGrid3();
}
} }
} }
} }

View File

@ -183,15 +183,6 @@ namespace FineUIPro.Web.DataShow {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Label Label1; protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// lblPlanNum 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPlanNum;
/// <summary> /// <summary>
/// ToolbarSeparator2 控件。 /// ToolbarSeparator2 控件。
/// </summary> /// </summary>
@ -228,6 +219,78 @@ namespace FineUIPro.Web.DataShow {
/// </remarks> /// </remarks>
protected global::FineUIPro.Tab Tab3; protected global::FineUIPro.Tab Tab3;
/// <summary>
/// Grid3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid3;
/// <summary>
/// Toolbar3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar3;
/// <summary>
/// drpProject3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpProject3;
/// <summary>
/// Button2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button Button2;
/// <summary>
/// Label2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label2;
/// <summary>
/// ToolbarSeparator3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator3;
/// <summary>
/// ToolbarText3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText3;
/// <summary>
/// ddlPageSize3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize3;
/// <summary> /// <summary>
/// TabOnlineMenuSet 控件。 /// TabOnlineMenuSet 控件。
/// </summary> /// </summary>