20240428 综合管理导出

This commit is contained in:
毕文静 2024-04-28 10:23:34 +08:00
parent 34b758f841
commit ca070d56cf
29 changed files with 1208 additions and 125 deletions

View File

@ -3251,11 +3251,6 @@ namespace BLL
/// </summary>
public const string CQMS_TrainingRecordsTemplateUrl= "File\\Excel\\DataIn\\培训记录导入模板.xls";
/// <summary>
/// 质量专项检查模板文件原始虚拟路径
/// </summary>
public const string JointCheckTempUrl = "File\\Excel\\CQMS\\质量专项检查模版.xlsx";
/// <summary>
/// 设计交底导入模板文件原始虚拟路径
/// </summary>
@ -3301,6 +3296,42 @@ namespace BLL
/// </summary>
public const string ConTechnologyDisclosureTemUrl = "File\\Excel\\DataIn\\施工技术交底管理导入模板.xls";
#region
/// <summary>
/// 质量专项检查模板文件原始虚拟路径
/// </summary>
public const string JointCheckTempUrl = "File\\Excel\\CQMS\\质量专项检查模版.xls";
/// <summary>
/// 设备材料报验模板文件原始虚拟路径
/// </summary>
public const string InspectionEquipmentTempUrl = "File\\Excel\\CQMS\\设备材料报验模板.xls";
/// <summary>
/// 人员报验模板文件原始虚拟路径
/// </summary>
public const string InspectionPersonTempUrl = "File\\Excel\\CQMS\\人员报验模板.xls";
/// <summary>
/// 机具报验模板文件原始虚拟路径
/// </summary>
public const string InspectionMachineTempUrl = "File\\Excel\\CQMS\\机具报验模板.xls";
/// <summary>
/// 资料收发文登记记录模板文件原始虚拟路径
/// </summary>
public const string DataReceivingDocTempUrl = "File\\Excel\\CQMS\\资料收发文登记记录模板.xls";
/// <summary>
/// 培训记录模板文件原始虚拟路径
/// </summary>
public const string TrainingRecordsTempUrl = "File\\Excel\\CQMS\\培训记录模板.xls";
/// <summary>
/// 施工技术交底模板文件原始虚拟路径
/// </summary>
public const string ConTechnologyDisclosureTempUrl = "File\\Excel\\CQMS\\施工技术交底管理模板.xls";
#endregion
#endregion
#region

View File

@ -418,13 +418,14 @@ namespace FineUIPro.Web.CQMS.Check
var lists = BLL.JointCheckService.GetDriverPlanByProjectId(this.CurrUser.LoginProjectId);
if (lists != null)
{
newUrl = uploadfilepath.Replace("质量专项检查模版.xlsx", "质量专项检查.xlsx");
newUrl = uploadfilepath.Replace("质量专项检查模版.xls", "质量专项检查.xls");
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);
//workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();

View File

@ -34,6 +34,9 @@
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Icon="PackageIn" runat="server" OnClick="btnImport_Click" Hidden="true">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
@ -230,6 +231,152 @@ namespace FineUIPro.Web.CQMS.Comprehensive
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.ConTechnologyDisclosureTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_ConTechnologyDisclosure
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (sdrpUnitId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.UnitId == sdrpUnitId.SelectedValue);
}
if (this.drpProfessionalId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.CNProfessionalId == this.drpProfessionalId.SelectedValue);
}
if (!string.IsNullOrEmpty(this.txtCode.Text.Trim()))
{
lists = lists.Where(x => x.DisclosureCode.Contains(this.txtCode.Text.Trim()));
}
lists = lists.OrderBy(x => x.UnitId);
if (lists != null)
{
newUrl = uploadfilepath.Replace("施工技术交底管理模板.xls", "施工技术交底管理.xls");
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);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 1;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
string proName = string.Empty;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
proName = cnp.ProfessionalName;
}
cell.SetCellValue(proName);//专业
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DisclosureCode);//交底文件编号
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DisclosureName);//交底施工方案
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
string unitName = string.Empty;
if (!string.IsNullOrEmpty(item.UnitId))
{
unitName = BLL.UnitService.GetUnitNameByUnitId(item.UnitId);
}
cell.SetCellValue(unitName);//交底负责单位
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DisclosureMan);//交底人
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DisclosureDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.DisclosureDate) : "");//交底日期
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
string unitWork = string.Empty;
if (!string.IsNullOrEmpty(item.UnitWorkId))
{
unitWork = ConvertUnitWork(item.UnitWorkId);
}
cell.SetCellValue(unitWork);//单位工程
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.AttendMan);//参加人员
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);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 获取按钮权限

View File

@ -111,6 +111,15 @@ namespace FineUIPro.Web.CQMS.Comprehensive {
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblPageIndex 控件。
/// </summary>

View File

@ -34,6 +34,9 @@
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Hidden="true" Icon="PackageIn" runat="server" OnClick="btnImport_Click">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.CQMS.Comprehensive
@ -320,5 +321,221 @@ namespace FineUIPro.Web.CQMS.Comprehensive
}
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.DataReceivingDocTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_DataReceivingDoc
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (!string.IsNullOrEmpty(this.stxtFileCode.Text.Trim()))
{
lists = lists.Where(x => x.FileCode.Contains(stxtFileCode.Text.Trim()));
}
if (!string.IsNullOrEmpty(this.stxtFileName.Text.Trim()))
{
lists = lists.Where(x => x.FileName.Contains(this.stxtFileName.Text.Trim()));
}
lists = lists.OrderBy(x => x.FileCode);
if (lists != null)
{
newUrl = uploadfilepath.Replace("资料收发文登记记录模板.xls", "资料收发文登记记录.xls");
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);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 1;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ReceiveDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ReceiveDate) : "");//日期
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.FileCode);//文件号
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.FileName);//文件名称
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.FileType);//文件类别
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
string proName = string.Empty;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
proName = cnp.ProfessionalName;
}
cell.SetCellValue(proName);//专业
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
string unitName = string.Empty;
if (!string.IsNullOrEmpty(item.SendUnit))
{
unitName = BLL.UnitService.GetUnitNameByUnitId(item.SendUnit);
}
cell.SetCellValue(unitName);//发件单位
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.SendMan);//发件人
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Copies.HasValue ? item.Copies.ToString() : "");//份数
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DocumentHandler);//文件处理人
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.SendDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.SendDate) : "");//发出日期
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
string receiveUnitName = string.Empty;
if (!string.IsNullOrEmpty(item.ReceiveUnit))
{
receiveUnitName = ConvertCarryUnit(item.ReceiveUnit);
}
cell.SetCellValue(receiveUnitName);//接收单位
cell = row.CreateCell(11);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ReceiveMan);//接收人
cell = row.CreateCell(12);
cell.CellStyle = cellStyle;
string isR = string.Empty;
if (item.IsReply.HasValue)
{
if (item.IsReply == true)
{
isR = "是";
}
else if (item.IsReply == false)
{
isR = "否";
}
}
cell.SetCellValue(isR);//是否需回复
cell = row.CreateCell(13);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ReturnWuhuangDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ReturnWuhuangDate) : "");//返回五环日期
cell = row.CreateCell(14);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.RetrunWuhuangCopies.HasValue ? item.RetrunWuhuangCopies.ToString() : "");//返回五环份数
cell = row.CreateCell(15);
cell.CellStyle = cellStyle;
string issueToUnitName = string.Empty;
if (!string.IsNullOrEmpty(item.IssueToUnit))
{
issueToUnitName = ConvertCarryUnit(item.IssueToUnit);
}
cell.SetCellValue(issueToUnitName);//下发至单位
cell = row.CreateCell(16);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.IssueCopies.HasValue ? item.IssueCopies.ToString() : "");//下发份数
cell = row.CreateCell(17);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.IssueUnitReceiver);//下发单位接收人
cell = row.CreateCell(18);
cell.CellStyle = cellStyle;
string isO = string.Empty;
if (item.IsOnFile.HasValue)
{
if (item.IsOnFile == true)
{
isO = "是";
}
else if (item.IsOnFile == false)
{
isO = "否";
}
}
cell.SetCellValue(isO);//是否存档
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);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
}
}

View File

