Browse Source

报表模块

Linsk 3 months ago
parent
commit
3250a8d24a

+ 4 - 4
Model/Entity/DataEntity.cs

@@ -15,8 +15,8 @@ namespace Model
 
 
         public string? 脱脂喷淋泵压力值 { get; set; }
         public string? 脱脂喷淋泵压力值 { get; set; }
 
 
-        public string? 脱脂pH值 { get; set; }
-        public string? 陶化pH值 { get; set; }
+        public string? 脱脂PH值 { get; set; }
+        public string? 陶化PH值 { get; set; }
 
 
         public string? 粗洗喷淋泵压力值 { get; set; }
         public string? 粗洗喷淋泵压力值 { get; set; }
 
 
@@ -28,8 +28,8 @@ namespace Model
 
 
         public string? 固化炉测量温度 { get; set; }
         public string? 固化炉测量温度 { get; set; }
 
 
-        public string? 厂温度 { get; set; }
+        public string? 厂温度 { get; set; }
 
 
-        public string? 厂湿度 { get; set; }
+        public string? 厂湿度 { get; set; }
     }
     }
 }
 }

+ 2 - 0
Scada/Page/PageLogManage.Designer.cs

@@ -82,6 +82,7 @@
             btn_ExportExcel.TabIndex = 6;
             btn_ExportExcel.TabIndex = 6;
             btn_ExportExcel.Text = "日志导出EXCEL";
             btn_ExportExcel.Text = "日志导出EXCEL";
             btn_ExportExcel.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
             btn_ExportExcel.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
+            btn_ExportExcel.Click += btn_ExportExcel_Click;
             // 
             // 
             // btn_ShowToTXT
             // btn_ShowToTXT
             // 
             // 
@@ -94,6 +95,7 @@
             btn_ShowToTXT.TabIndex = 5;
             btn_ShowToTXT.TabIndex = 5;
             btn_ShowToTXT.Text = "日志导出TXT";
             btn_ShowToTXT.Text = "日志导出TXT";
             btn_ShowToTXT.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
             btn_ShowToTXT.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
+            btn_ShowToTXT.Click += btn_ShowToTXT_Click;
             // 
             // 
             // btn_ShowToDgv
             // btn_ShowToDgv
             // 
             // 

+ 126 - 0
Scada/Page/PageLogManage.cs

@@ -9,7 +9,10 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Windows.Forms;
 using HZY.Framework.DependencyInjection;
 using HZY.Framework.DependencyInjection;
+using Masuit.Tools.Reflection;
+using MiniExcelLibs;
 using Sunny.UI;
 using Sunny.UI;
