提交代码

This commit is contained in:
2025-05-06 15:04:17 +08:00
parent fe0745c4d7
commit 3b18178e30
15 changed files with 714 additions and 27458 deletions
@@ -22,7 +22,7 @@
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpProject" runat="server" Label="项目" Width="300px" LabelWidth="60px" EmptyText="请选择项目"
<f:DropDownList ID="drpProject" runat="server" Label="项目" Width="300px" LabelWidth="60px" EmptyText="请选择项目" AutoPostBack="true" OnSelectedIndexChanged="drpProject_SelectedIndexChanged"
EnableEdit="true">
</f:DropDownList>
<f:DropDownList ID="drpWorkSection" runat="server" LabelWidth="120px" Required="true" Label="工段" LabelAlign="Right" EnableEdit="true">
@@ -110,6 +110,7 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
{
if (!IsPostBack)
{
ProjectService.InitAllProjectDropDownList(this.drpProject, false);
string projectId = this.CurrUser.LoginProjectId;
if (!string.IsNullOrEmpty(Request.Params["ProjectId"]))
{
@@ -146,7 +147,6 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
{
this.drpWorkTeam.SelectedValue = Request.Params["WorkTeam"];
}
ProjectService.InitAllProjectDropDownList(this.drpProject, false);
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
this.drpProject.SelectedValue = this.CurrUser.LoginProjectId;
@@ -372,9 +372,9 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
string url = "~/CQMS/QuantityManagement/DayInputStatistics.aspx?Date=" + this.txtMonths.Text.Trim() + "&WorkSection=" + this.drpWorkSection.SelectedValue
string url = "~/CQMS/QuantityManagement/DayInputStatistics.aspx?Date=" + this.txtMonths.Text.Trim() + "&WorkSection=" + this.drpWorkSection.SelectedValue
+ "&DrawingId=" + this.drpDrawingNo.SelectedValue + "&Major=" + this.drpMajor.SelectedValue + "&Part=" + this.drpPart.SelectedValue
+ "&ProjectContent=" + this.drpProjectContent.SelectedValue+ "&WorkTeam=" + this.drpWorkTeam.SelectedValue + "&ProjectId=" + this.drpProject.SelectedValue;
+ "&ProjectContent=" + this.drpProjectContent.SelectedValue + "&WorkTeam=" + this.drpWorkTeam.SelectedValue + "&ProjectId=" + this.drpProject.SelectedValue;
PageContext.Redirect(url, "_self");
}
#endregion
@@ -703,5 +703,27 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
this.drpProjectContent.SelectedValue = BLL.Const._Null;
}
}
protected void drpProject_SelectedIndexChanged(object sender, EventArgs e)
{
string projectId = this.drpProject.SelectedValue;
if (!string.IsNullOrEmpty(Request.Params["ProjectId"]))
{
this.drpProject.SelectedValue = Request.Params["ProjectId"];
projectId = Request.Params["ProjectId"];
}
BLL.DrawingService.InitWorkSectionDropDownList(drpWorkSection, projectId, true);
BLL.DrawingService.InitDrawingChangeDropDownList(drpDrawingNo, projectId, true);
BLL.CNProfessionalService.InitCNProfessionalDownList(drpMajor, true);
BLL.BaseService.InitAllPartDropDownList(this.drpPart, projectId, true);
BLL.BaseService.InitAllProjectContentDropDownList(this.drpProjectContent, projectId, true);
BLL.TeamGroupService.InitTeamGroupProjectDropDownList(drpWorkTeam, projectId, true);
drpWorkSection.SelectedValue = BLL.Const._Null;
drpDrawingNo.SelectedValue = BLL.Const._Null;
drpMajor.SelectedValue = BLL.Const._Null;
drpPart.SelectedValue = BLL.Const._Null;
drpProjectContent.SelectedValue = BLL.Const._Null;
drpWorkTeam.SelectedValue = BLL.Const._Null;
}
}
}
@@ -15,17 +15,20 @@
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="工程量基础表" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="Id" AllowCellEditing="true" EnableColumnLines="true" ForceFit="true"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="ProjectContent"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="Major,ProjectContent"
SortDirection="DESC" OnSort="Grid1_Sort"
AllowPaging="false" IsDatabasePaging="true" PageSize="10000"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="true">
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpProject" runat="server" Label="项目" Width="300px" LabelWidth="60px" EmptyText="请选择项目"
<f:DropDownList ID="drpProject" runat="server" Label="项目" Width="300px" LabelWidth="60px" EmptyText="请选择项目" AutoPostBack="true" OnSelectedIndexChanged="drpProject_SelectedIndexChanged"
EnableEdit="true">
</f:DropDownList>
<f:TextBox runat="server" ID="txtWorkTeam" Label="作业队" LabelWidth="80px" LabelAlign="Right"></f:TextBox>
<f:DropDownList ID="drpMajor" runat="server" LabelWidth="140px" Required="true" Label="专业" LabelAlign="Right" EnableEdit="true">
</f:DropDownList>
<f:DropDownList ID="drpProjectContent" runat="server" LabelWidth="120px" Required="true" Label="项目内容" LabelAlign="Right" EnableEdit="true">
</f:DropDownList>
<f:DatePicker runat="server" DateFormatString="yyyy-MM" DisplayType="Month" Label="选择月份" ID="txtMonths" LabelAlign="right" LabelWidth="110px">
</f:DatePicker>
<f:Button ID="btnSearch" Icon="SystemSearch" EnablePostBack="true" runat="server" OnClick="btnSearch_Click" ToolTip="查询">
@@ -44,6 +47,9 @@
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField ColumnID="Major" DataField="Major" FieldType="String" HeaderText="专业" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="ProjectContent" DataField="ProjectContent" FieldType="String" HeaderText="项目内容" TextAlign="Center"
HeaderTextAlign="Center" Width="120px">
</f:RenderField>
@@ -53,9 +59,6 @@
<f:RenderField ColumnID="Amount" DataField="Amount" FieldType="Float" HeaderText="总数" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="WorkTeam" DataField="WorkTeam" FieldType="String" HeaderText="作业队" TextAlign="Center"
HeaderTextAlign="Center" Width="150px">
</f:RenderField>
<f:RenderField ColumnID="TotalComplete" DataField="TotalComplete" FieldType="Float" HeaderText="累计完成" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
@@ -65,6 +68,9 @@
<f:RenderField ColumnID="MonthComplete" DataField="MonthComplete" FieldType="Float" HeaderText="本月完成" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="CompleteRate" DataField="CompleteRate" FieldType="Float" HeaderText="完成百分比" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="dataload" Handler="onGridDataLoad" />
@@ -75,7 +81,7 @@
</form>
<script type="text/javascript">
function onGridDataLoad(event) {
this.mergeColumns(['ProjectContent','Amount','Remain'], {
this.mergeColumns(['Major','Amount','Remain'], {
depends: true
});
}
@@ -24,12 +24,16 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
{
this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
ProjectService.InitAllProjectDropDownList(this.drpProject, false);
string projectId = string.Empty;
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
this.drpProject.SelectedValue = this.CurrUser.LoginProjectId;
this.drpProject.Enabled = false;
this.drpProject.Hidden = true;
projectId = this.drpProject.SelectedValue;
}
BLL.CNProfessionalService.InitCNProfessionalDownList(drpMajor, true);
BLL.BaseService.InitAllProjectContentDropDownList(this.drpProjectContent, projectId, true);
GetButtonPower();
BindGrid();
}
@@ -44,10 +48,15 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
where C.ProjectId = @ProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.drpProject.SelectedValue));
if (!string.IsNullOrEmpty(this.txtWorkTeam.Text.Trim()))
if (this.drpMajor.SelectedValue != BLL.Const._Null)
{
strSql += " AND WorkTeam like @WorkTeam";
listStr.Add(new SqlParameter("@WorkTeam", "%" + this.txtWorkTeam.Text.Trim() + "%"));
strSql += " AND Major = @Major";
listStr.Add(new SqlParameter("@Major", this.drpMajor.SelectedItem.Text));
}
if (this.drpProjectContent.SelectedValue != BLL.Const._Null)
{
strSql += " AND ProjectContent = @ProjectContent";
listStr.Add(new SqlParameter("@ProjectContent", this.drpProjectContent.SelectedItem.Text));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
@@ -98,19 +107,22 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
{
string[] strs = this.Grid1.Rows[i].RowID.Split(',');
string projectContent = strs[1];
string workTeam = strs[2];
decimal totalAmount = 0, completedAmount = 0, totalCompletedAmount = 0, monthComplete = 0;
totalAmount = bases.Where(x => x.ProjectContent == projectContent).ToList().Sum(x => x.Amount ?? 0);
foreach (var d in days)
{
monthComplete = dayInputs.Where(x => x.ProjectContent == projectContent && x.WorkTeam == workTeam).ToList().Sum(x => x.DayAmount ?? 0);
monthComplete = dayInputs.Where(x => x.ProjectContent == projectContent).ToList().Sum(x => x.DayAmount ?? 0);
}
completedAmount = totalDayInputs.Where(x => x.ProjectContent == projectContent && x.WorkTeam == workTeam).ToList().Sum(x => x.DayAmount ?? 0);
completedAmount = totalDayInputs.Where(x => x.ProjectContent == projectContent).ToList().Sum(x => x.DayAmount ?? 0);
totalCompletedAmount = totalDayInputs.Where(x => x.ProjectContent == projectContent).ToList().Sum(x => x.DayAmount ?? 0);
this.Grid1.Rows[i].Values[3] = totalAmount.ToString("0.##");
this.Grid1.Rows[i].Values[4] = totalAmount.ToString("0.##");
this.Grid1.Rows[i].Values[5] = completedAmount.ToString("0.##");
this.Grid1.Rows[i].Values[6] = (totalAmount - totalCompletedAmount).ToString("0.##");
this.Grid1.Rows[i].Values[7] = monthComplete.ToString("0.##");
if (totalAmount > 0)
{
this.Grid1.Rows[i].Values[8] = decimal.Round(completedAmount / totalAmount, 4) * 100;
}
}
}
#endregion
@@ -317,6 +329,9 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(Grid1.Rows[i].Values[7].ToString());
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(Grid1.Rows[i].Values[8].ToString());
}
// 第三步:写入文件流
using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write))
@@ -346,5 +361,19 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
}
}
#endregion
protected void drpProject_SelectedIndexChanged(object sender, EventArgs e)
{
string projectId = this.drpProject.SelectedValue;
if (!string.IsNullOrEmpty(Request.Params["ProjectId"]))
{
this.drpProject.SelectedValue = Request.Params["ProjectId"];
projectId = Request.Params["ProjectId"];
}
BLL.CNProfessionalService.InitCNProfessionalDownList(drpMajor, true);
BLL.BaseService.InitAllProjectContentDropDownList(this.drpProjectContent, projectId, true);
drpMajor.SelectedValue = BLL.Const._Null;
drpProjectContent.SelectedValue = BLL.Const._Null;
}
}
}
@@ -67,13 +67,22 @@ namespace FineUIPro.Web.CQMS.QuantityManagement {
protected global::FineUIPro.DropDownList drpProject;
/// <summary>
/// txtWorkTeam 控件。
/// drpMajor 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtWorkTeam;
protected global::FineUIPro.DropDownList drpMajor;
/// <summary>
/// drpProjectContent 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpProjectContent;
/// <summary>
/// txtMonths 控件。
@@ -22,11 +22,15 @@
<Toolbars>
<f:Toolbar ID="ToolSearch" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpProject" runat="server" Label="项目" Width="300px" LabelWidth="60px" EmptyText="请选择项目"
<f:DropDownList ID="drpProject" runat="server" Label="项目" Width="300px" LabelWidth="60px" EmptyText="请选择项目" AutoPostBack="true" OnSelectedIndexChanged="drpProject_SelectedIndexChanged"
EnableEdit="true">
</f:DropDownList>
<f:TextBox runat="server" ID="txtWorkSection" Label="工段" LabelWidth="60px" LabelAlign="Right"></f:TextBox>
<f:TextBox runat="server" ID="txtWorkTeam" Label="作业队" LabelWidth="80px" LabelAlign="Right"></f:TextBox>
<f:DropDownList ID="drpWorkSection" runat="server" LabelWidth="120px" Required="true" Label="工段" LabelAlign="Right" EnableEdit="true">
</f:DropDownList>
<f:DropDownList ID="drpMajor" runat="server" LabelWidth="140px" Required="true" Label="专业" LabelAlign="Right" EnableEdit="true">
</f:DropDownList>
<f:DropDownList ID="drpProjectContent" runat="server" LabelWidth="120px" Required="true" Label="项目内容" LabelAlign="Right" EnableEdit="true">
</f:DropDownList>
<f:DatePicker runat="server" DateFormatString="yyyy-MM" DisplayType="Month" Label="选择月份" ID="txtMonths" LabelAlign="right" LabelWidth="110px">
</f:DatePicker>
<f:Button ID="btnSearch" Icon="SystemSearch" EnablePostBack="true" runat="server" OnClick="btnSearch_Click" ToolTip="查询">
@@ -69,6 +73,9 @@
<f:RenderField ColumnID="MonthComplete" DataField="MonthComplete" FieldType="Float" HeaderText="本月完成" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
<f:RenderField ColumnID="CompleteRate" DataField="CompleteRate" FieldType="Float" HeaderText="完成百分比" TextAlign="Center"
HeaderTextAlign="Center" Width="100px">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="dataload" Handler="onGridDataLoad" />
@@ -24,12 +24,18 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
{
this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
ProjectService.InitAllProjectDropDownList(this.drpProject, false);
string projectId = string.Empty;
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
this.drpProject.SelectedValue = this.CurrUser.LoginProjectId;
this.drpProject.Enabled = false;
this.drpProject.Hidden = true;
projectId = this.drpProject.SelectedValue;
}
BLL.DrawingService.InitWorkSectionDropDownList(drpWorkSection, projectId, true);
BLL.CNProfessionalService.InitCNProfessionalDownList(drpMajor, true);
BLL.BaseService.InitAllProjectContentDropDownList(this.drpProjectContent, projectId, true);
GetButtonPower();
BindGrid();
}
@@ -44,15 +50,20 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
where C.ProjectId = @ProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.drpProject.SelectedValue));
if (!string.IsNullOrEmpty(this.txtWorkSection.Text.Trim()))
if (this.drpWorkSection.SelectedValue != BLL.Const._Null)
{
strSql += " AND WorkSection like @WorkSection";
listStr.Add(new SqlParameter("@WorkSection", "%" + this.txtWorkSection.Text.Trim() + "%"));
strSql += " AND WorkSection = @WorkSection";
listStr.Add(new SqlParameter("@WorkSection", this.drpWorkSection.SelectedItem.Text));
}
if (!string.IsNullOrEmpty(this.txtWorkTeam.Text.Trim()))
if (this.drpMajor.SelectedValue != BLL.Const._Null)
{
strSql += " AND WorkTeam like @WorkTeam";
listStr.Add(new SqlParameter("@WorkTeam", "%" + this.txtWorkTeam.Text.Trim() + "%"));
strSql += " AND Major = @Major";
listStr.Add(new SqlParameter("@Major", this.drpMajor.SelectedItem.Text));
}
if (this.drpProjectContent.SelectedValue != BLL.Const._Null)
{
strSql += " AND ProjectContent = @ProjectContent";
listStr.Add(new SqlParameter("@ProjectContent", this.drpProjectContent.SelectedItem.Text));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
@@ -84,9 +95,9 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
endDate1 = endDate;
}
var totalDayInputs = from x in Funs.DB.View_QuantityManagement_DayInput2
where x.ProjectId == this.drpProject.SelectedValue && x.Date <= endDate
orderby x.Date
select x;
where x.ProjectId == this.drpProject.SelectedValue && x.Date <= endDate
orderby x.Date
select x;
var dayInputs = from x in Funs.DB.View_QuantityManagement_DayInput2
where x.ProjectId == this.drpProject.SelectedValue && x.Date >= startDate && x.Date <= endDate
orderby x.Date
@@ -104,19 +115,22 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
string[] strs = this.Grid1.Rows[i].RowID.Split(',');
string workSection = strs[1];
string projectContent = strs[2];
string workTeam = strs[3];
decimal totalAmount = 0, completedAmount = 0, totalCompletedAmount = 0, monthComplete = 0;
totalAmount = bases.Where(x => x.WorkSection == workSection && x.ProjectContent == projectContent).ToList().Sum(x => x.Amount ?? 0);
foreach (var d in days)
{
monthComplete = dayInputs.Where(x => x.WorkSection == workSection && x.ProjectContent == projectContent && x.WorkTeam == workTeam).ToList().Sum(x => x.DayAmount ?? 0);
monthComplete = dayInputs.Where(x => x.WorkSection == workSection && x.ProjectContent == projectContent).ToList().Sum(x => x.DayAmount ?? 0);
}
completedAmount= totalDayInputs.Where(x => x.WorkSection == workSection && x.ProjectContent == projectContent && x.WorkTeam == workTeam).ToList().Sum(x => x.DayAmount ?? 0);
completedAmount = totalDayInputs.Where(x => x.WorkSection == workSection && x.ProjectContent == projectContent).ToList().Sum(x => x.DayAmount ?? 0);
totalCompletedAmount = totalDayInputs.Where(x => x.WorkSection == workSection && x.ProjectContent == projectContent).ToList().Sum(x => x.DayAmount ?? 0);
this.Grid1.Rows[i].Values[5] = totalAmount.ToString("0.##");
this.Grid1.Rows[i].Values[6] = completedAmount.ToString("0.##");
this.Grid1.Rows[i].Values[7] = (totalAmount - totalCompletedAmount).ToString("0.##");
this.Grid1.Rows[i].Values[8] = monthComplete.ToString("0.##");
if (totalAmount > 0)
{
this.Grid1.Rows[i].Values[9] = decimal.Round(completedAmount / totalAmount, 4) * 100;
}
}
}
#endregion
@@ -326,6 +340,9 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(Grid1.Rows[i].Values[8].ToString());
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(Grid1.Rows[i].Values[9].ToString());
}
// 第三步:写入文件流
using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write))
@@ -355,5 +372,21 @@ namespace FineUIPro.Web.CQMS.QuantityManagement
}
}
#endregion
protected void drpProject_SelectedIndexChanged(object sender, EventArgs e)
{
string projectId = this.drpProject.SelectedValue;
if (!string.IsNullOrEmpty(Request.Params["ProjectId"]))
{
this.drpProject.SelectedValue = Request.Params["ProjectId"];
projectId = Request.Params["ProjectId"];
}
BLL.DrawingService.InitWorkSectionDropDownList(drpWorkSection, projectId, true);
BLL.CNProfessionalService.InitCNProfessionalDownList(drpMajor, true);
BLL.BaseService.InitAllProjectContentDropDownList(this.drpProjectContent, projectId, true);
drpWorkSection.SelectedValue = BLL.Const._Null;
drpMajor.SelectedValue = BLL.Const._Null;
drpProjectContent.SelectedValue = BLL.Const._Null;
}
}
}
@@ -67,22 +67,31 @@ namespace FineUIPro.Web.CQMS.QuantityManagement {
protected global::FineUIPro.DropDownList drpProject;
/// <summary>
/// txtWorkSection 控件。
/// drpWorkSection 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtWorkSection;
protected global::FineUIPro.DropDownList drpWorkSection;
/// <summary>
/// txtWorkTeam 控件。
/// drpMajor 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtWorkTeam;
protected global::FineUIPro.DropDownList drpMajor;
/// <summary>
/// drpProjectContent 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpProjectContent;
/// <summary>
/// txtMonths 控件。