@ -102,6 +102,15 @@ namespace FineUIPro.Web.CQMS.Comprehensive {
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblPageIndex 控件。
/// </summary>

View File

@ -39,6 +39,9 @@
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Icon="PackageIn" runat="server" OnClick="btnImport_Click" Hidden="true">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

View File

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.Comprehensive
{
@ -242,33 +243,7 @@ namespace FineUIPro.Web.Comprehensive
}
#endregion
//public string ConvertState(object value)
//{
// var status = 0;
// int.TryParse(value.ToString(), out status);
// if (status == 0)
// {
// return "待审核";
// }
// else if (status == 1)
// {
// return "合格";
// }
// else if (status == 2)
// {
// return "驳回";
// }
// else if (status == 3)
// {
// return "重报";
// }
// return "待审核";
//}
#region
public static string ConvertState(object Status)
{
if (Status != null)
@ -297,8 +272,182 @@ namespace FineUIPro.Web.Comprehensive
return "编制";
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.InspectionEquipmentTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_InspectionEquipment
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (this.sdrpUnitId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue);
}
if (!string.IsNullOrEmpty(this.stxtInspectionName.Text.Trim()))
{
lists = lists.Where(x => x.InspectionName.Contains(this.stxtInspectionName.Text.Trim()));
}
if (!string.IsNullOrEmpty(txtStarTime.Text.Trim()))
{
lists = lists.Where(x => x.InspectionDate >= Funs.GetNewDateTime(txtStarTime.Text.Trim()));
}
if (!string.IsNullOrEmpty(txtEndTime.Text.Trim()))
{
lists = lists.Where(x => x.InspectionDate <= Funs.GetNewDateTime(txtEndTime.Text.Trim()));
}
lists = lists.OrderBy(x => x.UnitId);
if (lists != null)
{
newUrl = uploadfilepath.Replace("设备材料报验模板.xls", "设备材料报验.xls");
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);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 1;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionCode);//报验编号
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.EquipmentNO);//设备位号
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
cell.SetCellValue(cnp.ProfessionalName);//专业
}
else
{
cell.SetCellValue(string.Empty);//专业
}
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionName);//名称
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Specifications);//规格(范围)
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Supplier);//供货厂商
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Counts);//本次数量
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Unit);//单位
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.SamplingCount);//本次抽检数量
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
string r = string.Empty;
if (!string.IsNullOrEmpty(item.SamplingResult))
{
if (item.SamplingResult == "1")
{
r = "合格";
}
else if (item.SamplingResult == "2")
{
r = "不合格";
}
}
cell.SetCellValue(r);//本次抽检结果
cell = row.CreateCell(11);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.InspectionDate) : "");//报验日期
cell = row.CreateCell(12);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.UsedPlace);//拟使用部位
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);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
}

View File