+using Sunny.UI.Win32;
 
 
 namespace Scada.Page
 namespace Scada.Page
 {
 {
@@ -140,7 +143,130 @@ namespace Scada.Page
 
 
         private void btn_ShowToDgv_Click(object sender, EventArgs e)
         private void btn_ShowToDgv_Click(object sender, EventArgs e)
         {
         {
+            if (this.txt_ShowLog.Text.Length == 0)
+            {
+                UIMessageTip.ShowError("请先选择日志文件");
+                return;
+            }
+
+            string[] lines = this.txt_ShowLog.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
+            DataTable dt = new DataTable();
+            dt.Columns.Add("时间");
+            dt.Columns.Add("日志等级");
+            dt.Columns.Add("日志来源");
+            dt.Columns.Add("日志内容");
+
+            lines.ToArray().ForEach(line =>
+            {
+                string[] parts = line.Split(new string[] { "|" }, StringSplitOptions.None);
+                if (parts.Length == 4)
+                {
+                    DataRow row = dt.NewRow();
+                    row["时间"] = parts[0];
+                    row["日志等级"] = parts[1];
+                    row["日志来源"] = parts[2];
+                    row["日志内容"] = parts[3];
+                    
+                    dt.Rows.Add(row);
+                }
+            });
 
 
+            this.dgv_ShowLog.DataSource = dt;
+            this.dgv_ShowLog.Columns["日志内容"].Width = 500; // 设置日志内容列的宽度
         }
         }
+
+        private void btn_ShowToTXT_Click(object sender, EventArgs e)
+        {
+            if (this.txt_ShowLog.Text.Length == 0)
+            {
+                UIMessageTip.ShowError("请先选择日志文件");
+                return;
+            }
+
+            SaveFileDialog saveFileDialog = new SaveFileDialog();
+            saveFileDialog.Filter = "文本文件 |*.txt";
+            saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
+
+            if (saveFileDialog.ShowDialog() == DialogResult.OK)
+            {
+                try
+                {
+                    using (StreamWriter sw = new StreamWriter(saveFileDialog.FileName, false, Encoding.UTF8))
+                    {
+                        sw.Write(this.txt_ShowLog.Text);
+                    }
+                    UIMessageTip.ShowOk("日志已保存到 " + saveFileDialog.FileName);
+                    LogExtension.ShowMessage("日志导出成功", Microsoft.Extensions.Logging.LogLevel.Information);
+
+                    ProcessStartInfo startInfo = new ProcessStartInfo
+                    {
+                        FileName = saveFileDialog.FileName,
+                        UseShellExecute = true
+                    };
+
+                    Process process = new Process
+                    {
+                        StartInfo = startInfo
+                    };
+
+                    process.Start();
+                }
+                catch (Exception ex)
+                {
+                    UIMessageTip.ShowError("日志导出失败: " + ex.Message);
+                    LogExtension.ShowMessage(ex.Message, Microsoft.Extensions.Logging.LogLevel.Error);
+                }
+            }
+        }
+
+        private async void btn_ExportExcel_Click(object sender, EventArgs e)
+        {
+            if(this.txt_ShowLog.Text.Length==0)
+            {
+                UIMessageTip.ShowError("请先选择日志文件");
+                return;
+            }
+
+            SaveFileDialog saveFileDialog = new SaveFileDialog();
+            saveFileDialog.Filter = "Excel文件|*.xlsx";
+            saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
+
+            if(saveFileDialog.ShowDialog()==DialogResult.OK)
+            {
+                try
+                {
+                    if(this.dgv_ShowLog.DataSource==null)
+                    {
+                        UIMessageTip.ShowError("请先将日志显示到表格中");
+                        return;
+                    }else
+                    {
+                        DataTable dt = this.dgv_ShowLog.DataSource as DataTable;
+                        await MiniExcel.SaveAsAsync(saveFileDialog.FileName,dt);
+                    }
+                    UIMessageTip.ShowOk("日志已保存到 " + saveFileDialog.FileName);
+                    LogExtension.ShowMessage("日志导出成功", Microsoft.Extensions.Logging.LogLevel.Information);
+
+                    ProcessStartInfo startInfo = new ProcessStartInfo
+                    {
+                        FileName = saveFileDialog.FileName,
+                        UseShellExecute = true
+                    };
+
+                    Process process = new Process
+                    {
+                        StartInfo = startInfo
+                    };
+                    process.Start();
+                }
+                catch (Exception ex)
+                {
+                    UIMessageTip.ShowError("日志导出失败: " + ex.Message);
+                    LogExtension.ShowMessage(ex.Message, Microsoft.Extensions.Logging.LogLevel.Error);
+                }
+            }
+        }
+
+
     }
     }
 }
 }

+ 34 - 21
Scada/Page/PageReportManage.Designer.cs

@@ -40,6 +40,7 @@
             btn_QueryData = new Sunny.UI.UISymbolButton();
             btn_QueryData = new Sunny.UI.UISymbolButton();
             btn_ExportData = new Sunny.UI.UISymbolButton();
             btn_ExportData = new Sunny.UI.UISymbolButton();
             dgv_Data = new Sunny.UI.UIDataGridView();
             dgv_Data = new Sunny.UI.UIDataGridView();
+            pgn_Data = new Sunny.UI.UIPagination();
             Column1 = new DataGridViewTextBoxColumn();
             Column1 = new DataGridViewTextBoxColumn();
             Column2 = new DataGridViewTextBoxColumn();
             Column2 = new DataGridViewTextBoxColumn();
             Column3 = new DataGridViewTextBoxColumn();
             Column3 = new DataGridViewTextBoxColumn();
@@ -50,7 +51,6 @@
             Column8 = new DataGridViewTextBoxColumn();
             Column8 = new DataGridViewTextBoxColumn();
             Column9 = new DataGridViewTextBoxColumn();
             Column9 = new DataGridViewTextBoxColumn();
             Column10 = new DataGridViewTextBoxColumn();
             Column10 = new DataGridViewTextBoxColumn();
