|
- using Devart.Data;
- using MaiMuAOI.SysCtrl;
- using MaiMuAOI.SysUI.ProductAndStep;
- using MaiMuControl.SysStatusMgr.UserMgr;
- using Models;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using OpenCvSharp.Flann;
- using SqlSugar;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Data.Common;
- using System.Drawing;
- using System.Dynamic;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using System.Runtime.InteropServices.ComTypes;
- using System.Runtime.Serialization;
- using System.Text;
- using System.Threading.Tasks;
- using System.Web.Routing;
- using System.Web.UI.WebControls;
- using System.Windows.Forms;
- using static MaiMuControl.Form1;
- using DataTable = System.Data.DataTable;
- using Point = System.Drawing.Point;
- using Excel = Microsoft.Office.Interop.Excel;
-
- namespace MaiMuAOI.SysUI.DefectPicShow
- {
- public partial class DataQueryFrm : Form
- {
- Service.OrderService OrderService = new Service.OrderService();
- List<Order> QueryOrders = new List<Order>();
- List<Order> QueryAllOrders = new List<Order>();
-
- List<string> ItemName = new List<string>();
- List<string> labels = new List<string>();
-
- public DataQueryFrm()
- {
- InitializeComponent();
- UIStyle.SetUIStyle(this);
- this.uiTitel1.FatherForm = this;
-
- //反射 循环 获取数据
- labels.Add("Tension");
- labels.Add("Height");
-
- Type t = typeof(PointTestType);
- FieldInfo[] fieldInfos = t.GetFields();
- foreach (var item in fieldInfos)
- {
- //不是枚举字段不处理
- if (item.FieldType.IsEnum)
- {
- //名称可以直接获取
- ItemName.Add(item.Name);
- labels.Add(item.Name);
- }
- }
- }
-
- private void DataQueryFrm_Load(object sender, EventArgs e)
- {
- LoadPdtList(SysMgr.Instance.ProductCodeList);
-
- //激活OnPageChanged事件
- pageCtrl1.OnPageChanged += new EventHandler(pagerControl1_OnPageChanged);
- }
-
- #region 切页
- /// <summary>
- /// 页数变化时调用绑定数据方法
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void pagerControl1_OnPageChanged(object sender, EventArgs e)
- {
- QueryData();
- }
- #endregion
-
- #region 加载料号
- private string[] pdtlistData;
- private void LoadPdtList(List<string> list)
- {
- this.cbProductCode.Items.Clear();
- this.pdtlistData = list.ToArray();
- cbProductCode.Items.AddRange(pdtlistData);//比使用DataSource速度要快一些
- cbProductCode.TextUpdate += cobList_TextUpdate;//重新绑定事件
- cbProductCode.KeyDown += CobList_KeyDown;
- this.cbProductCode.Text = "";
- cbProductCode.Focus();
- cbProductCode.SelectAll();
- }
- private void CobList_KeyDown(object sender, KeyEventArgs e)
- {
- ComboBox ctrl = sender as ComboBox;
- if (e.KeyCode == Keys.Enter)
- {
- if (ctrl.Items.Count == 1)
- ctrl.Text = ctrl.Items[0].ToString();
- }
- }
-
- private void cobList_TextUpdate(object sender, EventArgs e)
- {
- ComboBox ctrl = sender as ComboBox;
- if (ctrl.Text != null)
- {
- string str = ctrl.Text; //获取cb_material控件输入内
- //清空combobox
- ctrl.DataSource = null;
- ctrl.Items.Clear();
-
- string[] workOrderFiltered;
-
- workOrderFiltered = pdtlistData.Where(x => x.IndexOf(str, StringComparison.CurrentCultureIgnoreCase) != -1).ToArray();//忽略大小写
- ctrl.Items.AddRange(workOrderFiltered);//比使用DataSource速度要快一些
-
- // 不存在符合条件时
- //设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列
- ctrl.Cursor = Cursors.Default; //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置
- if (workOrderFiltered.Length > 0)
- {
- if (!ctrl.DroppedDown)
- ctrl.DroppedDown = true; // 自动弹出下拉框
- }
-
- ctrl.SelectionStart = str.Length; // 设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列
- }
- }
-
- #endregion
-
- #region 查询数据
-
- #region 数据库查询
- private class domainItem
- {
- public string FieldName { get; set; }
- public string FieldValue { get; set; }
- public int ConditionalType { get; set; }
- }
- private class QueryOrderData
- {
- public string model { get; set; }
- public string fields { get; set; }
- public List<domainItem> domain { get; set; }
- public string order { get; set; }
-
- public int pageNum { get; set; }
- public int pageSize { get; set; }
-
- }
- private List<Order> getTableList(JObject req, out int TotalCnt)
- {
- try
- {
- string model, fields = "", domain = "", order = "";
- int pageNum = 0, pageSize = 0, totalCount = 0;
-
- model = req.Value<string>("model");
- if (req.ContainsKey("fields")) fields = req.Value<string>("fields");
- if (req.ContainsKey("domain")) domain = req.Value<JArray>("domain").ToString();
- if (req.ContainsKey("order")) order = req.Value<string>("order");
-
- if (req.ContainsKey("pageNum")) pageNum = req.Value<int>("pageNum");
- if (req.ContainsKey("pageSize")) pageSize = req.Value<int>("pageSize");
-
- //创建表达式
- var exp1 = Expressionable.Create<Order>()
- //.AndIF((int)cobProductList.SelectedValue > 0, it => it.ProductId == (int)cobProductList.SelectedValue)
- //.AndIF((int)cobStepList.SelectedValue > 0, it => it.StepId == (int)cobStepList.SelectedValue)
- //.AndIF(dateTimePicker1.Checked, it => it.CreateTime >= dateTimePicker1.Value)
- //.AndIF(dateTimePicker2.Checked, it => it.CreateTime < dateTimePicker2.Value)
- .ToExpression();//注意 这一句 不能少
-
-
- var list = OrderService.GetListEx(fields, domain, order, pageNum, pageSize, ref totalCount);
- TotalCnt = totalCount;
- //var list = svcOrder.GetListNav(pageNum, pageSize, ref totalCount, exp1);
- return list;
- }
- catch (Exception ex)
- {
- ;
- }
- TotalCnt = 0;
- return null;
- }
- #endregion
-
- #region 新老流程数据分析
- private void ShowDataTableEx(List<Order> list)
- {
- dataGridView1.Columns.Clear();
- //记录数据类型列数
- Dictionary<string, int> dataCnt = new Dictionary<string, int>();
- List<Product> products = new List<Product>();
- DataTable dt = new DataTable(); //建立个数据表
- //通用列
- DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
- chk.Name = "Select";
- chk.HeaderText = "选择";
- dataGridView1.Columns.Add(chk);
- dt.Columns.Add(new DataColumn("检验日期", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("检测单号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("产品名称", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("料号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("网版编码", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("批次", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("目数", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("线径", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("合格", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("修复", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("异常情况", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("修复人员", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("比对", typeof(string)));//在表中添加string类型的列
-
- foreach(var item in list)
- {
- //老流程
- if(item.StepInfo == null ||item.StepInfo.ProcessType != "快速流程")
- {
- //加入数据表
- if(item.SizeDefectInfoList == null)
- item.SizeDefectInfoList = new List<SizeDefectInfo>();
- #region 张力
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension5,
- });
- #endregion
- #region 厚度
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height5,
- });
- #endregion
- #region YPT
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT6,
- });
- #endregion
- #region 线宽
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth6,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth7,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth8,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth9,
- });
- #endregion
- if (!dataCnt.ContainsKey("张力"))
- dataCnt.Add("张力", 5);
- else
- if (dataCnt["张力"] < 5)
- dataCnt["张力"] = 5;
-
- if (!dataCnt.ContainsKey("厚度"))
- dataCnt.Add("厚度", 5);
- else
- if (dataCnt["厚度"] < 5)
- dataCnt["厚度"] = 5;
-
- if (!dataCnt.ContainsKey("Y轴方向PT值检测"))
- dataCnt.Add("Y轴方向PT值检测", 5);
- else
- if (dataCnt["Y轴方向PT值检测"] < 5)
- dataCnt["Y轴方向PT值检测"] = 5;
-
- if (!dataCnt.ContainsKey("线宽正面"))
- dataCnt.Add("线宽正面", 9);
- else
- if (dataCnt["线宽正面"] < 9)
- dataCnt["线宽正面"] = 9;
- }
- else
- {
- //string[] pointType = new string[19] {"Tension", "Height", "Y轴方向PT值检测" , "线宽正面" , "反面检测" ,
- // "X轴方向PT值检测","主栅连接线检测","主栅宽度检测","主栅间距","细栅间距检测","背极宽度",
- // "主栅长度检测","Mark点横向间距","Mark点竖向间距","鱼叉口长","鱼叉口宽","鱼叉口间距", "蜈蚣角长", "蜈蚣角宽"};
-
- //按照检测项目分类
- //string[] pointType = labels.ToArray();
- //for (int i = 0; i < pointType.Length; i++)
- //{
- // List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.PointCode == pointType[i]).ToList();
- // if (t.Count > 0)
- // {
- // //当前测试项数据个数
- // if (!dataCnt.ContainsKey(pointType[i]))
- // dataCnt.Add(pointType[i], t.Count);
- // else
- // if (dataCnt[pointType[i]] < t.Count)
- // dataCnt[pointType[i]] = t.Count;
- // }
- //}
-
- //按照步骤流程分类
- string[] pointType = item.SizeDefectInfoList.Select(t => t.StepName).Distinct().ToList().ToArray();
- for (int i = 0; i < pointType.Length; i++)
- {
- List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.StepName == pointType[i]&& !q.isAverage).ToList();
- if (t.Count > 0)
- {
- //当前测试项数据个数
- if (!dataCnt.ContainsKey(pointType[i]))
- dataCnt.Add(pointType[i], t.Count);
- else
- if (dataCnt[pointType[i]] < t.Count)
- dataCnt[pointType[i]] = t.Count;
- }
- }
- }
- }
- //插入列
- foreach (var item in dataCnt)
- {
- dt.Columns.Add(new DataColumn($"{item.Key}上下限", typeof(string)));
- //按步骤名称插入列
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"{item.Key}-{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn($"{item.Key}均值", typeof(string)));
- #if false
- switch (item.Key)
- {
- case "Tension":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"张力{i+1}", typeof(string)));
- dt.Columns.Add(new DataColumn("张力均值", typeof(string)));
- break;
- case "Height":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"厚度{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("厚度均值", typeof(string)));
- break;
- case "Y轴方向PT值检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"Y轴方向PT值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("Y轴方向PT值均值", typeof(string)));
- break;
- case "线宽正面":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"线宽正面{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("线宽正面均值", typeof(string)));
- break;
- case "反面检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"反面检测{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("反面检测均值", typeof(string)));
- break;
- case "X轴方向PT值检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"X轴方向PT值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("X轴方向PT值均值", typeof(string)));
- break;
-
- case "主栅连接线检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅连接线检测值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅连接线检测均值", typeof(string)));
- break;
- case "主栅宽度检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅宽度检测值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅宽度检测均值", typeof(string)));
- break;
- case "主栅间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅间距值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅间距均值", typeof(string)));
- break;
- case "细栅间距检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"细栅间距检测值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("细栅间距检测均值", typeof(string)));
- break;
- case "背极宽度":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"背极宽度值{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("背极宽度均值", typeof(string)));
- break;
-
- case "主栅长度检测":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"主栅长度检测{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("主栅长度检测均值", typeof(string)));
- break;
- case "Mark点横向间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"Mark点横向间距{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("Mark点横向间距均值", typeof(string)));
- break;
- case "Mark点竖向间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"Mark点竖向间距{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("Mark点竖向间距均值", typeof(string)));
- break;
- case "鱼叉口长":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"鱼叉口长{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("鱼叉口长均值", typeof(string)));
- break;
- case "鱼叉口宽":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"鱼叉口宽{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("鱼叉口宽均值", typeof(string)));
- break;
- case "鱼叉口间距":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"鱼叉口间距{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("鱼叉口间距均值", typeof(string)));
- break;
- case "蜈蚣角长":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"蜈蚣角长{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("蜈蚣角长均值", typeof(string)));
- break;
- case "蜈蚣角宽":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"蜈蚣角宽{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("蜈蚣角宽均值", typeof(string)));
- break;
-
- case "分片间隔":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"分片间隔{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("分片间隔均值", typeof(string)));
- break;
- case "焊点长":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"焊点长{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("焊点长均值", typeof(string)));
- break;
- case "焊点宽":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"焊点宽{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("焊点宽均值", typeof(string)));
- break;
- case "焊点间隔":
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"焊点间隔{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn("焊点间隔均值", typeof(string)));
- break;
- }
- #endif
- }
-
- dt.Columns.Add(new DataColumn("堵孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("脏污数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝异常数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("纤维丝数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("缺口数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("针孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("泡泡数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("划伤数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("压线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("斜边数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("格栅数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("断栅数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝断裂数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("残胶堵孔数量", typeof(int)));//在表中添加int类型的列
-
- //插入按钮
- dataGridView1.DataSource = dt;
- //在datagridview中添加button按钮
- //DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
- //btn.Name = "Modify";
- //btn.HeaderText = "操作";
- //btn.DefaultCellStyle.NullValue = "修改";
- //dataGridView1.Columns.Add(btn);
- //DataGridViewButtonColumn btn2 = new DataGridViewButtonColumn();
- //btn2.Name = "HistoryView";
- //btn2.HeaderText = "查看";
- //btn2.DefaultCellStyle.NullValue = "历史";
- //dataGridView1.Columns.Add(btn2);
- DataGridViewButtonColumn btn3 = new DataGridViewButtonColumn();
- btn3.Name = "Distribution";
- btn3.HeaderText = "缺陷分布";
- btn3.DefaultCellStyle.NullValue = "分布";
- dataGridView1.Columns.Add(btn3);
-
- DataTable dts = (DataTable)dataGridView1.DataSource;
- dts.Clear();
- List<Point> FailPoint = new List<Point>();
- int row_index = 0;
- int col_index = 9;
- foreach (var item in list)
- {
- //新增
- DataRow dr;//行
- dr = dts.NewRow();
- //dr["选择"] = false;
- dr["检验日期"] = item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
- dr["检测单号"] = item.DetectOrder;
- dr["产品名称"] = item.ProductInfo.Name;
- dr["料号"] = item.ProductInfo.Code;
- dr["网版编码"] = item.SN;
- dr["批次"] = item.BatchId;
- //dr["目数"] = item.ProductInfo.HoleCount;
- dr["目数"] = item.MeshNumber;
- dr["线径"] = item.WireDiameter;
- dr["合格"] = item.Qualified ? "合格": "不合格";
- //dr["修复"] = item.State == 10 ? "异常" : item.State == 5 ? "修复" : "待修复";
- //dr["异常情况"] = item.Abnormalities;
- //dr["修复人员"] = item.RepairCode;
- dr["比对"] = item.CompareResult == 2 ? "不通过" : item.CompareResult == 1 ? "通过" : "未比对";
-
- //根据不同步骤名称插入数据
- List<SizeDefectInfo> tempd = new List<SizeDefectInfo>();
- foreach (var tdata in dataCnt)
- {
- tempd = item.SizeDefectInfoList.Where(q => q.StepName == tdata.Key).ToList();
-
- var tempstep = item.StepInfo.ProcessList.Where(q => q.ProcessName == tdata.Key).FirstOrDefault();
- if (tempstep != null)
- {
- JObject processParam = JObject.Parse(tempstep.ProcessParams);
- double vMax = processParam.Value<double>("MaxLimit");
- double vMin = processParam.Value<double>("MinLimit");
- bool isOpenLimit = processParam.Value<bool>("OpenUseLimit");
- string limit = "";
- if (vMax == vMin)
- limit = $"±{vMax}";
- else
- limit = $"(+{vMax},-{vMin})";
- if (isOpenLimit)
- {
- dr[$"{tdata.Key}上下限"] = $"{processParam.Value<double>("StandardValues")}{limit}";
- }
- else
- dr[$"{tdata.Key}上下限"] = $"";
- }
-
- List<double> dataList = new List<double>();
- for (int i = 0; i < tempd.Count; i++)
- {
- if (tempd[i].isAverage == false)
- {
- dataList.Add(tempd[i].Data);
- dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- }
- //不合格数据添加队列
- if(i + 1 == tempd.Count)
- col_index = this.dataGridView1.Columns[$"{tdata.Key}均值"].Index;
- else
- col_index = this.dataGridView1.Columns[$"{tdata.Key}-{i + 1}"].Index;
- if (tempd[i].result == 2)
- FailPoint.Add(new Point(row_index, col_index));
- }
- if (dataList.Count > 0)
- dr[$"{tdata.Key}均值"] = dataList.Average().ToString("0.0000");
- else
- dr[$"{tdata.Key}均值"] = "0";
- #if false
- switch (tdata.Key)
- {
- case "Tension":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Tension").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"张力{i + 1}"] = tempd[i].Data.ToString("0.00") ;
- dr["张力均值"] = item.TensionValue.ToString("0.00");
- break;
- case "Height":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Height").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"厚度{i + 1}"] = tempd[i].Data.ToString("0.00");
- dr["厚度均值"] = item.HeightValue.ToString("0.00");
- break;
- case "Y轴方向PT值检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Y轴方向PT值检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"Y轴方向PT值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["Y轴方向PT值均值"] = item.PTValue.ToString("0.0000");
- break;
- case "线宽正面":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "线宽正面").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"线宽正面{i + 1}"] = tempd[i].Data.ToString("0.00");
- dr["线宽正面均值"] = item.LineWidthValue.ToString("0.00");
- break;
- case "反面检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "反面检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"反面检测{i + 1}"] = tempd[i].Data.ToString("0.00");
- dr["反面检测均值"] = item.FLineWidthValue.ToString("0.00");
- break;
- case "X轴方向PT值检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "X轴方向PT值检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"X轴方向PT值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["X轴方向PT值均值"] = item.XPTValue.ToString("0.0000");
- break;
- case "主栅连接线检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅连接线检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅连接线检测值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅连接线检测均值"] = item.MGridIntervalValue.ToString("0.0000");
- break;
- case "主栅宽度检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅宽度检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅宽度检测值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅宽度检测均值"] = item.MGridWidthValue.ToString("0.0000");
- break;
- case "主栅间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅间距值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅间距均值"] = item.MGridSpreadValue.ToString("0.0000");
- break;
- case "细栅间距检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "细栅间距检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"细栅间距检测值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["细栅间距检测均值"] = item.FGridSpreadValue.ToString("0.0000");
- break;
- case "背极宽度":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "背极宽度").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"背极宽度值{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["背极宽度均值"] = item.BackPoleWidthValue.ToString("0.0000");
- break;
-
- case "主栅长度检测":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "主栅长度检测").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"主栅长度检测{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["主栅长度检测均值"] = item.MGridLengthValue.ToString("0.0000");
- break;
- case "Mark点横向间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Mark点横向间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"Mark点横向间距{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["Mark点横向间距均值"] = item.MarkXDisValue.ToString("0.0000");
- break;
- case "Mark点竖向间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "Mark点竖向间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"Mark点竖向间距{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["Mark点竖向间距均值"] = item.MarkYDisValue.ToString("0.0000");
- break;
- case "鱼叉口长":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "鱼叉口长").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"鱼叉口长{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["鱼叉口长均值"] = item.ForkLengthValue.ToString("0.0000");
- break;
- case "鱼叉口宽":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "鱼叉口宽").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"鱼叉口宽{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["鱼叉口宽均值"] = item.ForkWidthValue.ToString("0.0000");
- break;
- case "鱼叉口间距":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "鱼叉口间距").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"鱼叉口间距{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["鱼叉口间距均值"] = item.ForkDisValue.ToString("0.0000");
- break;
- case "蜈蚣角长":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "蜈蚣角长").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"蜈蚣角长{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["蜈蚣角均值"] = item.ChilopodLengthValue.ToString("0.0000");
- break;
- case "蜈蚣角宽":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "蜈蚣角宽").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"蜈蚣角宽{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["蜈蚣角宽均值"] = item.ChilopodWidthValue.ToString("0.0000");
- break;
-
- case "分片间隔":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "分片间隔").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"分片间隔{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["分片间隔均值"] = item.MarkYDisValue.ToString("0.0000");
- break;
- case "焊点长":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "焊点长").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"焊点长{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["焊点长均值"] = item.ForkLengthValue.ToString("0.0000");
- break;
- case "焊点宽":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "焊点宽").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"焊点宽{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["焊点宽均值"] = item.ForkWidthValue.ToString("0.0000");
- break;
- case "焊点间隔":
- tempd = item.SizeDefectInfoList.Where(q => q.PointCode == "焊点间隔").ToList();
- for (int i = 0; i < tempd.Count; i++)
- dr[$"焊点间隔{i + 1}"] = tempd[i].Data.ToString("0.0000");
- dr["焊点间隔均值"] = item.ForkDisValue.ToString("0.0000");
- break;
- }
- #endif
- }
-
- dr["堵孔数量"] = item.DKCount;
- dr["脏污数量"] = item.ZWCount;
- dr["钢丝异常数量"] = item.GSYCCount;
- dr["纤维丝数量"] = item.XWSCount;
- dr["缺口数量"] = item.QKCount;
- dr["针孔数量"] = item.ZKCount;
- dr["泡泡数量"] = item.PPCount ;
- dr["划伤数量"] = item.HSCount;
- dr["压线数量"] = item.YXCount;
- dr["斜边数量"] = item.XBCount;
- dr["格栅数量"] = item.SXCount;
- dr["断栅数量"] = item.DSCount;
- dr["钢丝断裂数量"] = item.GSDLCount;
- dr["残胶堵孔数量"] = item.CJDKCount;
-
- dts.Rows.Add(dr);//在表的对象的行里添加此行
- row_index++;
- }
-
- //dts.DefaultView.Sort = "时间戳 desc";
- //dts = dts.DefaultView.ToTable();
-
- dataGridView1.DataSource = dts;
-
- this.dataGridView1.Columns[0].Width = 50;
- this.dataGridView1.Columns[1].Width = 120;
-
- for (int i = 0; i < 11; i++) //去除3列
- {
- this.dataGridView1.Columns[i].Frozen = true;
- }
-
- for (int i = 0; i < FailPoint.Count; i++)
- {
- DataGridViewCell aa = dataGridView1.Rows[FailPoint[i].X].Cells[FailPoint[i].Y];
- aa.Style.ForeColor = Color.Red;
- //aa.Style.BackColor = Color.LightGreen;
- }
-
-
- return;
- }
- #endregion
-
- private void QueryData()
- {
- QueryOrderData queryOrderData = new QueryOrderData();
- queryOrderData.model = "order";
- queryOrderData.fields = "*";
- queryOrderData.order = "id desc";
- queryOrderData.pageNum = this.pageCtrl1.PageIndex;
- queryOrderData.pageSize = this.pageCtrl1.PageSize;
- queryOrderData.domain = new List<domainItem>();
-
- domainItem startTime = new domainItem();
- startTime.FieldName = "CreateTime";
- startTime.FieldValue = dateTimePicker1.Value.ToString("yyyy-M-d");
- startTime.ConditionalType = 3;
- queryOrderData.domain.Add(startTime);
-
- domainItem endTime = new domainItem();
- endTime.FieldName = "CreateTime";
- endTime.FieldValue = dateTimePicker2.Value.ToString("yyyy-M-d") + " 23:59:59";
- endTime.ConditionalType = 5;
- queryOrderData.domain.Add(endTime);
- //OrderService.GetList
-
- //产品条件
- if (!string.IsNullOrEmpty(cbProductCode.Text))
- {
- domainItem ProductCode = new domainItem();
- ProductCode.FieldName = "ProductId";
- ProductCode.FieldValue = SysMgr.Instance.ProductIdList[cbProductCode.SelectedIndex].ToString();
- ProductCode.ConditionalType = 6;
- queryOrderData.domain.Add(ProductCode);
- }
- //合格条件
- if (!string.IsNullOrEmpty(comboBox2.Text))
- {
- domainItem CompareResult = new domainItem();
- CompareResult.FieldName = "Qualified";
- CompareResult.FieldValue = comboBox2.Text == "合格"? "1":"0";
- CompareResult.ConditionalType = 0;
- queryOrderData.domain.Add(CompareResult);
- }
- //比对条件
- if (!string.IsNullOrEmpty(comboBox1.Text))
- {
- domainItem CompareResultOptions = new domainItem();
- CompareResultOptions.FieldName = "CompareResult";
- CompareResultOptions.FieldValue = comboBox1.Text == "通过" ? "1" : comboBox1.Text == "未通过" ? "2" : "0";
- CompareResultOptions.ConditionalType = 0;
- queryOrderData.domain.Add(CompareResultOptions);
- }
- //异常条件
- if (!string.IsNullOrEmpty(comboBox3.Text))
- {
- domainItem State = new domainItem();
- State.FieldName = "State";
- State.FieldValue = comboBox3.Text == "修复" ? "5" : comboBox3.Text == "未修复" ? "0" : "10";
- State.ConditionalType = 0;
- queryOrderData.domain.Add(State);
- }
-
- int totalcnt = 0;
- JObject str = JObject.Parse(JsonConvert.SerializeObject(queryOrderData));
- var list = getTableList(str, out totalcnt);
- this.pageCtrl1.DrawControl(totalcnt);
-
- QueryOrders = list;
- //自动生成表格
- ShowDataTableEx(list);
-
- //总数居
- queryOrderData.pageNum = 0;
- queryOrderData.pageSize = 0;
- JObject str2 = JObject.Parse(JsonConvert.SerializeObject(queryOrderData));
- var list2 = getTableList(str2, out totalcnt);
- QueryAllOrders = list2;
- }
- private void skinButton2_Click(object sender, EventArgs e)
- {
- pageCtrl1.PageIndex = 1;
- QueryData();
- }
- #endregion
-
- #region 表格单击
-
- #region 更新数据
-
- #endregion
- private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- int Index = this.dataGridView1.CurrentRow.Index;//获取当前选中行的索引
- if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "操作")
- {
- //修改数据
- AmendantRecordFrm recordFrm = new AmendantRecordFrm(QueryOrders[Index]);
- recordFrm.ShowDialog();
- //重新显示
- QueryData();
- }
- else if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "查看")
- {
- //查看历史
- HistoryViewFrm Frm = new HistoryViewFrm(QueryOrders[Index]);
- Frm.ShowDialog();
-
- }
- else if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "缺陷分布")
- {
- //缺陷分布
- DistributionFrm Frm = new DistributionFrm(QueryOrders[Index]);
- Frm.WindowState = FormWindowState.Maximized;
- Frm.ShowDialog();
-
- }
- else if (Index < this.dataGridView1.Rows.Count && this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex].HeaderText.ToString() == "选择")
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[Index].Cells[0];
- Boolean flag = Convert.ToBoolean(checkCell.Value);
- if (flag == true) //查找被选择的数据行
- {
- checkCell.Value = false;
- }
- else
- checkCell.Value = true;
- }
- }
- #endregion
-
- #region 界面调整
- private void DataQueryFrm_SizeChanged(object sender, EventArgs e)
- {
- if (this.WindowState == FormWindowState.Maximized)
- {
- this.WindowState = FormWindowState.Normal;
- this.Top = 0;
- this.Left = 0;
- this.Width = SystemInformation.WorkingArea.Width;
- this.Height = SystemInformation.WorkingArea.Height;
- }
- }
- #endregion
-
- #region 删除
- private int delTableList(JObject req)
- {
- JObject res = new JObject();
- try
- {
- string model = req.Value<string>("model");
- string domain = req.Value<JArray>("domain").ToString();
- //var idArr = req.Value<JArray>("idList");
- //List<int> ids = new List<int>();
- //foreach (int id in idArr) ids.Add(id);
- int result = OrderService.DeleteList(model, domain);
- return 1;
- }
- catch (Exception ex)
- {
-
- }
- return 0;
- }
- private void skinButton3_Click(object sender, EventArgs e)
- {
-
-
- for (int i = 0; i < dataGridView1.Rows.Count; i++)
- {
- DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0];
- Boolean flag = Convert.ToBoolean(checkCell.Value);
- if(flag == true)
- {
- QueryOrderData delOrderData = new QueryOrderData();
- delOrderData.model = "order";
- delOrderData.domain = new List<domainItem>();
- domainItem doitem = new domainItem();
- doitem.FieldName = "Id";
- doitem.FieldValue = QueryOrders[i].Id.ToString();
- doitem.ConditionalType = 6;
- delOrderData.domain.Add(doitem);
- JObject str = JObject.Parse(JsonConvert.SerializeObject(delOrderData));
- int ret = delTableList(str);
- if (ret == 1)
- {
- //删除历史
- QueryOrderData HistoryOrderData = new QueryOrderData();
- HistoryOrderData.model = "OrderHistory";
- HistoryOrderData.domain = new List<domainItem>();
-
- domainItem doitem2 = new domainItem();
- doitem2.FieldName = "Pid";
- doitem2.FieldValue = QueryOrders[i].Id.ToString();
- doitem2.ConditionalType = 6;
- HistoryOrderData.domain.Add(doitem2);
-
-
- JObject str2 = JObject.Parse(JsonConvert.SerializeObject(HistoryOrderData));
- delTableList(str2);
- }
- }
- }
-
-
-
- //重新显示
- QueryData();
- }
- #endregion
-
- #region Excel导出
- private DataTable GetExcelTabel(out List<Point> points)
- {
- points = new List<Point>();
- //记录数据类型列数
- Dictionary<string, int> dataCnt = new Dictionary<string, int>();
-
- List<Product> products = new List<Product>();
-
- DataTable dt = new DataTable(); //建立个数据表
- //通用列
- dt.Columns.Add(new DataColumn("检验日期", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("检测单号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("产品名称", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("料号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("网版编码", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("批次", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("目数", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("线径", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("合格", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("修复", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("异常情况", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("修复人员", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("比对", typeof(string)));//在表中添加string类型的列
-
-
- foreach (var item in QueryAllOrders)
- {
- //老流程
- if (item.StepInfo == null || item.StepInfo.ProcessType != "快速流程")
- {
- //加入数据表
- if (item.SizeDefectInfoList == null)
- item.SizeDefectInfoList = new List<SizeDefectInfo>();
- #region 张力
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension5,
- });
- #endregion
- #region 厚度
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height5,
- });
- #endregion
- #region YPT
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT6,
- });
- #endregion
- #region 线宽
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth6,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth7,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth8,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth9,
- });
- #endregion
- if (!dataCnt.ContainsKey("张力"))
- dataCnt.Add("张力", 5);
- else
- if (dataCnt["张力"] < 5)
- dataCnt["张力"] = 5;
-
- if (!dataCnt.ContainsKey("厚度"))
- dataCnt.Add("厚度", 5);
- else
- if (dataCnt["厚度"] < 5)
- dataCnt["厚度"] = 5;
-
- if (!dataCnt.ContainsKey("Y轴方向PT值检测"))
- dataCnt.Add("Y轴方向PT值检测", 5);
- else
- if (dataCnt["Y轴方向PT值检测"] < 5)
- dataCnt["Y轴方向PT值检测"] = 5;
-
- if (!dataCnt.ContainsKey("线宽正面"))
- dataCnt.Add("线宽正面", 9);
- else
- if (dataCnt["线宽正面"] < 9)
- dataCnt["线宽正面"] = 9;
- }
- else
- {
- //按照步骤流程分类
- string[] pointType = item.SizeDefectInfoList.Select(t => t.StepName).Distinct().ToList().ToArray();
- for (int i = 0; i < pointType.Length; i++)
- {
- List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.StepName == pointType[i] && !q.isAverage).ToList();
- if (t.Count > 0)
- {
- //当前测试项数据个数
- if (!dataCnt.ContainsKey(pointType[i]))
- dataCnt.Add(pointType[i], t.Count);
- else
- if (dataCnt[pointType[i]] < t.Count)
- dataCnt[pointType[i]] = t.Count;
- }
- }
- }
- }
- #if false //灵活插入
- //插入列
- foreach (var item in dataCnt)
- {
- //按步骤名称插入列
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"{item.Key}-{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn($"{item.Key}均值", typeof(string)));
- }
-
- #else //固定写死
- #region 张力
- dt.Columns.Add(new DataColumn($"张力测量(N)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"张力测量(N)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"张力测量(N)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"张力测量(N)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"张力测量(N)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"张力测量(N)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"张力测量(N)均值", typeof(string)));
- #endregion
-
- #region 厚度
- dt.Columns.Add(new DataColumn($"厚度测量(um)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"厚度测量(um)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"厚度测量(um)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"厚度测量(um)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"厚度测量(um)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"厚度测量(um)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"厚度测量(um)均值", typeof(string)));
- #endregion
-
- #region Y-PT检测(mm)
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"Y-PT检测(mm)均值", typeof(string)));
- #endregion
-
- #region 主栅长1(mm)
- dt.Columns.Add(new DataColumn($"主栅长1(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长1(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长1(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长1(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长1(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长1(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长1(mm)均值", typeof(string)));
- #endregion
-
- #region 主栅长2(mm)
- dt.Columns.Add(new DataColumn($"主栅长2(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长2(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长2(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长2(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长2(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长2(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅长2(mm)均值", typeof(string)));
- #endregion
-
- #region 主栅间距(mm)
- dt.Columns.Add(new DataColumn($"主栅间距(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅间距(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅间距(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅间距(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅间距(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅间距(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅间距(mm)均值", typeof(string)));
- #endregion
-
- #region 主栅宽度(mm)
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽度(mm)均值", typeof(string)));
- #endregion
-
- #region 主栅宽(mm)
- dt.Columns.Add(new DataColumn($"主栅宽(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(mm)均值", typeof(string)));
- #endregion
-
- #region 主栅宽(um)
- dt.Columns.Add(new DataColumn($"主栅宽(um)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(um)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(um)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(um)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"主栅宽(um)均值", typeof(string)));
- #endregion
-
- #region 细栅宽度
- dt.Columns.Add(new DataColumn($"细栅宽度(um)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅宽度(um)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅宽度(um)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅宽度(um)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅宽度(um)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅宽度(um)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅宽度(um)均值", typeof(string)));
- #endregion
-
- #region 细栅间距
- dt.Columns.Add(new DataColumn($"细栅间距(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅间距(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅间距(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅间距(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅间距(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅间距(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"细栅间距(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点长1(mm)
- dt.Columns.Add(new DataColumn($"焊点长1(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长1(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长1(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长1(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长1(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长1(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长1(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点长2(mm)
- dt.Columns.Add(new DataColumn($"焊点长2(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长2(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长2(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长2(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长2(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长2(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点长2(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点宽1(mm)
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽1(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点宽2(mm)
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点宽2(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点间隔1(mm)
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔1(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点间隔2(mm)
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔2(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点间隔3(mm)
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔3(mm)均值", typeof(string)));
- #endregion
-
- #region 焊点间隔4(mm)
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"焊点间隔4(mm)均值", typeof(string)));
- #endregion
-
- #region 鱼叉口长(mm)
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口长(mm)均值", typeof(string)));
- #endregion
-
- #region 鱼叉口宽(mm)
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口宽(mm)均值", typeof(string)));
- #endregion
-
- #region 鱼叉口间距(mm)
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"鱼叉口间距(mm)均值", typeof(string)));
- #endregion
-
- #region 蜈蚣脚长(mm)
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚长(mm)均值", typeof(string)));
- #endregion
-
- #region 蜈蚣脚宽(mm)
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"蜈蚣脚宽(mm)均值", typeof(string)));
- #endregion
-
- #region 分片间隔(mm)
- dt.Columns.Add(new DataColumn($"分片间隔(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"分片间隔(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"分片间隔(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"分片间隔(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"分片间隔(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"分片间隔(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"分片间隔(mm)均值", typeof(string)));
- #endregion
-
- #region Mark-X(mm)
- dt.Columns.Add(new DataColumn($"Mark-X(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"Mark-X(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"Mark-X(mm)均值", typeof(string)));
- #endregion
-
- #region Mark-Y(mm)
- dt.Columns.Add(new DataColumn($"Mark-Y(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"Mark-Y(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"Mark-Y(mm)均值", typeof(string)));
- #endregion
-
- #region 3道鱼叉口宽(mm)
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口宽(mm)均值", typeof(string)));
- #endregion
-
- #region 3道鱼叉口间隔(mm)
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"3道鱼叉口间隔(mm)均值", typeof(string)));
- #endregion
-
- #region 断点间距(mm)
- dt.Columns.Add(new DataColumn($"断点间距(mm)上下限", typeof(string)));
- dt.Columns.Add(new DataColumn($"断点间距(mm)-1", typeof(string)));
- dt.Columns.Add(new DataColumn($"断点间距(mm)-2", typeof(string)));
- dt.Columns.Add(new DataColumn($"断点间距(mm)-3", typeof(string)));
- dt.Columns.Add(new DataColumn($"断点间距(mm)-4", typeof(string)));
- dt.Columns.Add(new DataColumn($"断点间距(mm)-5", typeof(string)));
- dt.Columns.Add(new DataColumn($"断点间距(mm)均值", typeof(string)));
- #endregion
- #endif
- dt.Columns.Add(new DataColumn("堵孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("脏污数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝异常数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("纤维丝数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("缺口数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("针孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("泡泡数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("划伤数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("压线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("斜边数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("栅线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("断栅数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝断裂数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("残胶堵孔数量", typeof(int)));//在表中添加int类型的列
-
- int row_index = 0;
- foreach (var item in QueryAllOrders)
- {
- //新增
- DataRow dr;//行
- dr = dt.NewRow();
- //dr["选择"] = false;
- dr["检验日期"] = item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
- dr["检测单号"] = item.DetectOrder;
- dr["产品名称"] = item.ProductInfo.Name;
- dr["料号"] = item.ProductInfo.Code;
- dr["网版编码"] = item.SN;
- dr["批次"] = item.BatchId;
- //dr["目数"] = item.ProductInfo.HoleCount;
- dr["目数"] = item.MeshNumber;
- dr["线径"] = item.WireDiameter;
- dr["合格"] = item.Qualified ? "合格" : "不合格";
- //dr["修复"] = item.State == 10 ? "异常" : item.State == 5 ? "修复" : "待修复";
- //dr["异常情况"] = item.Abnormalities;
- //dr["修复人员"] = item.RepairCode;
- dr["比对"] = item.CompareResult == 2 ? "不通过" : item.CompareResult == 1 ? "通过" : "未比对";
-
- List<SizeDefectInfo> tempd = new List<SizeDefectInfo>();
- foreach (var tdata in dataCnt)
- {
- try
- {
- tempd = item.SizeDefectInfoList.Where(q => q.StepName == tdata.Key).ToList();
-
- var tempstep = item.StepInfo.ProcessList.Where(q => q.ProcessName == tdata.Key).FirstOrDefault();
- if (tempstep != null)
- {
- JObject processParam = JObject.Parse(tempstep.ProcessParams);
- double vMax = processParam.Value<double>("MaxLimit");
- double vMin = processParam.Value<double>("MinLimit");
- bool isOpenLimit = processParam.Value<bool>("OpenUseLimit");
- string limit = "";
- if (vMax == vMin)
- limit = $"±{vMax}";
- else
- limit = $"(+{vMax},-{vMin})";
- if (isOpenLimit)
- {
- dr[$"{tdata.Key}上下限"] = $"{processParam.Value<double>("StandardValues")}{limit}";
- }
- else
- dr[$"{tdata.Key}上下限"] = $"";
- }
-
- List<double> dataList = new List<double>();
- //for (int i = 0; i < tempd.Count; i++)
- // dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- //dr[$"{tdata.Key}均值"] = item.TensionValue.ToString("0.0000");
- for (int i = 0; i < tempd.Count; i++)
- {
- int col_index = 0;
- if (!tempd[i].isAverage)
- {
- dataList.Add(tempd[i].Data);
- dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- col_index = dr.Table.Columns.IndexOf($"{tdata.Key}-{i + 1}");
- }
- else
- col_index = dr.Table.Columns.IndexOf($"{tdata.Key}均值");
- if (tempd[i].result == 2)
- points.Add(new Point(row_index, col_index));
- }
- if (dataList.Count > 0)
- dr[$"{tdata.Key}均值"] = dataList.Average().ToString("0.0000");
- else
- dr[$"{tdata.Key}均值"] = "0";
- }
- catch { }
-
- }
-
- dr["堵孔数量"] = item.DKCount;
- dr["脏污数量"] = item.ZWCount;
- dr["钢丝异常数量"] = item.GSYCCount;
- dr["纤维丝数量"] = item.XWSCount;
- dr["缺口数量"] = item.QKCount;
- dr["针孔数量"] = item.ZKCount;
- dr["泡泡数量"] = item.PPCount;
- dr["划伤数量"] = item.HSCount;
- dr["压线数量"] = item.YXCount;
- dr["斜边数量"] = item.XBCount;
- dr["栅线数量"] = item.SXCount;
- dr["断栅数量"] = item.DSCount;
- dr["钢丝断裂数量"] = item.GSDLCount;
- dr["残胶堵孔数量"] = item.CJDKCount;
-
- dt.Rows.Add(dr);//在表的对象的行里添加此行
- row_index++;
- }
- return dt;
- }
-
- #region excel导出
- public Excel.Application m_xlApp = null;
-
- public void OutputAsExcelFile(DataTable dtTable, String filePath, List<Point> points)
- {
- //string filePath = "";
- //SaveFileDialog s = new SaveFileDialog();
- //s.Title = "保存Excel文件";
- //s.Filter = "Excel文件(*.xls)|*.xls";
- //s.FilterIndex = 1;
- //if (s.ShowDialog() == DialogResult.OK)
- // filePath = s.FileName;
- //else
- // return;
- //导出dataTable到Excel
- long rowNum = dtTable.Rows.Count;//行数
- int columnNum = dtTable.Columns.Count;//列数
- Excel.Application m_xlApp = new Excel.Application();
- m_xlApp.DisplayAlerts = false;//不显示更改提示
- m_xlApp.Visible = false;
-
- Excel.Workbooks workbooks = m_xlApp.Workbooks;
- Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
- Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
-
- try
- {
- string[,] datas = new string[rowNum + 1, columnNum];
- for (int i = 0; i < columnNum; i++) //写入字段
- datas[0, i] = dtTable.Columns[i].Caption; //写入列标
- //Excel.Range range = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, columnNum]);
- Excel.Range range = m_xlApp.Range[worksheet.Cells[1, 1], worksheet.Cells[1, columnNum]];
- range.Interior.ColorIndex = 15;//15代表灰色
- range.Font.Bold = true;
- range.Font.Size = 10;
-
- int r = 0;
- for (r = 0; r < rowNum; r++)
- {
- for (int i = 0; i < columnNum; i++)
- {
- object obj;
-
- obj = dtTable.Rows[r][dtTable.Columns[i].ToString()];
-
- datas[r + 1, i] = obj == null ? "" : "'" + obj.ToString().Trim();//在obj.ToString()前加单引号是为了防止自动转化格式
- //Console.WriteLine(datas[r + 1, i]);
- }
- System.Windows.Forms.Application.DoEvents();
- //添加进度条
- }
- //Excel.Range fchR = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[rowNum + 1, columnNum]);
- Excel.Range fchR = m_xlApp.Range[worksheet.Cells[1, 1], worksheet.Cells[rowNum + 1, columnNum]];
- fchR.Value2 = datas;
-
- worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
- //worksheet.Name = "dd";
-
- //m_xlApp.WindowState = Excel.XlWindowState.xlMaximized;
- m_xlApp.Visible = false;
-
- // = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[rowNum + 1, columnNum]);
- range = m_xlApp.Range[worksheet.Cells[1, 1], worksheet.Cells[rowNum + 1, columnNum]];
-
- for (int i = 0; i < points.Count; i++)
- {
- Excel.Range Errrange = m_xlApp.Range[worksheet.Cells[points[i].X + 2, points[i].Y + 1], worksheet.Cells[points[i].X + 2, points[i].Y + 1]];
- Errrange.Font.ColorIndex = 3;//3红色
- }
-
-
- //range.Interior.ColorIndex = 15;//15代表灰色
- range.Font.Size = 9;
- range.RowHeight = 14.25;
- range.Borders.LineStyle = 1;
- range.HorizontalAlignment = 1;
- workbook.Saved = true;
- workbook.SaveCopyAs(filePath);
- }
- catch (Exception ex)
- {
- MessageBox.Show("导出异常:" + ex.Message, "导出异常", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- }
- finally
- {
- EndReport();
- }
-
- m_xlApp.Workbooks.Close();
- m_xlApp.Workbooks.Application.Quit();
- m_xlApp.Application.Quit();
- m_xlApp.Quit();
- //MessageBox.Show("导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- private void EndReport()
- {
- object missing = System.Reflection.Missing.Value;
- try
- { }
- catch { }
- finally
- {
- try
- {
- //System.Runtime.InteropServices.Marshal.ReleaseComObject(m_xlApp.Workbooks);
- //System.Runtime.InteropServices.Marshal.ReleaseComObject(m_xlApp.Application);
- //System.Runtime.InteropServices.Marshal.ReleaseComObject(m_xlApp);
- //m_xlApp = null;
- }
- catch { }
- try
- {
- //清理垃圾进程
- this.killProcessThread();
- }
- catch { }
- GC.Collect();
- }
- }
-
- private void killProcessThread()
- {
- ArrayList myProcess = new ArrayList();
- for (int i = 0; i < myProcess.Count; i++)
- {
- try
- {
- System.Diagnostics.Process.GetProcessById(int.Parse((string)myProcess[i])).Kill();
- }
- catch { }
- }
- }
- #endregion
- private void ShowAllDataTableEx(string filePath)
- {
- //记录数据类型列数
- Dictionary<string, int> dataCnt = new Dictionary<string, int>();
- DataTable dt = new DataTable(); //建立个数据表
- //通用列
- dt.Columns.Add(new DataColumn("检验日期", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("检测单号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("产品名称", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("料号", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("网版编码", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("批次", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("合格", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("修复", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("异常情况", typeof(string)));//在表中添加string类型的列
- //dt.Columns.Add(new DataColumn("修复人员", typeof(string)));//在表中添加string类型的列
- dt.Columns.Add(new DataColumn("比对", typeof(string)));//在表中添加string类型的列
-
- foreach (var item in QueryAllOrders)
- {
- //老流程
- if (item.StepInfo == null || item.StepInfo.ProcessType != "快速流程")
- {
- //加入数据表
- if (item.SizeDefectInfoList == null)
- item.SizeDefectInfoList = new List<SizeDefectInfo>();
- #region 张力
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Tension",
- StepName = "张力",
- Data = item.Tension5,
- });
- #endregion
- #region 厚度
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Height",
- StepName = "厚度",
- Data = item.Height5,
- });
- #endregion
- #region YPT
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "Y轴方向PT值检测",
- StepName = "Y轴方向PT值",
- Data = item.PT6,
- });
- #endregion
- #region 线宽
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth1,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth2,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth3,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth4,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth5,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth6,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth7,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth8,
- });
- item.SizeDefectInfoList.Add(new SizeDefectInfo()
- {
- PointCode = "线宽正面",
- StepName = "线宽",
- Data = item.LineWidth9,
- });
- #endregion
- if (!dataCnt.ContainsKey("张力"))
- dataCnt.Add("张力", 5);
- else
- if (dataCnt["张力"] < 5)
- dataCnt["张力"] = 5;
-
- if (!dataCnt.ContainsKey("厚度"))
- dataCnt.Add("厚度", 5);
- else
- if (dataCnt["厚度"] < 5)
- dataCnt["厚度"] = 5;
-
- if (!dataCnt.ContainsKey("Y轴方向PT值检测"))
- dataCnt.Add("Y轴方向PT值检测", 5);
- else
- if (dataCnt["Y轴方向PT值检测"] < 5)
- dataCnt["Y轴方向PT值检测"] = 5;
-
- if (!dataCnt.ContainsKey("线宽正面"))
- dataCnt.Add("线宽正面", 9);
- else
- if (dataCnt["线宽正面"] < 9)
- dataCnt["线宽正面"] = 9;
- }
- else
- {
- //按照步骤流程分类
- string[] pointType = item.SizeDefectInfoList.Select(t => t.StepName).Distinct().ToList().ToArray();
- for (int i = 0; i < pointType.Length; i++)
- {
- List<SizeDefectInfo> t = item.SizeDefectInfoList.Where(q => q.StepName == pointType[i]).ToList();
- if (t.Count > 0)
- {
- //当前测试项数据个数
- if (!dataCnt.ContainsKey(pointType[i]))
- dataCnt.Add(pointType[i], t.Count);
- else
- if (dataCnt[pointType[i]] < t.Count)
- dataCnt[pointType[i]] = t.Count;
- }
- }
- }
- }
- //插入列
- foreach (var item in dataCnt)
- {
- //按步骤名称插入列
- for (int i = 0; i < item.Value; i++)
- dt.Columns.Add(new DataColumn($"{item.Key}-{i + 1}", typeof(string)));
- dt.Columns.Add(new DataColumn($"{item.Key}均值", typeof(string)));
- }
-
- dt.Columns.Add(new DataColumn("堵孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("脏污数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝异常数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("纤维丝数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("缺口数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("针孔数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("泡泡数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("划伤数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("压线数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("斜边数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("格栅数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("断栅数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("钢丝断裂数量", typeof(int)));//在表中添加int类型的列
- dt.Columns.Add(new DataColumn("残胶堵孔数量", typeof(int)));//在表中添加int类型的列
-
-
- foreach (var item in QueryAllOrders)
- {
- //新增
- DataRow dr;//行
- dr = dt.NewRow();
- //dr["选择"] = false;
- dr["检验日期"] = item.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
- dr["检测单号"] = item.DetectOrder;
- dr["产品名称"] = item.ProductInfo.Name;
- dr["料号"] = item.ProductInfo.Code;
- dr["网版编码"] = item.SN;
- dr["批次"] = item.BatchId;
- dr["合格"] = item.Qualified ? "合格" : "不合格";
- //dr["修复"] = item.State == 10 ? "异常" : item.State == 5 ? "修复" : "待修复";
- //dr["异常情况"] = item.Abnormalities;
- //dr["修复人员"] = item.RepairCode;
- dr["比对"] = item.CompareResult == 2 ? "不通过" : item.CompareResult == 1 ? "通过" : "未比对";
-
- List<SizeDefectInfo> tempd = new List<SizeDefectInfo>();
- foreach (var tdata in dataCnt)
- {
- tempd = item.SizeDefectInfoList.Where(q => q.StepName == tdata.Key).ToList();
- List<double> dataList = new List<double>();
- //for (int i = 0; i < tempd.Count; i++)
- // dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- //dr[$"{tdata.Key}均值"] = item.TensionValue.ToString("0.0000");
- for (int i = 0; i < tempd.Count; i++)
- {
- dataList.Add(tempd[i].Data);
- dr[$"{tdata.Key}-{i + 1}"] = tempd[i].Data.ToString("0.0000");
- }
- if (dataList.Count > 0)
- dr[$"{tdata.Key}均值"] = dataList.Average().ToString("0.0000");
- else
- dr[$"{tdata.Key}均值"] = "0";
- }
-
- dr["堵孔数量"] = item.DKCount;
- dr["脏污数量"] = item.ZWCount;
- dr["钢丝异常数量"] = item.GSYCCount;
- dr["纤维丝数量"] = item.XWSCount;
- dr["缺口数量"] = item.QKCount;
- dr["针孔数量"] = item.ZKCount;
- dr["泡泡数量"] = item.PPCount;
- dr["划伤数量"] = item.HSCount;
- dr["压线数量"] = item.YXCount;
- dr["斜边数量"] = item.XBCount;
- dr["格栅数量"] = item.SXCount;
- dr["断栅数量"] = item.DSCount;
- dr["钢丝断裂数量"] = item.GSDLCount;
- dr["残胶堵孔数量"] = item.CJDKCount;
-
- dt.Rows.Add(dr);//在表的对象的行里添加此行
- }
-
- try
- {
- // 创建一个新的CSV文件并写入数据
- using (StreamWriter writer = new StreamWriter(filePath, false, UnicodeEncoding.GetEncoding("GB2312")))
- {
- // 写入CSV文件的标题行
- for (int i = 0; i < dt.Columns.Count; i++)
- {
- writer.Write(dt.Columns[i].ColumnName + ",");
- }
- writer.Write("\r\n");
-
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- // 写入数据行
- for (int j = 0; j < dt.Columns.Count; j++)
- {
- writer.Write(dt.Rows[i][j] + ",");
- }
- writer.Write("\r\n");
- //Console.WriteLine("CSV文件写入成功!");
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show("数据导出失败!error:" + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
-
- return;
- }
- private void skinButton1_Click(object sender, EventArgs e)
- {
- DataTable dt = (DataTable)dataGridView1.DataSource;
- if (dt.Rows.Count > 0)
- {
- SaveFileDialog fileDialog = new SaveFileDialog();
- //fileDialog.Filter = "数据文件(*.csv)|*.csv";
- fileDialog.Filter = "数据文件(*.xlsx)|*.xlsx";
- fileDialog.Title = "保存数据";
- //保存对话框是否记忆上次打开的目录
- fileDialog.RestoreDirectory = true;
-
- if (fileDialog.ShowDialog() == DialogResult.OK)
- {
- try
- {
- string filePath = fileDialog.FileName; // CSV文件路径
- List<Point> pt;
- DataTable tdt = GetExcelTabel(out pt);
- OutputAsExcelFile(tdt, filePath, pt);
- //ShowAllDataTableEx(filePath);
- MessageBox.Show("数据导出成功!" , "完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
- }
- catch (Exception ex)
- {
- MessageBox.Show("数据导出失败!error:" + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
- }
- }
- #endregion
-
- private void btnClear_Click(object sender, EventArgs e)
- {
- cbProductCode.Text = "";
- }
- }
- }
|