@ -7,13 +7,11 @@
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.Comprehensive
{
public partial class InspectionEquipment
{
namespace FineUIPro.Web.Comprehensive {
public partial class InspectionEquipment {
/// <summary>
/// form1 控件。
/// </summary>
@ -22,7 +20,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
@ -31,7 +29,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
@ -40,7 +38,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
@ -49,7 +47,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// ToolSearch 控件。
/// </summary>
@ -58,7 +56,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// sdrpUnitId 控件。
/// </summary>
@ -67,7 +65,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList sdrpUnitId;
/// <summary>
/// stxtInspectionName 控件。
/// </summary>
@ -76,7 +74,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox stxtInspectionName;
/// <summary>
/// txtStarTime 控件。
/// </summary>
@ -85,7 +83,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtStarTime;
/// <summary>
/// Label1 控件。
/// </summary>
@ -94,7 +92,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label Label1;
/// <summary>
/// txtEndTime 控件。
/// </summary>
@ -103,7 +101,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtEndTime;
/// <summary>
/// btnSearch 控件。
/// </summary>
@ -112,7 +110,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSearch;
/// <summary>
/// btnNew 控件。
/// </summary>
@ -121,7 +119,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnImport 控件。
/// </summary>
@ -130,7 +128,16 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblPageIndex 控件。
/// </summary>
@ -139,7 +146,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <summary>
/// txtStatus 控件。
/// </summary>
@ -148,7 +155,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label txtStatus;
/// <summary>
/// lbtnFileUrl 控件。
/// </summary>
@ -157,7 +164,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
@ -166,7 +173,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
@ -175,7 +182,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
@ -184,7 +191,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
@ -193,7 +200,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// WindowAtt 控件。
/// </summary>
@ -202,7 +209,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
/// <summary>
/// Menu1 控件。
/// </summary>
@ -211,7 +218,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuModify 控件。
/// </summary>
@ -220,7 +227,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuModify;
/// <summary>
/// btnMenuDel 控件。
/// </summary>

View File

@ -49,6 +49,9 @@
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Icon="PackageIn" runat="server" OnClick="btnImport_Click" Hidden="true">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.Comprehensive
{
@ -295,5 +296,186 @@ namespace FineUIPro.Web.Comprehensive
return "编制";
}
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.InspectionMachineTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_InspectionMachine
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (this.sdrpUnitId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue);
}
if (sdrpCNProfessional.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.CNProfessionalId == this.sdrpCNProfessional.SelectedValue);
}
if (sdrpType.SelectedValue != "")
{
lists = lists.Where(x => x.InspectionType == this.sdrpType.SelectedValue);
}
lists = lists.OrderBy(x => x.UnitId);
if (lists != null)
{
newUrl = uploadfilepath.Replace("机具报验模板.xls", "机具报验.xls");
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);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 1;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionMachineCode);//报验编号
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionMachineName);//名称
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
string proName = string.Empty;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
proName = cnp.ProfessionalName;
}
cell.SetCellValue(proName);//专业
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionType);//类型
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.SpecificationModel);//规格型号
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.NextTestDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.NextTestDate) : "");//下次检验日期
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.TestCycle);//检验周期
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
string isV = string.Empty;
if(item.IsVerification.HasValue)
{
if (item.IsVerification==true)
{
isV = "是";
}
else if(item.IsVerification == false)
{
isV = "否";
}
}
cell.SetCellValue(isV);//是否在校验期内
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.InspectionDate) : "");//报验日期
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
string isO = string.Empty;
if (item.IsOnSite.HasValue)//是否在场
{
if (item.IsOnSite == true)
{
isO = "是";
}
else if (item.IsOnSite == false)
{
isO = "否";
}
}
cell.SetCellValue(isO);//是否在校验期内
cell = row.CreateCell(11);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.UnitsCount.HasValue ? item.UnitsCount.ToString() : "");//台数
cell = row.CreateCell(12);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.LeaveDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.LeaveDate) : "");//离场时间
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);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
}
}

View File