-            pgn_Data = new Sunny.UI.UIPagination();
             ((System.ComponentModel.ISupportInitialize)dgv_Data).BeginInit();
             ((System.ComponentModel.ISupportInitialize)dgv_Data).BeginInit();
             SuspendLayout();
             SuspendLayout();
             // 
             // 
@@ -127,6 +127,7 @@
             btn_QueryData.TabIndex = 4;
             btn_QueryData.TabIndex = 4;
             btn_QueryData.Text = "查询数据";
             btn_QueryData.Text = "查询数据";
             btn_QueryData.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
             btn_QueryData.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
+            btn_QueryData.Click += btn_QueryData_Click;
             // 
             // 
             // btn_ExportData
             // btn_ExportData
             // 
             // 
@@ -139,6 +140,7 @@
             btn_ExportData.TabIndex = 5;
             btn_ExportData.TabIndex = 5;
             btn_ExportData.Text = "导出数据";
             btn_ExportData.Text = "导出数据";
             btn_ExportData.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
             btn_ExportData.TipsFont = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
+            btn_ExportData.Click += btn_ExportData_Click;
             // 
             // 
             // dgv_Data
             // dgv_Data
             // 
             // 
@@ -190,8 +192,26 @@
             dgv_Data.StripeOddColor = Color.FromArgb(235, 243, 255);
             dgv_Data.StripeOddColor = Color.FromArgb(235, 243, 255);
             dgv_Data.TabIndex = 6;
             dgv_Data.TabIndex = 6;
             // 
             // 
+            // pgn_Data
+            // 
+            pgn_Data.ButtonFillSelectedColor = Color.FromArgb(64, 128, 204);
+            pgn_Data.ButtonStyleInherited = false;
+            pgn_Data.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
+            pgn_Data.Location = new Point(13, 490);
+            pgn_Data.Margin = new Padding(4, 5, 4, 5);
+            pgn_Data.MinimumSize = new Size(1, 1);
+            pgn_Data.Name = "pgn_Data";
+            pgn_Data.RectSides = ToolStripStatusLabelBorderSides.None;
+            pgn_Data.ShowText = false;
+            pgn_Data.Size = new Size(653, 44);
+            pgn_Data.TabIndex = 7;
+            pgn_Data.Text = "uiPagination1";
+            pgn_Data.TextAlignment = ContentAlignment.MiddleCenter;
+            pgn_Data.PageChanged += pgn_Data_PageChanged;
+            // 
             // Column1
             // Column1
             // 
             // 
+            Column1.DataPropertyName = "脱脂喷淋泵压力值";
             Column1.HeaderText = "脱脂喷淋泵压力值";
             Column1.HeaderText = "脱脂喷淋泵压力值";
             Column1.MinimumWidth = 6;
             Column1.MinimumWidth = 6;
             Column1.Name = "Column1";
             Column1.Name = "Column1";
@@ -200,6 +220,7 @@
             // 
             // 
             // Column2
             // Column2
             // 
             // 
+            Column2.DataPropertyName = "脱脂PH值";
             Column2.HeaderText = "脱脂PH值";
             Column2.HeaderText = "脱脂PH值";
             Column2.MinimumWidth = 6;
             Column2.MinimumWidth = 6;
             Column2.Name = "Column2";
             Column2.Name = "Column2";
@@ -208,6 +229,7 @@
             // 
             // 
             // Column3
             // Column3
             // 
             // 
+            Column3.DataPropertyName = "陶化喷淋泵压力值";
             Column3.HeaderText = "陶化喷淋泵压力值";
             Column3.HeaderText = "陶化喷淋泵压力值";
             Column3.MinimumWidth = 6;
             Column3.MinimumWidth = 6;
             Column3.Name = "Column3";
             Column3.Name = "Column3";
@@ -216,7 +238,8 @@
             // 
             // 
             // Column4
             // Column4
             // 
             // 
-            Column4.HeaderText = "陶化pH值";
+            Column4.DataPropertyName = "陶化PH值";
+            Column4.HeaderText = "陶化PH值";
             Column4.MinimumWidth = 6;
             Column4.MinimumWidth = 6;
             Column4.Name = "Column4";
             Column4.Name = "Column4";
             Column4.ReadOnly = true;
             Column4.ReadOnly = true;
