From 569205fa766938de86f320b2d2f1099201d84ea6 Mon Sep 17 00:00:00 2001 From: liyh Date: Mon, 29 Jul 2024 17:25:07 +0800 Subject: [PATCH] 1212 --- .../Excel/DataIn/PunchlistFrom导入模板.xls | Bin 23552 -> 23040 bytes .../Excel/DataOut/PunchlistFrom导出模板.xlsx | Bin 0 -> 21652 bytes .../Transfer/Chart/PunchlistFromChartNew.aspx | 15 +- .../Chart/PunchlistFromChartNew.aspx.cs | 54 ++- .../PunchlistFromChartNew.aspx.designer.cs | 31 +- .../Transfer/Chart/PunchlistFromSort.aspx | 1 + .../Transfer/Chart/PunchlistFromSort.aspx.cs | 6 +- .../FineUIPro.Web/Transfer/PunchlistFrom.aspx | 53 ++- .../Transfer/PunchlistFrom.aspx.cs | 194 ++++++++-- .../Transfer/PunchlistFrom.aspx.designer.cs | 126 ++++++- .../Transfer/PunchlistFromDataIn.aspx.cs | 24 +- .../Transfer/PunchlistFromEdit.aspx | 159 +++++++++ .../Transfer/PunchlistFromEdit.aspx.cs | 222 ++++++++++++ .../PunchlistFromEdit.aspx.designer.cs | 332 ++++++++++++++++++ 14 files changed, 1149 insertions(+), 68 deletions(-) create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataOut/PunchlistFrom导出模板.xlsx create mode 100644 SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx create mode 100644 SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.designer.cs diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/PunchlistFrom导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/PunchlistFrom导入模板.xls index 263f8398c23a137333dcf018ec66f464b1f2f5dd..815c3387c4ba2a8f851ad83800fc90c622df1112 100644 GIT binary patch delta 580 zcmY+BO=uHA6vzK>*sQ5WTX#2ELi|9bv^Gd-X*|Wcl~!Y##@I?0#E*;gRP>@0k=g|> z9(s^I5PPfQts=G~#bdyOmx3Ndr3m6dh)2PTqONa(MKbW4ng4t9-n@Aey`bnh-78Yh z>akZueVkC7{u9Ts;V^)_(9)}Cr)bfd>1fP03v-`0sh4k9chp3Qe_FR`k#8pE=_CJ0 z^d|^303NYJuGtM@AB5WbhSI$ud*ZjX7ohIFRZAX z+~(_RW49E?r}`})SB818G^k#W>FLsW)p;@12?YytNWq8CpUQs0mzbpLl38N$l+4y*NsDF{~V{OF26b0DPc&Fl*|O8ihE{WR~Rl z&Eyw6g2xxC51ln~q#avB{w&u1nXihMYsc3nGiuwk`o1#LtmwVxE-PNB5Am~lKu`Ev zJ)gZUQ9Ff5Fl|^6T;VYn!k&GmO9Mh6;OfM?BehNGshlppl<(*JVIMDBdvqfVtiOl2 Bg^U0I delta 1023 zcmY*YO-NKx6#mZb`FiT;JZE%fl%k{`M-4PfE3iKuG;|b6haeCguvJlDCiFW-ZGslj zZBfvoqD8a_^o0aL&aR;L{VZ}-6t#HmDyr$b^HX>p-@WIY@7#ONJ@>x3$1?Xsu60X% ze)n^cR$ZoaeG`B`xm?bmh5D9~?aiyFQa*V_HMcFllV*L&x}>fS=%3aFxu;K;W#qg5 zQPvi;A;)k8$8iF)gx+eW^-a6mdNk?By*Ku&fSw6Y*~8er<7K(`KD_AaJCTqi_3(y- z3~}u6Zfu-er@DJ|B+)be1tSOo{sC42*#3Gm1%OqY6d^^Fb1q3QD*YIZi?SbZmc)gN ztn8zn69*1{A*{{T-^d-|Ou^tTLzy zGNpy{%pc`99{6v^5JR+RLsjQ1F(ony;V8GLKQi^^i!nZ9#PDi`&m4-o<$aJKext%H z!G13=5R~QtglLGeIo4sYNJr3zFg=CfD6LxEHQ1R+GN#}a)F6q-KPyD*KNnuX)vn;` zirh06BHUq!Uo@Xd!A62Q@S0o$D~}@~SMe41d1uPM9Vg|&@g2_QT#f}2tNhEiKxvvObe)@v^CX)?aZdsMr7i diff --git a/SGGL/FineUIPro.Web/File/Excel/DataOut/PunchlistFrom导出模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataOut/PunchlistFrom导出模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..cf35ca4477f089d669704725208a1e4e1b1023af GIT binary patch literal 21652 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
- + @@ -30,7 +30,7 @@ OnSelectedIndexChanged="drpChartType_SelectedIndexChanged" Width="300px" LabelWidth="80px"> - <%-- + <%-- @@ -52,7 +52,7 @@ - @@ -62,6 +62,15 @@ + + + +
+ +
+
+
+
diff --git a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.cs b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.cs index 611f28d4..0c92cb08 100644 --- a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.cs @@ -58,11 +58,34 @@ namespace FineUIPro.Web.Transfer.Chart rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd"); DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00"); DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59"); - rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); - rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); + //rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); + //rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); + rowTime["计划完成数量"] = forms.Where(x => x.Required_Date <= endTime).Count(); + rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date <= endTime).Count(); dtTime.Rows.Add(rowTime); } this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); + + ///按单位统计 + DataTable dtTime1 = new DataTable(); + dtTime1.Columns.Add("日期", typeof(string)); + dtTime1.Columns.Add("计划完成百分比(%)", typeof(string)); + dtTime1.Columns.Add("实际完成百分比(%)", typeof(string)); + for (int i = 6; i >= 0; i--) + { + DataRow rowTime = dtTime1.NewRow(); + DateTime QueryTime = DateTime.Now.AddDays(i * -1); + rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd"); + DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00"); + DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59"); + double jhCount = forms.Where(x => x.Required_Date <= endTime).Count(); + double sjCount = forms.Where(x => x.Actual_Date <= endTime).Count(); + double allCount = forms.Count(); + rowTime["计划完成百分比(%)"] = allCount == 0 ? "0.00" : (jhCount / allCount * 100).ToString("0.00"); + rowTime["实际完成百分比(%)"] = allCount == 0 ? "0.00" : (sjCount / allCount * 100).ToString("0.00"); + dtTime1.Rows.Add(rowTime); + } + this.ChartAccidentTime1.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime1, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); } #endregion @@ -81,11 +104,34 @@ namespace FineUIPro.Web.Transfer.Chart rowTime["月份"] = QueryTime.ToString("yyyy/MM"); DateTime startTime = QueryTime; DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59"); - rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); - rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); + //rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count(); + //rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count(); + rowTime["计划完成数量"] = forms.Where(x => x.Required_Date <= endTime).Count(); + rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date <= endTime).Count(); dtTime.Rows.Add(rowTime); } this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); + + ///按单位统计 + DataTable dtTime1 = new DataTable(); + dtTime1.Columns.Add("月份", typeof(string)); + dtTime1.Columns.Add("计划完成百分比(%)", typeof(string)); + dtTime1.Columns.Add("实际完成百分比(%)", typeof(string)); + for (int i = 1; i <= DateTime.Now.Month; i++) + { + DataRow rowTime = dtTime1.NewRow(); + DateTime QueryTime = Convert.ToDateTime($"{DateTime.Now.Year.ToString()}-{i}-1 00:00:00"); + rowTime["月份"] = QueryTime.ToString("yyyy/MM"); + DateTime startTime = QueryTime; + DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59"); + double jhCount = forms.Where(x => x.Required_Date <= endTime).Count(); + double sjCount = forms.Where(x => x.Actual_Date <= endTime).Count(); + double allCount = forms.Count(); + rowTime["计划完成百分比(%)"] = allCount == 0 ? "0.00" : (jhCount / allCount * 100).ToString("0.00"); + rowTime["实际完成百分比(%)"] = allCount == 0 ? "0.00" : (sjCount / allCount * 100).ToString("0.00"); + dtTime1.Rows.Add(rowTime); + } + this.ChartAccidentTime1.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime1, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false)); } } diff --git a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.designer.cs b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.designer.cs index 6997ce9c..f785b9ec 100644 --- a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromChartNew.aspx.designer.cs @@ -105,13 +105,13 @@ namespace FineUIPro.Web.Transfer.Chart protected global::FineUIPro.TabStrip TabStrip1; /// - /// Tab2 控件。 + /// Tab1 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.Tab Tab2; + protected global::FineUIPro.Tab Tab1; /// /// cpAccidentTime 控件。 @@ -130,5 +130,32 @@ namespace FineUIPro.Web.Transfer.Chart /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::Web.Controls.ChartControl ChartAccidentTime; + + /// + /// Tab2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tab Tab2; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// ChartAccidentTime1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::Web.Controls.ChartControl ChartAccidentTime1; } } diff --git a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx index f8c2f5b5..3d67a69b 100644 --- a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx +++ b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx @@ -88,6 +88,7 @@ EnableRowDoubleClickEvent="true" EnableTextSelection="true" EnableSummary="true" SummaryPosition="Flow"> + diff --git a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx.cs b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx.cs index 969123b8..efb1159f 100644 --- a/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/Chart/PunchlistFromSort.aspx.cs @@ -196,12 +196,13 @@ namespace FineUIPro.Web.Transfer.Chart strSql.AppendLine(" AND System_No=@System_No "); listStr.Add(new SqlParameter("@System_No", _systemNo)); } - strSql.AppendLine(" select Action_By,cast(0 as decimal(18,2)) Cat_A_Count,cast(0 as decimal(18,2)) Cat_B_Count,cast(0 as decimal(18,2)) Cat_C_Count,cast(0 as decimal(18,2)) Cat_D_Count INTO #PunchlistFromSortTemp2 from #AllPunchlistFromSortTemp2 Group by Action_By; "); + strSql.AppendLine(" select Action_By,cast(0 as decimal(18,2)) Cat_All_Count,cast(0 as decimal(18,2)) Cat_A_Count,cast(0 as decimal(18,2)) Cat_B_Count,cast(0 as decimal(18,2)) Cat_C_Count,cast(0 as decimal(18,2)) Cat_D_Count INTO #PunchlistFromSortTemp2 from #AllPunchlistFromSortTemp2 Group by Action_By; "); strSql.AppendLine(" update a set a.Cat_A_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a')) "); strSql.AppendLine(",a.Cat_B_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b')) "); strSql.AppendLine(",a.Cat_C_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c')) "); strSql.AppendLine(",a.Cat_D_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d')) "); strSql.AppendLine("from #PunchlistFromSortTemp2 a;"); + strSql.AppendLine(" update #PunchlistFromSortTemp2 set Cat_All_Count=Cat_A_Count+Cat_B_Count+Cat_C_Count+Cat_D_Count; "); strSql.AppendLine("select * from #PunchlistFromSortTemp2 "); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); strSql.AppendLine(" order by Action_By "); @@ -217,8 +218,10 @@ namespace FineUIPro.Web.Transfer.Chart int cat_B_Count = 0; int cat_C_Count = 0; int cat_D_Count = 0; + int cat_All_Count = 0; foreach (DataRow row in tb.Rows) { + cat_All_Count += Convert.ToInt32(row["Cat_All_Count"]); cat_A_Count += Convert.ToInt32(row["Cat_A_Count"]); cat_B_Count += Convert.ToInt32(row["Cat_B_Count"]); cat_C_Count += Convert.ToInt32(row["Cat_C_Count"]); @@ -228,6 +231,7 @@ namespace FineUIPro.Web.Transfer.Chart JObject summary = new JObject(); summary.Add("Action_By", "合计"); + summary.Add("Cat_All_Count", cat_All_Count.ToString()); summary.Add("Cat_A_Count", cat_A_Count.ToString()); summary.Add("Cat_B_Count", cat_B_Count.ToString()); summary.Add("Cat_C_Count", cat_C_Count.ToString()); diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx index d2253bd3..e07551b6 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx @@ -21,9 +21,16 @@ - + + + + + + + + @@ -33,26 +40,44 @@ + + - - - - - + - <%-- --%> - <%-- - --%> + + + + + + + + + + + + + + + + + + + + + + - <%----%> + diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs index 8994a0fc..00a8f4b6 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs @@ -1,10 +1,17 @@ using BLL; +using BLL.Common; using BLL.CQMS.Comprehensive; +using NPOI.SS.Formula.Functions; +using NPOI.SS.UserModel; +using NPOI.XSSF.UserModel; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.Drawing.Imaging; +using System.IO; using System.Linq; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; namespace FineUIPro.Web.Transfer { @@ -22,13 +29,12 @@ namespace FineUIPro.Web.Transfer { GetButtonPower(); BindGrid(); + + this.btnNew.OnClientClick = Window1.GetShowReference("PunchlistFromEdit.aspx") + "return false;"; } } - /// - /// 数据绑定 - /// - public void BindGrid() + public DataTable DataSql() { string strSql = @"select * ,(CASE isnull(IsEng,0) WHEN 1 THEN 'Y' ELSE 'N' END) IsEngStr @@ -38,10 +44,10 @@ namespace FineUIPro.Web.Transfer List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); - if (!string.IsNullOrEmpty(this.txtNum_NO.Text.Trim())) + if (!string.IsNullOrEmpty(this.txtRaised_By.Text.Trim())) { - strSql += " AND Num_NO like @Num_NO"; - listStr.Add(new SqlParameter("@Num_NO", "%" + this.txtNum_NO.Text.Trim() + "%")); + strSql += " AND Raised_By = @Raised_By"; + listStr.Add(new SqlParameter("@Raised_By", this.txtRaised_By.Text.Trim())); } if (!string.IsNullOrEmpty(this.txtSystem_No.Text.Trim())) { @@ -96,16 +102,49 @@ namespace FineUIPro.Web.Transfer if (!string.IsNullOrEmpty(ddlMatI.SelectedValue.Trim())) { strSql += " AND IsMatI = @IsMatI"; - listStr.Add(new SqlParameter("@IsMatI", ddlMatI.SelectedValue.Trim() == "Y" ? 1 : 0)); + listStr.Add(new SqlParameter("@IsMatI", ddlMatI.SelectedValue.Trim())); } if (!string.IsNullOrEmpty(ddlPunchType.SelectedValue.Trim())) { strSql += " AND Punch_Type = @Punch_Type"; listStr.Add(new SqlParameter("@Punch_Type", ddlPunchType.SelectedValue.Trim())); } + if (!string.IsNullOrEmpty(ddlCat.SelectedValue.Trim())) + { + strSql += " AND Cat = @Cat"; + listStr.Add(new SqlParameter("@Cat", ddlCat.SelectedValue.Trim())); + } + if (!string.IsNullOrEmpty(txtAction_By.Text.Trim())) + { + strSql += " AND Action_By = @Action_By"; + listStr.Add(new SqlParameter("@Action_By", txtAction_By.Text.Trim())); + } + if (!string.IsNullOrEmpty(txtPIC.Text.Trim())) + { + strSql += " AND PIC = @PIC"; + listStr.Add(new SqlParameter("@PIC", txtPIC.Text.Trim())); + } + if (!string.IsNullOrEmpty(txtPIC_WUH.Text.Trim())) + { + strSql += " AND PIC_WUH = @PIC_WUH"; + listStr.Add(new SqlParameter("@PIC_WUH", txtPIC_WUH.Text.Trim())); + } + if (!string.IsNullOrEmpty(ddlStatus.SelectedValue.Trim())) + { + strSql += " AND Status = @Status"; + listStr.Add(new SqlParameter("@Status", ddlStatus.SelectedValue.Trim())); + } strSql += " order by Num_No "; SqlParameter[] parameter = listStr.ToArray(); - DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + return SQLHelper.GetDataTableRunText(strSql, parameter); + } + + /// + /// 数据绑定 + /// + public void BindGrid() + { + DataTable tb = DataSql(); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; @@ -277,13 +316,13 @@ namespace FineUIPro.Web.Transfer { if (buttonList.Contains(BLL.Const.BtnAdd)) { - //this.btnNew.Hidden = false; + this.btnNew.Hidden = false; btnMenuAttachA.Hidden = false; btnMenuAttachB.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { - //this.btnMenuModify.Hidden = false; + this.btnMenuModify.Hidden = false; this.Grid1.EnableRowDoubleClickEvent = true; btnMenuAttachA.Hidden = false; btnMenuAttachB.Hidden = false; @@ -304,25 +343,140 @@ namespace FineUIPro.Web.Transfer } #endregion - #region 附件上传 + #region 编辑 /// - /// 附件上传 + /// 右键编辑事件 /// /// /// - protected void btnAttach_Click(object sender, EventArgs e) + protected void btnMenuModify_Click(object sender, EventArgs e) { - var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.PunchlistFromMenuId); - if (buttonList.Contains(BLL.Const.BtnAdd)) + if (Grid1.SelectedRowIndexArray.Length == 0) { - PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/Transfer/PunchlistFrom&menuId={1}", this.CurrUser.LoginProjectId + "PunchlistFrom", BLL.Const.PunchlistFromMenuId))); + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; } - else + string id = Grid1.SelectedRowID; + var accidentPersonRecord = Funs.DB.Transfer_PunchlistFrom.FirstOrDefault(p => p.Id == id); + if (accidentPersonRecord == null) { - PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/Transfer/PunchlistFrom&menuId={1}", this.CurrUser.LoginProjectId + "PunchlistFrom", BLL.Const.PunchlistFromMenuId))); - + Alert.ShowInTop("修改的数据已经不存在,请检查!", MessageBoxIcon.Warning); + return; } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PunchlistFromEdit.aspx?Id={0}", id, "编辑 - "))); } #endregion + + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = string.Empty; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + string filePath = string.Empty; + initTemplatePath = "File\\Excel\\DataOut\\PunchlistFrom导出模板.xlsx"; + uploadfilepath = rootPath + initTemplatePath; + + DataTable tb = DataSql(); + if (tb.Rows.Count <= 0) + { + ShowNotify("没有要导出的数据!!!", MessageBoxIcon.Warning); + return; + } + newUrl = uploadfilepath.Replace("导出模板","导出数据").Replace(".xlsx",DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx"); + File.Copy(uploadfilepath, newUrl); + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + } + + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + + int i = 2; + foreach (DataRow tbRow in tb.Rows) + { + NPOI.SS.UserModel.IRow row = sheet.CreateRow(i); + NPOI.SS.UserModel.ICell cell; + cell = row.CreateCell(0); + cell.SetCellValue(tbRow["Num_NO"]==null?"": tbRow["Num_NO"].ToString()); + cell = row.CreateCell(1); + cell.SetCellValue(tbRow["System_No"] == null ? "" : tbRow["System_No"].ToString()); + cell = row.CreateCell(2); + cell.SetCellValue(tbRow["Sub_Sys_No"] == null ? "" : tbRow["Sub_Sys_No"].ToString()); + cell = row.CreateCell(3); + cell.SetCellValue(tbRow["DESCRIPTION"] == null ? "" : tbRow["DESCRIPTION"].ToString()); + + cell = row.CreateCell(5); + cell.SetCellValue(tbRow["Cat"] == null ? "" : tbRow["Cat"].ToString()); + cell = row.CreateCell(6); + cell.SetCellValue(tbRow["Raised_By"] == null ? "" : tbRow["Raised_By"].ToString()); + cell = row.CreateCell(7); + cell.SetCellValue(tbRow["Date_Raised"] == DBNull.Value ? "" :Convert.ToDateTime(tbRow["Date_Raised"]).ToString("yyyy-MM-dd")); + cell = row.CreateCell(8); + cell.SetCellValue(tbRow["Disc"] == null ? "" : tbRow["Disc"].ToString()); + cell = row.CreateCell(9); + cell.SetCellValue(tbRow["IsEngStr"] == null ? "" : tbRow["IsEngStr"].ToString()); + cell = row.CreateCell(10); + cell.SetCellValue(tbRow["IsMatIStr"] == null ? "" : tbRow["IsMatIStr"].ToString()); + cell = row.CreateCell(11); + cell.SetCellValue(tbRow["Punch_Type"] == null ? "" : tbRow["Punch_Type"].ToString()); + cell = row.CreateCell(12); + cell.SetCellValue(tbRow["Required_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Required_Date"]).ToString("yyyy-MM-dd")); + cell = row.CreateCell(13); + cell.SetCellValue(tbRow["Action_By"] == null ? "" : tbRow["Action_By"].ToString()); + cell = row.CreateCell(14); + cell.SetCellValue(tbRow["PIC"] == null ? "" : tbRow["PIC"].ToString()); + cell = row.CreateCell(15); + cell.SetCellValue(tbRow["PIC_WUH"] == null ? "" : tbRow["PIC_WUH"].ToString()); + cell = row.CreateCell(16); + cell.SetCellValue(tbRow["Correction_Action"] == null ? "" : tbRow["Correction_Action"].ToString()); + + cell = row.CreateCell(18); + cell.SetCellValue(tbRow["Actual_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Actual_Date"]).ToString("yyyy-MM-dd")); + cell = row.CreateCell(19); + cell.SetCellValue(tbRow["Cleared_By"] == null ? "" : tbRow["Cleared_By"].ToString()); + cell = row.CreateCell(20); + cell.SetCellValue(tbRow["Cleared_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Cleared_Date"]).ToString("yyyy-MM-dd")); + cell = row.CreateCell(21); + cell.SetCellValue(tbRow["Confirmed_By"] == null ? "" : tbRow["Confirmed_By"].ToString()); + cell = row.CreateCell(22); + cell.SetCellValue(tbRow["Confirmed_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Confirmed_Date"]).ToString("yyyy-MM-dd")); + cell = row.CreateCell(23); + cell.SetCellValue(tbRow["Verified_By"] == null ? "" : tbRow["Verified_By"].ToString()); + cell = row.CreateCell(24); + cell.SetCellValue(tbRow["Verified_Date"] == DBNull.Value ? "" : Convert.ToDateTime(tbRow["Verified_Date"]).ToString("yyyy-MM-dd")); + cell = row.CreateCell(25); + cell.SetCellValue(tbRow["Status"] == null ? "" : tbRow["Status"].ToString()); + cell = row.CreateCell(26); + cell.SetCellValue(tbRow["Remark"] == null ? "" : tbRow["Remark"].ToString()); + + + i++; + } + + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs index 6eb8ee22..043fe382 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs @@ -59,15 +59,6 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.Toolbar ToolSearch; - /// - /// txtNum_NO 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.TextBox txtNum_NO; - /// /// txtSystem_No 控件。 /// @@ -86,6 +77,24 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.TextBox txtSub_Sys_No; + /// + /// ddlCat 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlCat; + + /// + /// txtRaised_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRaised_By; + /// /// txtDisc 控件。 /// @@ -113,15 +122,6 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.DropDownList ddlMatI; - /// - /// ddlPunchType 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.DropDownList ddlPunchType; - /// /// btnSearch 控件。 /// @@ -131,6 +131,15 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.Button btnSearch; + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnNew; + /// /// btnImport 控件。 /// @@ -140,6 +149,69 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.Button btnImport; + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// ddlPunchType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPunchType; + + /// + /// txtAction_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtAction_By; + + /// + /// txtPIC 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPIC; + + /// + /// txtPIC_WUH 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPIC_WUH; + + /// + /// ddlStatus 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlStatus; + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// Toolbar1 控件。 /// @@ -284,6 +356,15 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.Window Window2; + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + /// /// Menu1 控件。 /// @@ -311,6 +392,15 @@ namespace FineUIPro.Web.Transfer /// protected global::FineUIPro.MenuButton btnMenuAttachB; + /// + /// btnMenuModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuModify; + /// /// btnMenuDel 控件。 /// diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs index b14b09c2..604b5e5d 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs @@ -106,7 +106,7 @@ namespace FineUIPro.Web.Transfer oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; oleDBConnString += "Data Source="; oleDBConnString += fileName; - oleDBConnString += ";Extended Properties=Excel 8.0;"; + oleDBConnString += ";Extended Properties='Excel 8.0;IMEX=1; 8.0;HDR=1;'"; OleDbConnection oleDBConn = null; OleDbDataAdapter oleAdMaster = null; DataTable m_tableName = new DataTable(); @@ -130,7 +130,7 @@ namespace FineUIPro.Web.Transfer oleDBConn.Close(); oleDBConn.Dispose(); - AddDatasetToSQL(ds.Tables[0], 24); + AddDatasetToSQL(ds.Tables[0], 23); hdCheckResult.Text = "1"; } catch (Exception exc) @@ -169,7 +169,7 @@ namespace FineUIPro.Web.Transfer for (int i = 1; i < ir; i++) { string allRowData = string.Empty; - for (int j = 0; j < 24; j++) + for (int j = 0; j < 23; j++) { allRowData += pds.Rows[i][j].ToString(); } @@ -343,7 +343,7 @@ namespace FineUIPro.Web.Transfer oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; oleDBConnString += "Data Source="; oleDBConnString += fileName; - oleDBConnString += ";Extended Properties=Excel 8.0;"; + oleDBConnString += ";Extended Properties='Excel 8.0;IMEX=1; 8.0;HDR=1;'"; OleDbConnection oleDBConn = null; OleDbDataAdapter oleAdMaster = null; DataTable m_tableName = new DataTable(); @@ -367,7 +367,7 @@ namespace FineUIPro.Web.Transfer oleDBConn.Close(); oleDBConn.Dispose(); - AddDatasetToSQL2(ds.Tables[0], 24); + AddDatasetToSQL2(ds.Tables[0], 23); } catch (Exception ex) { @@ -445,7 +445,7 @@ namespace FineUIPro.Web.Transfer model.Correction_Action = pds.Rows[i][14].ToString().Trim(); DateTime t15; if (DateTime.TryParse(pds.Rows[i][15].ToString(), out t15) && !string.IsNullOrEmpty(pds.Rows[i][15].ToString())) - model.PUNCH_ITEM_FINISH_DATE = t15; + model.Actual_Date = t15; model.Cleared_By = pds.Rows[i][16].ToString().Trim(); DateTime t17; if (DateTime.TryParse(pds.Rows[i][17].ToString(), out t17) && !string.IsNullOrEmpty(pds.Rows[i][17].ToString())) @@ -458,8 +458,16 @@ namespace FineUIPro.Web.Transfer DateTime t21; if (DateTime.TryParse(pds.Rows[i][21].ToString(), out t21) && !string.IsNullOrEmpty(pds.Rows[i][21].ToString())) model.Verified_Date = t21; - model.Status = pds.Rows[i][22].ToString().Trim(); - model.Remark = pds.Rows[i][23].ToString().Trim(); + model.Remark = pds.Rows[i][22].ToString().Trim(); + + + if (model.Cleared_Date == null && model.Confirmed_Date == null && model.Verified_Date == null) + model.Status = "Not Start"; + else if (model.Cleared_Date != null && model.Confirmed_Date != null && model.Verified_Date != null) + model.Status = "Completed"; + else + model.Status = "In Progress"; + list.Add(model); maxNumNO++; } diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx b/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx new file mode 100644 index 00000000..7840b644 --- /dev/null +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx @@ -0,0 +1,159 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PunchlistFromEdit.aspx.cs" Inherits="FineUIPro.Web.Transfer.PunchlistFromEdit" %> + + + + + + + 尾项管理新增编辑 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.cs new file mode 100644 index 00000000..6e3b2183 --- /dev/null +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.cs @@ -0,0 +1,222 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Xml; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace FineUIPro.Web.Transfer +{ + public partial class PunchlistFromEdit : PageBase + { + #region 定义项 + /// + /// 主键 + /// + private string Id + { + get + { + return (string)ViewState["Id"]; + } + set + { + ViewState["Id"] = value; + } + } + /// + /// 项目主键 + /// + public string ProjectId + { + get + { + return (string)ViewState["ProjectId"]; + } + set + { + ViewState["ProjectId"] = value; + } + } + #endregion + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.Id = Request.Params["Id"]; + this.ProjectId = this.CurrUser.LoginProjectId; + var TransferPunchlistFrom = Funs.DB.Transfer_PunchlistFrom.FirstOrDefault(p => p.Id == this.Id); + if (TransferPunchlistFrom != null) + { + this.txtSystem_No.Text = TransferPunchlistFrom.System_No; + this.txtSub_Sys_No.Text = TransferPunchlistFrom.Sub_Sys_No; + this.txtDESCRIPTION.Text = TransferPunchlistFrom.DESCRIPTION; + this.ddlCat.SelectedValue = TransferPunchlistFrom.Cat; + this.txtRaised_By.Text = TransferPunchlistFrom.Raised_By; + if (TransferPunchlistFrom.Date_Raised != null) + this.txtDate_Raised.Text = Convert.ToDateTime(TransferPunchlistFrom.Date_Raised).ToString("yyyy-MM-dd"); + this.txtDisc.Text = TransferPunchlistFrom.Disc; + if (TransferPunchlistFrom.IsEng == true) + this.ddlIsEng.SelectedValue = "Y"; + else + this.ddlIsEng.SelectedValue = "N"; + this.ddlIsMatI.SelectedValue = TransferPunchlistFrom.IsMatI ?? ""; + this.txtPunch_Type.Text = TransferPunchlistFrom.Punch_Type; + if (TransferPunchlistFrom.Required_Date != null) + this.txtRequired_Date.Text = Convert.ToDateTime(TransferPunchlistFrom.Required_Date).ToString("yyyy-MM-dd"); + this.txtAction_By.Text = TransferPunchlistFrom.Action_By; + this.txtPIC.Text = TransferPunchlistFrom.PIC; + this.txtPIC_WUH.Text = TransferPunchlistFrom.PIC_WUH; + this.txtCorrection_Action.Text = TransferPunchlistFrom.Correction_Action; + if (TransferPunchlistFrom.Actual_Date != null) + this.txtActual_Date.Text = Convert.ToDateTime(TransferPunchlistFrom.Actual_Date).ToString("yyyy-MM-dd"); + this.txtCleared_By.Text = TransferPunchlistFrom.Cleared_By; + if (TransferPunchlistFrom.Cleared_Date != null) + this.txtCleared_Date.Text = Convert.ToDateTime(TransferPunchlistFrom.Cleared_Date).ToString("yyyy-MM-dd"); + this.txtConfirmed_By.Text = TransferPunchlistFrom.Confirmed_By; + if (TransferPunchlistFrom.Confirmed_Date != null) + this.txtConfirmed_Date.Text = Convert.ToDateTime(TransferPunchlistFrom.Confirmed_Date).ToString("yyyy-MM-dd"); + this.txtVerified_By.Text = TransferPunchlistFrom.Verified_By; + if (TransferPunchlistFrom.Verified_Date != null) + this.txtVerified_Date.Text = Convert.ToDateTime(TransferPunchlistFrom.Verified_Date).ToString("yyyy-MM-dd"); + this.txtRemark.Text = TransferPunchlistFrom.Remark; + } + } + } + + /// + /// Photoes附件上传 + /// + /// + /// + protected void btnAttachA_Click(object sender, EventArgs e) + { + AttachFileClick("A"); + } + /// + /// Corrected Photos附件上传 + /// + /// + /// + protected void btnAttachB_Click(object sender, EventArgs e) + { + AttachFileClick("B"); + } + + /// + /// 通过不同的type来保存附件 + /// + /// + private void AttachFileClick(string type) + { + SaveData(); + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?type=0&toKeyId={0}_{1}&path=FileUpload/Transfer/PunchlistFrom&menuId={2}", this, Id, type, BLL.Const.PunchlistFromMenuId))); + } + + /// + /// 保存 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (SaveData() == 0) { + Alert.ShowInTop("保存失败!", MessageBoxIcon.Warning); + return; + } + ShowNotify("保存成功",MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + } + + /// + /// 保存数据 + /// + /// + private int SaveData() + { + int reutState = 0; + var maxNumNO = 0; + var modelTp = Funs.DB.Transfer_PunchlistFrom.OrderByDescending(x => x.Num_NO).FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId); + if (modelTp == null) + maxNumNO = 1; + else + maxNumNO = Convert.ToInt32(modelTp.Num_NO) + 1; + + Model.Transfer_PunchlistFrom newTransferFrom = new Model.Transfer_PunchlistFrom() + { + Id= Guid.NewGuid().ToString(), + Num_NO = maxNumNO.ToString("0000"), + ProjectId=this.ProjectId, + System_No = this.txtSystem_No.Text.Trim(), + Sub_Sys_No = this.txtSub_Sys_No.Text.Trim(), + DESCRIPTION = this.txtDESCRIPTION.Text.Trim(), + Cat = this.ddlCat.SelectedValue, + Raised_By = this.txtRaised_By.Text.Trim(), + Date_Raised = Funs.GetNewDateTime(this.txtDate_Raised.Text), + Disc = this.txtDisc.Text.Trim(), + IsEng = this.ddlIsEng.SelectedValue == "Y" ? true : false, + IsMatI = this.ddlIsMatI.SelectedValue, + Punch_Type = this.txtPunch_Type.Text.Trim(), + Required_Date= Funs.GetNewDateTime(this.txtRequired_Date.Text), + Action_By= this.txtAction_By.Text.Trim(), + PIC= this.txtPIC.Text.Trim(), + PIC_WUH=this.txtPIC_WUH.Text.Trim(), + Correction_Action= this.txtCorrection_Action.Text.Trim(), + Actual_Date = Funs.GetNewDateTime(this.txtActual_Date.Text), + Cleared_By= this.txtCleared_By.Text.Trim(), + Cleared_Date = Funs.GetNewDateTime(this.txtCleared_Date.Text), + Confirmed_By= this.txtConfirmed_By.Text.Trim(), + Confirmed_Date = Funs.GetNewDateTime(this.txtConfirmed_Date.Text), + Verified_By= this.txtVerified_By.Text.Trim(), + Verified_Date = Funs.GetNewDateTime(this.txtVerified_Date.Text), + Remark= this.txtRemark.Text.Trim() + }; + + if (newTransferFrom.Cleared_Date == null && newTransferFrom.Confirmed_Date == null && newTransferFrom.Verified_Date == null) + newTransferFrom.Status = "Not Start"; + else if (newTransferFrom.Cleared_Date != null && newTransferFrom.Confirmed_Date != null && newTransferFrom.Verified_Date != null) + newTransferFrom.Status = "Completed"; + else + newTransferFrom.Status = "In Progress"; + + var TransferPunchlistFrom = Funs.DB.Transfer_PunchlistFrom.FirstOrDefault(p => p.Id == this.Id); + if (TransferPunchlistFrom == null) + { + Funs.DB.Transfer_PunchlistFrom.InsertOnSubmit(newTransferFrom); + this.Id = newTransferFrom.Id; + } + else + { + TransferPunchlistFrom.System_No = newTransferFrom.System_No; + TransferPunchlistFrom.Sub_Sys_No = newTransferFrom.Sub_Sys_No; + TransferPunchlistFrom.DESCRIPTION = newTransferFrom.DESCRIPTION; + TransferPunchlistFrom.Cat = newTransferFrom.Cat; + TransferPunchlistFrom.Raised_By = newTransferFrom.Raised_By; + TransferPunchlistFrom.Date_Raised = newTransferFrom.Date_Raised; + TransferPunchlistFrom.Disc = newTransferFrom.Disc; + TransferPunchlistFrom.IsEng = newTransferFrom.IsEng; + TransferPunchlistFrom.IsMatI = newTransferFrom.IsMatI; + TransferPunchlistFrom.Punch_Type = newTransferFrom.Punch_Type; + TransferPunchlistFrom.Required_Date = newTransferFrom.Required_Date; + TransferPunchlistFrom.Action_By = newTransferFrom.Action_By; + TransferPunchlistFrom.PIC = newTransferFrom.PIC; + TransferPunchlistFrom.PIC_WUH = newTransferFrom.PIC_WUH; + TransferPunchlistFrom.Correction_Action = newTransferFrom.Correction_Action; + TransferPunchlistFrom.Actual_Date = newTransferFrom.Actual_Date; + TransferPunchlistFrom.Cleared_By = newTransferFrom.Cleared_By; + TransferPunchlistFrom.Cleared_Date = newTransferFrom.Cleared_Date; + TransferPunchlistFrom.Confirmed_By = newTransferFrom.Confirmed_By; + TransferPunchlistFrom.Confirmed_Date = newTransferFrom.Confirmed_Date; + TransferPunchlistFrom.Verified_By = newTransferFrom.Verified_By; + TransferPunchlistFrom.Verified_Date = newTransferFrom.Verified_Date; + TransferPunchlistFrom.Remark = newTransferFrom.Remark; + TransferPunchlistFrom.Status = newTransferFrom.Status; + } + Funs.DB.SubmitChanges(); + reutState = 1; + return reutState; + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.designer.cs new file mode 100644 index 00000000..f0269a8b --- /dev/null +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFromEdit.aspx.designer.cs @@ -0,0 +1,332 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.Transfer +{ + + + public partial class PunchlistFromEdit + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// txtSystem_No 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSystem_No; + + /// + /// txtSub_Sys_No 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSub_Sys_No; + + /// + /// txtDESCRIPTION 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtDESCRIPTION; + + /// + /// ddlCat 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlCat; + + /// + /// txtRaised_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRaised_By; + + /// + /// txtDate_Raised 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtDate_Raised; + + /// + /// txtDisc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtDisc; + + /// + /// ddlIsEng 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlIsEng; + + /// + /// ddlIsMatI 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlIsMatI; + + /// + /// txtPunch_Type 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPunch_Type; + + /// + /// txtRequired_Date 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtRequired_Date; + + /// + /// txtAction_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtAction_By; + + /// + /// txtPIC 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPIC; + + /// + /// txtPIC_WUH 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPIC_WUH; + + /// + /// txtCorrection_Action 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtCorrection_Action; + + /// + /// txtActual_Date 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtActual_Date; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// txtCleared_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtCleared_By; + + /// + /// txtCleared_Date 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtCleared_Date; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// txtConfirmed_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtConfirmed_By; + + /// + /// txtConfirmed_Date 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtConfirmed_Date; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel3; + + /// + /// txtVerified_By 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtVerified_By; + + /// + /// txtVerified_Date 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtVerified_Date; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtRemark; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// btnAttach_A 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAttach_A; + + /// + /// btnAttach_B 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAttach_B; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +}