Purity.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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. //Clipboard.SetDataObject(Properties.Resources.PurityFormula, false);//将图像放入剪切板
  71. //if (rBx_process.CanPaste(DataFormats.GetFormat(DataFormats.Bitmap)))//判断剪切板内是否是图像
  72. //{
  73. // rBx_process.Paste();//粘贴剪切板的内容到控件中
  74. // Clipboard.SetDataObject(String.Empty, false);//清空剪切板
  75. //}
  76. //rBx_process.AppendText("\n\n");
  77. int index = m_ReportApp.m_conditionChoose.m_conditionData.GetComboDownListIndexByItemName(OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
  78. for (int i = 0; i < m_ReportApp.m_rstDataMgr.ResultFilesList.Count; i++)
  79. {
  80. string anothername = m_ReportApp.m_rstDataMgr.ResultFilesList[i].anotherFileName.ToString();
  81. string resultfile = m_ReportApp.m_rstDataMgr.ResultFilesList[i].FilePath.ToString() + "\\" + m_ReportApp.m_rstDataMgr.ResultFilesList[i].FileName_real.ToString();
  82. m_ReportApp.m_rstDataMgr.m_ReportMgr.AddASmplMsrResultMgr(resultfile, anothername);
  83. }
  84. OTSCLRINTERFACE.CPropParamClr clr_prop = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetPropertyParamTable();
  85. List<string> datasourcelist = m_ReportApp.m_conditionChoose.m_conditionData.GetComboDownListByItemName(OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE);
  86. clr_prop.SetDataSourceList(datasourcelist);
  87. clr_prop.SetDataSourceId(index);
  88. clr_prop.SetType((int)OTSSampleReportInfo.DisplayPicutureType.AnalyzeDataTable);//table
  89. clr_prop.SetCalTableType((int)OTSSampleReportInfo.CALCULATE_TABLE_TYPE.GB_Method1);
  90. DataTable tbl = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetAllGBFields(clr_prop);
  91. if (tbl != null)
  92. {
  93. foreach (DataRow row in tbl.Rows)
  94. {
  95. string[] str = Convert.ToString(row["grade"]).Split(' ');
  96. for (int i = 0; i < str.Length; i++)
  97. {
  98. if (str[i].Contains(":"))
  99. {
  100. str[i] = Convert.ToString(str[i].Split(':')[1]);
  101. }
  102. switch (str[i])
  103. {
  104. case "0.5":
  105. Table.Rows[0]["0.5"] = Convert.ToInt64(Table.Rows[0]["0.5"]) + 1;
  106. break;
  107. case "1":
  108. Table.Rows[0]["1"] = Convert.ToInt64(Table.Rows[0]["1"]) + 1;
  109. break;
  110. case "1.5":
  111. Table.Rows[0]["1.5"] = Convert.ToInt64(Table.Rows[0]["1.5"]) + 1;
  112. break;
  113. case "2":
  114. Table.Rows[0]["2"] = Convert.ToInt64(Table.Rows[0]["2"]) + 1;
  115. break;
  116. case "2.5":
  117. Table.Rows[0]["2.5"] = Convert.ToInt64(Table.Rows[0]["2.5"]) + 1;
  118. break;
  119. case "3":
  120. Table.Rows[0]["3"] = Convert.ToInt64(Table.Rows[0]["3"]) + 1;
  121. break;
  122. case "3.5":
  123. Table.Rows[0]["3.5"] = Convert.ToInt64(Table.Rows[0]["3.5"]) + 1;
  124. break;
  125. case "4":
  126. Table.Rows[0]["4"] = Convert.ToInt64(Table.Rows[0]["4"]) + 1;
  127. break;
  128. case "4.5":
  129. Table.Rows[0]["4.5"] = Convert.ToInt64(Table.Rows[0]["4.5"]) + 1;
  130. break;
  131. case "5":
  132. Table.Rows[0]["5"] = Convert.ToInt64(Table.Rows[0]["5"]) + 1;
  133. break;
  134. default:
  135. break;
  136. }
  137. }
  138. }
  139. }
  140. rBx_process.AppendText("经国标方法1评级后数据统计如下:\n");
  141. string r1 = "";
  142. string r2 = "K=( ";
  143. double K = 0;
  144. for (int i= cBox_gride.SelectedIndex;i< Table.Columns.Count; i++)
  145. {
  146. K += weightFactor[Convert.ToString(cBox_gride.SelectedItem)] * Convert.ToInt64(Table.Rows[0][i]);
  147. r1 += cBox_gride.Items[i].ToString() + "级视场数:" + Table.Rows[0][i].ToString()+"\n";
  148. r2 += weightFactor[Convert.ToString(cBox_gride.Items[i])].ToString() + " * " + Table.Rows[0][i].ToString() + " + ";
  149. }
  150. r2 = r2.Remove(r2.Length - 2, 2);
  151. r2 += ")";
  152. 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;
  153. K = K * 1000 / area;
  154. tB_result.Text = (Math.Round(K, 3).ToString());
  155. r1 += "总检验面积:" + area.ToString() + "\n";
  156. r2 += "* 1000 /" + area.ToString();
  157. rBx_process.AppendText(r1 + "\n");
  158. rBx_process.AppendText("代入公式计算:\n");
  159. rBx_process.AppendText(r2 + "\n");
  160. rBx_process.AppendText("K = "+ K.ToString());
  161. this.Refresh();
  162. this.Cursor= Cursors.Default;
  163. }
  164. }
  165. }