@@ -224,6 +247,7 @@
             // 
             // 
             // Column5
             // Column5
             // 
             // 
+            Column5.DataPropertyName = "精洗喷淋泵压力值";
             Column5.HeaderText = "精洗喷淋泵压力值";
             Column5.HeaderText = "精洗喷淋泵压力值";
             Column5.MinimumWidth = 6;
             Column5.MinimumWidth = 6;
             Column5.Name = "Column5";
             Column5.Name = "Column5";
@@ -232,6 +256,7 @@
             // 
             // 
             // Column6
             // Column6
             // 
             // 
+            Column6.DataPropertyName = "粗洗喷淋泵压力值";
             Column6.HeaderText = "粗洗喷淋泵压力值";
             Column6.HeaderText = "粗洗喷淋泵压力值";
             Column6.MinimumWidth = 6;
             Column6.MinimumWidth = 6;
             Column6.Name = "Column6";
             Column6.Name = "Column6";
@@ -240,6 +265,7 @@
             // 
             // 
             // Column7
             // Column7
             // 
             // 
+            Column7.DataPropertyName = "水分炉测量温度";
             Column7.HeaderText = "水分炉测量温度";
             Column7.HeaderText = "水分炉测量温度";
             Column7.MinimumWidth = 6;
             Column7.MinimumWidth = 6;
             Column7.Name = "Column7";
             Column7.Name = "Column7";
@@ -248,6 +274,7 @@
             // 
             // 
             // Column8
             // Column8
             // 
             // 
+            Column8.DataPropertyName = "固化炉测量温度";
             Column8.HeaderText = "固化炉测量温度";
             Column8.HeaderText = "固化炉测量温度";
             Column8.MinimumWidth = 6;
             Column8.MinimumWidth = 6;
             Column8.Name = "Column8";
             Column8.Name = "Column8";
@@ -256,7 +283,8 @@
             // 
             // 
             // Column9
             // Column9
             // 
             // 
-            Column9.HeaderText = "厂内温度";
+            Column9.DataPropertyName = "厂房温度";
+            Column9.HeaderText = "厂房温度";
             Column9.MinimumWidth = 6;
             Column9.MinimumWidth = 6;
             Column9.Name = "Column9";
             Column9.Name = "Column9";
             Column9.ReadOnly = true;
             Column9.ReadOnly = true;
@@ -264,28 +292,13 @@
             // 
             // 
             // Column10
             // Column10
             // 
             // 
-            Column10.HeaderText = "厂内湿度";
+            Column10.DataPropertyName = "厂房湿度";
+            Column10.HeaderText = "厂房湿度";
             Column10.MinimumWidth = 6;
             Column10.MinimumWidth = 6;
             Column10.Name = "Column10";
             Column10.Name = "Column10";
             Column10.ReadOnly = true;
             Column10.ReadOnly = true;
             Column10.Width = 125;
             Column10.Width = 125;
             // 
             // 
-            // pgn_Data
-            // 
-            pgn_Data.ButtonFillSelectedColor = Color.FromArgb(64, 128, 204);
-            pgn_Data.ButtonStyleInherited = false;
-            pgn_Data.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
-            pgn_Data.Location = new Point(13, 503);
-            pgn_Data.Margin = new Padding(4, 5, 4, 5);
-            pgn_Data.MinimumSize = new Size(1, 1);
-            pgn_Data.Name = "pgn_Data";
-            pgn_Data.RectSides = ToolStripStatusLabelBorderSides.None;
-            pgn_Data.ShowText = false;
-            pgn_Data.Size = new Size(1424, 44);
-            pgn_Data.TabIndex = 7;
-            pgn_Data.Text = "uiPagination1";
-            pgn_Data.TextAlignment = ContentAlignment.MiddleCenter;
-            // 
             // PageReportManage
             // PageReportManage
             // 
             // 
             AutoScaleMode = AutoScaleMode.None;
             AutoScaleMode = AutoScaleMode.None;
@@ -314,6 +327,7 @@
         private Sunny.UI.UISymbolButton btn_QueryData;
         private Sunny.UI.UISymbolButton btn_QueryData;
         private Sunny.UI.UISymbolButton btn_ExportData;
         private Sunny.UI.UISymbolButton btn_ExportData;
         private Sunny.UI.UIDataGridView dgv_Data;
         private Sunny.UI.UIDataGridView dgv_Data;