@ -7,13 +7,11 @@
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.Comprehensive
{
public partial class InspectionMachine
{
namespace FineUIPro.Web.Comprehensive {
public partial class InspectionMachine {
/// <summary>
/// form1 控件。
/// </summary>
@ -22,7 +20,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
@ -31,7 +29,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
@ -40,7 +38,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
@ -49,7 +47,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// ToolSearch 控件。
/// </summary>
@ -58,7 +56,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// sdrpUnitId 控件。
/// </summary>
@ -67,7 +65,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList sdrpUnitId;
/// <summary>
/// sdrpCNProfessional 控件。
/// </summary>
@ -76,7 +74,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList sdrpCNProfessional;
/// <summary>
/// sdrpType 控件。
/// </summary>
@ -85,7 +83,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList sdrpType;
/// <summary>
/// btnSearch 控件。
/// </summary>
@ -94,7 +92,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSearch;
/// <summary>
/// btnNew 控件。
/// </summary>
@ -103,7 +101,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnImport 控件。
/// </summary>
@ -112,7 +110,16 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblPageIndex 控件。
/// </summary>
@ -121,7 +128,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <summary>
/// txtStatus 控件。
/// </summary>
@ -130,7 +137,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label txtStatus;
/// <summary>
/// lbtnFileUrl 控件。
/// </summary>
@ -139,7 +146,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
@ -148,7 +155,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
@ -157,7 +164,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
@ -166,7 +173,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
@ -175,7 +182,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// WindowAtt 控件。
/// </summary>
@ -184,7 +191,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
/// <summary>
/// Menu1 控件。
/// </summary>
@ -193,7 +200,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuModify 控件。
/// </summary>
@ -202,7 +209,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuModify;
/// <summary>
/// btnMenuDel 控件。
/// </summary>

View File

@ -46,6 +46,9 @@
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Icon="PackageIn" runat="server" OnClick="btnImport_Click" Hidden="true">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

View File

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.Comprehensive
{
@ -363,6 +364,167 @@ namespace FineUIPro.Web.Comprehensive
return "编制";
}
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.InspectionPersonTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_InspectionPerson
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (this.sdrpUnitId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue);
}
if (sdrpPost.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.PostId == this.sdrpPost.SelectedValue);
}
if (!string.IsNullOrEmpty(this.stxtPersonName.Text.Trim()))
{
lists = lists.Where(x => x.PersonName.Contains(this.stxtPersonName.Text.Trim()));
}
lists = lists.OrderBy(x => x.UnitId);
if (lists != null)
{
newUrl = uploadfilepath.Replace("人员报验模板.xls", "人员报验.xls");
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);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 1;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.InspectionPersonCode);//报验编号
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
string proName = string.Empty;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
proName = cnp.ProfessionalName;
}
cell.SetCellValue(proName);//专业
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
string unitWork = string.Empty;
if (!string.IsNullOrEmpty(item.UnitWorkId))
{
unitWork = ConvertUnitWork(item.UnitWorkId);
}
cell.SetCellValue(unitWork);//单位工程名称
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
string postName = string.Empty;
if (!string.IsNullOrEmpty(item.PostId))
{
var post = BLL.PostService.GetPostById(item.PostId);
if (post!=null)
{
postName = post.PostName;
}
}
cell.SetCellValue(postName);//工种
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.PersonName);//姓名
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.CertificateNumber);//证书编号
cell = row.CreateCell(7);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.QualifiedProjectCode);//合格项目代号(级别)
cell = row.CreateCell(8);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ValidityDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ValidityDate) : "");//有效期
cell = row.CreateCell(9);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.ApprovalTime.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ApprovalTime) : "");//批准时间
cell = row.CreateCell(10);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.DepartureTime.HasValue ? string.Format("{0:yyyy-MM-dd}", item.DepartureTime) : "");//离场时间
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);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
}
}

View File

