using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms; using UAS_LabelMachine.Entity; using UAS_LabelMachine.PublicMethod; namespace UAS_LabelMachine { public partial class ExportColumns : Form { DataHelper dh = SystemInf.dh; string inoutno = ""; string custcode = ""; public ExportColumns() { InitializeComponent(); Activate(); } public ExportColumns(string IInoutno) { InitializeComponent(); inoutno = IInoutno; } private void ExportColumns_Load(object sender, EventArgs e) { Activate(); LogicHandler.CustInit("0"); LoadData(); } private void SaveColumns_Click(object sender, EventArgs e) { //先删除之前此客户的记录 dh.ExecuteSql("delete from CS_EXPORTSETTING where es_custcode='" + custcode + "'", "delete"); string Param = dh.getFieldDataByCondition("CHIP_EDCPARAMS", "wm_concat(cep_name)", "1=1").ToString(); StringBuilder sql = new StringBuilder(); List es_filed = new List(); List es_caption = new List(); List es_enable = new List(); List es_prefix = new List(); List es_suffix = new List(); List es_detno = new List(); List es_filed1 = new List(); List es_istitle = new List(); List es_datatype = new List(); //插入首页固定的抬头 es_filed.Add("pi_title"); es_caption.Add("客户"); es_enable.Add("-1"); es_prefix.Add("'客户:'"); es_suffix.Add("''"); es_detno.Add("0.1"); es_filed1.Add("pi_title"); es_istitle.Add("-1"); es_filed.Add("pi_inoutno"); es_caption.Add("出货单号"); es_enable.Add("-1"); es_prefix.Add("'出货单号:'"); es_suffix.Add("''"); es_detno.Add("0.2"); es_filed1.Add("pi_inoutno"); es_istitle.Add("-1"); es_filed.Add("pr_orispeccode"); es_caption.Add("型号"); es_enable.Add("-1"); es_prefix.Add("'型号:'"); es_suffix.Add("''"); es_detno.Add("0.3"); es_filed1.Add("pr_orispeccode"); es_istitle.Add("-1"); es_filed.Add("pi_date"); es_caption.Add("销售日期"); es_enable.Add("-1"); es_prefix.Add("'销售日期:'"); es_suffix.Add("'销售部门:市场部'"); es_detno.Add("0.4"); es_filed1.Add("pi_date"); es_istitle.Add("-1"); es_filed.Add("pd_ordercode"); es_caption.Add("订单编号"); es_enable.Add("-1"); es_prefix.Add("''"); es_suffix.Add("''"); es_detno.Add("0.5"); es_filed1.Add("pd_ordercode"); es_istitle.Add("-1"); //插入首页信息 for (int i = 0; i < FirstPage.Columns.Count; i++) { for (int j = 0; j < FirstPage.Columns.Count; j++) { if (i == FirstPage.Columns[j].DisplayIndex) { //pr_orispeccode1 冲突BUG暂时无解,先特殊处理 es_filed.Add(FirstPage.Columns[j].Tag.ToString() == "pr_orispeccode1" ? "pr_orispeccode" : FirstPage.Columns[j].Tag.ToString()); es_caption.Add(FirstPage.Columns[j].DataPropertyName); es_enable.Add("-1"); es_prefix.Add("''"); es_suffix.Add("''"); es_detno.Add((FirstPage.Columns[j].DisplayIndex + 1).ToString()); es_filed1.Add(FirstPage.Columns[j].Tag.ToString()); es_istitle.Add(""); } } } sql.Clear(); sql.Append("insert into CS_EXPORTSETTING(es_type,es_filed,es_caption,es_enable,es_prefix,es_suffix,es_detno,es_filed1,es_custcode,es_istitle)"); sql.Append("values('First',:es_filed,:es_caption,:es_enable,:es_prefix,:es_suffix,:es_detno,:es_filed1,'" + custcode + "',:es_istitle)"); dh.BatchInsert(sql.ToString(), new string[] { "es_filed", "es_caption", "es_enable", "es_prefix", "es_suffix", "es_detno", "es_filed1", "es_istitle" }, es_filed.ToArray(), es_caption.ToArray(), es_enable.ToArray(), es_prefix.ToArray(), es_suffix.ToArray(), es_detno.ToArray(), es_filed1.ToArray(), es_istitle.ToArray()); //清除首页赋的值 es_filed.Clear(); es_caption.Clear(); es_enable.Clear(); es_prefix.Clear(); es_suffix.Clear(); es_detno.Clear(); es_filed.Clear(); es_filed1.Clear(); es_istitle.Clear(); //新生成Data的抬头 es_filed.Add("pi_title"); es_caption.Add("客户"); es_enable.Add("-1"); es_prefix.Add("'客户:'"); es_suffix.Add("''"); es_detno.Add("0.1"); es_filed1.Add("pi_title"); es_istitle.Add("-1"); es_datatype.Add(""); es_filed.Add("pi_inoutno"); es_caption.Add("出货单号"); es_enable.Add("-1"); es_prefix.Add("'出货单号:'"); es_suffix.Add("''"); es_detno.Add("0.2"); es_filed1.Add("pi_inoutno"); es_istitle.Add("-1"); es_datatype.Add(""); es_filed.Add("pr_orispeccode"); es_caption.Add("型号"); es_enable.Add("-1"); es_prefix.Add("'型号:'"); es_suffix.Add("'销售部门:市场部'"); es_detno.Add("0.3"); es_filed1.Add("pr_orispeccode"); es_istitle.Add("-1"); es_datatype.Add(""); es_filed.Add("pi_date"); es_caption.Add("销售日期"); es_enable.Add("-1"); es_prefix.Add("'销售日期:'"); es_suffix.Add("''"); es_detno.Add("0.4"); es_filed1.Add("pi_date"); es_istitle.Add("-1"); es_datatype.Add(""); es_filed.Add("me_desc"); es_caption.Add("大小"); es_enable.Add("-1"); es_prefix.Add("'('"); es_suffix.Add("')'"); es_detno.Add("5.1"); es_filed1.Add("me_desc"); es_istitle.Add("-1"); es_datatype.Add(""); es_filed.Add("pr_size"); es_caption.Add("尺寸"); es_enable.Add("-1"); es_prefix.Add("'尺寸:'"); es_suffix.Add("'销售部门:市场部'"); es_detno.Add("5.2"); es_filed1.Add("pr_size"); es_istitle.Add("-1"); es_datatype.Add(""); for (int i = 0; i < DataPage.Columns.Count; i++) { for (int j = 0; j < DataPage.Columns.Count; j++) { if (i == DataPage.Columns[j].DisplayIndex) { //pr_orispeccode1 冲突BUG暂时无解,先特殊处理 es_filed.Add(DataPage.Columns[j].Tag.ToString() == "pr_orispeccode1" ? "pr_orispeccode" : DataPage.Columns[j].Tag.ToString()); es_caption.Add(DataPage.Columns[j].DataPropertyName); es_enable.Add("-1"); es_prefix.Add("''"); es_suffix.Add("''"); es_detno.Add((DataPage.Columns[j].DisplayIndex + 1).ToString()); es_filed1.Add(DataPage.Columns[j].Tag.ToString()); es_istitle.Add(""); if (Param.Contains(Regex.Replace(DataPage.Columns[j].DataPropertyName.ToUpper(), @"\d", ""))) { es_datatype.Add("Param"); } else { es_datatype.Add(""); } } } } sql.Clear(); sql.Append("insert into CS_EXPORTSETTING(es_type,es_filed,es_datatype,es_caption,es_enable,es_prefix,es_suffix,es_detno,es_filed1,es_custcode,es_istitle)"); sql.Append("values('DataPage',:es_filed,:es_datatype,:es_caption,:es_enable,:es_prefix,:es_suffix,:es_detno,:es_filed1,'" + custcode + "',:es_istitle)"); dh.BatchInsert(sql.ToString(), new string[] { "es_filed", "es_datatype", "es_caption", "es_enable", "es_prefix", "es_suffix", "es_detno", "es_filed1", "es_istitle" }, es_filed.ToArray(), es_datatype.ToArray(), es_caption.ToArray(), es_enable.ToArray(), es_prefix.ToArray(), es_suffix.ToArray(), es_detno.ToArray(), es_filed1.ToArray(), es_istitle.ToArray()); MessageBox.Show("保存成功!"); } private void ResetColumns_Click(object sender, EventArgs e) { string close = MessageBox.Show(this.ParentForm, "是否重置列", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString(); if (close == "Yes") { dh.ExecuteSql("delete from CS_EXPORTSETTING where es_custcode='" + custcode + "'", "delete"); LoadData(); } } private void DeleteColumns_Click(object sender, EventArgs e) { DataGridViewSelectedCellCollection cl = FirstPage.SelectedCells; List deleteIndex = new List(); for (int i = 0; i < cl.Count; i++) { if (!deleteIndex.Contains(cl[i].ColumnIndex)) { deleteIndex.Add(cl[i].ColumnIndex); } } for (int i = FirstPage.Columns.Count - 1; i >= 0; i--) { for (int j = 0; j < deleteIndex.ToArray().Length; j++) { if (deleteIndex.ToArray()[j] == i) FirstPage.Columns.RemoveAt(i); } } } private void DeleteDataColumns_Click(object sender, EventArgs e) { DataGridViewSelectedCellCollection cl = DataPage.SelectedCells; List deleteIndex = new List(); for (int i = 0; i < cl.Count; i++) { if (!deleteIndex.Contains(cl[i].ColumnIndex)) { deleteIndex.Add(cl[i].ColumnIndex); } } for (int i = DataPage.Columns.Count - 1; i >= 0; i--) { for (int j = 0; j < deleteIndex.ToArray().Length; j++) { if (deleteIndex.ToArray()[j] == i) DataPage.Columns.RemoveAt(i); } } } private void LoadData() { Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); StringBuilder sql = new StringBuilder(); custcode = dh.getFieldDataByCondition("prodinout", "pi_cardcode", "pi_inoutno='" + inoutno + "'").ToString(); DataTable SQL1_ = (DataTable)dh.ExecuteSql("select es_filed,es_caption,es_prefix,es_suffix,es_filed1 from CS_EXPORTSETTING where es_type='DataPage' and es_enable=-1 and es_custcode='" + custcode + "' and nvl(es_istitle,0)<>-1 order by es_detno", "select"); //没有置顶客户的取空的 if (SQL1_.Rows.Count == 0) { SQL1_ = (DataTable)dh.ExecuteSql("select es_filed,es_caption,es_prefix,es_suffix,es_filed1 from CS_EXPORTSETTING where es_type='DataPage' and es_enable=-1 and es_custcode is null and nvl(es_istitle,0)<>-1 order by es_detno", "select"); } Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); string es_field1 = ""; for (int i = 0; i < SQL1_.Rows.Count; i++) { es_field1 += SQL1_.Rows[i]["es_prefix"].ToString() + "||" + SQL1_.Rows[i]["es_filed"].ToString() + "||" + SQL1_.Rows[i]["es_suffix"].ToString() + ","; } Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); //分页信息的DataTable string datasql = ""; Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); LogicHandler.GetDataSQL(inoutno, es_field1.Substring(0, es_field1.Length - 1), out datasql); Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); DataTable dt = (DataTable)dh.ExecuteSql(datasql, "select"); Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); for (int i = 0; i < dt.Columns.Count; i++) { if (dt.Columns[i].ColumnName == (SQL1_.Rows[i]["es_prefix"].ToString() + "||" + SQL1_.Rows[i]["es_filed"].ToString() + "||" + SQL1_.Rows[i]["es_suffix"].ToString()).ToUpper()) { dt.Columns[i].Caption = SQL1_.Rows[i]["es_filed1"].ToString(); dt.Columns[i].ColumnName = SQL1_.Rows[i]["es_caption"].ToString(); } } //获取首页需要展示的字段 DataTable SQL_ = (DataTable)dh.ExecuteSql("select es_filed,es_caption,es_prefix,es_suffix,es_filed1 from CS_EXPORTSETTING where es_type='First' and es_enable=-1 and es_custcode='" + custcode + "' and nvl(es_istitle,0)<>-1 order by es_detno", "select"); if (SQL_.Rows.Count == 0) { SQL_ = (DataTable)dh.ExecuteSql("select es_filed,es_datatype,es_caption,es_prefix,es_suffix,es_filed1 from CS_EXPORTSETTING where es_type='First' and es_enable=-1 and es_custcode is null and nvl(es_istitle,0)<>-1 order by es_detno", "select"); } Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); string es_field = ""; for (int i = 0; i < SQL_.Rows.Count; i++) { es_field += SQL_.Rows[i]["es_prefix"].ToString() + "||" + SQL_.Rows[i]["es_filed"].ToString() + "||" + SQL_.Rows[i]["es_suffix"].ToString() + ","; } //首页信息的DataTable sql.Clear(); sql.Append("select " + es_field.Substring(0, es_field.Length - 1) + " from FIRSTPAGE_BATCH_VIEW where pi_inoutno='" + inoutno + "'"); DataTable dt1 = (DataTable)dh.ExecuteSql(sql.ToString(), "select"); for (int i = 0; i < dt1.Columns.Count; i++) { if (dt1.Columns[i].ColumnName == (SQL_.Rows[i]["es_prefix"].ToString() + "||" + SQL_.Rows[i]["es_filed"].ToString() + "||" + SQL_.Rows[i]["es_suffix"].ToString()).ToUpper()) { dt1.Columns[i].Caption = SQL_.Rows[i]["es_filed1"].ToString(); dt1.Columns[i].ColumnName = SQL_.Rows[i]["es_caption"].ToString(); } } Console.WriteLine(DateTime.Now.ToString("yyyy/MM/dd h:mm:ss.fff")); if (FirstPage.DataSource != null) FirstPage.DataSource = null; if (DataPage.DataSource != null) DataPage.DataSource = null; FirstPage.DataSource = dt1; DataPage.DataSource = dt; //将字段赋值到Tag字段,后续保存的时候取值 for (int i = 0; i < FirstPage.Columns.Count; i++) { for (int j = 0; j < dt1.Columns.Count; j++) { if (FirstPage.Columns[i].Name == dt1.Columns[j].ColumnName) { FirstPage.Columns[i].Tag = dt1.Columns[j].Caption; } } } for (int i = 0; i < DataPage.Columns.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { if (DataPage.Columns[i].Name == dt.Columns[j].ColumnName) { DataPage.Columns[i].Tag = dt.Columns[j].Caption; } } } DataPage.Columns["chw_percent1"].HeaderText = "机测1"; DataPage.Columns["chw_percent2"].HeaderText = "机测2"; DataPage.Columns["chw_itemname1"].Visible = false; DataPage.Columns["chw_itemname2"].Visible = false; } } }