using CnasSynchronusClient; using CnasSynchrousModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace CNAS_BalanceClient { public class HuiFenUIOperation { /// /// 更改灰分数据 /// /// /// /// public void UpdateHuifenData(System.Windows.Forms.DataGridView dgvShuiFen, double balanceWeight, List laboratoryTests) { //更改内存值 bool bIfUpdate = true; string strID = dgvShuiFen.Rows[dgvShuiFen.CurrentCell.RowIndex].Cells[0].Value.ToString(); var query = laboratoryTests.Where(s => s.GUID == strID).ToList(); if (query.Count == 1) { switch (dgvShuiFen.CurrentCell.ColumnIndex.ToString()) { case "4": //空坩埚重 query[0].Empty_Crucible_Weight = CalculateOperation.GetShowDoubleValueN4(balanceWeight); dgvShuiFen.CurrentRow.Cells[6].Value = CalculateOperation.GetShowDoubleValueN4(query[0].Empty_Crucible_Weight + query[0].Sample_Weight); break; case "5": //样重 if (balanceWeight < 0.9 || balanceWeight > 1.1) { MessageBox.Show("样重范围是0.9g~1.1g", "提示"); bIfUpdate = false; } else { query[0].Sample_Weight = CalculateOperation.GetShowDoubleValueN4(balanceWeight); dgvShuiFen.CurrentRow.Cells[6].Value = CalculateOperation.GetShowDoubleValueN4(query[0].Empty_Crucible_Weight + query[0].Sample_Weight); } break; case "6"://加样重 //query[0].AddSample_Weight = balanceWeight; break; case "7"://烘干重 if (query[0].AddSample_Weight != 0 && balanceWeight > query[0].AddSample_Weight) { MessageBox.Show("烘干重不能大于加样重,请调整后再传入。", "提示"); bIfUpdate = false; } else { double oldvaue = query[0].BurningResidue_Weight; query[0].BurningResidue_Weight = CalculateOperation.GetShowDoubleValueN4(balanceWeight); if (!UpdateAshPercentColumn(dgvShuiFen, laboratoryTests, dgvShuiFen.CurrentCell.RowIndex)) { query[0].BurningResidue_Weight = CalculateOperation.GetShowDoubleValueN4(oldvaue); bIfUpdate = false; } } break; case "8"://二次烘干重 if (query[0].AddSample_Weight != 0 && balanceWeight > query[0].AddSample_Weight) { MessageBox.Show("烘干重不能大于加样重,请调整后再传入。", "提示"); bIfUpdate = false; } else { double oldvaue = query[0].SecondBurningResidue_Weight; query[0].SecondBurningResidue_Weight = CalculateOperation.GetShowDoubleValueN4(balanceWeight); if (!UpdateAshPercentColumn(dgvShuiFen, laboratoryTests, dgvShuiFen.CurrentCell.RowIndex)) { query[0].SecondBurningResidue_Weight = CalculateOperation.GetShowDoubleValueN4(oldvaue); bIfUpdate = false; } } break; case "9"://三次烘干重 if (query[0].AddSample_Weight != 0 && balanceWeight > query[0].AddSample_Weight) { MessageBox.Show("烘干重不能大于加样重,请调整后再传入。", "提示"); bIfUpdate = false; } else { double oldvaue = query[0].ThirdBurningResidue_Weight; query[0].ThirdBurningResidue_Weight = CalculateOperation.GetShowDoubleValueN4(balanceWeight); if (!UpdateAshPercentColumn(dgvShuiFen, laboratoryTests, dgvShuiFen.CurrentCell.RowIndex)) { query[0].ThirdBurningResidue_Weight = CalculateOperation.GetShowDoubleValueN4(oldvaue); bIfUpdate = false; } } break; } if (bIfUpdate) { query[0].Operator = GlobalCommonOperation.strUserName; query[0].OperaDateTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); if (query[0].OperationType == null || query[0].OperationType == "") query[0].OperationType = "update"; //更改显示值 dgvShuiFen.CurrentCell.Value = CalculateOperation.GetShowDoubleValueN4(balanceWeight); } } } /// /// 更改灰分百分比 /// /// /// public bool UpdateAshPercentColumn(DataGridView dgvHuiFen, List laboratoryTests, int CurrentRowIndex) { bool IfUpdate = true; string strID = dgvHuiFen.Rows[CurrentRowIndex].Cells[0].Value.ToString(); var query = laboratoryTests.Where(s => s.GUID == strID).ToList(); if (query.Count == 1) { double percentdouble = 0; if (query[0].Sample_Weight != 0 && query[0].AddSample_Weight != 0 && query[0].BurningResidue_Weight != 0) { string strMsg = ""; if (query[0].SecondBurningResidue_Weight == 0) { percentdouble = CalculateOperation.CalculateDecrement(query[0].AddSample_Weight, new double[1] { query[0].BurningResidue_Weight }); if (percentdouble > 100 || percentdouble < 0) { MessageBox.Show("百分比计算结果出错,请调整数据。", "提示"); return false; } dgvHuiFen.Rows[CurrentRowIndex].Cells["DecrementValue2"].Value = percentdouble; } else if (query[0].ThirdBurningResidue_Weight == 0) { percentdouble = CalculateOperation.CalculateDecrement(query[0].AddSample_Weight, new double[2] { query[0].BurningResidue_Weight, query[0].SecondBurningResidue_Weight }); if (percentdouble > 100 || percentdouble < 0) { MessageBox.Show("百分比计算结果出错,请调整数据。", "提示"); return false; } dgvHuiFen.Rows[CurrentRowIndex].Cells["DecrementValue2"].Value = percentdouble; } else { percentdouble = CalculateOperation.CalculateDecrement(query[0].AddSample_Weight, new double[3] { query[0].BurningResidue_Weight, query[0].SecondBurningResidue_Weight, query[0].ThirdBurningResidue_Weight }); if (percentdouble > 100 || percentdouble < 0) { MessageBox.Show("百分比计算结果出错,请调整数据。", "提示"); return false; } dgvHuiFen.Rows[CurrentRowIndex].Cells["DecrementValue2"].Value = percentdouble; } percentdouble = CalculateOperation.CalculateAad(query[0].AddSample_Weight, query[0].Sample_Weight, new double[3] { query[0].BurningResidue_Weight, query[0].SecondBurningResidue_Weight, query[0].ThirdBurningResidue_Weight }, ref strMsg); if (percentdouble > 100 || percentdouble < 0) { MessageBox.Show("百分比计算结果出错,请调整数据。", "提示"); return false; } dgvHuiFen.Rows[CurrentRowIndex].Cells["AAD"].Value = percentdouble; query[0].Aad = Convert.ToDouble(dgvHuiFen.Rows[CurrentRowIndex].Cells["AAD"].Value); query[0].DecrementValue = Convert.ToDouble(dgvHuiFen.Rows[CurrentRowIndex].Cells["DecrementValue2"].Value); } } return IfUpdate; } } }