using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using XImagingXhandler.XDAL; using System.Data; using XCoreBLL.Resource; using System.Xml; using XCommon; using DataEntity.Share; using DataRWDAL; using DataEntity; namespace XCoreBLL { /// /// 文件抓板转移数据处理类 /// public class FileMoveLabwareBll { WellFileCalc wellFileCalc = new WellFileCalc(); #region 获取DataTable的表头名称数据集合 /// /// 获取DataTable的表头名称数据集合 /// /// /// public List GetTransferFileHeaders(DataTable dataTable) { List transferFileHeaders = new List(); TransferFileHeader transferFileHeader = new TransferFileHeader(); transferFileHeader.header_id = "0"; transferFileHeader.header_name = "请选择"; transferFileHeaders.Add(transferFileHeader); for (int i = 0; i < dataTable.Columns.Count; i++) { transferFileHeader = new TransferFileHeader(); transferFileHeader.header_id = dataTable.Columns[i].ColumnName; transferFileHeader.header_name = dataTable.Columns[i].ColumnName; transferFileHeaders.Add(transferFileHeader); } return transferFileHeaders; } #endregion public MethodFileMoveLabware GenerateMethodFileMoveLabwareDataByXmlNode(XmlNode xmlNode) { MethodFileMoveLabware methodFileMoveLabware = new MethodFileMoveLabware(); methodFileMoveLabware.isrun = xmlNode.SelectSingleNode("isrun").InnerText; methodFileMoveLabware.status = xmlNode.SelectSingleNode("status").InnerText; methodFileMoveLabware.name = xmlNode.SelectSingleNode("name").InnerText; methodFileMoveLabware.comment = xmlNode.SelectSingleNode("comment")!=null? xmlNode.SelectSingleNode("comment").InnerText:""; methodFileMoveLabware.label = xmlNode.SelectSingleNode("label").InnerText; methodFileMoveLabware.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText; methodFileMoveLabware.armText = xmlNode.SelectSingleNode("arm/text").InnerText; methodFileMoveLabware.armValue = xmlNode.SelectSingleNode("arm/value").InnerText; methodFileMoveLabware.filePath = xmlNode.SelectSingleNode("filePath").InnerText; methodFileMoveLabware.beginLine = Convert.ToInt32(xmlNode.SelectSingleNode("beginLine").InnerText); methodFileMoveLabware.transferDataTable = GenerateTransferFileDataTable(xmlNode); methodFileMoveLabware.pickLattice = xmlNode.SelectSingleNode("pickLattice").InnerText; methodFileMoveLabware.pickColumn = xmlNode.SelectSingleNode("pickColumn").InnerText; methodFileMoveLabware.pickWell = xmlNode.SelectSingleNode("pickWell").InnerText; methodFileMoveLabware.pickPart = xmlNode.SelectSingleNode("pickPart").InnerText; methodFileMoveLabware.pickDirect = xmlNode.SelectSingleNode("pickDirect").InnerText; methodFileMoveLabware.placeLattice = xmlNode.SelectSingleNode("placeLattice").InnerText; methodFileMoveLabware.placeColumn = xmlNode.SelectSingleNode("placeColumn").InnerText; methodFileMoveLabware.placeWell = xmlNode.SelectSingleNode("placeWell").InnerText; methodFileMoveLabware.placeDirect = xmlNode.SelectSingleNode("placeDirect").InnerText; methodFileMoveLabware.transportMode = Convert.ToInt32(xmlNode.SelectSingleNode("transportMode").InnerText); methodFileMoveLabware.transportCount = Convert.ToInt32(xmlNode.SelectSingleNode("transportCount").InnerText); return methodFileMoveLabware; } public DataTable GenerateTransferFileDataTable(XmlNode xmlNode) { XmlNode xmlNode2 = xmlNode.SelectSingleNode("transferDataTable"); DataTable dataTable = new DataTable(); foreach (XmlNode childNode in xmlNode2.ChildNodes) { DataColumn dataColumn = new DataColumn(); dataColumn.ColumnName = childNode.Attributes["columnname"].Value.ToString(); dataTable.Columns.Add(dataColumn); } if (xmlNode2.ChildNodes[0] != null) { for (int i = 0; i < xmlNode2.ChildNodes[0].ChildNodes.Count; i++) { DataRow dataRow = dataTable.NewRow(); for (int j = 0; j < xmlNode2.ChildNodes.Count; j++) { dataRow[j] = xmlNode2.ChildNodes[j].ChildNodes[i].InnerText; } dataTable.Rows.Add(dataRow); } } return dataTable; } } }