using HighWayIot.Repository.domain;
using HighWayIot.Repository.service;
using HighWayIot.Winform.Business;
using HighWayIot.Winform.UserControlPages.LogPages;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace HighWayIot.Winform.UserControlPages
{
public partial class DailyReportPage : UserControl
{
///
/// 报表服务类
///
private ZxDailyReportService _zxDailyReportService = ZxDailyReportService.Instance;
private List dailyEntities = new List();
///
/// datagridview 数据源
/// 必须使用BindingList, 如果使用LIST,无法实现更改,添加、删除数据源自动更新datagridview
///
private BindingList _monitorDataSources = new BindingList();
public DailyReportPage()
{
InitializeComponent();
Init();
}
private void Init()
{
ReportDataGridView.AutoGenerateColumns = false;
SelectStartTime.Value = DateTime.Now.AddDays(-1);
SelectEndTime.Value = DateTime.Now;
ReportDataGridView.DataSource = null;
ReportDataGridView.DataSource = _monitorDataSources;
DataRefresh();
}
private void SelectReport_Click(object sender, EventArgs e)
{
DataRefresh();
}
private void DataRefresh()
{
dailyEntities.Clear();
this.dailyEntities =
_zxDailyReportService.GetDailyReportInfos(x =>
x.StartTime >= SelectStartTime.Value
&& x.StartTime <= SelectEndTime.Value
&& (string.IsNullOrEmpty(RecipeCodeCombobox.Text) || x.RecipeCode == RecipeCodeCombobox.Text)
&& (string.IsNullOrEmpty(VulcanizationNoCombobox.Text) || x.VulcanizationNo == VulcanizationNoCombobox.Text)
&& (string.IsNullOrEmpty(DeviceNoCombobox.Text) || x.DeviceNo.ToString() == DeviceNoCombobox.Text))
.OrderByDescending(x => x.StartTime)
.ToList();
_monitorDataSources.Clear();
for (int i = 0; i < dailyEntities.Count; i++)
{
_monitorDataSources.Add(new MonitorDataSource()
{
No = i + 1,
VulcanizationNo = dailyEntities[i].VulcanizationNo,
StartTime = dailyEntities[i].StartTime.ToString("MM月dd日 HH:mm:ss"),
RecipeName = dailyEntities[i].RecipeName,
RecipeCode = dailyEntities[i].RecipeCode,
SpecCode = dailyEntities[i].SpecCode,
DeviceNo = dailyEntities[i].DeviceNo.ToString(),
StandardWeight = dailyEntities[i].StandardWeight ?? 0,
RawTireWeight = dailyEntities[i].RawTireWeight ?? 0,
BaseRubTimeSpan = GeneralUtils.DateTimeToString(dailyEntities[i].StartTime, dailyEntities[i].BaseEndTime),
MidRubTimeSpan = GeneralUtils.DateTimeToString(dailyEntities[i].StartTime, dailyEntities[i].MidEndTime),
FaceRubTimeSpan = GeneralUtils.DateTimeToString(dailyEntities[i].StartTime, dailyEntities[i].FaceEndTime),
IsDone = dailyEntities[i].IsDone == 1 ? "已完成" : "未完成"
});
}
List ds1 = new List() { "" };
ds1.AddRange(_monitorDataSources
.Select(x => x.VulcanizationNo)
.Distinct()
.OrderBy(x => x)
.ToList());
VulcanizationNoCombobox.DataSource = ds1;
VulcanizationNoCombobox.SelectedIndex = 0;
List ds2 = new List() { "" };
ds2.AddRange(_monitorDataSources
.Select(x => x.DeviceNo)
.Distinct()
.OrderBy(x => x)
.ToList());
DeviceNoCombobox.DataSource = ds2;
DeviceNoCombobox.SelectedIndex = 0;
List ds3 = new List() { "" };
ds3.AddRange(_monitorDataSources
.Select(x => x.RecipeCode)
.Distinct()
.OrderBy(x => x)
.ToList());
RecipeCodeCombobox.DataSource = ds3;
RecipeCodeCombobox.SelectedIndex = 0;
DataCountLabel.Text = _monitorDataSources.Count.ToString();
}
///
/// 导出报表
///
///
///
private void ExportTableButton_Click(object sender, EventArgs e)
{
ExportPreviewForm exportPreviewForm = new ExportPreviewForm(dailyEntities);
if (exportPreviewForm.ShowDialog() == DialogResult.OK)
{
//MessageBox.Show("导出成功");
}
}
///
/// 删除多余数据
///
///
///
private void DeleteUselessData_Click(object sender, EventArgs e)
{
if (_zxDailyReportService.DeleteMoreData())
{
MessageBox.Show("删除成功");
}
}
}
}