feat(hjgl): 增加焊接日志导出与管道预制汇总

补充俄文焊接日志导出和管道预制汇总报表,统一菜单、数据库脚本与导出模板,便于按日报或单位工程查看和交付施工统计数据。
This commit is contained in:
2026-08-26 15:30:34 +08:00
parent a0669475f1
commit ad6ef33ce2
13 changed files with 1041 additions and 1 deletions
@@ -389,6 +389,9 @@
<f:MenuButton ID="btnMenuOut" OnClick="btnOut_Click" Icon="FolderUp" EnableAjax="false" DisableControlBeforePostBack="false"
runat="server" Text="导出">
</f:MenuButton>
<f:MenuButton ID="btnMenuWeldingLogOut" OnClick="btnWeldingLogOut_Click" Icon="FolderUp" EnableAjax="false" DisableControlBeforePostBack="false"
runat="server" Text="导出(焊接日志)">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Top"
runat="server" Text="删除">
@@ -1,5 +1,7 @@
using BLL;
using MiniExcelLibs;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
@@ -728,6 +730,135 @@ namespace FineUIPro.Web.HJGL.WeldingManage
}
}
/// <summary>
/// 导出俄文焊接日志。
/// </summary>
protected void btnWeldingLogOut_Click(object sender, EventArgs e)
{
if (tvControlItem.SelectedNode == null
|| (tvControlItem.SelectedNode.CommandName != "UnitWork"
&& tvControlItem.SelectedNode.CommandName != "WeldingDaily"))
{
Alert.ShowInTop("请选择单位工程或焊接日报!", MessageBoxIcon.Warning);
return;
}
string unitWorkId = null;
string weldingDailyId = null;
string fileName;
if (tvControlItem.SelectedNode.CommandName == "WeldingDaily")
{
weldingDailyId = tvControlItem.SelectedNodeID;
var daily = BLL.WeldingDailyService.GetPipeline_WeldingDailyByWeldingDailyId(weldingDailyId);
if (daily == null || daily.ProjectId != this.CurrUser.LoginProjectId)
{
Alert.ShowInTop("所选焊接日报不存在!", MessageBoxIcon.Warning);
return;
}
var unitWork = UnitWorkService.getUnitWorkByUnitWorkId(daily.UnitWorkId);
fileName = "焊接日志-" + (unitWork == null ? string.Empty : unitWork.UnitWorkName + "-")
+ daily.WeldingDailyCode + ".xlsx";
}
else
{
unitWorkId = tvControlItem.SelectedNodeID;
var unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(unitWorkId);
if (unitWork == null || unitWork.ProjectId != this.CurrUser.LoginProjectId)
{
Alert.ShowInTop("所选单位工程不存在!", MessageBoxIcon.Warning);
return;
}
fileName = "焊接日志-" + unitWork.UnitWorkName + "-" + txtMonth.Text.Trim() + ".xlsx";
}
DataTable data = BLL.WeldingDailyService.GetWeldingLogExportData(
this.CurrUser.LoginProjectId, unitWorkId, weldingDailyId, txtMonth.Text.Trim());
if (data.Rows.Count == 0)
{
Alert.ShowInTop("无数据,无法导出!", MessageBoxIcon.Warning);
return;
}
byte[] fileBytes;
var workbook = new XSSFWorkbook();
using (var stream = new MemoryStream())
{
ISheet sheet = workbook.CreateSheet("Сварочный журнал");
ICellStyle headerStyle = workbook.CreateCellStyle();
headerStyle.Alignment = HorizontalAlignment.Center;
headerStyle.VerticalAlignment = VerticalAlignment.Center;
headerStyle.WrapText = true;
headerStyle.BorderTop = BorderStyle.Thin;
headerStyle.BorderRight = BorderStyle.Thin;
headerStyle.BorderBottom = BorderStyle.Thin;
headerStyle.BorderLeft = BorderStyle.Thin;
IFont headerFont = workbook.CreateFont();
headerFont.IsBold = true;
headerFont.FontHeightInPoints = 10;
headerStyle.SetFont(headerFont);
ICellStyle dataStyle = workbook.CreateCellStyle();
dataStyle.Alignment = HorizontalAlignment.Center;
dataStyle.VerticalAlignment = VerticalAlignment.Center;
dataStyle.WrapText = true;
dataStyle.BorderTop = BorderStyle.Thin;
dataStyle.BorderRight = BorderStyle.Thin;
dataStyle.BorderBottom = BorderStyle.Thin;
dataStyle.BorderLeft = BorderStyle.Thin;
IRow headerRow = sheet.CreateRow(0);
headerRow.HeightInPoints = 90;
for (int columnIndex = 0; columnIndex < data.Columns.Count; columnIndex++)
{
ICell cell = headerRow.CreateCell(columnIndex);
cell.SetCellValue(data.Columns[columnIndex].ColumnName);
cell.CellStyle = headerStyle;
}
for (int rowIndex = 0; rowIndex < data.Rows.Count; rowIndex++)
{
IRow row = sheet.CreateRow(rowIndex + 1);
row.HeightInPoints = 30;
for (int columnIndex = 0; columnIndex < data.Columns.Count; columnIndex++)
{
ICell cell = row.CreateCell(columnIndex);
object value = data.Rows[rowIndex][columnIndex];
if (columnIndex == 0 && value != DBNull.Value)
{
cell.SetCellValue(Convert.ToDouble(value));
}
else
{
cell.SetCellValue(value == DBNull.Value ? string.Empty : value.ToString());
}
cell.CellStyle = dataStyle;
}
}
int[] columnWidths = { 6, 45, 25, 35, 25, 25, 16, 45, 24, 18, 26, 24, 24, 28, 35, 45, 35 };
for (int i = 0; i < columnWidths.Length; i++)
{
sheet.SetColumnWidth(i, columnWidths[i] * 256);
}
sheet.CreateFreezePane(0, 1);
sheet.FitToPage = true;
sheet.PrintSetup.Landscape = true;
sheet.PrintSetup.FitWidth = 1;
workbook.Write(stream);
fileBytes = stream.ToArray();
}
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
response.AddHeader("Content-Disposition", "attachment;filename="
+ HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
response.AddHeader("Content-Length", fileBytes.Length.ToString());
response.BinaryWrite(fileBytes);
response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
protected void btnMenuDeleteDetail_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Grid1.SelectedRowID))
@@ -469,6 +469,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuOut;
/// <summary>
/// btnMenuWeldingLogOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuWeldingLogOut;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
@@ -0,0 +1,102 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PipePrefabricationSummary.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingReport.PipePrefabricationSummary" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>管道预制汇总</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.f-grid-row-summary .f-grid-cell-inner {
font-weight: bold;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<Items>
<f:Grid ID="Grid1" runat="server" ShowBorder="true" ShowHeader="false"
Title="管道预制汇总" BoxFlex="1" EnableColumnLines="true" EnableTextSelection="true"
DataKeyNames="RowKey" DataIDField="RowKey" EnableSummary="true" SummaryPosition="Flow">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="drpUnitWork" runat="server" Label="单位工程"
LabelAlign="Right" LabelWidth="80px" Width="320px" EmptyText="全部单位工程"
EnableEdit="true" EnableCheckBoxSelect="true" EnableMultiSelect="true"
AutoSelectFirstItem="false">
</f:DropDownList>
<f:DatePicker ID="dpReportDate" runat="server" Label="报表日期"
LabelAlign="Right" LabelWidth="80px" Width="190px">
</f:DatePicker>
<f:DatePicker ID="dpStartDate" runat="server" Label="日期范围"
LabelAlign="Right" LabelWidth="80px" Width="190px">
</f:DatePicker>
<f:Label ID="lblDateSeparator" runat="server" Text="至"></f:Label>
<f:DatePicker ID="dpEndDate" runat="server" Width="110px"></f:DatePicker>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:Button ID="btnQuery" runat="server" Text="查询" Icon="SystemSearch"
OnClick="btnQuery_Click">
</f:Button>
<f:Button ID="btnExport" runat="server" Text="导出" Icon="TableGo"
EnableAjax="false" DisableControlBeforePostBack="false" OnClick="btnExport_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RenderField HeaderText="Unit&lt;br/&gt;(单位)" ColumnID="UnitCode" DataField="UnitCode"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="90px">
</f:RenderField>
<f:RenderField HeaderText="Block&lt;br/&gt;(单位工程)" ColumnID="UnitWorkCode" DataField="UnitWorkCode"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="110px">
</f:RenderField>
<f:RenderField HeaderText="Total Drawing Quantity&lt;br/&gt;(图纸总量)" ColumnID="TotalDrawingQuantity"
DataField="TotalDrawingQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="175px">
</f:RenderField>
<f:RenderField HeaderText="ISO Drawing Qty-Cum.&lt;br/&gt;DI,已收图累计)" ColumnID="IsoDrawingQuantity"
DataField="IsoDrawingQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="190px">
</f:RenderField>
<f:RenderField HeaderText="Work front Qty-Cum.&lt;br/&gt;DI,可预制工作面累计)" ColumnID="WorkFrontQuantity"
DataField="WorkFrontQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="210px">
</f:RenderField>
<f:RenderField HeaderText="Completed Qty-Cum.&lt;br/&gt;DI,累计已完成)" ColumnID="CompletedQuantity"
DataField="CompletedQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="190px">
</f:RenderField>
<f:RenderField HeaderText="Qty Complete (%)&lt;br/&gt;(完成量占比)" ColumnID="QuantityCompleteRate"
DataField="QuantityCompleteRateDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="Daily Qty&lt;br/&gt;DI,昨天数据)" ColumnID="DailyQuantity"
DataField="DailyQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="150px">
</f:RenderField>
<f:RenderField HeaderText="Previous day Qty-Cum&lt;br/&gt;DI,前天累计数据)" ColumnID="PreviousDayCumulativeQuantity"
DataField="PreviousDayCumulativeQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="195px">
</f:RenderField>
<f:RenderField HeaderText="This Weekly Qty&lt;br/&gt;DI,本周数据)" ColumnID="WeeklyQuantity"
DataField="WeeklyQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="160px">
</f:RenderField>
<f:RenderField HeaderText="Last week Qty-Cum.&lt;br/&gt;DI,上周累计)" ColumnID="LastWeekCumulativeQuantity"
DataField="LastWeekCumulativeQuantityDisplay" FieldType="String" HeaderTextAlign="Center"
TextAlign="Right" Width="185px">
</f:RenderField>
<f:RenderField HeaderText="Note&lt;br/&gt;(备注)" ColumnID="Note" DataField="Note"
FieldType="String" HeaderTextAlign="Center" TextAlign="Left" MinWidth="120px"
ExpandUnusedSpace="true">
</f:RenderField>
</Columns>
</f:Grid>
</Items>
</f:Panel>
</form>
</body>
</html>
@@ -0,0 +1,194 @@
using BLL;
using MiniExcelLibs;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.HJGL.WeldingReport
{
public partial class PipePrefabricationSummary : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
UnitWorkService.InitUnitWorkDropDownList(drpUnitWork, CurrUser.LoginProjectId, false);
DateTime today = DateTime.Today;
int daysSinceMonday = ((int)today.DayOfWeek + 6) % 7;
dpReportDate.SelectedDate = today;
dpStartDate.SelectedDate = today.AddDays(-daysSinceMonday);
dpEndDate.SelectedDate = today.AddDays(6 - daysSinceMonday);
BindGrid();
}
}
protected void btnQuery_Click(object sender, EventArgs e)
{
BindGrid();
}
protected void btnExport_Click(object sender, EventArgs e)
{
DateTime reportDate;
DateTime startDate;
DateTime endDate;
if (!TryGetFilterDates(out reportDate, out startDate, out endDate))
{
return;
}
string templatePath = Path.Combine(Funs.RootPath, "File", "Excel", "DataOut", "管道预制汇总模板.xlsx");
if (!File.Exists(templatePath))
{
ShowNotify("未找到管道预制汇总导出模板!", MessageBoxIcon.Warning);
return;
}
List<PipePrefabricationSummaryItem> rows = GetSummary(reportDate, startDate, endDate);
var value = CreateExportValue(rows, reportDate);
string fileName = string.Format(
"管道预制汇总_{0:yyyyMMdd}_{1:yyyyMMdd}-{2:yyyyMMdd}.xlsx",
reportDate,
startDate,
endDate);
string filePath = Path.Combine(Funs.RootPath, "File", "Excel", "Temp", Guid.NewGuid().ToString("N") + ".xlsx");
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
MiniExcel.SaveAsByTemplate(filePath, templatePath, value);
DownloadExcel(filePath, fileName);
}
private void BindGrid()
{
DateTime reportDate;
DateTime startDate;
DateTime endDate;
if (!TryGetFilterDates(out reportDate, out startDate, out endDate))
{
return;
}
List<PipePrefabricationSummaryItem> rows = GetSummary(reportDate, startDate, endDate);
Grid1.RecordCount = rows.Count;
Grid1.DataSource = rows;
Grid1.DataBind();
BindSummary(rows);
}
private List<PipePrefabricationSummaryItem> GetSummary(
DateTime reportDate,
DateTime startDate,
DateTime endDate)
{
string[] unitWorkIds = drpUnitWork.SelectedValueArray
.Where(x => !string.IsNullOrWhiteSpace(x) && x != Const._Null)
.ToArray();
return PipePrefabricationSummaryService.GetSummary(
CurrUser.LoginProjectId,
unitWorkIds,
startDate,
endDate,
reportDate);
}
private bool TryGetFilterDates(
out DateTime reportDate,
out DateTime startDate,
out DateTime endDate)
{
reportDate = DateTime.MinValue;
startDate = DateTime.MinValue;
endDate = DateTime.MinValue;
if (!dpReportDate.SelectedDate.HasValue)
{
ShowNotify("请选择报表日期!", MessageBoxIcon.Warning);
return false;
}
if (!dpStartDate.SelectedDate.HasValue || !dpEndDate.SelectedDate.HasValue)
{
ShowNotify("请选择完整的日期范围!", MessageBoxIcon.Warning);
return false;
}
reportDate = dpReportDate.SelectedDate.Value.Date;
startDate = dpStartDate.SelectedDate.Value.Date;
endDate = dpEndDate.SelectedDate.Value.Date;
if (startDate > endDate)
{
ShowNotify("开始日期不能晚于结束日期!", MessageBoxIcon.Warning);
return false;
}
return true;
}
private void BindSummary(ICollection<PipePrefabricationSummaryItem> rows)
{
decimal totalDrawing = rows.Sum(x => x.TotalDrawingQuantity);
decimal completed = rows.Sum(x => x.CompletedQuantity);
JObject summary = new JObject
{
{ "UnitCode", string.Empty },
{ "UnitWorkCode", "Total" },
{ "TotalDrawingQuantity", PipePrefabricationSummaryItem.FormatQuantity(totalDrawing) },
{ "IsoDrawingQuantity", PipePrefabricationSummaryItem.FormatQuantity(rows.Sum(x => x.IsoDrawingQuantity)) },
{ "WorkFrontQuantity", PipePrefabricationSummaryItem.FormatQuantity(rows.Sum(x => x.WorkFrontQuantity)) },
{ "CompletedQuantity", PipePrefabricationSummaryItem.FormatQuantity(completed) },
{ "QuantityCompleteRate", GetCompleteRate(completed, totalDrawing) },
{ "DailyQuantity", PipePrefabricationSummaryItem.FormatQuantity(rows.Sum(x => x.DailyQuantity)) },
{ "PreviousDayCumulativeQuantity", PipePrefabricationSummaryItem.FormatQuantity(rows.Sum(x => x.PreviousDayCumulativeQuantity)) },
{ "WeeklyQuantity", PipePrefabricationSummaryItem.FormatQuantity(rows.Sum(x => x.WeeklyQuantity)) },
{ "LastWeekCumulativeQuantity", PipePrefabricationSummaryItem.FormatQuantity(rows.Sum(x => x.LastWeekCumulativeQuantity)) },
{ "Note", string.Empty }
};
Grid1.SummaryData = summary;
}
private static string GetCompleteRate(decimal completed, decimal totalDrawing)
{
return totalDrawing <= 0M ? "0.00%" : (completed * 100M / totalDrawing).ToString("0.00") + "%";
}
private static Dictionary<string, object> CreateExportValue(
ICollection<PipePrefabricationSummaryItem> rows,
DateTime reportDate)
{
decimal totalDrawing = rows.Sum(x => x.TotalDrawingQuantity);
decimal completed = rows.Sum(x => x.CompletedQuantity);
// 只向模板上半部分的数据占位符传值;下方“陕西化建人力统计表”保持模板原样空白。
return new Dictionary<string, object>
{
{ "ReportDate", reportDate.ToString("yyyy-MM-dd") },
{ "Data", rows },
// MiniExcel 1.31.3 的普通对象不支持模板中的嵌套属性,合计值使用扁平占位符。
{ "TotalUnitCode", string.Empty },
{ "TotalUnitWorkCode", "Total" },
{ "TotalDrawingQuantity", totalDrawing },
{ "TotalIsoDrawingQuantity", rows.Sum(x => x.IsoDrawingQuantity) },
{ "TotalWorkFrontQuantity", rows.Sum(x => x.WorkFrontQuantity) },
{ "TotalCompletedQuantity", completed },
{ "TotalQuantityCompleteRate", GetCompleteRate(completed, totalDrawing) },
{ "TotalDailyQuantity", rows.Sum(x => x.DailyQuantity) },
{ "TotalPreviousDayCumulativeQuantity", rows.Sum(x => x.PreviousDayCumulativeQuantity) },
{ "TotalWeeklyQuantity", rows.Sum(x => x.WeeklyQuantity) },
{ "TotalLastWeekCumulativeQuantity", rows.Sum(x => x.LastWeekCumulativeQuantity) },
{ "TotalNote", string.Empty }
};
}
private void DownloadExcel(string filePath, string fileName)
{
FileInfo file = new FileInfo(filePath);
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", file.Length.ToString());
Response.TransmitFile(filePath, 0, file.Length);
Response.Flush();
File.Delete(filePath);
Response.End();
}
}
}
@@ -0,0 +1,134 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HJGL.WeldingReport
{
public partial class PipePrefabricationSummary
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// drpUnitWork 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList drpUnitWork;
/// <summary>
/// dpReportDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker dpReportDate;
/// <summary>
/// dpStartDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker dpStartDate;
/// <summary>
/// lblDateSeparator 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblDateSeparator;
/// <summary>
/// dpEndDate 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker dpEndDate;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnQuery 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnQuery;
/// <summary>
/// btnExport 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnExport;
}
}