using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Infragistics.Win.UltraWinGrid; using System.Collections; using CoreFS.CA06; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; //化学元素详细信息显示Grid namespace Core.StlMes.Client.Lims.Data.PipeAndOutdec { public partial class PublicUltraGridChemDetail : UserControl { public event EventHandler PublicUltraGridChemDetailActive; //private DataTable dataTable; public DataTable DataTable { get { return dataTable1; } set { dataTable1 = value; } } //private UltraGrid ug; public UltraGrid Ug { get { return ultraGrid1; } set { ultraGrid1 = value; } } private UltraGridRow ur; public UltraGridRow Ur { get { return ur; } set { ur = value; } } public PublicUltraGridChemDetail() { InitializeComponent(); } private void PublicUltraGridDetail_Load(object sender, EventArgs e) { string[] arrColumns = PublicPipeAndOutdec.chemMax.Split(' '); string[] arrCaption = PublicPipeAndOutdec.chemMin.Split(' '); InitColumns(arrColumns, arrCaption); } //初始化列 /// /// 初始化列 /// /// /// private void InitColumns(string[] arrColumns, string[] arrCaption) { DataColumn dc; for (int i = 0; i < arrColumns.Length; i++) { try { dc = new DataColumn(arrColumns[i]); dc.Caption = arrCaption[i]; dataTable1.Columns.Add(dc); //dc.DataType = typeof(bool); //dc.DefaultValue = "False"; } catch { continue; } } UltraGridColumn[] cols = new UltraGridColumn[] { ultraGrid1.DisplayLayout.Bands[0].Columns["SAMPLE_NO"] }; GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid1, cols); } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { if (PublicUltraGridChemDetailActive != null) { ur = ultraGrid1.ActiveRow; PublicUltraGridChemDetailActive(sender, e);//调用委托事件 } } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { if (ultraGrid1.Rows.Count > 1 && e.Cell.Row.Index == 0 && PublicPipeAndOutdec.chemMax.IndexOf(e.Cell.Column.Key) >= 0)//HC 2015-07-30 { ultraGrid1.Update(); for (int i = 1; i < ultraGrid1.Rows.Count; i++) { ultraGrid1.Rows[i].Cells[e.Cell.Column.Key].Value = ultraGrid1.Rows[0].Cells[e.Cell.Column.Key].Text.Trim(); } } } //查询检验委托明细信息 /// /// 查询检验委托明细信息 /// /// /// /// public void QueryCheckConsignChemDetail(string path, ArrayList arrayList, OpeBase ob) { dataTable1.Rows.Clear(); DataTable dt = PublicServer.GetData("com.steering.lims.data." + path + ".QueryCheckConsignChemDetail", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { return; } string rowChem = "";//存放所有样管号判断是否有重复样管号 DataRow newDrChem = dataTable1.NewRow(); foreach (DataRow dr in dt.Rows) { if (rowChem.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断化学是否有重复样管号,有则不增加行只增加对应的列 { rowChem += dr["SAMPLE_NO"].ToString() + " "; newDrChem = dataTable1.NewRow(); newDrChem["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString(); if (dataTable1.Columns.Contains("ANA_" + dr["CHEM_NAME"].ToString().ToUpper())) { newDrChem["ANA_" + dr["CHEM_NAME"].ToString().ToUpper()] = "√"; } if (dr["CHEM_NAME"].ToString().ToUpper() == "ALT") { newDrChem["ANA_" + "AL"] = "√"; } dataTable1.Rows.Add(newDrChem); } else { if (dataTable1.Columns.Contains("ANA_" + dr["CHEM_NAME"].ToString().ToUpper())) { newDrChem["ANA_" + dr["CHEM_NAME"].ToString().ToUpper()] = "√"; } if (dr["CHEM_NAME"].ToString().ToUpper() == "ALT") { newDrChem["ANA_" + "AL"] = "√"; } } } //GridHelper.RefreshAndAutoSize(ultraGrid1);//刷新Grid } //获取勾选的元素 /// /// 获取勾选的元素 /// /// public ArrayList GetCheckChem() { ArrayList al = new ArrayList(); string chemONH = ""; string chemItems = ""; //string[] arrchem = new string[2]; ArrayList alchem = new ArrayList(); ultraGrid1.UpdateData(); foreach (DataRow dr in dataTable1.Rows) { chemONH = ""; chemItems = ""; foreach (DataColumn dc in dataTable1.Columns) { if (dr[dc.ColumnName].ToString() == "√") { if ("ONH".IndexOf(dc.Caption) >= 0) { chemONH += dc.Caption + " "; } else { chemItems += dc.Caption + " "; } } } alchem.Add(chemItems); alchem.Add(chemONH); al.Add(alchem); //al.Add(arrchem); } return al; } public ArrayList GetOutdecCheckChem() { //ArrayList al = new ArrayList(); string chemItems = ""; ArrayList alchem = new ArrayList(); ultraGrid1.UpdateData(); foreach (DataRow dr in dataTable1.Rows) { chemItems = ""; foreach (DataColumn dc in dataTable1.Columns) { if (dr[dc.ColumnName].ToString() == "√") { chemItems += dc.Caption + " "; } } alchem.Add(chemItems); //al.Add(alchem); } return alchem; } private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e) { if (PublicPipeAndOutdec.chemMax.IndexOf(e.Cell.Column.Key) >= 0) { if (e.Cell.Text.Trim() == "") { e.Cell.Value = "√"; } else { e.Cell.Value = ""; } if (ultraGrid1.Rows.Count > 1 && e.Cell.Row.Index == 0)//HC 2015-07-30 { ultraGrid1.Update(); for (int i = 1; i < ultraGrid1.Rows.Count; i++) { ultraGrid1.Rows[i].Cells[e.Cell.Column.Key].Value = ultraGrid1.Rows[0].Cells[e.Cell.Column.Key].Text.Trim(); } } } } } }