From 5378f1b26dd8fef767ae5b1b1eb80cae7455596a Mon Sep 17 00:00:00 2001 From: fly-l <1420031550@qq.com> Date: Wed, 21 Feb 2024 15:13:54 +0800 Subject: [PATCH] =?UTF-8?q?2024-02-21=20=E5=BC=80=E8=BD=A6=E5=88=86?= =?UTF-8?q?=E5=8C=85=E7=AE=A1=E7=90=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2024-02-21-lpf.sql | 35 +++ SGGL/BLL/BLL.csproj | 3 + .../DriverSub/DriverSubContactService.cs | 37 ++- .../BLL/TestRun/DriverSub/DriverSubService.cs | 255 ++++++++++++------ .../File/Word/TestRun/履约情况评价表.doc | Bin 0 -> 45568 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 8 + SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- .../TestRun/DriverSub/DriverSub.aspx | 3 +- .../TestRun/DriverSub/DriverSub.aspx.cs | 18 ++ .../DriverSub/DriverSub.aspx.designer.cs | 9 + .../TestRun/DriverSub/DriverSubEdit.aspx | 13 +- .../TestRun/DriverSub/DriverSubEdit.aspx.cs | 16 +- .../DriverSub/DriverSubEdit.aspx.designer.cs | 36 +++ .../TestRun/DriverSub/DriverSubPlan.aspx | 4 +- .../TestRun/DriverSub/DriverSubPlanEdit.aspx | 7 +- .../DriverSub/DriverSubPlanEdit.aspx.cs | 18 +- .../DriverSubPlanEdit.aspx.designer.cs | 9 - .../DriverSub/DriverSubSetContactorEdit.aspx | 2 +- .../DriverSub/DriverSubSetProgressEdit.aspx | 70 +++++ .../DriverSubSetProgressEdit.aspx.cs | 115 ++++++++ .../DriverSubSetProgressEdit.aspx.designer.cs | 161 +++++++++++ SGGL/FineUIPro.Web/Web.config | 6 +- SGGL/Model/Model.cs | 96 +++++++ SGGL/WebAPI/WebAPI.csproj.user | 2 +- 24 files changed, 801 insertions(+), 124 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-02-21-lpf.sql create mode 100644 SGGL/FineUIPro.Web/File/Word/TestRun/履约情况评价表.doc create mode 100644 SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSubSetProgressEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSubSetProgressEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSubSetProgressEdit.aspx.designer.cs diff --git a/DataBase/版本日志/SGGLDB_WH_2024-02-21-lpf.sql b/DataBase/版本日志/SGGLDB_WH_2024-02-21-lpf.sql new file mode 100644 index 00000000..191d8e05 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-02-21-lpf.sql @@ -0,0 +1,35 @@ + +alter table dbo.DriverSub_DriverSubContact + add State int +go + +exec sp_addextendedproperty 'MS_Description', N'分包状态', 'SCHEMA', 'dbo', 'TABLE', 'DriverSub_DriverSubContact', + 'COLUMN', 'State' +go + + +alter table dbo.DriverSub_DriverSub + add SubContractName nvarchar(100) +go + +exec sp_addextendedproperty 'MS_Description', N'开车分包名称', 'SCHEMA', 'dbo', 'TABLE', 'DriverSub_DriverSub', + 'COLUMN', 'SubContractName' +go + +alter table dbo.DriverSub_DriverSub + add DriverContractCode nvarchar(100) +go + +exec sp_addextendedproperty 'MS_Description', N'开车合同号', 'SCHEMA', 'dbo', 'TABLE', 'DriverSub_DriverSub', 'COLUMN', + 'DriverContractCode' +go + +alter table dbo.DriverSub_DriverSub + add Evaluator nvarchar(100) +go + +exec sp_addextendedproperty 'MS_Description', N'评价人', 'SCHEMA', 'dbo', 'TABLE', 'DriverSub_DriverSub', 'COLUMN', + 'Evaluator' +go + + diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index 372cebec..af7de356 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -47,6 +47,9 @@ ..\..\..\SGGL_CWCEC\SGGL\BLL\bin\Debug\Apache.NMS.ActiveMQ.dll + + ..\FineUIPro\Reference BLL\Aspose.Words.dll + False ..\FineUIPro\FineUIPro.dll diff --git a/SGGL/BLL/TestRun/DriverSub/DriverSubContactService.cs b/SGGL/BLL/TestRun/DriverSub/DriverSubContactService.cs index cc2e4d1d..9aea23db 100644 --- a/SGGL/BLL/TestRun/DriverSub/DriverSubContactService.cs +++ b/SGGL/BLL/TestRun/DriverSub/DriverSubContactService.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Net.NetworkInformation; using FineUIPro; using Model; @@ -45,6 +46,7 @@ namespace BLL newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId; newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType; newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional; + newDriverSubContact.State= DriverSubContact.State; Funs.DB.DriverSub_DriverSubContact.InsertOnSubmit(newDriverSubContact); Funs.DB.SubmitChanges(); } @@ -64,6 +66,7 @@ namespace BLL newDriverSubContact.DriverSubContractorsId = DriverSubContact.DriverSubContractorsId; newDriverSubContact.SubcontractingType = DriverSubContact.SubcontractingType; newDriverSubContact.IsBidirectional = DriverSubContact.IsBidirectional; + newDriverSubContact.State = DriverSubContact.State; Funs.DB.SubmitChanges(); } } @@ -154,10 +157,36 @@ namespace BLL } Funs.DB.SubmitChanges(); } - - - - + /// + /// 确定分包商状态 + /// + /// + /// + /// + public static void SetState(string driverSubPlanId, string driverSubContractorsId, string state) + { + if (string.IsNullOrEmpty(state)) + { + return; + } + var list = Funs.DB.DriverSub_DriverSubContact.Where(e => e.DriverSubPlanId == driverSubPlanId && e.DriverSubContractorsId == driverSubContractorsId).ToList(); + foreach (var item in list) + { + item.State =int.Parse( state); + } + Funs.DB.SubmitChanges(); + } + /// + /// 分包状态下拉框 + /// + /// + public static void InitDriverSubPlanState( DropDownList dropDownList) + { + dropDownList.DataSource = DropListService.drpDriverSubPlanStateList(); + dropDownList.DataTextField = "Text"; + dropDownList.DataValueField = "Value"; + dropDownList.DataBind(); ; + } } } diff --git a/SGGL/BLL/TestRun/DriverSub/DriverSubService.cs b/SGGL/BLL/TestRun/DriverSub/DriverSubService.cs index 3adfda9d..4fe89d3e 100644 --- a/SGGL/BLL/TestRun/DriverSub/DriverSubService.cs +++ b/SGGL/BLL/TestRun/DriverSub/DriverSubService.cs @@ -1,8 +1,12 @@ using System; using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using Aspose.Words; namespace BLL { @@ -20,8 +24,9 @@ namespace BLL { return Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubId == DriverSubId); } + /// - /// 根据 + /// 根据分包计划和分包商获取开车分包管理信息 /// /// /// @@ -31,6 +36,89 @@ namespace BLL { return Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId&& e.DriverSubContractorsId==DriverSubContractorsId); } + + /// + /// DriverSubPlanId和DriverSubContractorsId 获取对象的EvaluationData信息,将json数据EvaluationData 转换成List + /// + /// + /// + /// + public static List GetDriverSubEvaluationData(string DriverSubPlanId, + string DriverSubContractorsId) + { + List list = new List(); + Model.DriverSub_DriverSub data = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId && e.DriverSubContractorsId == DriverSubContractorsId); + if (data != null) + { + list = Newtonsoft.Json.JsonConvert.DeserializeObject>(data.EvaluationData); + } + return list; + } + + /// + /// 将List DriverSubEvaluationData转换成json数据 + /// + /// + /// + public static string GetDriverSubEvaluationDataJson(List list) + { + return Newtonsoft.Json.JsonConvert.SerializeObject(list); + } + + /// + /// 根据分包类别获取初始化数据List + /// + /// + public static List GetDriverSubEvaluationData(string type ) + { + + List list = new List(); + switch (type) + { + case "1"://催化剂装填 + list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "催化剂装填准备", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "催化剂装填实施", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "装填结果认定", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" }); + // list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" }); + break; + case "2"://烘炉 + list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "烘炉准备", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "烘炉实施", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "烘炉结果认定", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" }); + // list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" }); + break; + case "3"://化学清洗 + list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "化学清洗准备", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "化学清洗实施", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "清洗结果认定", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" }); + // list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" }); + break; + case "4"://开车队 + list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "业主人员培训", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "编制技术方案", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "预试车", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "联动试车", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "投料试车", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "生产试运行", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "性能考核", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 8, Matter = "生产安全", Grade = "" }); + list.Add(new Model.DriverSubEvaluationData() { Number = 9, Matter = "试车进度", Grade = "" }); + // list.Add(new Model.DriverSubEvaluationData() { Number = 10, Matter = "其他", Grade = "" }); + break; + } + + return list; + } + /// /// 添加开车分包管理信息 /// @@ -45,6 +133,9 @@ namespace BLL newDriverSub.DriverSubPlanId= DriverSub.DriverSubPlanId; newDriverSub.DriverSubContractorsId = DriverSub.DriverSubContractorsId; newDriverSub.EvaluationData = DriverSub.EvaluationData; + newDriverSub.DriverContractCode= DriverSub.DriverContractCode; + newDriverSub.SubContractName = DriverSub.SubContractName; + newDriverSub.Evaluator= DriverSub.Evaluator; Funs.DB.DriverSub_DriverSub.InsertOnSubmit(newDriverSub); Funs.DB.SubmitChanges(); } @@ -63,9 +154,91 @@ namespace BLL newDriverSub.DriverSubPlanId = DriverSub.DriverSubPlanId; newDriverSub.DriverSubContractorsId = DriverSub.DriverSubContractorsId; newDriverSub.EvaluationData = DriverSub.EvaluationData; + newDriverSub.DriverContractCode = DriverSub.DriverContractCode; + newDriverSub.SubContractName = DriverSub.SubContractName; + newDriverSub.Evaluator = DriverSub.Evaluator; Funs.DB.SubmitChanges(); } } + + public static Document Print(string driverSubPlanId, string driverSubContractorsId) + { + string rootPath = Funs.RootPath; + + string initTemplatePath = string.Empty; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + initTemplatePath = "File\\Word\\TestRun\\履约情况评价表.doc"; + uploadfilepath = rootPath + initTemplatePath; + newUrl = uploadfilepath.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".doc"); + if (File.Exists(newUrl)) + { + File.Delete(newUrl); + } + File.Copy(uploadfilepath, newUrl); + + //定义实体 + var model = GetDriverSubBySubPlanIdAndTractorsId(driverSubPlanId,driverSubContractorsId);//分包管理实体 + var subContractorsModel = DriversubcontractorsService.GetDriverSub_DriverSubContractorsById(driverSubContractorsId);//分包商实体 + var evaluationData = GetDriverSubEvaluationData(driverSubPlanId, driverSubContractorsId);//打分数据 + var projectModel = ProjectService.GetProjectByProjectId(model.ProjectId);//项目实体 + + string subcontractingType = BLL.DriverSubPlanService.GetSubcontractingTypeNames(subContractorsModel.SubcontractingType);//分包类别名称 + + + //打分数数据绑定 + DataTable tb= Funs.LINQToDataTable(evaluationData); + tb.TableName = "Table"; + Document doc = new Aspose.Words.Document(newUrl); + doc.MailMerge.ExecuteWithRegions(tb); + + Dictionary Dic_File = new Dictionary(); + Dic_File.Add("txtSubcontractingType", subcontractingType); + Dic_File.Add("txtProjectCode", projectModel.ProjectCode); + Dic_File.Add("txtSubContractName", model.SubContractName); + Dic_File.Add("txtDriverContractCode", model.DriverContractCode); + Dic_File.Add("txtSubUnitName",subContractorsModel.SubUnitName); + Dic_File.Add("txtEvaluator", model.Evaluator); + foreach (var item in Dic_File) + { + string[] key = { item.Key }; + object[] value = { item.Value }; + doc.MailMerge.Execute(key, value); + + } + doc.Save(newUrl); + Document doc1 = new Aspose.Words.Document(newUrl); + File.Delete(newUrl); + return doc1; + } + public static void PrintFile(string driverSubPlanId, string driverSubContractorsId) + { + string rootPath = Funs.RootPath; + + string newUrl = string.Empty; + newUrl = rootPath + "File\\Word\\TestRun\\履约情况评价表.doc"; + newUrl = newUrl.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".doc"); + if (File.Exists(newUrl)) + { + File.Delete(newUrl); + } + var doc = Print(driverSubPlanId,driverSubContractorsId); + doc.Save(newUrl); + + //验证参数 + if (doc == null) { throw new Exception("Word文件无效"); } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + System.Web.HttpContext.Current.Response.Clear(); + System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed"; + System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString()); + System.Web.HttpContext.Current.Response.TransmitFile(newUrl, 0, fileSize); + System.Web.HttpContext.Current.Response.Flush(); + System.Web.HttpContext.Current.Response.Close(); + File.Delete(newUrl); + } /// /// 根据主键删除开车分包管理 @@ -80,25 +253,12 @@ namespace BLL Funs.DB.SubmitChanges(); } } - //DriverSubPlanId和DriverSubContractorsId 获取对象的EvaluationData信息,将json数据EvaluationData 转换成List - public static List GetDriverSubEvaluationData(string DriverSubPlanId, - string DriverSubContractorsId) - { - List list = new List(); - Model.DriverSub_DriverSub data = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId && e.DriverSubContractorsId == DriverSubContractorsId); - if (data != null) - { - list = Newtonsoft.Json.JsonConvert.DeserializeObject>(data.EvaluationData); - } - return list; - } - //将List转换成json数据 - public static string GetDriverSubEvaluationDataJson(List list) - { - return Newtonsoft.Json.JsonConvert.SerializeObject(list); - } - //DriverSubPlanId和DriverSubContractorsId 删除数据 + /// + /// DriverSubPlanId和DriverSubContractorsId 删除数据 + /// + /// + /// public static void DeleteDriverSubEvaluationData(string DriverSubPlanId, string DriverSubContractorsId) { Model.DriverSub_DriverSub data = Funs.DB.DriverSub_DriverSub.FirstOrDefault(e => e.DriverSubPlanId == DriverSubPlanId && e.DriverSubContractorsId == DriverSubContractorsId); @@ -108,6 +268,7 @@ namespace BLL Funs.DB.SubmitChanges(); } } + /// /// 根据DriverSubPlanId删除实体 /// @@ -129,61 +290,5 @@ namespace BLL Funs.DB.SubmitChanges(); } } - - - /// - /// 获取初始化数据List - /// - /// - public static List GetDriverSubEvaluationData(string type ) - { - - List list = new List(); - switch (type) - { - case "1"://催化剂装填 - list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "催化剂装填准备", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "催化剂装填实施", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "装填结果认定", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" }); - break; - case "2"://烘炉 - list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "烘炉准备", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "烘炉实施", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "烘炉结果认定", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" }); - break; - case "3"://化学清洗 - list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "方案编制", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "化学清洗准备", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "人员配合", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "化学清洗实施", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "清洗结果认定", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "收尾处理", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "其他", Grade = "" }); - break; - case "4"://开车队 - list.Add(new Model.DriverSubEvaluationData() { Number = 1, Matter = "业主人员培训", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 2, Matter = "编制技术方案", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 3, Matter = "预试车", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 4, Matter = "联动试车", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 5, Matter = "投料试车", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 6, Matter = "生产试运行", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 7, Matter = "性能考核", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 8, Matter = "生产安全", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 9, Matter = "试车进度", Grade = "" }); - list.Add(new Model.DriverSubEvaluationData() { Number = 10, Matter = "其他", Grade = "" }); - break; - } - - return list; - } - } } diff --git a/SGGL/FineUIPro.Web/File/Word/TestRun/履约情况评价表.doc b/SGGL/FineUIPro.Web/File/Word/TestRun/履约情况评价表.doc new file mode 100644 index 0000000000000000000000000000000000000000..7e7fe1d9b42a6e288ba02e4ee4ea1b7f1c6a6442 GIT binary patch literal 45568 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 + @@ -15901,6 +15902,13 @@ DriverSubSetContactorEdit.aspx + + DriverSubSetProgressEdit.aspx + ASPXCodeBehind + + + DriverSubSetProgressEdit.aspx + CompleteSummary.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 63ca13cc..9e91deff 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true false diff --git a/SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSub.aspx b/SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSub.aspx index fe45b0b2..a3f8cf37 100644 --- a/SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSub.aspx +++ b/SGGL/FineUIPro.Web/TestRun/DriverSub/DriverSub.aspx @@ -28,6 +28,7 @@ + @@ -66,7 +67,7 @@