InclusionProportion.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  1. 
  2. using OTSIncAReportApp.DataOperation.DataAccess;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using static OTSIncAReportApp.OTSReport_Export;
  10. namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
  11. {
  12. /// <summary>
  13. /// 夹杂物占比
  14. /// </summary>
  15. class InclusionProportion
  16. {
  17. /// <summary>
  18. /// 夹杂物数据表
  19. /// </summary>
  20. /// <param name="str"></param>
  21. /// <param name="dt"></param>
  22. public DataTable GetINCAtable(BasicData basicData, string str, c_TemplateClass m_mbszclass)
  23. {
  24. //根据sql条件,查询获取颗粒信息数据
  25. //按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
  26. List<string> ClassName = new List<string>();
  27. DataTable getClass_dt = basicData.GetAllClass();
  28. bool bl = false;
  29. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  30. {
  31. if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
  32. && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
  33. if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
  34. {
  35. if (!bl)
  36. {
  37. ClassName.Add("Default");
  38. bl = true;
  39. }
  40. }
  41. else
  42. {
  43. if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
  44. {
  45. ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
  46. }
  47. }
  48. }
  49. //夹杂物面积比添加大类
  50. DataTable RawParticleData = InclusionAreaRatio_2(str, basicData, m_mbszclass);
  51. //夹杂物面积比计算大类占比
  52. ProportionOfParticleArea(RawParticleData, ClassName, str, out DataTable dt);
  53. return dt;
  54. }
  55. /// <summary>
  56. /// 夹杂物大分类chart数据
  57. /// </summary>
  58. /// <param name="str"></param>
  59. /// <param name="m_mbszclass"></param>
  60. /// <param name="m_otsreport_export"></param>
  61. /// <returns></returns>
  62. public DataTable Get_incaPIC_classify(string str ,c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export)
  63. {
  64. ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath);
  65. DataTable m_bt_DBData = fielddata.GetAreaByAllIncA("");//获取所有分类面积和数量信息
  66. DataTable data;
  67. if (m_mbszclass.list_str_MainPriority_Serial.Count==0)
  68. {
  69. data = m_bt_DBData.Copy();
  70. }
  71. else
  72. {
  73. data = m_bt_DBData.Clone();
  74. for (int i = 0; i < m_bt_DBData.Rows.Count; i++)
  75. {
  76. for (int a = 0; a < m_mbszclass.list_str_MainPriority_Serial.Count; a++)
  77. {
  78. if (m_bt_DBData.Rows[i]["TypeId"].ToString() == m_mbszclass.list_str_MainPriority_Serial[a])
  79. {
  80. data.Rows.Add(m_bt_DBData.Rows[i].ItemArray);
  81. continue;
  82. }
  83. }
  84. }
  85. }
  86. //去除物质分类(非夹杂物分类)
  87. for (int a = 0; a < m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial.Count; a++)
  88. {
  89. for (int i = data.Rows.Count - 1; i >= 0; i--)
  90. {
  91. if (data.Rows[i]["TypeId"].ToString() == m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial[a].ToString())
  92. {
  93. data.Rows.RemoveAt(i);
  94. }
  95. }
  96. }
  97. DataTable AreaInformationOfAllElements = ConSolidateInvalid(data);
  98. DataTable AllAnalysisDetails = new DataTable();
  99. AllAnalysisDetails.Columns.Add("Name");
  100. AllAnalysisDetails.Columns.Add("TypeId");
  101. AllAnalysisDetails.Columns.Add("Area", typeof(double));
  102. AllAnalysisDetails.Columns.Add("Class");
  103. AllAnalysisDetails.Columns.Add("Cunt", typeof(double));
  104. for (int i = 0; i < AreaInformationOfAllElements.Rows.Count; i++)
  105. {
  106. DataRow dr2 = AllAnalysisDetails.NewRow();
  107. dr2["Name"] = AreaInformationOfAllElements.Rows[i]["TypeName"].ToString();
  108. dr2["Area"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["ar"]);
  109. dr2["TypeId"] = AreaInformationOfAllElements.Rows[i]["TypeId"].ToString();
  110. dr2["Cunt"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["con"]);
  111. if (AreaInformationOfAllElements.Rows[i]["GroupName"].ToString() == "")
  112. dr2["Class"] = "Default";
  113. else
  114. dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
  115. //dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
  116. AllAnalysisDetails.Rows.Add(dr2);
  117. }
  118. //按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
  119. List<string> ClassName = new List<string>();
  120. DataTable getClass_dt = fielddata.GetAllClass();
  121. bool bl = false;
  122. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  123. {
  124. if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
  125. && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
  126. if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
  127. {
  128. if (!bl)
  129. {
  130. ClassName.Add("Default");
  131. bl = true;
  132. }
  133. }
  134. else
  135. {
  136. if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
  137. {
  138. ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
  139. }
  140. }
  141. }
  142. DataTable AreaRatio = new DataTable();
  143. AreaRatio.TableName = "InclusionAreaRatio";
  144. AreaRatio.Columns.Add("Class");
  145. AreaRatio.Columns.Add("Name");
  146. AreaRatio.Columns.Add("Area", typeof(double));
  147. AreaRatio.Columns.Add("inca_proportion");
  148. AreaRatio.Columns.Add("inca_FieldRatio");
  149. AreaRatio.Columns.Add("Cunt", typeof(int));
  150. //获取夹杂物的总面积用于计算夹杂物类别的占比(gridview最后一个固定是未识别颗粒,要排除未识别颗粒所以for循环至grid view长度减一)
  151. double totalInclusionArea = Convert.ToDouble(decimal.Parse(AllAnalysisDetails.Compute("sum(Area)", "").ToString()));
  152. for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
  153. {
  154. DataRow dr2 = AreaRatio.NewRow();
  155. dr2["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
  156. dr2["Name"] = AllAnalysisDetails.Rows[i]["Name"].ToString();
  157. dr2["Area"] = Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]);
  158. dr2["inca_proportion"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / totalInclusionArea) * 100, 2);
  159. dr2["inca_FieldRatio"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / Convert.ToDouble(str)) * 100, 4);
  160. dr2["Cunt"] = AllAnalysisDetails.Rows[i]["Cunt"].ToString();
  161. AreaRatio.Rows.Add(dr2);
  162. }
  163. DataTable AreaRatio_dt = AreaRatio.Copy();
  164. AreaRatio_dt.Clear();
  165. for (int i = 0; i < ClassName.Count(); i++)
  166. {
  167. DataTable dt = AreaRatio.Copy();
  168. dt.Clear();
  169. for (int a = 0; a < AreaRatio.Rows.Count; a++)
  170. {
  171. if (AreaRatio.Rows[a]["Class"].ToString() == ClassName[i].ToString())
  172. {
  173. dt.Rows.Add(AreaRatio.Rows[a].ItemArray);
  174. }
  175. }
  176. DataView dv = dt.DefaultView;
  177. dv.Sort = "Area DESC";
  178. DataTable dt_Element = dv.ToTable();
  179. for (int a = 0; a < dt_Element.Rows.Count; a++)
  180. {
  181. AreaRatio_dt.Rows.Add(dt_Element.Rows[a].ItemArray);
  182. }
  183. }
  184. DataTable AllAnalysisDetails1 = AreaRatio_dt.Copy();
  185. AllAnalysisDetails1.Clear();
  186. for (int i = 0; i < ClassName.Count; i++)
  187. {
  188. DataTable dt = AreaRatio_dt.Copy();
  189. dt.Clear();
  190. for (int a = 0; a < AreaRatio_dt.Rows.Count; a++)
  191. {
  192. if (AreaRatio_dt.Rows[a]["Class"].ToString() == ClassName[i].ToString())
  193. {
  194. dt.Rows.Add(AreaRatio_dt.Rows[a].ItemArray);
  195. }
  196. }
  197. if (dt.Rows.Count > 0)
  198. {
  199. double totalInclusionArea2 = Convert.ToDouble(decimal.Parse(AreaRatio_dt.Compute("sum(Area)", "").ToString()));
  200. double Area = Convert.ToDouble(decimal.Parse(dt.Compute("sum(Area)", "").ToString()));
  201. int cunt = Convert.ToInt32(decimal.Parse(dt.Compute("sum(Cunt)", "").ToString()));
  202. DataRow dr3 = AllAnalysisDetails1.NewRow();
  203. dr3["Class"] = ClassName[i].ToString();
  204. dr3["Area"] = Math.Round(Area, 2);
  205. dr3["inca_proportion"] = Math.Round((Convert.ToDouble(dt.Rows[0]["Area"]) / totalInclusionArea2) * 100, 2);
  206. dr3["inca_FieldRatio"] = Math.Round((Convert.ToDouble(dt.Rows[0]["Area"]) / Convert.ToDouble(str)) * 100, 4);
  207. dr3["Cunt"] = cunt;
  208. AllAnalysisDetails1.Rows.Add(dr3);
  209. }
  210. }
  211. return AllAnalysisDetails1;
  212. }
  213. /// <summary>
  214. /// 夹杂物细分类chart数据
  215. /// </summary>
  216. /// <param name="m_mbszclass"></param>
  217. /// <param name="m_otsreport_export"></param>
  218. /// <returns></returns>
  219. public DataTable Get_incaPIC_subdivision(c_TemplateClass m_mbszclass,OTSReport_Export m_otsreport_export)
  220. {
  221. ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath);
  222. DataTable m_bt_DBData = fielddata.GetAreaByAllIncA("");//获取所有分类面积和数量信息
  223. //按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
  224. List<string> ClassName = new List<string>();
  225. DataTable getClass_dt = fielddata.GetAllClass();
  226. bool bl = false;
  227. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  228. {
  229. if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
  230. && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
  231. if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
  232. {
  233. if (!bl)
  234. {
  235. ClassName.Add("Default");
  236. bl = true;
  237. }
  238. }
  239. else
  240. {
  241. if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
  242. {
  243. ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
  244. }
  245. }
  246. }
  247. DataTable dataTable = m_bt_DBData.Clone();
  248. for (int i=0;i< m_bt_DBData.Rows.Count;i++)
  249. {
  250. for (int a=0;a< ClassName.Count;a++)
  251. {
  252. if (m_bt_DBData.Rows[i]["GroupName"].ToString()== ClassName[a].ToString())
  253. {
  254. dataTable.Rows.Add(m_bt_DBData.Rows[i].ItemArray);
  255. }
  256. }
  257. }
  258. if (m_mbszclass.list_str_MainPriority_Serial.Count==0)
  259. {
  260. return ConSolidateInvalid(dataTable);
  261. }
  262. DataTable data = m_bt_DBData.Clone();
  263. for (int i = 0; i < m_bt_DBData.Rows.Count; i++)
  264. {
  265. for (int a = 0; a < m_mbszclass.list_str_MainPriority_Serial.Count; a++)
  266. {
  267. if (m_bt_DBData.Rows[i]["TypeId"].ToString() == m_mbszclass.list_str_MainPriority_Serial[a])
  268. {
  269. data.Rows.Add(m_bt_DBData.Rows[i].ItemArray);
  270. continue;
  271. }
  272. }
  273. }
  274. return ConSolidateInvalid(dataTable);
  275. }
  276. private DataTable ConSolidateInvalid(DataTable dt)
  277. {
  278. DataTable dt_invalid = dt.Clone();
  279. DataTable dt_no_invalid = dt.Clone();
  280. for (int i = 0; i < dt.Rows.Count; i++)
  281. {
  282. if (dt.Rows[i]["TypeName"].ToString() == "Invalid")
  283. {
  284. dt_invalid.Rows.Add(dt.Rows[i].ItemArray);
  285. }
  286. else
  287. {
  288. dt_no_invalid.Rows.Add(dt.Rows[i].ItemArray);
  289. }
  290. }
  291. return dt_no_invalid;
  292. }
  293. private DataTable InclusionAreaRatio_2(string str, BasicData basicData, c_TemplateClass m_mbszclass)
  294. {
  295. //根据sql条件,查询获取颗粒信息数据
  296. //ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
  297. DataTable m_bt_DBData = InvalidRemoval(basicData.getParticleData().GetAreaByAllIncA(""));
  298. DataTable AreaInformationOfAllElements;
  299. if (m_mbszclass.list_str_MainPriority_Serial.Count==0)
  300. {
  301. AreaInformationOfAllElements = m_bt_DBData.Copy();
  302. }
  303. else
  304. {
  305. AreaInformationOfAllElements = m_bt_DBData.Clone();
  306. for (int i = 0; i < m_bt_DBData.Rows.Count; i++)
  307. {
  308. for (int a = 0; a < m_mbszclass.list_str_MainPriority_Serial.Count; a++)
  309. {
  310. if (m_bt_DBData.Rows[i]["TypeId"].ToString() == m_mbszclass.list_str_MainPriority_Serial[a])
  311. {
  312. AreaInformationOfAllElements.Rows.Add(m_bt_DBData.Rows[i].ItemArray);
  313. continue;
  314. }
  315. }
  316. }
  317. }
  318. //去除物质分类(非夹杂物分类)
  319. for (int a = 0; a < m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial.Count; a++)
  320. {
  321. for (int i = AreaInformationOfAllElements.Rows.Count - 1; i >= 0; i--)
  322. {
  323. if (AreaInformationOfAllElements.Rows[i]["TypeId"].ToString() == m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial[a].ToString())
  324. {
  325. AreaInformationOfAllElements.Rows.RemoveAt(i);
  326. }
  327. }
  328. }
  329. DataTable AllAnalysisDetails = new DataTable();
  330. AllAnalysisDetails.Columns.Add("Name");
  331. AllAnalysisDetails.Columns.Add("TypeId");
  332. AllAnalysisDetails.Columns.Add("Area", typeof(double));
  333. AllAnalysisDetails.Columns.Add("Class");
  334. AllAnalysisDetails.Columns.Add("Cunt", typeof(double));
  335. for (int i = 0; i < AreaInformationOfAllElements.Rows.Count; i++)
  336. {
  337. DataRow dr2 = AllAnalysisDetails.NewRow();
  338. dr2["Name"] = AreaInformationOfAllElements.Rows[i]["TypeName"].ToString();
  339. dr2["Area"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["ar"]);
  340. dr2["TypeId"] = AreaInformationOfAllElements.Rows[i]["TypeId"].ToString();
  341. dr2["Cunt"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["con"]);
  342. dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
  343. AllAnalysisDetails.Rows.Add(dr2);
  344. }
  345. List<string> ClassName = new List<string>();
  346. DataTable getClass_dt = basicData.GetAllClass();
  347. bool bl = false;
  348. for (int i = 0; i < getClass_dt.Rows.Count; i++)
  349. {
  350. if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
  351. && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
  352. if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
  353. {
  354. if (!bl)
  355. {
  356. ClassName.Add("Default");
  357. bl = true;
  358. }
  359. }
  360. else
  361. {
  362. if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
  363. {
  364. ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
  365. }
  366. }
  367. }
  368. DataTable AreaRatio = new DataTable();
  369. AreaRatio.TableName = "InclusionAreaRatio";
  370. AreaRatio.Columns.Add("Class");
  371. AreaRatio.Columns.Add("subdivision");
  372. AreaRatio.Columns.Add("Area", typeof(double));
  373. AreaRatio.Columns.Add("inca_proportion");
  374. AreaRatio.Columns.Add("inca_FieldRatio");
  375. //获取夹杂物的总面积用于计算夹杂物类别的占比(gridview最后一个固定是未识别颗粒,要排除未识别颗粒所以for循环至grid view长度减一)
  376. int sumArea = 0;
  377. for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
  378. {
  379. sumArea = sumArea + Convert.ToInt32(AllAnalysisDetails.Rows[i]["Area"]);
  380. }
  381. for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
  382. {
  383. DataRow dr = AreaRatio.NewRow();
  384. //dr["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
  385. if (AllAnalysisDetails.Rows[i]["Class"].ToString() == "")
  386. dr["Class"] = "Default";
  387. else
  388. dr["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
  389. dr["subdivision"] = AllAnalysisDetails.Rows[i]["Name"].ToString();
  390. dr["Area"] = Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]);
  391. dr["inca_proportion"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / sumArea) * 100, 2);
  392. dr["inca_FieldRatio"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / Convert.ToDouble(str)) * 100, 4);
  393. AreaRatio.Rows.Add(dr);
  394. }
  395. DataTable AreaRatio_dt = AreaRatio.Copy();
  396. AreaRatio_dt.Clear();
  397. for (int i = 0; i < ClassName.Count(); i++)
  398. {
  399. DataTable dt = AreaRatio.Copy();
  400. dt.Clear();
  401. for (int a = 0; a < AreaRatio.Rows.Count; a++)
  402. {
  403. if (AreaRatio.Rows[a]["Class"].ToString() == ClassName[i].ToString())
  404. {
  405. dt.Rows.Add(AreaRatio.Rows[a].ItemArray);
  406. }
  407. }
  408. DataView dv = dt.DefaultView;
  409. dv.Sort = "Area DESC";
  410. DataTable dt_Element = dv.ToTable();
  411. for (int a = 0; a < dt_Element.Rows.Count; a++)
  412. {
  413. AreaRatio_dt.Rows.Add(dt_Element.Rows[a].ItemArray);
  414. }
  415. }
  416. return AreaRatio_dt;
  417. }
  418. private bool ProportionOfParticleArea(DataTable dataTable, List<string> ClassName, string str, out DataTable dt_out)
  419. {
  420. DataTable AllAnalysisDetails = dataTable.Copy();
  421. AllAnalysisDetails.Clear();
  422. AllAnalysisDetails.TableName = "InclusionAreaRatio";
  423. for (int i = 0; i < ClassName.Count; i++)
  424. {
  425. DataTable dt = dataTable.Copy();
  426. dt.Clear();
  427. for (int a = 0; a < dataTable.Rows.Count; a++)
  428. {
  429. if (dataTable.Rows[a]["Class"].ToString() == ClassName[i].ToString())
  430. {
  431. dt.Rows.Add(dataTable.Rows[a].ItemArray);
  432. }
  433. }
  434. if (dt.Rows.Count > 0)
  435. {
  436. double totalInclusionArea = Convert.ToDouble(decimal.Parse(dataTable.Compute("sum(Area)", "").ToString()));
  437. double Area = Convert.ToDouble(decimal.Parse(dt.Compute("sum(Area)", "").ToString()));
  438. DataRow dr = AllAnalysisDetails.NewRow();
  439. dr["Class"] = ClassName[i].ToString();
  440. dr["Area"] = Math.Round(Area, 2);
  441. //Convert.ToDouble(decimal.Parse(dt.Compute("sum(e3)", "").ToString()));
  442. dr["inca_proportion"] = Math.Round((Convert.ToDouble(Area) / totalInclusionArea) * 100, 2);
  443. dr["inca_FieldRatio"] = Math.Round((Convert.ToDouble(Area) / Convert.ToDouble(str)) * 100, 4);
  444. AllAnalysisDetails.Rows.Add(dr);
  445. DataView dv = dt.DefaultView;
  446. dv.Sort = "Area DESC";
  447. DataTable dt_Area = dv.ToTable();
  448. for (int a = 0; a < dt_Area.Rows.Count; a++)
  449. {
  450. dt_Area.Rows[a]["Class"] = "";
  451. dt_Area.Rows[a]["Area"] = Math.Round(Convert.ToDouble(dt_Area.Rows[a]["Area"]), 2);
  452. AllAnalysisDetails.Rows.Add(dt_Area.Rows[a].ItemArray);
  453. }
  454. }
  455. }
  456. dt_out = AllAnalysisDetails.Copy();
  457. return true;
  458. }
  459. private DataTable InvalidRemoval(DataTable dt)
  460. {
  461. DataTable dataTable = dt.Copy();
  462. dataTable.Clear();
  463. for (int i = 0; i < dt.Rows.Count; i++)
  464. {
  465. if (Convert.ToInt32(dt.Rows[i]["TypeId"]) > 10)
  466. {
  467. dataTable.Rows.Add(dt.Rows[i].ItemArray);
  468. }
  469. }
  470. return dataTable;
  471. }
  472. }
  473. }