|
@@ -33,284 +33,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
class ParticleList
|
|
|
{
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// DEV颗粒列表颗粒前20个谱图排序
|
|
|
- /// </summary>
|
|
|
- /// <param name="m_mbszclass"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public DataTable Get_dev_kllb_data(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export,out DataTable FilteredData,out List<DataTable> ElementIcons)
|
|
|
- {
|
|
|
- int serialNumber = 1;
|
|
|
- //------------------加载模块,获取数据-------------------------------------------------
|
|
|
-
|
|
|
- m_otsreport_export.m_ReportApp.im_ParticlesGridDevidePage = new ParticlesGridDevidePage(m_otsreport_export.m_ReportApp);
|
|
|
- //根据sql条件,查询获取颗粒信息数据
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath);
|
|
|
- DataTable btb = InvalidRemoval(fielddata.GetIncaSurfaceData(m_mbszclass.M_KLLBXX.list_str_kllb_qcys));
|
|
|
-
|
|
|
- //DataTable particles = fielddata.GetSplicingParticlesData();
|
|
|
-
|
|
|
- DataTable dt;
|
|
|
-
|
|
|
- if (m_mbszclass.list_str_MainPriority_Serial.Count == 0)
|
|
|
- {
|
|
|
- dt = btb.Copy();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
-
|
|
|
- dt = btb.Clone();
|
|
|
- for (int i = 0; i < btb.Rows.Count; i++)
|
|
|
- {
|
|
|
- for (int a = 0; a < m_mbszclass.list_str_MainPriority_Serial.Count; a++)
|
|
|
- {
|
|
|
- if (btb.Rows[i]["TypeId"].ToString() == m_mbszclass.list_str_MainPriority_Serial[a])
|
|
|
- {
|
|
|
- dt.Rows.Add(btb.Rows[i].ItemArray);
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- ResultFile resfile = m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()];
|
|
|
- string str_libraryName = resfile.GetSTDName();
|
|
|
- if (m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.TCCleannessA/*|| m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.BatteryCleannessA*/)
|
|
|
- {
|
|
|
- dt.Columns.Add("Hardness", typeof(double));
|
|
|
- dt.Columns.Add("Hardness_detailed");
|
|
|
- DataTable dt_stl = new DataTable();
|
|
|
- if (GetSTL(str_libraryName, out dt_stl,m_otsreport_export))
|
|
|
- {
|
|
|
- for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
- {
|
|
|
- for (int a = 0; a < dt_stl.Rows.Count; a++)
|
|
|
- {
|
|
|
- if (dt.Rows[i]["TypeName"].ToString() == dt_stl.Rows[a]["TypeId"].ToString())
|
|
|
- {
|
|
|
- dt.Rows[i]["Hardness"] = Convert.ToDouble(dt_stl.Rows[a]["Hardness"]);
|
|
|
- dt.Rows[i]["Hardness_detailed"] = dt_stl.Rows[a]["Hardness_detailed"];
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //去除物质分类(非夹杂物分类)
|
|
|
- for (int a = 0; a < m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial.Count; a++)
|
|
|
- {
|
|
|
- for (int i = dt.Rows.Count - 1; i >= 0; i--)
|
|
|
- {
|
|
|
- if (dt.Rows[i]["TypeId"].ToString() == m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial[a].ToString())
|
|
|
- {
|
|
|
- dt.Rows.RemoveAt(i);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- DataTable PriorityOne = dt.Clone();
|
|
|
-
|
|
|
- for (int i=0;i< dt.Rows.Count;i++)
|
|
|
- {
|
|
|
-
|
|
|
- for (int a=0;a< m_mbszclass.list_str_MainPriority_Serial.Count;a++)
|
|
|
- {
|
|
|
- if (m_mbszclass.list_str_MainPriority_Serial[a].ToString()== dt.Rows[i]["TypeId"].ToString())
|
|
|
- {
|
|
|
- PriorityOne.Rows.Add(dt.Rows[i].ItemArray);
|
|
|
- continue;
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- DataTable dt_ParticlesGridDevidePage;
|
|
|
- if (m_mbszclass.list_str_MainPriority_Serial.Count!=0)
|
|
|
- {
|
|
|
- dt_ParticlesGridDevidePage = dt.Clone();
|
|
|
- DataView dvs = PriorityOne.DefaultView;
|
|
|
- dvs.Sort = m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1.ToString() + " DESC";
|
|
|
- var da = dvs.ToTable();
|
|
|
- for (int i = 0; i < da.Rows.Count; i++)
|
|
|
- {
|
|
|
- dt_ParticlesGridDevidePage.Rows.Add(da.Rows[i].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DataView dvs = dt.DefaultView;
|
|
|
- dvs.Sort = m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1.ToString() + " DESC";
|
|
|
- dt_ParticlesGridDevidePage = dvs.ToTable();
|
|
|
-
|
|
|
- //dt_ParticlesGridDevidePage = dt.Copy();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- string str_resultPath = m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath;
|
|
|
- //------------------加载模块,获取数据结束----------------------------------------------
|
|
|
- #region 创建要插入数据库表结构
|
|
|
- //插入模板需父子表,结构
|
|
|
- //表名field_dt表:(父表) 帧图表
|
|
|
- DataTable DT_field_dt = new DataTable();
|
|
|
- DT_field_dt.TableName = "field_dt";
|
|
|
- DataColumn colpictid2 = new DataColumn("FieldId");
|
|
|
- colpictid2.DataType = typeof(int);
|
|
|
- DT_field_dt.Columns.Add(colpictid2);
|
|
|
- //图像列
|
|
|
- DataColumn colpict2 = new DataColumn("FieldImg");
|
|
|
- colpict2.DataType = System.Type.GetType("System.Byte[]");
|
|
|
- DT_field_dt.Columns.Add(colpict2);
|
|
|
- //largest20表:(无关系表) 需要显示前20条带有显示能谱图像的颗粒表
|
|
|
- DataTable DT_Largest20 = new DataTable();
|
|
|
- DT_Largest20.TableName = "Largest20";
|
|
|
- DT_Largest20.Columns.Add("pid");
|
|
|
- DT_Largest20.Columns.Add("Size");
|
|
|
- DT_Largest20.Columns.Add("Width");
|
|
|
- DT_Largest20.Columns.Add("DMAX");
|
|
|
- DT_Largest20.Columns.Add("DMIN");
|
|
|
- DT_Largest20.Columns.Add("Class");
|
|
|
- DT_Largest20.Columns.Add("ColName1");
|
|
|
- DT_Largest20.Columns.Add("ColName2");
|
|
|
- DT_Largest20.Columns.Add("ColName3");
|
|
|
- DT_Largest20.Columns.Add("ColName4");
|
|
|
- DT_Largest20.Columns.Add("ColName5");
|
|
|
- DT_Largest20.Columns.Add("ColName6");
|
|
|
- DT_Largest20.Columns.Add("ColName7");
|
|
|
- DT_Largest20.Columns.Add("ColName8");
|
|
|
- DT_Largest20.Columns.Add("ColName9");
|
|
|
- DT_Largest20.Columns.Add("ColName10");
|
|
|
- DT_Largest20.Columns.Add("ColVal1");
|
|
|
- DT_Largest20.Columns.Add("ColVal2");
|
|
|
- DT_Largest20.Columns.Add("ColVal3");
|
|
|
- DT_Largest20.Columns.Add("ColVal4");
|
|
|
- DT_Largest20.Columns.Add("ColVal5");
|
|
|
- DT_Largest20.Columns.Add("ColVal6");
|
|
|
- DT_Largest20.Columns.Add("ColVal7");
|
|
|
- DT_Largest20.Columns.Add("ColVal8");
|
|
|
- DT_Largest20.Columns.Add("ColVal9");
|
|
|
- DT_Largest20.Columns.Add("ColVal10");
|
|
|
- // 图像列
|
|
|
- DT_Largest20.Columns.Add("p1", typeof(Bitmap));
|
|
|
- DT_Largest20.Columns.Add("p2", typeof(Bitmap));
|
|
|
- DT_Largest20.Columns.Add("p3", typeof(Bitmap));
|
|
|
- #endregion
|
|
|
- DataTable Filtered = dt_ParticlesGridDevidePage.Clone();
|
|
|
-
|
|
|
- ElementIcons = new List<DataTable>();
|
|
|
-
|
|
|
- ImageProcessor imageProcessor = new ImageProcessor();
|
|
|
- #region 插入-前20颗粒部份
|
|
|
- for (int i_row = 0; i_row < dt_ParticlesGridDevidePage.Rows.Count; i_row++)
|
|
|
- {
|
|
|
- if (dt_ParticlesGridDevidePage.Rows[i_row].ItemArray[24].ToString() != "Not Identified")
|
|
|
- {
|
|
|
- //获取颗粒的fieldid,和particleid
|
|
|
- string str_fieldid = dt_ParticlesGridDevidePage.Rows[i_row]["fieldid"].ToString();
|
|
|
- string str_particleid = dt_ParticlesGridDevidePage.Rows[i_row]["particleid"].ToString();
|
|
|
- string str_typeid = dt_ParticlesGridDevidePage.Rows[i_row]["TypeId"].ToString();
|
|
|
- string str_typename = dt_ParticlesGridDevidePage.Rows[i_row]["TypeName"].ToString();
|
|
|
- string str_element = dt_ParticlesGridDevidePage.Rows[i_row]["Element"].ToString();
|
|
|
- //获取原始颗粒图像
|
|
|
- //Bitmap bp_particle = new Bitmap(1, 1);
|
|
|
- string str_path = str_resultPath + "\\FIELD_FILES\\";
|
|
|
- string str_imagePath = str_path + "Field" + str_fieldid.ToString() + ".bmp";
|
|
|
- if (str_fieldid == "-1")
|
|
|
- continue;
|
|
|
- if (serialNumber > m_mbszclass.M_KLLBXX.list_int_kllb_number)
|
|
|
- continue;
|
|
|
- Rectangle rectangle = new Rectangle() { X = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectLeft"]), Y = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectTop"]), Width = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectWidth"]), Height = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectHeight"]) };
|
|
|
- Bitmap bp_field = fielddata.ReadImageFile(str_imagePath);
|
|
|
- Bitmap bp_particle = fielddata.GetBitmapByParticle(bp_field, rectangle);
|
|
|
- bp_particle = imageProcessor.ResizeImageWithPadding(bp_particle, 120, 120, System.Drawing.Color.White);
|
|
|
- bp_particle.Tag = new List<string>() { dt_ParticlesGridDevidePage.Rows[i_row]["FieldId"].ToString(), dt_ParticlesGridDevidePage.Rows[i_row]["ParticleId"].ToString(), dt_ParticlesGridDevidePage.Rows[i_row]["TypeId"].ToString() };
|
|
|
- //获取该颗粒的xray能谱图像
|
|
|
- DataTable DT_XR = ExportXRay(str_fieldid, str_particleid, fielddata);
|
|
|
- ElementIcons.Add(DT_XR);
|
|
|
- System.Drawing.Bitmap bp_xraybp = ExportXRayBitmap(str_fieldid,
|
|
|
- str_particleid, Convert.ToInt32(str_typeid), str_typename, fielddata);
|
|
|
- Bitmap ls_xraybpnew = OTSIncAReportGraph.Class.DrawFunction.KiResizeImage(bp_xraybp, 700, 115);//能谱图处理
|
|
|
- DataTable SegmentData = fielddata.GetSegment();
|
|
|
- Bitmap BinaryParticles= ImageSplicer.ParticleBinaryDiagram(SegmentData, Convert.ToInt32(str_fieldid), Convert.ToInt32(str_particleid));
|
|
|
- Bitmap BP= imageProcessor.ResizeImageWithPadding(BinaryParticles, 120, 120, System.Drawing.Color.White);
|
|
|
- //获取该颗粒的二次放大处理图像
|
|
|
- //Bitmap ls_processbitmap = OTSIncAReportGraph.Class.DrawFunction.GetReZoomBitmap(bp_particle);// (Bitmap)bp_particle.Clone();//待完善
|
|
|
- //再将图像转成二进制流-------------------------------------------------------------------
|
|
|
- //原图
|
|
|
- MemoryStream newms_p1 = new MemoryStream();
|
|
|
- bp_particle.Save(newms_p1, System.Drawing.Imaging.ImageFormat.Bmp);
|
|
|
- //二次放大图
|
|
|
- MemoryStream newms_p2 = new MemoryStream();
|
|
|
- BP.Save(newms_p2, System.Drawing.Imaging.ImageFormat.Bmp);
|
|
|
- //能谱图
|
|
|
- MemoryStream newms_p3 = new MemoryStream();
|
|
|
- ls_xraybpnew.Save(newms_p3, System.Drawing.Imaging.ImageFormat.Bmp);
|
|
|
- //---------------------------------------------------------------------------------------
|
|
|
- DataRow dr = DT_Largest20.NewRow();
|
|
|
- dr["p1"] = bp_particle;
|
|
|
- dr["p2"] = BP;
|
|
|
- dr["p3"] = ls_xraybpnew;
|
|
|
-
|
|
|
-
|
|
|
- newms_p1.Dispose();
|
|
|
- newms_p2.Dispose();
|
|
|
- newms_p3.Dispose();
|
|
|
- dr["pid"] = serialNumber++.ToString();
|
|
|
- //颗粒列表列中第一个可选参数
|
|
|
- dr["Size"] = datatable_data(dt_ParticlesGridDevidePage, i_row, m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1);
|
|
|
- //这个参数没有用
|
|
|
- dr["Width"] = dt_ParticlesGridDevidePage.Rows[i_row]["rectwidth"].ToString();
|
|
|
- //颗粒列表列中第二个可选参数
|
|
|
- dr["DMAX"] = datatable_data(dt_ParticlesGridDevidePage, i_row, m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p2);
|
|
|
- //颗粒列表列中第三个可选参数
|
|
|
- dr["DMIN"] = datatable_data(dt_ParticlesGridDevidePage, i_row, m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p3);
|
|
|
- //颗粒列表列中显示分类不可以选择
|
|
|
- dr["Class"] = dt_ParticlesGridDevidePage.Rows[i_row]["typename"].ToString();
|
|
|
- GetMaxElementFromDataTable(dt_ParticlesGridDevidePage, i_row, out List<string> list_max_elementname, out List<double> list_max_elementvale);
|
|
|
- double colVal = 0;
|
|
|
- for (int i = 0; i < list_max_elementvale.Count; i++)
|
|
|
- {
|
|
|
- colVal = colVal + Convert.ToDouble(list_max_elementvale[i]);
|
|
|
- }
|
|
|
- //元素1
|
|
|
- dr["ColName1"] = list_max_elementname[0];
|
|
|
- dr["ColVal1"] = ParameterNormalization(colVal, list_max_elementvale[0]);
|
|
|
- //元素2
|
|
|
- dr["ColName2"] = list_max_elementname[1];
|
|
|
- dr["ColVal2"] = ParameterNormalization(colVal, list_max_elementvale[1]);
|
|
|
- //元素3
|
|
|
- dr["ColName3"] = list_max_elementname[2];
|
|
|
- dr["ColVal3"] = ParameterNormalization(colVal, list_max_elementvale[2]);
|
|
|
- //元素4
|
|
|
- dr["ColName4"] = list_max_elementname[3];
|
|
|
- dr["ColVal4"] = ParameterNormalization(colVal, list_max_elementvale[3]);
|
|
|
- //元素5
|
|
|
- dr["ColName5"] = list_max_elementname[4];
|
|
|
- dr["ColVal5"] = ParameterNormalization(colVal, list_max_elementvale[4]);
|
|
|
- //元素6
|
|
|
- dr["ColName6"] = list_max_elementname[5];
|
|
|
- dr["ColVal6"] = ParameterNormalization(colVal, list_max_elementvale[5]);
|
|
|
- //元素7
|
|
|
- dr["ColName7"] = list_max_elementname[6];
|
|
|
- dr["ColVal7"] = ParameterNormalization(colVal, list_max_elementvale[6]);
|
|
|
- //元素8
|
|
|
- dr["ColName8"] = list_max_elementname[7];
|
|
|
- dr["ColVal8"] = ParameterNormalization(colVal, list_max_elementvale[7]);
|
|
|
- //元素6
|
|
|
- dr["ColName9"] = list_max_elementname[8];
|
|
|
- dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[8]);
|
|
|
- //元素6
|
|
|
- dr["ColName9"] = list_max_elementname[9];
|
|
|
- dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[9]);
|
|
|
- DT_Largest20.Rows.Add(dr);
|
|
|
- Filtered.Rows.Add(dt_ParticlesGridDevidePage.Rows[i_row].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- FilteredData = Filtered.Copy();
|
|
|
- #endregion
|
|
|
- return DT_Largest20;
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// DEV颗粒列表颗粒前20个谱图排序
|
|
|
/// </summary>
|
|
@@ -567,349 +289,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
return OutDt;
|
|
|
}
|
|
|
|
|
|
- private DataTable ReadClassification(BasicData basicData)
|
|
|
- {
|
|
|
- DataTable dt_stl = new DataTable();
|
|
|
- SqLiteHelper sh = new SqLiteHelper("data source='" + basicData.GetFilePath() + "\\" + basicData.GetResfile() + "'");
|
|
|
- dt_stl = sh.ExecuteQuery("select * from STDGroups");
|
|
|
- return dt_stl;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取规则数据
|
|
|
- /// </summary>
|
|
|
- /// <param name="basicData"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public List<DataTable> ObtainRuleData(BasicData basicData, DataTable strings)
|
|
|
- {
|
|
|
- DataTable dt_stl = new DataTable();
|
|
|
- SqLiteHelper sh = new SqLiteHelper("data source='" + basicData.GetFilePath() + "\\" + basicData.GetResfile() + "'");
|
|
|
- dt_stl = sh.ExecuteQuery("select * from ClassifySTD");
|
|
|
- List<DataTable> List_data = new List<DataTable>();
|
|
|
- for (int i = 0; i < strings.Rows.Count; i++)
|
|
|
- {
|
|
|
- DataTable table = dt_stl.Clone();
|
|
|
- table.TableName = strings.Rows[i]["GroupId"].ToString();
|
|
|
- for (int a = 0; a < dt_stl.Rows.Count; a++)
|
|
|
- {
|
|
|
- if (strings.Rows[i]["GroupId"].ToString() == dt_stl.Rows[a]["GroupId"].ToString())
|
|
|
- {
|
|
|
- table.Rows.Add(dt_stl.Rows[a].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- List_data.Add(table);
|
|
|
- }
|
|
|
-
|
|
|
- return List_data;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 获得颗粒类别
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- private DataTable ObtainParticleCategory(OTSReport_Export m_otsreport_export, BasicData basicData)
|
|
|
- {
|
|
|
- DataTable dataTable = new DataTable();
|
|
|
- dataTable.Columns.Add("GroupId");
|
|
|
- dataTable.Columns.Add("GroupName");
|
|
|
- dataTable.Columns.Add("inoId");
|
|
|
- DataTable get_dt = ReadClassification(basicData);
|
|
|
- DataRow[] dataRow = get_dt.Select("", "iorder ASC");
|
|
|
- int shul = 0;
|
|
|
- string DefaultGroupId = "";
|
|
|
- foreach (DataRow row in dataRow)
|
|
|
- {
|
|
|
- if (row.ItemArray[1].ToString() != "Default")
|
|
|
- {
|
|
|
- DataRow data = dataTable.NewRow();
|
|
|
- data["inoId"] = shul;
|
|
|
- data["GroupId"] = row.ItemArray[0].ToString();
|
|
|
- data["GroupName"] = row.ItemArray[1].ToString();
|
|
|
- dataTable.Rows.Add(data);
|
|
|
- shul++;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DefaultGroupId= row.ItemArray[0].ToString();
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- DataRow data2 = dataTable.NewRow();
|
|
|
- data2["inoId"] = shul;
|
|
|
- data2["GroupId"] = DefaultGroupId;
|
|
|
- data2["GroupName"] = "Default";
|
|
|
- dataTable.Rows.Add(data2);
|
|
|
-
|
|
|
- return dataTable;
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// DEV颗粒列表颗粒前20个谱图排序
|
|
|
- /// </summary>
|
|
|
- /// <param name="m_mbszclass"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public List<DataTable> Get_dev_kllb_data_cleanliness(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export, BasicData basicData, out List<DataTable> a_FilteredData, out List<List<DataTable>> a_ElementIcons)
|
|
|
- {
|
|
|
- //------------------加载模块,获取数据-------------------------------------------------
|
|
|
- m_otsreport_export.m_ReportApp.im_ParticlesGridDevidePage = new ParticlesGridDevidePage(m_otsreport_export.m_ReportApp);
|
|
|
- //根据sql条件,查询获取颗粒信息数据
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath);
|
|
|
- //获取所有颗粒的信息
|
|
|
- DataTable data = fielddata.GetParticleAllList_DataTable();
|
|
|
- data.Columns.Add("iorder");
|
|
|
- data.Columns.Add("Hardness", typeof(double));
|
|
|
- data.Columns.Add("Hardness_detailed");
|
|
|
- //读取所有分组
|
|
|
- DataTable strings = ObtainParticleCategory(m_otsreport_export, basicData);
|
|
|
- List<DataTable> RuleData = ObtainRuleData(basicData, strings);
|
|
|
- //测量结果库数据分类集(按照标准库组分类)
|
|
|
- List<DataTable> dataTables = new List<DataTable>();
|
|
|
- //循环分组
|
|
|
- for (int i = 0; i < RuleData.Count; i++)
|
|
|
- {
|
|
|
- //粗分类将每组的颗粒进行区分
|
|
|
- DataTable dt2 = data.Clone();
|
|
|
- //循环测量结果库进行颗粒组分离
|
|
|
- for (int a = 0; a < data.Rows.Count; a++)
|
|
|
- {
|
|
|
- if (RuleData[i].TableName == data.Rows[a]["GroupId"].ToString())
|
|
|
- {
|
|
|
- //组内的规则ID匹配当前颗粒的显示排序
|
|
|
- for (int j = 0; j < RuleData[i].Rows.Count; j++)
|
|
|
- {
|
|
|
- //判断颗粒的TypeId和当前组内的STDId是否相同
|
|
|
- if (data.Rows[a]["TypeId"].ToString() == RuleData[i].Rows[j]["STDId"].ToString())
|
|
|
- {
|
|
|
- data.Rows[a]["iorder"] = RuleData[i].Rows[j]["ListNum"].ToString();
|
|
|
- data.Rows[a]["Hardness_detailed"] = RuleData[i].Rows[j]["Hardness"].ToString();
|
|
|
-
|
|
|
- if (System.Text.RegularExpressions.Regex.Replace(RuleData[i].Rows[i]["Hardness"].ToString(), @"[^\d.\d]", "").ToString() != "")
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- if (System.Text.RegularExpressions.Regex.Replace(RuleData[i].Rows[i]["Hardness"].ToString(), @"[^\d.\d]", "") == "o. Def.")
|
|
|
- {
|
|
|
- data.Rows[a]["Hardness"] = 0;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- data.Rows[a]["Hardness"] = Convert.ToDouble(System.Text.RegularExpressions.Regex.Replace(RuleData[i].Rows[i]["Hardness"].ToString(), @"[^\d.\d]", ""));
|
|
|
- }
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- data.Rows[a]["Hardness"] = 0;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- data.Rows[a]["Hardness"] = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- dt2.Rows.Add(data.Rows[a].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- DataView dvs = dt2.DefaultView;
|
|
|
- dvs.Sort = "iorder ASC";
|
|
|
- DataTable TemporaryDataGroup = dvs.ToTable();
|
|
|
- dataTables.Add(TemporaryDataGroup);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //return 输出
|
|
|
- List<DataTable> OutputDataTable = new List<DataTable>();
|
|
|
-
|
|
|
- List<DataTable> List_FilteredData = new List<DataTable>();
|
|
|
- List<List<DataTable>> List_ElementIcons = new List<List<DataTable>>();
|
|
|
-
|
|
|
- for (int c = 0; c < dataTables.Count; c++)
|
|
|
- {
|
|
|
- DataTable PriorityOne = RuleData[c].Clone();
|
|
|
-
|
|
|
- DataTable dt_ParticlesGridDevidePage;
|
|
|
-
|
|
|
- DataView dvs = RuleData[c].DefaultView;
|
|
|
- dvs.Sort = m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1.ToString() + " DESC";
|
|
|
- dt_ParticlesGridDevidePage = dvs.ToTable();
|
|
|
-
|
|
|
- int serialNumber = 1;
|
|
|
- #region 表结构设置
|
|
|
- //largest20表:(无关系表) 需要显示前20条带有显示能谱图像的颗粒表
|
|
|
- DataTable DT_Largest20 = new DataTable();
|
|
|
- DT_Largest20.TableName = "Largest20";
|
|
|
- DT_Largest20.Columns.Add("pid");
|
|
|
- DT_Largest20.Columns.Add("Size");
|
|
|
- DT_Largest20.Columns.Add("Width");
|
|
|
- DT_Largest20.Columns.Add("DMAX");
|
|
|
- DT_Largest20.Columns.Add("DMIN");
|
|
|
- DT_Largest20.Columns.Add("Class");
|
|
|
- DT_Largest20.Columns.Add("ColName1");
|
|
|
- DT_Largest20.Columns.Add("ColName2");
|
|
|
- DT_Largest20.Columns.Add("ColName3");
|
|
|
- DT_Largest20.Columns.Add("ColName4");
|
|
|
- DT_Largest20.Columns.Add("ColName5");
|
|
|
- DT_Largest20.Columns.Add("ColName6");
|
|
|
- DT_Largest20.Columns.Add("ColName7");
|
|
|
- DT_Largest20.Columns.Add("ColName8");
|
|
|
- DT_Largest20.Columns.Add("ColName9");
|
|
|
- DT_Largest20.Columns.Add("ColName10");
|
|
|
- DT_Largest20.Columns.Add("ColVal1");
|
|
|
- DT_Largest20.Columns.Add("ColVal2");
|
|
|
- DT_Largest20.Columns.Add("ColVal3");
|
|
|
- DT_Largest20.Columns.Add("ColVal4");
|
|
|
- DT_Largest20.Columns.Add("ColVal5");
|
|
|
- DT_Largest20.Columns.Add("ColVal6");
|
|
|
- DT_Largest20.Columns.Add("ColVal7");
|
|
|
- DT_Largest20.Columns.Add("ColVal8");
|
|
|
- DT_Largest20.Columns.Add("ColVal9");
|
|
|
- DT_Largest20.Columns.Add("ColVal10");
|
|
|
- // 图像列
|
|
|
- DT_Largest20.Columns.Add("p1", typeof(Bitmap));
|
|
|
- DT_Largest20.Columns.Add("p2", typeof(Bitmap));
|
|
|
- DT_Largest20.Columns.Add("p3", typeof(Bitmap));
|
|
|
- #endregion
|
|
|
-
|
|
|
- string str_resultPath = m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath;
|
|
|
- //------------------加载模块,获取数据结束----------------------------------------------
|
|
|
- #region 创建要插入数据库表结构
|
|
|
- //插入模板需父子表,结构
|
|
|
- //表名field_dt表:(父表) 帧图表
|
|
|
- DataTable DT_field_dt = new DataTable();
|
|
|
- DT_field_dt.TableName = "field_dt";
|
|
|
- DataColumn colpictid2 = new DataColumn("FieldId");
|
|
|
- colpictid2.DataType = typeof(int);
|
|
|
- DT_field_dt.Columns.Add(colpictid2);
|
|
|
- //图像列
|
|
|
- DataColumn colpict2 = new DataColumn("FieldImg");
|
|
|
- colpict2.DataType = System.Type.GetType("System.Byte[]");
|
|
|
- DT_field_dt.Columns.Add(colpict2);
|
|
|
-
|
|
|
- #endregion
|
|
|
- DataTable Filtered = dt_ParticlesGridDevidePage.Clone();
|
|
|
-
|
|
|
- List<DataTable> ElementIcons = new List<DataTable>();
|
|
|
-
|
|
|
- ImageProcessor imageProcessor = new ImageProcessor();
|
|
|
- #region 插入-前20颗粒部份
|
|
|
- for (int i_row = 0; i_row < dt_ParticlesGridDevidePage.Rows.Count; i_row++)
|
|
|
- {
|
|
|
- if (dt_ParticlesGridDevidePage.Rows[i_row].ItemArray[24].ToString() != "Not Identified")
|
|
|
- {
|
|
|
- //获取颗粒的fieldid,和particleid
|
|
|
- string str_fieldid = dt_ParticlesGridDevidePage.Rows[i_row]["fieldid"].ToString();
|
|
|
- string str_particleid = dt_ParticlesGridDevidePage.Rows[i_row]["particleid"].ToString();
|
|
|
- string str_typeid = dt_ParticlesGridDevidePage.Rows[i_row]["TypeId"].ToString();
|
|
|
- string str_typename = dt_ParticlesGridDevidePage.Rows[i_row]["TypeName"].ToString();
|
|
|
- string str_element = dt_ParticlesGridDevidePage.Rows[i_row]["Element"].ToString();
|
|
|
- //获取原始颗粒图像
|
|
|
- //Bitmap bp_particle = new Bitmap(1, 1);
|
|
|
- string str_path = str_resultPath + "\\FIELD_FILES\\";
|
|
|
- string str_imagePath = str_path + "Field" + str_fieldid.ToString() + ".bmp";
|
|
|
- if (str_fieldid == "-1")
|
|
|
- continue;
|
|
|
- if (serialNumber > m_mbszclass.M_KLLBXX.list_int_kllb_number)
|
|
|
- continue;
|
|
|
- Rectangle rectangle = new Rectangle() { X = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectLeft"]), Y = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectTop"]), Width = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectWidth"]), Height = Convert.ToInt32(dt_ParticlesGridDevidePage.Rows[i_row]["RectHeight"]) };
|
|
|
- Bitmap bp_field = fielddata.ReadImageFile(str_imagePath);
|
|
|
- Bitmap bp_particle = fielddata.GetBitmapByParticle(bp_field, rectangle);
|
|
|
- bp_particle = imageProcessor.ResizeImageWithPadding(bp_particle, 120, 120, System.Drawing.Color.White);
|
|
|
- bp_particle.Tag = new List<string>() { dt_ParticlesGridDevidePage.Rows[i_row]["FieldId"].ToString(), dt_ParticlesGridDevidePage.Rows[i_row]["ParticleId"].ToString(), dt_ParticlesGridDevidePage.Rows[i_row]["TypeId"].ToString() };
|
|
|
- //获取该颗粒的xray能谱图像
|
|
|
- DataTable DT_XR = ExportXRay(str_fieldid, str_particleid, fielddata);
|
|
|
- ElementIcons.Add(DT_XR);
|
|
|
- System.Drawing.Bitmap bp_xraybp = ExportXRayBitmap(str_fieldid,
|
|
|
- str_particleid, Convert.ToInt32(str_typeid), str_typename, fielddata);
|
|
|
- Bitmap ls_xraybpnew = OTSIncAReportGraph.Class.DrawFunction.KiResizeImage(bp_xraybp, 700, 115);//能谱图处理
|
|
|
- DataTable SegmentData = fielddata.GetSegment();
|
|
|
- Bitmap BinaryParticles = ImageSplicer.ParticleBinaryDiagram(SegmentData, Convert.ToInt32(str_fieldid), Convert.ToInt32(str_particleid));
|
|
|
- Bitmap BP = imageProcessor.ResizeImageWithPadding(BinaryParticles, 120, 120, System.Drawing.Color.White);
|
|
|
- //获取该颗粒的二次放大处理图像
|
|
|
- //Bitmap ls_processbitmap = OTSIncAReportGraph.Class.DrawFunction.GetReZoomBitmap(bp_particle);// (Bitmap)bp_particle.Clone();//待完善
|
|
|
- //再将图像转成二进制流-------------------------------------------------------------------
|
|
|
- //原图
|
|
|
- MemoryStream newms_p1 = new MemoryStream();
|
|
|
- bp_particle.Save(newms_p1, System.Drawing.Imaging.ImageFormat.Bmp);
|
|
|
- //二次放大图
|
|
|
- MemoryStream newms_p2 = new MemoryStream();
|
|
|
- BP.Save(newms_p2, System.Drawing.Imaging.ImageFormat.Bmp);
|
|
|
- //能谱图
|
|
|
- MemoryStream newms_p3 = new MemoryStream();
|
|
|
- ls_xraybpnew.Save(newms_p3, System.Drawing.Imaging.ImageFormat.Bmp);
|
|
|
- //---------------------------------------------------------------------------------------
|
|
|
- DataRow dr = DT_Largest20.NewRow();
|
|
|
- dr["p1"] = bp_particle;
|
|
|
- dr["p2"] = BP;
|
|
|
- dr["p3"] = ls_xraybpnew;
|
|
|
-
|
|
|
-
|
|
|
- newms_p1.Dispose();
|
|
|
- newms_p2.Dispose();
|
|
|
- newms_p3.Dispose();
|
|
|
- dr["pid"] = serialNumber++.ToString();
|
|
|
- //颗粒列表列中第一个可选参数
|
|
|
- dr["Size"] = datatable_data(dt_ParticlesGridDevidePage, i_row, m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1);
|
|
|
- //这个参数没有用
|
|
|
- dr["Width"] = dt_ParticlesGridDevidePage.Rows[i_row]["rectwidth"].ToString();
|
|
|
- //颗粒列表列中第二个可选参数
|
|
|
- dr["DMAX"] = datatable_data(dt_ParticlesGridDevidePage, i_row, m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p2);
|
|
|
- //颗粒列表列中第三个可选参数
|
|
|
- dr["DMIN"] = datatable_data(dt_ParticlesGridDevidePage, i_row, m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p3);
|
|
|
- //颗粒列表列中显示分类不可以选择
|
|
|
- dr["Class"] = dt_ParticlesGridDevidePage.Rows[i_row]["typename"].ToString();
|
|
|
- GetMaxElementFromDataTable(dt_ParticlesGridDevidePage, i_row, out List<string> list_max_elementname, out List<double> list_max_elementvale);
|
|
|
- double colVal = 0;
|
|
|
- for (int i = 0; i < list_max_elementvale.Count; i++)
|
|
|
- {
|
|
|
- colVal = colVal + Convert.ToDouble(list_max_elementvale[i]);
|
|
|
- }
|
|
|
- //元素1
|
|
|
- dr["ColName1"] = list_max_elementname[0];
|
|
|
- dr["ColVal1"] = ParameterNormalization(colVal, list_max_elementvale[0]);
|
|
|
- //元素2
|
|
|
- dr["ColName2"] = list_max_elementname[1];
|
|
|
- dr["ColVal2"] = ParameterNormalization(colVal, list_max_elementvale[1]);
|
|
|
- //元素3
|
|
|
- dr["ColName3"] = list_max_elementname[2];
|
|
|
- dr["ColVal3"] = ParameterNormalization(colVal, list_max_elementvale[2]);
|
|
|
- //元素4
|
|
|
- dr["ColName4"] = list_max_elementname[3];
|
|
|
- dr["ColVal4"] = ParameterNormalization(colVal, list_max_elementvale[3]);
|
|
|
- //元素5
|
|
|
- dr["ColName5"] = list_max_elementname[4];
|
|
|
- dr["ColVal5"] = ParameterNormalization(colVal, list_max_elementvale[4]);
|
|
|
- //元素6
|
|
|
- dr["ColName6"] = list_max_elementname[5];
|
|
|
- dr["ColVal6"] = ParameterNormalization(colVal, list_max_elementvale[5]);
|
|
|
- //元素7
|
|
|
- dr["ColName7"] = list_max_elementname[6];
|
|
|
- dr["ColVal7"] = ParameterNormalization(colVal, list_max_elementvale[6]);
|
|
|
- //元素8
|
|
|
- dr["ColName8"] = list_max_elementname[7];
|
|
|
- dr["ColVal8"] = ParameterNormalization(colVal, list_max_elementvale[7]);
|
|
|
- //元素6
|
|
|
- dr["ColName9"] = list_max_elementname[8];
|
|
|
- dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[8]);
|
|
|
- //元素6
|
|
|
- dr["ColName9"] = list_max_elementname[9];
|
|
|
- dr["ColVal9"] = ParameterNormalization(colVal, list_max_elementvale[9]);
|
|
|
- DT_Largest20.Rows.Add(dr);
|
|
|
- Filtered.Rows.Add(dt_ParticlesGridDevidePage.Rows[i_row].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- DataTable FilteredData = Filtered.Copy();
|
|
|
-
|
|
|
- OutputDataTable.Add(DT_Largest20);
|
|
|
- List_FilteredData.Add(FilteredData);
|
|
|
- List_ElementIcons.Add(ElementIcons);
|
|
|
-
|
|
|
- #endregion
|
|
|
- }
|
|
|
-
|
|
|
- a_FilteredData = List_FilteredData.Copy();
|
|
|
- a_ElementIcons = List_ElementIcons.Copy();
|
|
|
- return OutputDataTable;
|
|
|
- }
|
|
|
-
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 拼接颗粒
|
|
|
/// </summary>
|
|
@@ -967,157 +347,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 颗粒列表帧图
|
|
|
- /// </summary>
|
|
|
- /// <param name="m_mbszclass"></param>
|
|
|
- /// <param name="file_pic"></param>
|
|
|
- /// <param name="list_dt"></param>
|
|
|
- /// <param name="m_otsreport_export"></param>
|
|
|
- public void Get_dev_kllb_data_frame(c_TemplateClass m_mbszclass, out DataTable file_pic, out List<DataTable> list_dt, OTSReport_Export m_otsreport_export,DataTable FrameData)
|
|
|
- {
|
|
|
- m_otsreport_export.m_ReportApp.im_ParticlesGridDevidePage = new ParticlesGridDevidePage(m_otsreport_export.m_ReportApp);
|
|
|
- //根据sql条件,查询获取颗粒信息数据
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath);
|
|
|
- DataTable btb = InvalidRemoval(fielddata.GetIncaSurfaceData(m_mbszclass.M_KLLBXX.list_str_kllb_qcys));
|
|
|
-
|
|
|
- DataTable dt;
|
|
|
- if (m_mbszclass.list_str_MainPriority_Serial.Count == 0)
|
|
|
- {
|
|
|
- dt = btb.Copy();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- dt = btb.Clone();
|
|
|
- for (int i = 0; i < btb.Rows.Count; i++)
|
|
|
- {
|
|
|
- for (int a = 0; a < m_mbszclass.list_str_MainPriority_Serial.Count; a++)
|
|
|
- {
|
|
|
- if (btb.Rows[i]["TypeId"].ToString() == m_mbszclass.list_str_MainPriority_Serial[a])
|
|
|
- {
|
|
|
- dt.Rows.Add(btb.Rows[i].ItemArray);
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- ResultFile resfile = m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()];
|
|
|
- string str_libraryName = resfile.GetSTDName();
|
|
|
- if (m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.TCCleannessA|| m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype == OTS_SysType_ID.BatteryCleannessA)
|
|
|
- {
|
|
|
- dt.Columns.Add("Hardness", typeof(double));
|
|
|
- dt.Columns.Add("Hardness_detailed");
|
|
|
- DataTable dt_stl = new DataTable();
|
|
|
- if (GetSTL(str_libraryName, out dt_stl, m_otsreport_export))
|
|
|
- {
|
|
|
- for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
- {
|
|
|
- for (int a = 0; a < dt_stl.Rows.Count; a++)
|
|
|
- {
|
|
|
- if (dt.Rows[i]["TypeName"].ToString() == dt_stl.Rows[a]["TypeId"].ToString())
|
|
|
- {
|
|
|
- dt.Rows[i]["Hardness"] = Convert.ToDouble(dt_stl.Rows[a]["Hardness"]);
|
|
|
- dt.Rows[i]["Hardness_detailed"] = dt_stl.Rows[a]["Hardness_detailed"];
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //去除物质分类(非夹杂物分类)
|
|
|
- for (int a = 0; a < m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial.Count; a++)
|
|
|
- {
|
|
|
- for (int i = dt.Rows.Count - 1; i >= 0; i--)
|
|
|
- {
|
|
|
- if (dt.Rows[i]["TypeId"].ToString() == m_mbszclass.M_KLLBXX.list_str_kllb_DeleteClass_Serial[a].ToString())
|
|
|
- {
|
|
|
- dt.Rows.RemoveAt(i);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //将颗粒大小排序(从大到小)
|
|
|
- DataView dv = dt.DefaultView;
|
|
|
- dv.Sort = m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1.ToString() + " DESC";
|
|
|
- DataTable dt_ParticlesGridDevidePage = dv.ToTable();
|
|
|
- string str_resultPath = m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath;
|
|
|
- DataTable dt_GridDevidePage = FrameData.Copy();
|
|
|
- m_otsreport_export.m_ReportApp.im_ParticlesGridDevidePage.Out_MarkParticleRectangleOnFieldFile(str_resultPath, dt_GridDevidePage, out List<string> vs, out DataTable data);
|
|
|
- DataTable data_A= FrameGraphParticleTableDatat(dt_ParticlesGridDevidePage, fielddata, data, m_mbszclass, m_otsreport_export);
|
|
|
- List<DataTable> listData = new List<DataTable>();
|
|
|
- for (int i = 0; i < data.Rows.Count; i++)
|
|
|
- {
|
|
|
- DataTable dataTable = data_A.Clone();
|
|
|
- //在数据表中有颗粒在该帧图中的话,则对该帧图标记图像进行读取存入数据库
|
|
|
- DataRow[] datarowlist = data_A.Select(data.Rows[i]["fieldid"].ToString());
|
|
|
- if (datarowlist.Count() > 0)
|
|
|
- {
|
|
|
- for (int a = 0; a < data_A.Rows.Count; a++)
|
|
|
- {
|
|
|
- if (data.Rows[i]["id"].ToString() == data_A.Rows[a]["FieldId"].ToString())
|
|
|
- {
|
|
|
- dataTable.Rows.Add(data_A.Rows[a].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- listData.Add(dataTable);
|
|
|
- }
|
|
|
- }
|
|
|
- file_pic = data.Copy();
|
|
|
- list_dt = listData;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 颗粒列表帧图
|
|
|
- /// </summary>
|
|
|
- /// <param name="m_mbszclass"></param>
|
|
|
- /// <param name="file_pic"></param>
|
|
|
- /// <param name="list_dt"></param>
|
|
|
- /// <param name="m_otsreport_export"></param>
|
|
|
- public void Get_dev_kllb_data_frame(c_TemplateClass m_mbszclass, out List<DataTable> file_pic, out List<List<DataTable>> list_dt, OTSReport_Export m_otsreport_export, List<DataTable> FrameData)
|
|
|
- {
|
|
|
- m_otsreport_export.m_ReportApp.im_ParticlesGridDevidePage = new ParticlesGridDevidePage(m_otsreport_export.m_ReportApp);
|
|
|
- //根据sql条件,查询获取颗粒信息数据
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath);
|
|
|
- string str_resultPath = m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.GetWorkingResultId()].FilePath;
|
|
|
-
|
|
|
- file_pic = new List<DataTable>();
|
|
|
- list_dt = new List<List<DataTable>>();
|
|
|
-
|
|
|
- for (int i = 0; i < FrameData.Count; i++)
|
|
|
- {
|
|
|
- DataTable pic = new DataTable();
|
|
|
- List<DataTable> picDt = new List<DataTable>();
|
|
|
-
|
|
|
- m_otsreport_export.m_ReportApp.im_ParticlesGridDevidePage.Out_MarkParticleRectangleOnFieldFile(str_resultPath, FrameData[i], out List<string> vs, out DataTable data);
|
|
|
- DataTable data_A = FrameGraphParticleTableDatat(FrameData[i], fielddata, data, m_mbszclass, m_otsreport_export);
|
|
|
- List<DataTable> listData = new List<DataTable>();
|
|
|
- for (int a = 0; a < data.Rows.Count; a++)
|
|
|
- {
|
|
|
- DataTable dataTable = data_A.Clone();
|
|
|
- //在数据表中有颗粒在该帧图中的话,则对该帧图标记图像进行读取存入数据库
|
|
|
- DataRow[] datarowlist = data_A.Select(data.Rows[a]["fieldid"].ToString());
|
|
|
- if (datarowlist.Count() > 0)
|
|
|
- {
|
|
|
- for (int b = 0; b < data_A.Rows.Count; b++)
|
|
|
- {
|
|
|
- if (data.Rows[i]["id"].ToString() == data_A.Rows[b]["FieldId"].ToString())
|
|
|
- {
|
|
|
- dataTable.Rows.Add(data_A.Rows[b].ItemArray);
|
|
|
- }
|
|
|
- }
|
|
|
- listData.Add(dataTable);
|
|
|
- }
|
|
|
- }
|
|
|
- pic = data.Copy();
|
|
|
- picDt = listData.Copy();
|
|
|
-
|
|
|
- file_pic.Add(pic);
|
|
|
- list_dt.Add(picDt);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 颗粒列表帧图
|
|
|
/// </summary>
|
|
@@ -1189,19 +418,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
|
|
|
|
|
|
}
|
|
|
- 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;
|
|
|
- }
|
|
|
+
|
|
|
private bool GetSTL(string str, out DataTable data,OTSReport_Export m_otsreport_export)
|
|
|
{
|
|
|
if (str.ToLower() == "nostddb")
|
|
@@ -1492,8 +709,10 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
|
|
|
if (m_otsreport_export.m_ReportApp.m_RptConfigFile.Systype != OTS_SysType_ID.IncA)
|
|
|
{
|
|
|
- dt_ParticlesGridDevidePage.Columns.Remove("Hardness");
|
|
|
- dt_ParticlesGridDevidePage.Columns.Remove("Hardness_detailed");
|
|
|
+ if (dt_ParticlesGridDevidePage.Columns.Contains("Hardness"))
|
|
|
+ dt_ParticlesGridDevidePage.Columns.Remove("Hardness");
|
|
|
+ if (dt_ParticlesGridDevidePage.Columns.Contains("Hardness_detailed"))
|
|
|
+ dt_ParticlesGridDevidePage.Columns.Remove("Hardness_detailed");
|
|
|
//将颗粒大小排序(从大到小)
|
|
|
DataView dvs = dt_ParticlesGridDevidePage.DefaultView;
|
|
|
dvs.Sort = m_mbszclass.M_KLLBXX.str_cb_kllb_sort_p1.ToString() + " DESC";
|