Purity.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. using OTSCLRINTERFACE;
  2. using OTSIncAReportApp.OTSDataMgrFunction;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. namespace OTSIncAReportApp._1_UI.GBCalculate
  13. {
  14. public partial class Purity : Form
  15. {
  16. #region 全局变量
  17. OTSIncAReportApp.frmReportApp m_ReportApp = null;
  18. DataTable Table = new DataTable();
  19. /// <summary>
  20. /// 权重比重
  21. /// </summary>
  22. readonly Dictionary<string, double> weightFactor = new Dictionary<string, double>()
  23. {
  24. { "0.5",0.05 },
  25. { "1",0.1 },
  26. {"1.5",0.2 },
  27. {"2",0.5 },
  28. {"2.5",1 },
  29. {"3",2 },
  30. {"3.5",5 },
  31. {"4",10 },
  32. {"4.5",20},
  33. {"5",50 }
  34. };
  35. #endregion
  36. public Purity(OTSIncAReportApp.frmReportApp a_ReportApp)
  37. {
  38. InitializeComponent();
  39. m_ReportApp = a_ReportApp;
  40. cBox_gride.DataSource=new string[] { "0.5", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5" };
  41. cBox_gride.SelectedIndex=0;
  42. rBx_process.Font = new Font(rBx_process.Font.FontFamily, 15);
  43. }
  44. private void Purity_Load(object sender, EventArgs e)
  45. {
  46. InitTable(Table);
  47. pictureBox_PurityFormula.Image = Properties.Resources.PurityFormula;
  48. }
  49. void InitTable(DataTable Table)
  50. {
  51. Table.Columns.Add("0.5", typeof(int));
  52. Table.Columns.Add("1", typeof(int));
  53. Table.Columns.Add("1.5", typeof(int));
  54. Table.Columns.Add("2", typeof(int));
  55. Table.Columns.Add("2.5", typeof(int));
  56. Table.Columns.Add("3", typeof(int));
  57. Table.Columns.Add("3.5", typeof(int));
  58. Table.Columns.Add("4", typeof(int));
  59. Table.Columns.Add("4.5", typeof(int));
  60. Table.Columns.Add("5", typeof(int));
  61. Table.Rows.Add(0, 0, 0, 0, 0, 0, 0, 0, 0,0);
  62. }
  63. private void btn_cal_Click(object sender, EventArgs e)
  64. {
  65. Table.Rows.Clear();
  66. Table.Rows.Add(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  67. tB_result.Text = "";this.Refresh();
  68. Cursor = Cursors.WaitCursor;
  69. rBx_process.Text = "";
  70. int index = m_ReportApp.m_conditionChoose.m_conditionData.GetComboDownListIndexByItemName(OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
  71. for (int i = 0; i < m_ReportApp.m_rstDataMgr.ResultFilesList.Count; i++)
  72. {
  73. string anothername = m_ReportApp.m_rstDataMgr.ResultFilesList[i].anotherFileName.ToString();
  74. string resultfile = m_ReportApp.m_rstDataMgr.ResultFilesList[i].FilePath.ToString() + "\\" + m_ReportApp.m_rstDataMgr.ResultFilesList[i].FileName_real.ToString();
  75. m_ReportApp.m_rstDataMgr.m_ReportMgr.AddASmplMsrResultMgr(resultfile, anothername);
  76. }
  77. OTSCLRINTERFACE.CPropParamClr clr_prop = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetPropertyParamTable();
  78. List<string> datasourcelist = m_ReportApp.m_conditionChoose.m_conditionData.GetComboDownListByItemName(OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
  79. clr_prop.SetDataSourceList(datasourcelist);
  80. clr_prop.SetDataSourceId(index);
  81. clr_prop.SetType((int)OTSSampleReportInfo.DisplayPicutureType.AnalyzeDataTable);//table
  82. clr_prop.SetCalTableType((int)OTSSampleReportInfo.CALCULATE_TABLE_TYPE.GB_Method1);
  83. DataTable tbl = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetAllGBFields(clr_prop);
  84. if (tbl != null)
  85. {
  86. foreach (DataRow row in tbl.Rows)
  87. {
  88. string[] str = Convert.ToString(row["grade"]).Split(' ');
  89. for (int i = 0; i < str.Length; i++)
  90. {
  91. if (str[i].Contains(":"))
  92. {
  93. str[i] = Convert.ToString(str[i].Split(':')[1]);
  94. }
  95. switch (str[i])
  96. {
  97. case "0.5":
  98. Table.Rows[0]["0.5"] = Convert.ToInt64(Table.Rows[0]["0.5"]) + 1;
  99. break;
  100. case "1":
  101. Table.Rows[0]["1"] = Convert.ToInt64(Table.Rows[0]["1"]) + 1;
  102. break;
  103. case "1.5":
  104. Table.Rows[0]["1.5"] = Convert.ToInt64(Table.Rows[0]["1.5"]) + 1;
  105. break;
  106. case "2":
  107. Table.Rows[0]["2"] = Convert.ToInt64(Table.Rows[0]["2"]) + 1;
  108. break;
  109. case "2.5":
  110. Table.Rows[0]["2.5"] = Convert.ToInt64(Table.Rows[0]["2.5"]) + 1;
  111. break;
  112. case "3":
  113. Table.Rows[0]["3"] = Convert.ToInt64(Table.Rows[0]["3"]) + 1;
  114. break;
  115. case "3.5":
  116. Table.Rows[0]["3.5"] = Convert.ToInt64(Table.Rows[0]["3.5"]) + 1;
  117. break;
  118. case "4":
  119. Table.Rows[0]["4"] = Convert.ToInt64(Table.Rows[0]["4"]) + 1;
  120. break;
  121. case "4.5":
  122. Table.Rows[0]["4.5"] = Convert.ToInt64(Table.Rows[0]["4.5"]) + 1;
  123. break;
  124. case "5":
  125. Table.Rows[0]["5"] = Convert.ToInt64(Table.Rows[0]["5"]) + 1;
  126. break;
  127. default:
  128. break;
  129. }
  130. }
  131. }
  132. }
  133. rBx_process.AppendText("经国标方法1评级后数据统计如下:\n");
  134. string r1 = "";
  135. string r2 = "K=( ";
  136. double K = 0;
  137. for (int i= cBox_gride.SelectedIndex;i< Table.Columns.Count; i++)
  138. {
  139. K += weightFactor[Convert.ToString(cBox_gride.SelectedItem)] * Convert.ToInt64(Table.Rows[0][i]);
  140. r1 += cBox_gride.Items[i].ToString() + "级视场数:" + Table.Rows[0][i].ToString()+"\n";
  141. r2 += weightFactor[Convert.ToString(cBox_gride.Items[i])].ToString() + " * " + Table.Rows[0][i].ToString() + " + ";
  142. }
  143. r2 = r2.Remove(r2.Length - 2, 2);
  144. r2 += ")";
  145. double area = m_ReportApp.m_rstDataMgr.CurResultFile.GetImageWidth() * m_ReportApp.m_rstDataMgr.CurResultFile.GetImageHeight() * m_ReportApp.m_rstDataMgr.CurResultFile.GetPixelSize() * m_ReportApp.m_rstDataMgr.CurResultFile.GetPixelSize() * m_ReportApp.m_rstDataMgr.CurResultFile .GetTotalFields()* 0.000001;
  146. K = K * 1000 / area;
  147. tB_result.Text = (Math.Round(K, 3).ToString());
  148. r1 += "总检验面积:" + area.ToString() + "\n";
  149. r2 += "* 1000 /" + area.ToString();
  150. rBx_process.AppendText(r1 + "\n");
  151. rBx_process.AppendText("代入公式计算:\n");
  152. rBx_process.AppendText(r2 + "\n");
  153. rBx_process.AppendText("K = "+ K.ToString());
  154. this.Refresh();
  155. this.Cursor= Cursors.Default;
  156. }
  157. }
  158. }