@ -7,13 +7,11 @@
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.Comprehensive
{
public partial class InspectionPerson
{
namespace FineUIPro.Web.Comprehensive {
public partial class InspectionPerson {
/// <summary>
/// form1 控件。
/// </summary>
@ -22,7 +20,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
@ -31,7 +29,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
@ -40,7 +38,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
@ -49,7 +47,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// ToolSearch 控件。
/// </summary>
@ -58,7 +56,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar ToolSearch;
/// <summary>
/// sdrpUnitId 控件。
/// </summary>
@ -67,7 +65,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList sdrpUnitId;
/// <summary>
/// sdrpPost 控件。
/// </summary>
@ -76,7 +74,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList sdrpPost;
/// <summary>
/// stxtPersonName 控件。
/// </summary>
@ -85,7 +83,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox stxtPersonName;
/// <summary>
/// btnSearch 控件。
/// </summary>
@ -94,7 +92,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSearch;
/// <summary>
/// btnNew 控件。
/// </summary>
@ -103,7 +101,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnImport 控件。
/// </summary>
@ -112,7 +110,16 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblPageIndex 控件。
/// </summary>
@ -121,7 +128,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblPageIndex;
/// <summary>
/// Label2 控件。
/// </summary>
@ -130,7 +137,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label Label2;
/// <summary>
/// txtStatus 控件。
/// </summary>
@ -139,7 +146,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label txtStatus;
/// <summary>
/// lbtnFileUrl 控件。
/// </summary>
@ -148,7 +155,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
@ -157,7 +164,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
@ -166,7 +173,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
@ -175,7 +182,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Window2 控件。
/// </summary>
@ -184,7 +191,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window2;
/// <summary>
/// Window3 控件。
/// </summary>
@ -193,7 +200,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window3;
/// <summary>
/// WindowAtt 控件。
/// </summary>
@ -202,7 +209,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
/// <summary>
/// Menu1 控件。
/// </summary>
@ -211,7 +218,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuModify 控件。
/// </summary>
@ -220,7 +227,7 @@ namespace FineUIPro.Web.Comprehensive
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuModify;
/// <summary>
/// btnMenuDel 控件。
/// </summary>

View File

@ -30,6 +30,9 @@
</f:Button>
<f:Button ID="btnImport" ToolTip="导入" Hidden="true" Icon="PackageIn" runat="server" OnClick="btnImport_Click">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
@ -202,7 +203,134 @@ namespace FineUIPro.Web.CQMS.Comprehensive
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainingRecordsDataIn.aspx", "导入 - ")));
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string initTemplatePath = Const.TrainingRecordsTempUrl;
string uploadfilepath = string.Empty;
string newUrl = string.Empty;
uploadfilepath = rootPath + initTemplatePath;
var lists = (from x in Funs.DB.Comprehensive_TrainingRecords
where x.ProjectId == this.CurrUser.LoginProjectId
select x);
if (drpCNProfessionalId.SelectedValue != BLL.Const._Null)
{
lists = lists.Where(x => x.CNProfessionalId == drpCNProfessionalId.SelectedValue);
}
if (!string.IsNullOrEmpty(this.txtTrainingContents.Text.Trim()))
{
lists = lists.Where(x => x.TrainingContents.Contains(this.txtTrainingContents.Text.Trim()));
}
if (lists != null)
{
newUrl = uploadfilepath.Replace("培训记录模板.xls", "培训记录.xls");
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);
workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream);
}
// 创建单元格样式
NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle();
cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font = workbook.CreateFont();
font.FontHeightInPoints = 11;
cellStyle.SetFont(font);
NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle();
cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
var font0 = workbook.CreateFont();
font0.FontHeightInPoints = 12;
font0.IsBold = true;
cellStyle0.SetFont(font0);
// 第二步:创建新数据行
NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0);
NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
NPOI.SS.UserModel.ICell cell;
int i = 1;
foreach (var item in lists)
{
// 第二步:创建新数据行
row = sheet.CreateRow(i);
// 添加数据
cell = row.CreateCell(0);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.TrainingContents);//培训内容
cell = row.CreateCell(1);
cell.CellStyle = cellStyle;
string proName = string.Empty;
var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId);
if (cnp != null)
{
proName = cnp.ProfessionalName;
}
cell.SetCellValue(proName);//专业
cell = row.CreateCell(2);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.TrainingObject);//培训对象
cell = row.CreateCell(3);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.TrainingAddress);//培训地点
cell = row.CreateCell(4);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Hours.HasValue ? item.Hours.ToString() : "");//课时(小时)
cell = row.CreateCell(5);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.KeynoteSpeaker);//主讲人
cell = row.CreateCell(6);
cell.CellStyle = cellStyle;
cell.SetCellValue(item.Remark);//备注
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);
}
else
{
Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 获取按钮权限

View File

@ -102,6 +102,15 @@ namespace FineUIPro.Web.CQMS.Comprehensive {
/// </remarks>
protected global::FineUIPro.Button btnImport;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblPageIndex 控件。
/// </summary>

View File

@ -12,7 +12,7 @@
<appSettings>
<!--连接字符串-->
<!--<add key="ConnectionString" value="Server=.;Database=SGGLDB_WH;Integrated Security=False;User ID=sa;Password=1111;MultipleActiveResultSets=true;Connect Timeout=1200"/>-->
<add key="ConnectionString" value="Server=.;Database=SGGLDB_WH;Integrated Security=False;User ID=sa;Password=1111;MultipleActiveResultSets=true;Connect Timeout=1200"/>
<add key="ConnectionString" value="Server=.\SQL2012;Database=SGGLDB_WH;Integrated Security=False;User ID=sa;Password=1111;MultipleActiveResultSets=true;Connect Timeout=1200"/>
<!--系统名称-->
<add key="SystemName" value="智慧施工管理信息系统V1.0"/>
<add key="ChartImageHandler" value="storage=file;timeout=20;url=~/Images/;"/>