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 FileCutGumBll { 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 MethodElectroFile GenerateMethodElectroFileDataByXmlNode(XmlNode xmlNode) { MethodElectroFile methodElectroFile = new MethodElectroFile(); methodElectroFile.isrun = xmlNode.SelectSingleNode("isrun").InnerText; methodElectroFile.status = xmlNode.SelectSingleNode("status").InnerText; methodElectroFile.name = xmlNode.SelectSingleNode("name").InnerText; methodElectroFile.comment = xmlNode.SelectSingleNode("comment").InnerText; methodElectroFile.label = xmlNode.SelectSingleNode("label").InnerText; methodElectroFile.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText; methodElectroFile.armText = xmlNode.SelectSingleNode("arm/text").InnerText; methodElectroFile.armValue = xmlNode.SelectSingleNode("arm/value").InnerText; methodElectroFile.headType = xmlNode.SelectSingleNode("headType").InnerText; methodElectroFile.labwaretipText = xmlNode.SelectSingleNode("labwaretip/text").InnerText; methodElectroFile.labwaretipValue = xmlNode.SelectSingleNode("labwaretip/value").InnerText; string strchs = xmlNode.SelectSingleNode("channels").InnerText; methodElectroFile.channels = ComUtility.GetChannelsFromXml(strchs); methodElectroFile.filePath = xmlNode.SelectSingleNode("filePath").InnerText; methodElectroFile.beginLine = Convert.ToInt32(xmlNode.SelectSingleNode("beginLine").InnerText); methodElectroFile.transferDataTable = GenerateTransferFileDataTable(xmlNode); methodElectroFile.sourceLabware = xmlNode.SelectSingleNode("sourceLabware").InnerText; methodElectroFile.sourceWell = xmlNode.SelectSingleNode("sourceWell").InnerText; methodElectroFile.destinationLabware = xmlNode.SelectSingleNode("destinationLabware").InnerText; methodElectroFile.destinationWell = xmlNode.SelectSingleNode("destinationWell").InnerText; methodElectroFile.destVolume = xmlNode.SelectSingleNode("dpsVolume").InnerText; methodElectroFile.tipSet = xmlNode.SelectSingleNode("tipSet").InnerText; methodElectroFile.changeTipsMode = Convert.ToInt32(xmlNode.SelectSingleNode("changeTipsMode").InnerText); methodElectroFile.changeToTipText = xmlNode.SelectSingleNode("changeToTipText").InnerText; methodElectroFile.changeToTipValue = Convert.ToInt32(xmlNode.SelectSingleNode("changeToTipValue").InnerText); methodElectroFile.liquididText = xmlNode.SelectSingleNode("liquidid/text").InnerText; methodElectroFile.liquididValue = xmlNode.SelectSingleNode("liquidid/value").InnerText; methodElectroFile.liquidrangeidText = xmlNode.SelectSingleNode("liquidrangeid/text").InnerText; methodElectroFile.liquidrangeidValue = xmlNode.SelectSingleNode("liquidrangeid/value").InnerText; methodElectroFile.liquidpidText = xmlNode.SelectSingleNode("liquidpid/text").InnerText; methodElectroFile.liquidpidValue = xmlNode.SelectSingleNode("liquidpid/value").InnerText; return methodElectroFile; } 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; } } }