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;
List recipeCodes = new List()
{
""
};
recipeCodes.AddRange(ZxRecipeService.Instance.GetRecipeInfos().Select(x => x.RecipeCode).ToList());
List workStationNos = new List()
{
""
};
workStationNos.AddRange(ZxReaderSettingService.Instance.GetReaderInfos().Select(x => x.WorkstationNo).ToList());
List deviceNos = new List()
{
""
};
deviceNos.AddRange(ZxTagSettingService.Instance.GetTagInfos().Select(x => x.DeviceNo).ToList());
RecipeCodeCombobox.DataSource = recipeCodes;
VulcanizationNoCombobox.DataSource = workStationNos;
DeviceNoCombobox.DataSource = deviceNos;
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));
_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,
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),
});
}
}
///
/// 导出报表
///
///
///
private void ExportTableButton_Click(object sender, EventArgs e)
{
ExportPreviewForm exportPreviewForm = new ExportPreviewForm(dailyEntities);
if (exportPreviewForm.ShowDialog() == DialogResult.OK)
{
//MessageBox.Show("导出成功");
}
}
}
}