|
|
using DevExpress.XtraEditors;
|
|
|
using DevExpress.XtraGrid.Columns;
|
|
|
using SqlSugar;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Configuration;
|
|
|
using System.Drawing;
|
|
|
using System.IO;
|
|
|
using System.Web.UI.WebControls;
|
|
|
using System.Windows.Forms;
|
|
|
using ZJ_BYD.Common;
|
|
|
using ZJ_BYD.DB;
|
|
|
using ZJ_BYD.Untils;
|
|
|
using ZJ_BYD.ViewModel;
|
|
|
|
|
|
namespace ZJ_BYD
|
|
|
{
|
|
|
public partial class SearchResult : XtraForm
|
|
|
{
|
|
|
private int pagesize = 30; //每页显示行数
|
|
|
private int totalCount = 0; //总记录数
|
|
|
private int pageCurrent = 1; //当前页号
|
|
|
|
|
|
public SearchResult()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
Top = 0;
|
|
|
Left = 0;
|
|
|
Width = Screen.PrimaryScreen.WorkingArea.Width;
|
|
|
Height = Screen.PrimaryScreen.WorkingArea.Height;
|
|
|
gridView1.CustomDrawRowIndicator += GridView1_CustomDrawRowIndicator;
|
|
|
gridPage1.williamPagerEvent += GridPage1_williamPagerEvent;
|
|
|
gridView1.IndicatorWidth = 35;
|
|
|
dtBegin.Text = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
|
|
|
dtEnd.Text = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
}
|
|
|
|
|
|
private void SearchResult_Load(object sender, EventArgs e)
|
|
|
{
|
|
|
var logoFileName = ConfigurationManager.AppSettings["logofilename"];
|
|
|
var imgPath = Path.Combine(Application.StartupPath, "image/" + logoFileName);
|
|
|
loginpic.Image = System.Drawing.Image.FromFile(imgPath);
|
|
|
|
|
|
BindCombox.BindSystemMode(cmbMode);
|
|
|
BindCombox.BindIsOk(cmbIsUpload);
|
|
|
}
|
|
|
|
|
|
private void GetData(int pageCurrent = 1)
|
|
|
{
|
|
|
var list = DataSource();
|
|
|
this.gridResult.DataSource = list;
|
|
|
gridPage1.RefreshPager(pagesize, totalCount, pageCurrent);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 数据源
|
|
|
/// </summary>
|
|
|
/// <param name="isPage"></param>
|
|
|
/// <returns></returns>
|
|
|
private List<ResultVM> DataSource(bool isPage = true)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
var selectedItem = cmbMode.SelectedItem as ListItem;
|
|
|
ListItem isOkSelectedItem = cmbIsUpload.SelectedItem as ListItem;
|
|
|
string sqlCol = "";
|
|
|
|
|
|
var beginParseResult = DateTime.TryParse(this.dtBegin.Text, out var dtBeginDate);
|
|
|
var endParseResult = DateTime.TryParse(string.Format("{0} 23:59:59", this.dtEnd.Text), out var dtEndDate);
|
|
|
if (!beginParseResult || !endParseResult)
|
|
|
{
|
|
|
MessageBox.Show("时间格式有误,请重新设置");
|
|
|
return null;
|
|
|
}
|
|
|
else if (dtBeginDate > dtEndDate)
|
|
|
{
|
|
|
MessageBox.Show("开始时间不能大于结束时间,请重新设置");
|
|
|
return null;
|
|
|
}
|
|
|
#region 查询条件
|
|
|
var strWhere = @" WHERE t_result.linecode=@linecode and t_result.stationcode=@stationcode and t_result.createdtime>=@begindate AND t_result.createdtime<=@enddate";
|
|
|
var paras = new List<SugarParameter>
|
|
|
{
|
|
|
new SugarParameter("@linecode", Program.CurrentLineCode),
|
|
|
new SugarParameter("@stationcode", Program.ActiveStatinCode),
|
|
|
new SugarParameter("@begindate", dtBeginDate),
|
|
|
new SugarParameter("@enddate", dtEndDate)
|
|
|
};
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(txtkeyword.Text.Trim()))
|
|
|
{
|
|
|
strWhere += @" and (t_result.stationcode like @keyword or stationname like @keyword
|
|
|
or productsfccode like @keyword or barcode like @keyword)";
|
|
|
paras.Add(new SugarParameter("@keyword", string.Format("%{0}%", txtkeyword.Text.Trim())));
|
|
|
}
|
|
|
if (selectedItem != null)
|
|
|
{
|
|
|
var selectedVal = selectedItem.Value != "0";
|
|
|
strWhere += @" and t_result.sysmode=@selectedval";
|
|
|
paras.Add(new SugarParameter("@selectedval", selectedVal));
|
|
|
}
|
|
|
if (isOkSelectedItem != null)
|
|
|
{
|
|
|
var selectedVal = selectedItem.Value != "0";
|
|
|
strWhere += @" and t_result.isuploaded=@isokselectedval";
|
|
|
paras.Add(new SugarParameter("@isokselectedval", selectedVal));
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
//查询点位信息
|
|
|
var plcPoints = PlcPointHelper.QueryActiveCustomPlcPoints(Program.CurrentIpcId, Program.CurrentLineCode, Program.ActiveStatinCode).ToList();
|
|
|
string sql;
|
|
|
if (plcPoints.Count > 0)
|
|
|
{
|
|
|
int visibleIndex = 14;
|
|
|
|
|
|
foreach (var item in plcPoints)
|
|
|
{
|
|
|
#region 动态添加列
|
|
|
GridColumn column = new GridColumn();
|
|
|
column.AppearanceCell.Font = new Font("微软雅黑", 12F);
|
|
|
column.AppearanceCell.Options.UseFont = true;
|
|
|
column.AppearanceCell.ForeColor = Color.FromArgb(((int)(((byte)(82)))), ((int)(((byte)(215)))), ((int)(((byte)(246)))));
|
|
|
column.AppearanceCell.Options.UseForeColor = true;
|
|
|
column.AppearanceCell.BackColor = Color.FromArgb(((int)(((byte)(9)))), ((int)(((byte)(28)))), ((int)(((byte)(77)))));
|
|
|
column.AppearanceCell.Options.UseBackColor = true;
|
|
|
column.AppearanceHeader.BackColor = Color.FromArgb(((int)(((byte)(9)))), ((int)(((byte)(28)))), ((int)(((byte)(77)))));
|
|
|
column.AppearanceHeader.Font = new Font("微软雅黑", 12F);
|
|
|
column.AppearanceHeader.Options.UseBackColor = true;
|
|
|
column.AppearanceHeader.ForeColor = Color.White;
|
|
|
column.AppearanceHeader.Options.UseFont = true;
|
|
|
column.Caption = item.PointName;
|
|
|
column.FieldName = item.ResultField;
|
|
|
column.MinWidth = 120;
|
|
|
column.Name = item.ResultField;
|
|
|
column.Visible = true;
|
|
|
column.VisibleIndex = visibleIndex;
|
|
|
column.Width = 120;
|
|
|
column.OptionsColumn.AllowEdit = false;
|
|
|
column.OptionsColumn.AllowMerge = DevExpress.Utils.DefaultBoolean.False;
|
|
|
column.OptionsColumn.AllowMove = false;
|
|
|
column.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False;
|
|
|
column.OptionsFilter.AllowFilter = false;
|
|
|
sqlCol += $"coalesce({item.ResultField},'') as \"{item.ResultField}\",";
|
|
|
var col = gridView1.Columns.ColumnByName(item.ResultField);
|
|
|
if (col == null)
|
|
|
{
|
|
|
gridView1.Columns.Add(column);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
visibleIndex++;
|
|
|
}
|
|
|
sql = string.Format(@"select {0} t_result.createdtime as CreatedTime,t_result.stationcode as StationCode
|
|
|
,stationname as StationName,loginuser as LoginUser,sysmode as SysMode
|
|
|
,case sysmode when true then '在线' else '离线' end as StrSysMode
|
|
|
,productsfccode as ProductSfcCode,totalstatus as TotalStatus,bulkparts as BulkParts
|
|
|
,isuploaded as IsUploaded
|
|
|
,case isuploaded when true then '是' else '否' end as StrIsUpload
|
|
|
,uploadmsg as UploadMsg,barcode as BarCode,t_result.category as Category
|
|
|
from t_result
|
|
|
left join t_station on t_result.linecode=t_station.linecode
|
|
|
and t_result.stationcode=t_station.stationcode
|
|
|
and t_result.category=t_station.category {1} ORDER BY t_result.createdtime DESC", sqlCol, strWhere);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
sql = string.Format(@"select t_result.createdtime as CreatedTime,t_result.stationcode as StationCode
|
|
|
,stationname as StationName,loginuser as LoginUser,sysmode as SysMode
|
|
|
,case sysmode when true then '在线' else '离线' end as StrSysMode
|
|
|
,productsfccode as ProductSfcCode,totalstatus as TotalStatus,bulkparts as BulkParts
|
|
|
,isuploaded as IsUploaded
|
|
|
,case isuploaded when true then '是' else '否' end as StrIsUpload
|
|
|
,uploadmsg as UploadMsg,barcode as BarCode,t_result.category as Category
|
|
|
from t_result
|
|
|
left join t_station on t_result.linecode=t_station.linecode
|
|
|
and t_result.stationcode=t_station.stationcode
|
|
|
and t_result.category=t_station.category {0} ORDER BY t_result.createdtime DESC", strWhere);
|
|
|
}
|
|
|
if (isPage)
|
|
|
{
|
|
|
var data = ResultHelper.QueryBySql(sql, paras.ToArray()).ToPageList(pageCurrent, pagesize, ref totalCount);
|
|
|
return data;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
var data = ResultHelper.QueryBySql(sql, paras.ToArray()).ToList();
|
|
|
return data;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
var msg = ex == null ? "执行SearchResult中DataSource方法时异常" : ex.Message;
|
|
|
LogHelper.WriteLog($"执行SearchResult中DataSource方法时异常:{msg}");
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 点击查询按钮
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void btnsearch_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
SplashScreenManager.ShowWaitForm();
|
|
|
GetData();
|
|
|
SplashScreenManager.CloseWaitForm();
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 点击导出按钮
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void btnexport_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
FolderBrowserDialog path = new FolderBrowserDialog();
|
|
|
if (path.ShowDialog() == DialogResult.OK)
|
|
|
{
|
|
|
SplashScreenManager.ShowWaitForm();
|
|
|
var list = DataSource(false);
|
|
|
var filePath = string.Format("{0}\\{1}.xlsx", path.SelectedPath, DateTime.Now.ToString("yyyyMMddHHmmss"));
|
|
|
|
|
|
#region 设置列名称
|
|
|
var mappingColumns = new List<ExcelColumns>();
|
|
|
var co1 = new ExcelColumns { field = "CreatedTime", title = "创建时间" };
|
|
|
var co2 = new ExcelColumns { field = "StrIsUpload", title = "是否已上传" };
|
|
|
var co3 = new ExcelColumns { field = "UploadMsg", title = "上传结果" };
|
|
|
var co4 = new ExcelColumns { field = "StrSysMode", title = "模式" };
|
|
|
var co5 = new ExcelColumns { field = "LoginUser", title = "用户" };
|
|
|
var co6 = new ExcelColumns { field = "StationCode", title = "工位编码" };
|
|
|
var co7 = new ExcelColumns { field = "StationName", title = "工位名称" };
|
|
|
var co8 = new ExcelColumns { field = "ProductSfcCode", title = "主条码" };
|
|
|
var co9 = new ExcelColumns { field = "TotalStatus", title = "总状态" };
|
|
|
var co10 = new ExcelColumns { field = "BulkParts", title = "散件条码" };
|
|
|
var co11 = new ExcelColumns { field = "Category", title = "分类" };
|
|
|
var co12 = new ExcelColumns { field = "BarCode", title = "打印条码" };
|
|
|
mappingColumns.Add(co1);
|
|
|
mappingColumns.Add(co2);
|
|
|
mappingColumns.Add(co3);
|
|
|
mappingColumns.Add(co4);
|
|
|
mappingColumns.Add(co5);
|
|
|
mappingColumns.Add(co6);
|
|
|
mappingColumns.Add(co7);
|
|
|
mappingColumns.Add(co8);
|
|
|
mappingColumns.Add(co9);
|
|
|
mappingColumns.Add(co10);
|
|
|
mappingColumns.Add(co11);
|
|
|
mappingColumns.Add(co12);
|
|
|
//查询点位信息
|
|
|
var plcPoints = PlcPointHelper.QueryActiveCustomPlcPoints(Program.CurrentIpcId, Program.CurrentLineCode, Program.ActiveStatinCode).ToList();
|
|
|
foreach (var item in plcPoints)
|
|
|
{
|
|
|
var column = new ExcelColumns { field = item.ResultField, title = item.PointName };
|
|
|
mappingColumns.Add(column);
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
if (list == null || list.Count <= 0)
|
|
|
{
|
|
|
SplashScreenManager.CloseWaitForm();
|
|
|
XtraMessageBox.Show("无数据!", "提示");
|
|
|
return;
|
|
|
}
|
|
|
ExcelHelper.ToExcel(list, filePath, mappingColumns, true);
|
|
|
SplashScreenManager.CloseWaitForm();
|
|
|
XtraMessageBox.Show("导出成功!", "提示");
|
|
|
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
SplashScreenManager.CloseWaitForm();
|
|
|
XtraMessageBox.Show("导出数据异常!", "提示");
|
|
|
LogHelper.WriteErrorLog("导出数据异常!", ex);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void lblClose_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
this.Close();
|
|
|
}
|
|
|
|
|
|
private void picminimize_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
//this.WindowState = FormWindowState.Minimized;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 分页事件
|
|
|
/// </summary>
|
|
|
/// <param name="curPage"></param>
|
|
|
/// <param name="pageSize"></param>
|
|
|
private void GridPage1_williamPagerEvent(int curPage, int pageSize)
|
|
|
{
|
|
|
pageCurrent = curPage;
|
|
|
pagesize = pageSize;
|
|
|
GetData(curPage);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 行号
|
|
|
/// </summary>
|
|
|
/// <param name="sender"></param>
|
|
|
/// <param name="e"></param>
|
|
|
private void GridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
|
|
|
{
|
|
|
if (e.Info.IsRowIndicator && e.RowHandle > -1)
|
|
|
{
|
|
|
e.Info.DisplayText = (e.RowHandle + 1).ToString();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|