提交代码

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:GroupField HeaderText="上月完成情况" TextAlign="Center">
<Columns>
<f:TemplateField ColumnID="PlanNum" HeaderText="计划项" HeaderTextAlign="Center" TextAlign="Center"
>
<ItemTemplate>
<asp:Label ID="lblPlanNum" runat="server" Text='<%# ConvertPlanNum(Eval("ProjectId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<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>
@ -138,6 +154,73 @@
</f:Tab>
<f:Tab ID="Tab3" Title="周度计划统计" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server">
<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>
</f:Tab>
<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.ddlPageSize2);
Funs.DropDownPageSize(this.ddlPageSize3);
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
ddlPageSize2.SelectedValue = Grid2.PageSize.ToString();
ddlPageSize3.SelectedValue = Grid3.PageSize.ToString();
BLL.ProjectService.InitProjectDropDownList(this.drpProject, true);
BLL.ProjectService.InitProjectDropDownList(this.drpProject2, true);
BLL.ProjectService.InitProjectDropDownList(this.drpProject3, true);
BindGrid1();
}
}
@ -52,7 +55,7 @@ left join (
string cpara = string.Empty;
if (this.drpProject.SelectedValue != Const._Null)
{
strSql += " AND p.ProjectId = @projectId";
strSql += " AND p.ProjectId = @projectId";
listStr.Add(new SqlParameter("@projectId", this.drpProject.SelectedValue));
}
SqlParameter[] parameter = listStr.ToArray();
@ -68,51 +71,125 @@ left join (
/// </summary>
private void BindGrid2()
{
//string strSql = @"select ProjectId,ProjectCode, ProjectName from Base_Project where ProjectState =1 ";
//List<SqlParameter> listStr = new List<SqlParameter>();
//string cpara = string.Empty;
//if (this.drpProject2.SelectedValue != Const._Null)
//{
// strSql += " AND projectId = @projectId"; ///状态为已完成
// listStr.Add(new SqlParameter("@projectId", this.drpProject2.SelectedValue));
//}
DataTable tb = new DataTable();
tb.Columns.Add(new DataColumn("ProjectId", typeof(String)));
tb.Columns.Add(new DataColumn("ProjectCode", typeof(String)));
tb.Columns.Add(new DataColumn("ProjectName", typeof(String)));
tb.Columns.Add(new DataColumn("PlanNum", typeof(decimal)));
tb.Columns.Add(new DataColumn("CompletedNum", typeof(decimal)));
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();
//DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
//Grid2.RecordCount = tb.Rows.Count;
//var table = this.GetPagedDataTable(Grid2, tb);
//Grid2.DataSource = table;
//Grid2.DataBind();
Model.SGGLDB db = Funs.DB;
var projects = from x in db.Base_Project where x.ProjectState == "1" orderby x.ProjectName select x;
if (this.drpProject2.SelectedValue != BLL.Const._Null)
{
projects = projects.Where(x => x.ProjectId == this.drpProject2.SelectedValue).OrderBy(x => x.ProjectName);
}
//统计月份信息
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();
table.Columns.Add(new DataColumn("BaseId", typeof(String)));
table.Columns.Add(new DataColumn("SupId", typeof(String)));
table.Columns.Add(new DataColumn("Name", typeof(String)));
table.Columns.Add(new DataColumn("ProjectId", typeof(String)));
table.Columns.Add(new DataColumn("DrawingNo", typeof(String)));
table.Columns.Add(new DataColumn("DrawingName", typeof(String)));
table.Columns.Add(new DataColumn("Part", typeof(String)));
table.Columns.Add(new DataColumn("ProjectContent", typeof(String)));
table.Columns.Add(new DataColumn("Unit", typeof(String)));
table.Columns.Add(new DataColumn("Amount", typeof(decimal)));
table.Columns.Add(new DataColumn("WorkTeam", typeof(String)));
table.Columns.Add(new DataColumn("State", typeof(String)));
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid3()
{
DataTable tb = new DataTable();
tb.Columns.Add(new DataColumn("ProjectId", typeof(String)));
tb.Columns.Add(new DataColumn("ProjectCode", typeof(String)));
tb.Columns.Add(new DataColumn("ProjectName", typeof(String)));
tb.Columns.Add(new DataColumn("PlanNum", typeof(decimal)));
tb.Columns.Add(new DataColumn("CompletedNum", typeof(decimal)));
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)));
DataRow row;
row = table.NewRow();
row[0] = "0";
row[1] = null;
row[2] = "工程量基础表";
row[3] = "";
row[4] = "";
row[5] = "";
row[6] = "";
row[7] = "";
row[8] = "";
row[9] = DBNull.Value;
row[10] = "";
row[11] = "";
table.Rows.Add(row);
Model.SGGLDB db = Funs.DB;
var projects = from x in db.Base_Project where x.ProjectState == "1" orderby x.ProjectName select x;
if (this.drpProject3.SelectedValue != BLL.Const._Null)
{
projects = projects.Where(x => x.ProjectId == this.drpProject3.SelectedValue).OrderBy(x => x.ProjectName);
}
//统计月份信息
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 allWeekPlans = from x in db.JDGL_WeekPlan
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
@ -158,6 +235,7 @@ left join (
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid1();
}
#endregion
/// <summary>
/// 查询
@ -168,7 +246,6 @@ left join (
{
this.BindGrid2();
}
#endregion
#region
/// <summary>
@ -203,11 +280,64 @@ left join (
}
#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)
{
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>
protected global::System.Web.UI.WebControls.Label Label1;
/// <summary>
/// lblPlanNum 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPlanNum;
/// <summary>
/// ToolbarSeparator2 控件。
/// </summary>
@ -228,6 +219,78 @@ namespace FineUIPro.Web.DataShow {
/// </remarks>
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>
/// TabOnlineMenuSet 控件。
/// </summary>