+        private Sunny.UI.UIPagination pgn_Data;
         private DataGridViewTextBoxColumn Column1;
         private DataGridViewTextBoxColumn Column1;
         private DataGridViewTextBoxColumn Column2;
         private DataGridViewTextBoxColumn Column2;
         private DataGridViewTextBoxColumn Column3;
         private DataGridViewTextBoxColumn Column3;
@@ -324,6 +338,5 @@
         private DataGridViewTextBoxColumn Column8;
         private DataGridViewTextBoxColumn Column8;
         private DataGridViewTextBoxColumn Column9;
         private DataGridViewTextBoxColumn Column9;
         private DataGridViewTextBoxColumn Column10;
         private DataGridViewTextBoxColumn Column10;
-        private Sunny.UI.UIPagination pgn_Data;
     }
     }
 }
 }

+ 68 - 1
Scada/Page/PageReportManage.cs

@@ -7,21 +7,88 @@ using System.Linq;
 using System.Text;
 using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using System.Windows.Forms;
 using System.Windows.Forms;
+using BLL.Dto.DataDto;
+using BLL.Manager;
+using Helper;
 using HZY.Framework.DependencyInjection;
 using HZY.Framework.DependencyInjection;
+using MiniExcelLibs;
 using Sunny.UI;
 using Sunny.UI;
 
 
 namespace Scada.Page
 namespace Scada.Page
 {
 {
     public partial class PageReportManage : UIPage, ISingletonSelfDependency
     public partial class PageReportManage : UIPage, ISingletonSelfDependency
     {
     {
-        public PageReportManage()
+        private BaseResult<QueryDataResultDto> res;
+        private readonly DataManager _dataManager;
+        public PageReportManage(DataManager dataManager)
         {
         {
             InitializeComponent();
             InitializeComponent();
+            this._dataManager = dataManager;
+
+            this.dtp_Start.Value = DateTime.Now.AddDays(-1);
+            this.dtp_End.Value = DateTime.Now;
+
+            this.dgv_Data.AutoGenerateColumns = false;
         }
         }
 
 
         private void PageReportManage_Load(object sender, EventArgs e)
         private void PageReportManage_Load(object sender, EventArgs e)
         {
         {
 
 
         }
         }
+
+        private async void btn_QueryData_Click(object sender, EventArgs e)
+        {
+            DateTime d1 = this.dtp_Start.Value;
+            DateTime d2 = this.dtp_End.Value;
+            if (d1 >= d2)
+            {
+                UIMessageTip.ShowWarning("开始时间不可以大于结束时间");
+                return;
+            }
+
+            QueryDataDto queryDataDto = new QueryDataDto()
+            {
+                StartTime = d1,
+                EndTime = d2
+            };
+
+            res = await _dataManager.GetDataListByTimeAsync(queryDataDto);
+            if (res.Result == SystemEnums.Result.Success)
+            {
+                //设置分页的总数
+                pgn_Data.TotalCount = res.Data.Count;
+                //设置每页的数量
+                pgn_Data.PageSize = 15;
+                pgn_Data.ActivePage = 1;
+            }
+        }
+
+        private void btn_ExportData_Click(object sender, EventArgs e)
+        {
+            SaveFileDialog saveFileDialog = new SaveFileDialog();
+            saveFileDialog.Filter = "Excel 文件(*.xlsx)|*.xlsx";
+            if (saveFileDialog.ShowDialog() == DialogResult.OK)
+            {
+                try
+                {
+                    var filePath = saveFileDialog.FileName;
+                    var rows = this.dgv_Data.DataSource as List<QueryDataResultDto>;
+
+                    MiniExcel.SaveAs(filePath, rows);
+                }
+                catch (Exception ex)
+                {
+                    UIMessageTip.ShowError("导出失败:" + ex.Message);
+                    LogExtension.ShowMessage("导出失败:" + ex.Message, Microsoft.Extensions.Logging.LogLevel.Error);
+                }
+            }
+        }
+
+        private void pgn_Data_PageChanged(object sender, object pagingSource, int pageIndex, int count)
+        {
+            var data = res.Data.Skip((pageIndex-1)*count).Take(count).ToList();
+            this.dgv_Data.DataSource = null;
+            this.dgv_Data.DataSource = data;
+        }
     }
     }
 }
 }