123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530 |
- using OTSCommon.Model;
- using OTSIncAReportApp.DataOperation.DataAccess;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using static OTSIncAReportApp.OTSReport_Export;
- namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
- {
- /// <summary>
- /// 夹杂物占比
- /// </summary>
- class InclusionProportion
- {
- /// <summary>
- /// 夹杂物数据表
- /// </summary>
- /// <param name="str"></param>
- /// <param name="dt"></param>
- public DataTable GetINCAtable(string str, OTSReport_Export m_otsreport_export, c_TemplateClass m_mbszclass)
- {
- //根据sql条件,查询获取颗粒信息数据
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
- //按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
- List<string> ClassName = new List<string>();
- DataTable getClass_dt = fielddata.GetAllClass();
- for (int i = 0; i < getClass_dt.Rows.Count; i++)
- {
- if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid")
- if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
- ClassName.Add("Default");
- else
- ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
- }
- //夹杂物面积比添加大类
- DataTable RawParticleData = InclusionAreaRatio_2(str, m_otsreport_export, m_mbszclass);
- //夹杂物面积比计算大类占比
- ProportionOfParticleArea(RawParticleData, ClassName, str, out DataTable dt);
- return dt;
- }
- /// <summary>
- /// 夹杂物大分类chart数据
- /// </summary>
- /// <param name="str"></param>
- /// <param name="m_mbszclass"></param>
- /// <param name="m_otsreport_export"></param>
- /// <returns></returns>
- public DataTable Get_incaPIC_classify(string str ,c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export)
- {
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
- DataTable data = new DataTable();
- if (m_mbszclass.M_SY.int_xzkl == 0)
- {
- data = fielddata.GetAreaByAllIncA("");//获取所有分类面积和数量信息
- }
- else
- {
- DataTable AllInca = fielddata.GetAreaByAllIncA("");
- DataTable SelectParticl = SelectParticleData(m_otsreport_export);
- data = GetParticleListForParticlSize(SelectParticl, AllInca);
- }
- //去除物质分类(非夹杂物分类)
- for (int a = 0; a < m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Count; a++)
- {
- for (int i = data.Rows.Count - 1; i >= 0; i--)
- {
- if (data.Rows[i]["TypeName"].ToString() == m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass[a].ToString())
- {
- data.Rows.RemoveAt(i);
- }
- }
- }
- DataTable AreaInformationOfAllElements = ConSolidateInvalid(data);
- DataTable AllAnalysisDetails = new DataTable();
- AllAnalysisDetails.Columns.Add("Name");
- AllAnalysisDetails.Columns.Add("TypeId");
- AllAnalysisDetails.Columns.Add("Area", typeof(double));
- AllAnalysisDetails.Columns.Add("Class");
- AllAnalysisDetails.Columns.Add("Cunt", typeof(double));
- for (int i = 0; i < AreaInformationOfAllElements.Rows.Count; i++)
- {
- DataRow dr2 = AllAnalysisDetails.NewRow();
- dr2["Name"] = AreaInformationOfAllElements.Rows[i]["TypeName"].ToString();
- dr2["Area"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["ar"]);
- dr2["TypeId"] = AreaInformationOfAllElements.Rows[i]["TypeId"].ToString();
- dr2["Cunt"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["con"]);
- if (AreaInformationOfAllElements.Rows[i]["GroupName"].ToString() == "")
- dr2["Class"] = "Default";
- else
- dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
- //dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
- AllAnalysisDetails.Rows.Add(dr2);
- }
- //按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
- List<string> ClassName = new List<string>();
- DataTable getClass_dt = fielddata.GetAllClass();
- for (int i = 0; i < getClass_dt.Rows.Count; i++)
- {
- if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
- ClassName.Add("Default");
- else
- ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
- }
- DataTable AreaRatio = new DataTable();
- AreaRatio.TableName = "InclusionAreaRatio";
- AreaRatio.Columns.Add("Class");
- AreaRatio.Columns.Add("Name");
- AreaRatio.Columns.Add("Area", typeof(double));
- AreaRatio.Columns.Add("inca_proportion");
- AreaRatio.Columns.Add("inca_FieldRatio");
- AreaRatio.Columns.Add("Cunt", typeof(int));
- //获取夹杂物的总面积用于计算夹杂物类别的占比(gridview最后一个固定是未识别颗粒,要排除未识别颗粒所以for循环至grid view长度减一)
- double totalInclusionArea = Convert.ToDouble(decimal.Parse(AllAnalysisDetails.Compute("sum(Area)", "").ToString()));
- for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
- {
- DataRow dr2 = AreaRatio.NewRow();
- dr2["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
- dr2["Name"] = AllAnalysisDetails.Rows[i]["Name"].ToString();
- dr2["Area"] = Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]);
- dr2["inca_proportion"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / totalInclusionArea) * 100, 2);
- dr2["inca_FieldRatio"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / Convert.ToDouble(str)) * 100, 4);
- dr2["Cunt"] = AllAnalysisDetails.Rows[i]["Cunt"].ToString();
- AreaRatio.Rows.Add(dr2);
- }
- DataTable AreaRatio_dt = AreaRatio.Copy();
- AreaRatio_dt.Clear();
- for (int i = 0; i < ClassName.Count(); i++)
- {
- DataTable dt = AreaRatio.Copy();
- dt.Clear();
- for (int a = 0; a < AreaRatio.Rows.Count; a++)
- {
- if (AreaRatio.Rows[a]["Class"].ToString() == ClassName[i].ToString())
- {
- dt.Rows.Add(AreaRatio.Rows[a].ItemArray);
- }
- }
- DataView dv = dt.DefaultView;
- dv.Sort = "Area DESC";
- DataTable dt_Element = dv.ToTable();
- for (int a = 0; a < dt_Element.Rows.Count; a++)
- {
- AreaRatio_dt.Rows.Add(dt_Element.Rows[a].ItemArray);
- }
- }
- DataTable AllAnalysisDetails1 = AreaRatio_dt.Copy();
- AllAnalysisDetails1.Clear();
- for (int i = 0; i < ClassName.Count; i++)
- {
- DataTable dt = AreaRatio_dt.Copy();
- dt.Clear();
- for (int a = 0; a < AreaRatio_dt.Rows.Count; a++)
- {
- if (AreaRatio_dt.Rows[a]["Class"].ToString() == ClassName[i].ToString())
- {
- dt.Rows.Add(AreaRatio_dt.Rows[a].ItemArray);
- }
- }
- if (dt.Rows.Count > 0)
- {
- double totalInclusionArea2 = Convert.ToDouble(decimal.Parse(AreaRatio_dt.Compute("sum(Area)", "").ToString()));
- double Area = Convert.ToDouble(decimal.Parse(dt.Compute("sum(Area)", "").ToString()));
- int cunt = Convert.ToInt32(decimal.Parse(dt.Compute("sum(Cunt)", "").ToString()));
- DataRow dr3 = AllAnalysisDetails1.NewRow();
- dr3["Class"] = ClassName[i].ToString();
- dr3["Area"] = Math.Round(Area, 2);
- dr3["inca_proportion"] = Math.Round((Convert.ToDouble(dt.Rows[0]["Area"]) / totalInclusionArea2) * 100, 2);
- dr3["inca_FieldRatio"] = Math.Round((Convert.ToDouble(dt.Rows[0]["Area"]) / Convert.ToDouble(str)) * 100, 4);
- dr3["Cunt"] = cunt;
- AllAnalysisDetails1.Rows.Add(dr3);
- }
- }
- return AllAnalysisDetails1;
- }
- /// <summary>
- /// 夹杂物细分类chart数据
- /// </summary>
- /// <param name="m_mbszclass"></param>
- /// <param name="m_otsreport_export"></param>
- /// <returns></returns>
- public DataTable Get_incaPIC_subdivision(c_TemplateClass m_mbszclass,OTSReport_Export m_otsreport_export)
- {
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
- DataTable data = new DataTable();
- if (m_mbszclass.M_SY.int_xzkl == 0)
- {
- data = fielddata.GetAreaByAllIncA("");//获取所有分类面积和数量信息
- }
- else
- {
- DataTable AllInca = fielddata.GetAreaByAllIncA("");
- DataTable SelectParticl = SelectParticleData(m_otsreport_export);
- data = GetParticleListForParticlSize(SelectParticl, AllInca);
- }
- return ConSolidateInvalid(data);
- }
- /// <summary>
- /// 判断是否有大分类,有为true
- /// </summary>
- /// <param name="m_otsreport_export"></param>
- /// <returns></returns>
- public bool IsThereAMajorClassification(OTSReport_Export m_otsreport_export)
- {
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
- DataTable getClass_dt = fielddata.GetAllClass();
- List<string> ClassName = new List<string>();
- for (int i = 0; i < getClass_dt.Rows.Count; i++)
- {
- if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
- && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
- if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
- ClassName.Add("Default");
- else
- ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
- }
- if (ClassName.Count < 2)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- private DataTable ConSolidateInvalid(DataTable dt)
- {
- DataTable dt_invalid = dt.Clone();
- DataTable dt_no_invalid = dt.Clone();
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- if (dt.Rows[i]["TypeName"].ToString() == "Invalid")
- {
- dt_invalid.Rows.Add(dt.Rows[i].ItemArray);
- }
- else
- {
- dt_no_invalid.Rows.Add(dt.Rows[i].ItemArray);
- }
- }
- return dt_no_invalid;
- }
- private DataTable GetParticleListForParticlSize(DataTable data, DataTable table)
- {
- DataTable dt_Partick = new DataTable();
- dt_Partick.Columns.Add("TypeId");
- dt_Partick.Columns.Add("TypeName");
- dt_Partick.Columns.Add("TypeColor");
- dt_Partick.Columns.Add("con");
- dt_Partick.Columns.Add("ar");
- dt_Partick.Columns.Add("max");
- dt_Partick.Columns.Add("Area", typeof(double));
- dt_Partick.Columns.Add("GroupName");
- List<string> typeName = new List<string>();
- for (int i = 0; i < data.Rows.Count; i++)
- {
- typeName.Add(data.Rows[i]["TypeId"].ToString());
- }
- typeName = typeName.Distinct().ToList();
- for (int i = 0; i < typeName.Count; i++)
- {
- DataTable dt = dt_Partick.Clone();
- for (int j = 0; j < data.Rows.Count; j++)
- {
- if (typeName[i].ToString() == data.Rows[j]["TypeId"].ToString())
- {
- DataRow row = dt.NewRow();
- row["TypeId"] = data.Rows[j]["TypeId"];
- row["TypeName"] = data.Rows[j]["TypeName"];
- row["TypeColor"] = data.Rows[j]["TypeColor"];
- row["Area"] = data.Rows[j]["Area"];
- dt.Rows.Add(row);
- }
- }
- DataRow dr = dt_Partick.NewRow();
- dr["TypeId"] = dt.Rows[0]["TypeId"].ToString();
- dr["TypeName"] = dt.Rows[0]["TypeName"].ToString();
- dr["TypeColor"] = dt.Rows[0]["TypeColor"].ToString();
- dr["con"] = dt.Rows.Count;
- dr["ar"] = dt.Compute("min(Area)", "");
- dr["max"] = dt.Compute("Max(Area)", "");
- dr["Area"] = dt.Compute("SUM(Area)", "");
- dt_Partick.Rows.Add(dr);
- }
- for (int i = 0; i < dt_Partick.Rows.Count; i++)
- {
- for (int j = 0; j < table.Rows.Count; j++)
- {
- if (dt_Partick.Rows[i]["TypeId"].ToString() == table.Rows[j]["TypeId"].ToString())
- {
- dt_Partick.Rows[i]["GroupName"] = table.Rows[j]["GroupName"];
- break;
- }
- }
- }
- return dt_Partick;
- }
- private DataTable SelectParticleData(OTSReport_Export m_otsreport_export)
- {
- List<Particle> selectParticles = m_otsreport_export.m_ReportApp.GetSelectedParticles();
- #region Datatable数据表格式
- DataTable dtUelect = new DataTable();
- dtUelect.Columns.Add("fieldid");
- dtUelect.Columns.Add("particleid");
- dtUelect.Columns.Add("AveGray");
- dtUelect.Columns.Add("RectLeft");
- dtUelect.Columns.Add("RectTop");
- dtUelect.Columns.Add("RectWidth");
- dtUelect.Columns.Add("RectHeight");
- dtUelect.Columns.Add("Area");
- dtUelect.Columns.Add("PosX");
- dtUelect.Columns.Add("PosY");
- dtUelect.Columns.Add("TypeId");
- dtUelect.Columns.Add("SegmentNum");
- dtUelect.Columns.Add("SEMPosX");
- dtUelect.Columns.Add("SEMPosY");
- dtUelect.Columns.Add("XrayId");
- dtUelect.Columns.Add("DMAX");
- dtUelect.Columns.Add("DMIN");
- dtUelect.Columns.Add("DPERP");
- dtUelect.Columns.Add("PERIMETER");
- dtUelect.Columns.Add("ORIENTATION");
- dtUelect.Columns.Add("DINSCR");
- dtUelect.Columns.Add("DMEAN");
- dtUelect.Columns.Add("DELONG");
- dtUelect.Columns.Add("DFERET");
- dtUelect.Columns.Add("TypeName");
- dtUelect.Columns.Add("TypeColor");
- #endregion
- for (int i = 0; i < selectParticles.Count; i++)
- {
- dtUelect.Rows.Add(selectParticles[i].FieldId, selectParticles[i].ParticleId, selectParticles[i].AveGray, selectParticles[i].RectLeft, selectParticles[i].RectTop, selectParticles[i].RectWidth, selectParticles[i].RectHeight, selectParticles[i].Area, selectParticles[i].PosX, selectParticles[i].PosX, selectParticles[i].TypeId, /*selectParticles[i].ElementNum,*/ selectParticles[i].SegmentNum, selectParticles[i].SEMPosX, selectParticles[i].SEMPosY, selectParticles[i].ParticleId, selectParticles[i].DMAX, selectParticles[i].DMIN, selectParticles[i].DPERP, selectParticles[i].PERIMETER, selectParticles[i].ORIENTATION, selectParticles[i].DINSCR, selectParticles[i].DMEAN, selectParticles[i].DELONG, selectParticles[i].DFERET, selectParticles[i].TypeName, selectParticles[i].TypeColor);
- }
- return dtUelect;
- }
- private DataTable InclusionAreaRatio_2(string str, OTSReport_Export m_otsreport_export, c_TemplateClass m_mbszclass)
- {
- //根据sql条件,查询获取颗粒信息数据
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
- DataTable AreaInformationOfAllElements = InvalidRemoval(fielddata.GetAreaByAllIncA(""));
- //去除物质分类(非夹杂物分类)
- for (int a = 0; a < m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass.Count; a++)
- {
- for (int i = AreaInformationOfAllElements.Rows.Count - 1; i >= 0; i--)
- {
- if (AreaInformationOfAllElements.Rows[i]["TypeName"].ToString() == m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass[a].ToString())
- {
- AreaInformationOfAllElements.Rows.RemoveAt(i);
- }
- }
- }
- DataTable AllAnalysisDetails = new DataTable();
- AllAnalysisDetails.Columns.Add("Name");
- AllAnalysisDetails.Columns.Add("TypeId");
- AllAnalysisDetails.Columns.Add("Area", typeof(double));
- AllAnalysisDetails.Columns.Add("Class");
- AllAnalysisDetails.Columns.Add("Cunt", typeof(double));
- for (int i = 0; i < AreaInformationOfAllElements.Rows.Count; i++)
- {
- DataRow dr2 = AllAnalysisDetails.NewRow();
- dr2["Name"] = AreaInformationOfAllElements.Rows[i]["TypeName"].ToString();
- dr2["Area"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["ar"]);
- dr2["TypeId"] = AreaInformationOfAllElements.Rows[i]["TypeId"].ToString();
- dr2["Cunt"] = Convert.ToDouble(AreaInformationOfAllElements.Rows[i]["con"]);
- dr2["Class"] = AreaInformationOfAllElements.Rows[i]["GroupName"].ToString();
- AllAnalysisDetails.Rows.Add(dr2);
- }
- List<string> ClassName = new List<string>();
- DataTable getClass_dt = fielddata.GetAllClass();
- for (int i = 0; i < getClass_dt.Rows.Count; i++)
- {
- if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid")
- //ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
- if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
- ClassName.Add("Default");
- else
- ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
- }
- DataTable AreaRatio = new DataTable();
- AreaRatio.TableName = "InclusionAreaRatio";
- AreaRatio.Columns.Add("Class");
- AreaRatio.Columns.Add("subdivision");
- AreaRatio.Columns.Add("Area", typeof(double));
- AreaRatio.Columns.Add("inca_proportion");
- AreaRatio.Columns.Add("inca_FieldRatio");
- //获取夹杂物的总面积用于计算夹杂物类别的占比(gridview最后一个固定是未识别颗粒,要排除未识别颗粒所以for循环至grid view长度减一)
- int sumArea = 0;
- for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
- {
- sumArea = sumArea + Convert.ToInt32(AllAnalysisDetails.Rows[i]["Area"]);
- }
- for (int i = 0; i < AllAnalysisDetails.Rows.Count; i++)
- {
- DataRow dr = AreaRatio.NewRow();
- //dr["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
- if (AllAnalysisDetails.Rows[i]["Class"].ToString() == "")
- dr["Class"] = "Default";
- else
- dr["Class"] = AllAnalysisDetails.Rows[i]["Class"].ToString();
- dr["subdivision"] = AllAnalysisDetails.Rows[i]["Name"].ToString();
- dr["Area"] = Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]);
- dr["inca_proportion"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / sumArea) * 100, 2);
- dr["inca_FieldRatio"] = Math.Round((Convert.ToDouble(AllAnalysisDetails.Rows[i]["Area"]) / Convert.ToDouble(str)) * 100, 4);
- AreaRatio.Rows.Add(dr);
- }
- DataTable AreaRatio_dt = AreaRatio.Copy();
- AreaRatio_dt.Clear();
- for (int i = 0; i < ClassName.Count(); i++)
- {
- DataTable dt = AreaRatio.Copy();
- dt.Clear();
- for (int a = 0; a < AreaRatio.Rows.Count; a++)
- {
- if (AreaRatio.Rows[a]["Class"].ToString() == ClassName[i].ToString())
- {
- dt.Rows.Add(AreaRatio.Rows[a].ItemArray);
- }
- }
- DataView dv = dt.DefaultView;
- dv.Sort = "Area DESC";
- DataTable dt_Element = dv.ToTable();
- for (int a = 0; a < dt_Element.Rows.Count; a++)
- {
- AreaRatio_dt.Rows.Add(dt_Element.Rows[a].ItemArray);
- }
- }
- return AreaRatio_dt;
- }
- private bool ProportionOfParticleArea(DataTable dataTable, List<string> ClassName, string str, out DataTable dt_out)
- {
- DataTable AllAnalysisDetails = dataTable.Copy();
- AllAnalysisDetails.Clear();
- AllAnalysisDetails.TableName = "InclusionAreaRatio";
- for (int i = 0; i < ClassName.Count; i++)
- {
- DataTable dt = dataTable.Copy();
- dt.Clear();
- for (int a = 0; a < dataTable.Rows.Count; a++)
- {
- if (dataTable.Rows[a]["Class"].ToString() == ClassName[i].ToString())
- {
- dt.Rows.Add(dataTable.Rows[a].ItemArray);
- }
- }
- if (dt.Rows.Count > 0)
- {
- double totalInclusionArea = Convert.ToDouble(decimal.Parse(dataTable.Compute("sum(Area)", "").ToString()));
- double Area = Convert.ToDouble(decimal.Parse(dt.Compute("sum(Area)", "").ToString()));
- DataRow dr = AllAnalysisDetails.NewRow();
- dr["Class"] = ClassName[i].ToString();
- dr["Area"] = Math.Round(Area, 2);
- //Convert.ToDouble(decimal.Parse(dt.Compute("sum(e3)", "").ToString()));
- dr["inca_proportion"] = Math.Round((Convert.ToDouble(Area) / totalInclusionArea) * 100, 2);
- dr["inca_FieldRatio"] = Math.Round((Convert.ToDouble(Area) / Convert.ToDouble(str)) * 100, 4);
- AllAnalysisDetails.Rows.Add(dr);
- DataView dv = dt.DefaultView;
- dv.Sort = "Area DESC";
- DataTable dt_Area = dv.ToTable();
- for (int a = 0; a < dt_Area.Rows.Count; a++)
- {
- dt_Area.Rows[a]["Class"] = "";
- dt_Area.Rows[a]["Area"] = Math.Round(Convert.ToDouble(dt_Area.Rows[a]["Area"]), 2);
- AllAnalysisDetails.Rows.Add(dt_Area.Rows[a].ItemArray);
- }
- }
- }
- dt_out = AllAnalysisDetails.Copy();
- return true;
- }
- private DataTable InvalidRemoval(DataTable dt)
- {
- DataTable dataTable = dt.Copy();
- dataTable.Clear();
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- if (Convert.ToInt32(dt.Rows[i]["TypeId"]) > 10)
- {
- dataTable.Rows.Add(dt.Rows[i].ItemArray);
- }
- }
- return dataTable;
- }
- }
- }
|