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();
}
}
}
}
}
}