using OTS.WinFormsUI.Docking; using OTSIncAReportApp.OTSDataMgrFunction; using OTSIncAReportApp.OTSSampleReportInfo; using OTSIncAReportApp.SysMgrTools; using OTSIncAReportGB; using OTSIncAReportGrids; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace OTSIncAReportApp { /// /// 属性Grid窗体 /// public partial class frmReportConditionChoose : DockContent { #region 变量定义 public frmReportApp m_ReportApp = null; public ResultDataMgr m_rstDataMgr; /// /// 属性Grid对象,全局变量 /// public OTSSourceGrid m_ConditionGrid = null; /// /// 记录当前标签索引 /// public DisplayPicutureType tabIndex = 0; public ReportCondition m_SourceGridData = new ReportCondition(); //current displayed condition item public Dictionary m_CurrentConditions;//record all the conditions that user selected or seted. //国际化存储信息 Hashtable resTable; #endregion #region 构造函数 /// /// 构造函数 /// /// public frmReportConditionChoose(frmReportApp ReportApp) { InitializeComponent(); m_ReportApp = ReportApp; m_ConditionGrid = new OTSSourceGrid(this); m_rstDataMgr = ReportApp.m_rstDataMgr; #region 国际化语言 Language lan = new Language(this); resTable = lan.GetNameTable(this.Name); m_CurrentConditions = new Dictionary(); #endregion } #endregion private void AddGridData(OTS_REPORT_PROP_GRID_ITEMS ID,string name, OTS_ITEM_TYPES ValType,bool ReadOnly,string DescriptionInfo,object DisplayVal,List DownList,object itemVal) { ConditionItem sampleData = new ConditionItem(); sampleData.iItemId = ID; sampleData.sSCaptionName = name; sampleData.iItemValType = ValType; sampleData.bReadOnly = ReadOnly; sampleData.sDescriptionInfo = DescriptionInfo; sampleData.itemDisplayVal = DisplayVal; sampleData.comboDownList = DownList; if(itemVal!=null) sampleData.itemVal = itemVal; m_CurrentConditions.Add(ID, sampleData); //return sampleData; } public void SetDefaultConditionValue() { m_CurrentConditions.Clear(); //image condition items. #region 从xml文档中读取的数据信息 string resultData = resTable["sscaptionname1"].ToString();//测量结果数据 string graphicDisplayMode = resTable["sscaptionname3"].ToString();//测量图显示方式 string distributionMap = resTable["sscaptionname14"].ToString();//颗粒分布图 string arrangementDiagram = resTable["sscaptionname15"].ToString();//颗粒排列图 string particleDisplayMode = resTable["sscaptionname2"].ToString();//颗粒显示方式 string particleClassDiagram = resTable["sscaptionname13"].ToString();//颗粒分类图 string whole = resTable["sscaptionname16"].ToString();//全部 string analyticalParticle = resTable["sscaptionname17"].ToString();//分析颗粒 string custom = resTable["sscaptionname18"].ToString();//自定义 string particleSize = resTable["sscaptionname5"].ToString();//粒级 string minimumParticle = resTable["sscaptionname6"].ToString();//最小颗粒 string maximumParticle = resTable["sscaptionname7"].ToString();//最大颗粒 string arrangementMode = resTable["sscaptionname22"].ToString();//排列方式 string sortByType = resTable["sscaptionname20"].ToString();//按类型排列 string arrangeBySize = resTable["sscaptionname21"].ToString();//按尺寸排列 string dimensionCalculationMethod = resTable["sscaptionname8"].ToString();//尺寸计算法 string dataTableType = resTable["sscaptionname10"].ToString();//数据表类型 string surveyResults = resTable["sscaptionname25"].ToString();//测量结果概况 string sampleMeasurementInformation = resTable["sscaptionname26"].ToString(); //样品测量信息 string granularComponent= resTable["sscaptionname27"].ToString();//颗粒成分 string elementComposition= resTable["sscaptionname28"].ToString();//元素成分 string particleSizeDistribution= resTable["sscaptionname29"].ToString();//颗粒尺寸分布 string averageElementComposition= resTable["sscaptionname30"].ToString();//平均元素成分 string ternaryPhaseDiagram= resTable["sscaptionname12"].ToString();//三元相图 string bseOriginal = resTable["bseoriginal"].ToString();//BSE原图 string classifiedDisplay = resTable["classifieddisplay"].ToString();//分类显示 string originalSplicing = resTable["originalsplicing"].ToString();//原图拼接 string originalDistribution = resTable["originaldistribution"].ToString();//原图颗粒分布 string particleSizeTable = resTable["particlesizetable"].ToString();//粒级表 string chineseStandard1 = resTable["chinesestandard1"].ToString();//国标方法一 string chineseStandard2 = resTable["chinesestandard2"].ToString();//国标方法二 string americanStandard = resTable["americanstandard"].ToString();//美标 string germanStandard = resTable["germanstandard"].ToString();//德标 string commonClassification = resTable["commonclassification"].ToString();//常用夹杂物分类 string allParticles = resTable["allparticles"].ToString();//全部颗粒 string selectParticles = resTable["selectparticles"].ToString();//选择颗粒 string dataSourceType = resTable["datasourcetype"].ToString();//数据源类型 #endregion //测量结果数据源 List list_source_str = m_rstDataMgr.GetSampleListName(); AddGridData(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE, resultData, OTS_ITEM_TYPES.COMBO, false, "Select Measurement Result", list_source_str[m_rstDataMgr.GetWorkingResult()], list_source_str, m_rstDataMgr.GetWorkingResult()); //数据源类型,全部 or selected List list_sourcetype = new List() { allParticles, selectParticles }; AddGridData(OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE, dataSourceType, OTS_ITEM_TYPES.COMBO, false, "data source type", list_sourcetype[(int)DATASOURCE_TYPE.ALL], list_sourcetype, DATASOURCE_TYPE.ALL); //测量图类别 分布图 or 排列图 List list1 = new List() { distributionMap, arrangementDiagram }; AddGridData(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE, graphicDisplayMode, OTS_ITEM_TYPES.COMBO, false, "image display mode", list1[0], list1, IMAGE_DISPLAY_TYPE.DISTRIBUTION); AddGridData(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE, particleDisplayMode, OTS_ITEM_TYPES.COMBO, false, "distribution image Type", bseOriginal, new List() { bseOriginal, classifiedDisplay, originalSplicing, originalDistribution }, IMAGE_TYPE.BSE); //粒级表 List list_partsizelist = m_rstDataMgr.GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件 AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, particleSizeTable, OTS_ITEM_TYPES.COMBO, false, "Particle Table", list_partsizelist[0], list_partsizelist, 0); //粒级 List sizeList = new List(); sizeList = m_rstDataMgr.GetPartSizeList();//获取粒级后额外增加全部,自定义,选项 sizeList.Insert(0, whole);//全部 sizeList.Insert(1, custom);//自定义 AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS, particleSize, OTS_ITEM_TYPES.COMBO, false, "Grain Size", sizeList[0], sizeList, 0); //自定义最小 AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN, minimumParticle, OTS_ITEM_TYPES.DOUBLE, false, "Smallest Particle", "0", new List { }, null); //自定义最大 AddGridData(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX, maximumParticle, OTS_ITEM_TYPES.DOUBLE, false, "Maximum Particle", "0", new List { }, null); //排列图显示类别 List list3 = new List() { sortByType, arrangeBySize }; AddGridData(OTS_REPORT_PROP_GRID_ITEMS.IMAGEGRID_DIS_TYPE, arrangementMode, OTS_ITEM_TYPES.COMBO, false, "Measured Data", list3[0], list3, IMAGEGRID_DIS_TYPE.CLASSIFY_TYPE); //计算方式 AddGridData(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE, dimensionCalculationMethod, OTS_ITEM_TYPES.COMBO, false, "image property calculation method", "DMAX", m_rstDataMgr.GetSizeCalMethodTypeList(), SIZE_CAL_METHOD_TYPE.DMAX); //数据表类型 List list2 = new List() { surveyResults, sampleMeasurementInformation, granularComponent, elementComposition, particleSizeDistribution, averageElementComposition }; //string[] aa = m_ReportApp.Text.Split('-'); List listStd = new List() { chineseStandard1, chineseStandard2, americanStandard, germanStandard }; list2.AddRange(listStd); AddGridData(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE, dataTableType, OTS_ITEM_TYPES.COMBO, false, "Data table type", list2[0], list2, CALCULATE_TABLE_TYPE.MEASURE_INFO); // chart condition items List list22 = new List() { commonClassification, granularComponent, elementComposition, particleSizeDistribution, ternaryPhaseDiagram }; AddGridData(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE, dataTableType, OTS_ITEM_TYPES.COMBO, false, "Data graph type", list22[0], list22, CALCULATE_CHART_TYPE.COMMON_FIVE); //三元相图模板 List trio_listname = m_rstDataMgr.GetTriTemplateNameList(); AddGridData(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE, ternaryPhaseDiagram, OTS_ITEM_TYPES.COMBO, false, "Ternary phase diagram", trio_listname.First(), trio_listname, null); //颗粒分类ID //string stdIdcaption = "ClassifyId"; //ConditionItem stdIdItm = new ConditionItem(); List stdlistname = m_rstDataMgr.GetSTDIdList(); //stdIdItm.iItemId = OTS_REPORT_PROP_GRID_ITEMS.STD_ID; //stdIdItm.sSCaptionName = stdIdcaption; //stdIdItm.iItemValType = OTS_ITEM_TYPES.COMBO; //stdIdItm.bReadOnly = false; //stdIdItm.sDescriptionInfo = "std list"; //stdIdItm.itemDisplayVal = stdlistname[0]; //stdIdItm.comboDownList = stdlistname; //m_CurrentConditions.Add(OTS_REPORT_PROP_GRID_ITEMS.STD_ID, stdIdItm); AddGridData(OTS_REPORT_PROP_GRID_ITEMS.STD_ID, "ClassifyId", OTS_ITEM_TYPES.COMBO, false, "std list", stdlistname[0], stdlistname, null); } #region 属性Grid相关方法 public void ShowsTheDefaultPic() { try { if (m_rstDataMgr. ResultFilesList.Count > 0) { ShowDataDiagram(tabIndex); } } catch (Exception ex) { //日记记录 string str = ex.ToString(); } } /// /// 添加属性Grid相关数据 /// public void DisCurrentPicProperty() { //ReportCondition SMInfo = new ReportCondition(); //获取工作样品属性 if (!GetWorkingPictureConditionVal()) { return; } //添加属性Grid相关数据 DisProperyWindow(); } /// /// 接收 MeasureApp 发送的样品属性数据,通过Grid显示在properyWindow上 /// /// private void DisProperyWindow() { // 当点击事件响应结束后,将之前点击的行数和列数清0,避免选择工作样品重新赋值响应CELL值改变事件 PropGrid.Show(); m_ConditionGrid.m_ClickRow = 0; m_ConditionGrid.m_ClickColumn = 0; if (PropGrid.Rows.Count() > 0) { PropGrid.Rows.Clear(); PropGrid.Redim(OTSSourceGrid.m_Const_Grid_Row, OTSSourceGrid.m_Const_Grid_Column); } m_ConditionGrid.InitGrid(); m_ConditionGrid.ShowGeneralGrid(m_SourceGridData); } public bool GetWorkingPictureConditionVal() { //var tabindex = this.tabIndex; if (m_rstDataMgr.GetWorkingResult() == -1) { return false; } if (m_CurrentConditions.Count == 0) { SetDefaultConditionValue(); } ReportCondition data = new ReportCondition(); switch (this.tabIndex) { case DisplayPicutureType.AnalyzeImg: data.TabIndex = DisplayPicutureType.AnalyzeImg; data.ConditionItemList = GetSourceGridData(DisplayPicutureType.AnalyzeImg); break; case DisplayPicutureType.AnalyzeDataTable: data.TabIndex = DisplayPicutureType.AnalyzeDataTable; data.ConditionItemList = GetSourceGridData(DisplayPicutureType.AnalyzeDataTable); break; case DisplayPicutureType.AnalyzeDataChart: data.TabIndex = DisplayPicutureType.AnalyzeDataChart; data.ConditionItemList = GetSourceGridData(DisplayPicutureType.AnalyzeDataChart); break; default: break; } m_SourceGridData = data; //SMeasureInfo = data; return true; } /// /// 初始化加载sourceGrid各项 /// /// /// SampleData1 private List GetSourceGridData(DisplayPicutureType tbindex) { string BSEOriginal = resTable["bseoriginal"].ToString();//BSE原图 string ClassifiedDisplay = resTable["classifieddisplay"].ToString();//分类显示 string OriginalSplicing = resTable["originalsplicing"].ToString();//原图拼接 string OriginalDistribution = resTable["originaldistribution"].ToString();//原图颗粒分布 List list = new List(); ConditionItem sampleData; if (tbindex == DisplayPicutureType.AnalyzeImg)//分布图页 { //测量结果数据源 sampleData = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE]; list.Add(sampleData); //测量图类别 分布图 or 排列图 sampleData = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE]; list.Add(sampleData); //图像显示方式 sampleData = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE]; if ((int)m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE].itemVal == (int)IMAGE_DISPLAY_TYPE.DISTRIBUTION) { sampleData.comboDownList = new List() { BSEOriginal, ClassifiedDisplay, OriginalSplicing, OriginalDistribution };//bse,颗粒分类图 list.Add(sampleData); //粒级表 var sampleData_partsizefile = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE]; list.Add(sampleData_partsizefile); //粒级 var sampleData4 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS]; list.Add(sampleData4); if ((int)sampleData4.itemVal == (int)GRAIN_SIZE_CLASS.USERDEFINE) { //自定义最小 var sampleData41 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN]; list.Add(sampleData41); //自定义最大 var sampleData42 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX]; list.Add(sampleData42); } else if ((int)sampleData4.itemVal > (int)GRAIN_SIZE_CLASS.USERDEFINE) { string min = sampleData4.itemDisplayVal.ToString().Split('~')[0]; string max = sampleData4.itemDisplayVal.ToString().Split('~')[1]; var sampleData41 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN]; sampleData41.itemDisplayVal = min; list.Add(sampleData41); //自定义最大 var sampleData42 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX]; sampleData42.itemDisplayVal = max; list.Add(sampleData42); } //尺寸计算方式 var sampleData5 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE]; list.Add(sampleData5); //all particle types var stditm = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.STD_ID]; list.Add(stditm); } else { sampleData.comboDownList = new List() { BSEOriginal, ClassifiedDisplay };//bse,颗粒分类图 list.Add(sampleData); //排列图类别 var sampleData6 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.IMAGEGRID_DIS_TYPE]; list.Add(sampleData6); if ((int)sampleData6.itemVal == (int)IMAGEGRID_DIS_TYPE.PARTICALE_SIZE_TYPE) { //粒级表 var sampleData_partsizefile = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE]; list.Add(sampleData_partsizefile); //尺寸计算方式 var sampleData5 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE]; list.Add(sampleData5); } } } else if (tbindex == DisplayPicutureType.AnalyzeDataTable)//Grid表格页 { //测量结果数据源 sampleData = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE]; list.Add(sampleData); //数据表类型 var sampleData3 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE]; //list.Add(sampleData3); if ((int)sampleData3.itemVal == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION ) { //粒级表 var sampleData_partsizefile = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE]; list.Add(sampleData_partsizefile); //尺寸计算方法 var sampleData5 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE]; list.Add(sampleData5); var sampleData1 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE]; //list.Add(sampleData1); list.Insert(1, sampleData1); } if ((int)sampleData3.itemVal == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP) { //尺寸计算方法 var sampleData5 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE]; list.Add(sampleData5); var sampleData1 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE]; //list.Add(sampleData1); list.Insert(1, sampleData1); } if ((int)sampleData3.itemVal == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO) { var sampleData1 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE]; //list.Add(sampleData1); list.Insert(1, sampleData1); } if ((int)sampleData3.itemVal == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP) { var sampleData1 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE]; //list.Add(sampleData1); list.Insert(1, sampleData1); } if ((int)sampleData3.itemVal == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP) { var sampleData1 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE]; //list.Add(sampleData1); list.Insert(1, sampleData1); } list.Add(sampleData3); } else if (tbindex == DisplayPicutureType.AnalyzeDataChart)//Chart图页 { //测量结果数据源 sampleData = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE]; list.Add(sampleData); var sampleData1 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE]; list.Add(sampleData1); //数据图类型 var sampleData3 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE]; list.Add(sampleData3); if ((int)sampleData3.itemVal == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION) { //粒级表 var sampleData_partsizefile = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE]; list.Add(sampleData_partsizefile); //尺寸计算方法 var sampleData5 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE]; list.Add(sampleData5); } else if((int)sampleData3.itemVal == (int)CALCULATE_CHART_TYPE.TRIO_CHART) { //三元相图模板 var sampleData15 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE]; list.Add(sampleData15); //粒级表 var sampleData_partsizefile = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE]; list.Add(sampleData_partsizefile); //尺寸计算方法 var sampleData5 = m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE]; list.Add(sampleData5); } } return list; } /// /// 根据样品属性 显示对应的图表 /// /// 标签索引 /// 属性中选择的图表名称 public void ShowDataDiagram(DisplayPicutureType tabindex) { int sourceid = m_rstDataMgr.GetWorkingResult(); var resultFile = m_rstDataMgr.ResultFilesList[sourceid]; var prop = m_SourceGridData; String m_fileName = resultFile.FileName; #region 对各窗体模块进行实际加载的代码 switch (tabindex) { //分析图 case DisplayPicutureType.AnalyzeImg://第一页选项窗体,分析图 m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeImg); IMAGE_DISPLAY_TYPE display =(IMAGE_DISPLAY_TYPE) prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); if (display == IMAGE_DISPLAY_TYPE.DISTRIBUTION) { //分布图对象为空,或当前显示的与在测量结果中选择的不匹配,则重新加载 if (null != m_ReportApp.im_Control_DrawDistrbutionImageAndBSE) { if (m_fileName != m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName) { //如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载 m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = null; } } //不需重新加载,则加载条件 if (m_ReportApp.im_Control_DrawDistrbutionImageAndBSE != null) { m_ReportApp.m_SImageWindow.Controls.Clear(); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid; m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName; m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill; m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionImageAndBSE); m_ReportApp.m_SImageWindow.Activate(); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_SourceGridData); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_ReportApp.GetSelectedParticles()); ConditionItem imgType =m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE]; //切换分布图显示方式 IMAGE_TYPE t = (IMAGE_TYPE)imgType.itemVal; m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowMode(t); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.FullGraphMatch(); } else if (m_ReportApp.im_Control_DrawDistrbutionImageAndBSE == null) { m_ReportApp.m_SImageWindow.Controls.Clear(); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(m_ReportApp); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid; m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName; m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill; m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionImageAndBSE); m_ReportApp.m_SImageWindow.Activate(); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_SourceGridData); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_ReportApp.GetSelectedParticles()); m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.FullGraphMatch(); } } else { //排列图为空,或与在测量结果中选择的名字不一致时,则重新加载 if (null != m_ReportApp.im_Control_DrawDistrbutionSortImage) { if (m_fileName != m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName) { //如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载 m_ReportApp.im_Control_DrawDistrbutionSortImage = null; } } //不需重新加载,则加载条件 if (m_ReportApp.im_Control_DrawDistrbutionSortImage != null) { m_ReportApp.m_SImageWindow.Controls.Clear(); m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid; m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName; m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill; m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionSortImage); m_ReportApp.m_SImageWindow.Activate(); m_ReportApp.im_Control_DrawDistrbutionSortImage.GetDistrbutionSortimage_ByQuery(m_CurrentConditions); m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_ReportApp.GetSelectedParticles()); //判断当前点击测量结果中的数据源名,是否与已经加载的排序图显示的数据源名相同 if (m_fileName == m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName) { //相同,加载计算条件 m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_ReportApp.GetSelectedParticles()); ConditionItem itm =m_CurrentConditions[OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE]; //切换BSE和分类,两种影像的显示方式 if ((int)itm.itemVal == (int)IMAGE_TYPE.BSE) { m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(false); } else { m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(true); } return; } } else if (m_ReportApp.im_Control_DrawDistrbutionSortImage == null) { m_ReportApp.m_SImageWindow.Controls.Clear(); m_ReportApp.im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(m_ReportApp); m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid; m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName; m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill; m_ReportApp.m_SImageWindow.Controls.Add(m_ReportApp.im_Control_DrawDistrbutionSortImage); m_ReportApp.m_SImageWindow.Activate(); m_ReportApp.im_Control_DrawDistrbutionSortImage.GetDistrbutionSortimage_ByQuery(m_CurrentConditions); m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_ReportApp.GetSelectedParticles()); } } break; //分析数据表 case DisplayPicutureType.AnalyzeDataTable: #region 第二页选项窗体,分析数据表 m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataTable); //idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE); CALCULATE_TABLE_TYPE TableType = (CALCULATE_TABLE_TYPE)prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE); switch (TableType) { case CALCULATE_TABLE_TYPE.MEASURE_INFO: m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ResultGrid = new ResultGrid(m_ReportApp); m_ReportApp.im_ResultGrid.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ResultGrid); m_ReportApp.m_TablesWindow.Activate(); break; case CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO: if (m_ReportApp.im_ParticlesGridDevidePage != null && m_ReportApp.im_ParticlesGridDevidePage.FileName == m_fileName) { m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ParticlesGridDevidePage); m_ReportApp.m_TablesWindow.Activate(); } else { m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ParticlesGridDevidePage = new OTSIncAReportGrids.ParticlesGridDevidePage(m_ReportApp); m_ReportApp.im_ParticlesGridDevidePage.FileName = m_fileName; m_ReportApp.im_ParticlesGridDevidePage.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ParticlesGridDevidePage); m_ReportApp.m_TablesWindow.Activate(); } break; case CALCULATE_TABLE_TYPE.PARTICALE_COMP: m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_CompositionDistributionGrid = new CompositionDistributionGrid(m_ReportApp); m_ReportApp.im_CompositionDistributionGrid.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_CompositionDistributionGrid); m_ReportApp.m_TablesWindow.Activate(); break; case CALCULATE_TABLE_TYPE.ELEMENT_COMP: m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ElementContentGrid = new ElementContentGrid(m_ReportApp); m_ReportApp.im_ElementContentGrid.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ElementContentGrid); m_ReportApp.m_TablesWindow.Activate(); break; case CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION://颗粒尺寸分布表 m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ParticlesSizeGrid = new ParticlesSizeGrid(m_ReportApp); m_ReportApp.im_ParticlesSizeGrid.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ParticlesSizeGrid); m_ReportApp.m_TablesWindow.Activate(); break; case CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP: m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ElementCompositionAvgGrid = new ElementCompositionAvgGrid(m_ReportApp); m_ReportApp.im_ElementCompositionAvgGrid.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ElementCompositionAvgGrid); m_ReportApp.m_TablesWindow.Activate(); break; case CALCULATE_TABLE_TYPE.GB_Method1: //国标一 string resultfile = m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FilePath + "\\" + m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FileName; m_ReportApp.m_rstDataMgr.m_ReportMgr.AddASmplMsrResultMgr(resultfile); OTSCLRINTERFACE.CPropParamClr clr_prop = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetPropertyParamTable(); clr_prop.SetDataSourceId(0);// clr_prop.SetType((int)DisplayPicutureType.AnalyzeDataTable);//table clr_prop.SetCalTableType((int)CALCULATE_TABLE_TYPE.GB_Method1);//国标1 List listGriddataclr = m_ReportApp.m_rstDataMgr.m_ReportMgr.GridDataTransfer(clr_prop);// m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ChineseStandardABCDDS = new ChineseStandardABCDDS(m_ReportApp.m_rstDataMgr.m_ReportMgr, listGriddataclr); m_ReportApp.im_ChineseStandardABCDDS.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ChineseStandardABCDDS); m_ReportApp.m_TablesWindow.Activate(); //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath+"\\" // + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "GB1"); break; case CALCULATE_TABLE_TYPE.GB_Method2: //国标二 string resultfile2 = m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FilePath + "\\" + m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FileName; m_ReportApp.m_rstDataMgr.m_ReportMgr.AddASmplMsrResultMgr(resultfile2); OTSCLRINTERFACE.CPropParamClr clr_prop2 = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetPropertyParamTable(); clr_prop2.SetDataSourceId(0);// clr_prop2.SetType((int)DisplayPicutureType.AnalyzeDataTable);//table clr_prop2.SetCalTableType((int)CALCULATE_TABLE_TYPE.GB_Method2);//国标2 List listGriddataclr2 = m_ReportApp.m_rstDataMgr.m_ReportMgr.GridDataTransfer(clr_prop2);// m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_NationalStandardMethodTwo = new NationalStandardMethodTwo(m_ReportApp.m_rstDataMgr.m_ReportMgr, listGriddataclr2); m_ReportApp.im_NationalStandardMethodTwo.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_NationalStandardMethodTwo); m_ReportApp.m_TablesWindow.Activate(); //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath + "\\" // + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "GB2"); break; case CALCULATE_TABLE_TYPE.ASTM: //美标 string resultfile3 = m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FilePath + "\\" + m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FileName; m_ReportApp.m_rstDataMgr.m_ReportMgr.AddASmplMsrResultMgr(resultfile3); OTSCLRINTERFACE.CPropParamClr clr_prop3 = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetPropertyParamTable(); clr_prop3.SetDataSourceId(0);// clr_prop3.SetType((int)DisplayPicutureType.AnalyzeDataTable);//table clr_prop3.SetCalTableType((int)CALCULATE_TABLE_TYPE.ASTM); List listGriddataclr3 = m_ReportApp.m_rstDataMgr.m_ReportMgr.GridDataTransfer(clr_prop3); m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_ASTMStandardABCDDS = new ASTMStandardABCDDS(m_ReportApp.m_rstDataMgr.m_ReportMgr, listGriddataclr3); m_ReportApp.im_ASTMStandardABCDDS.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_ASTMStandardABCDDS); m_ReportApp.m_TablesWindow.Activate(); //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath + "\\" // + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "ASTM"); break; case CALCULATE_TABLE_TYPE.DIN: //德标 string resultfile4 = m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FilePath + "\\" + m_rstDataMgr.ResultFilesList[m_rstDataMgr.GetWorkingResult()].FileName; m_ReportApp.m_rstDataMgr.m_ReportMgr.AddASmplMsrResultMgr(resultfile4); OTSCLRINTERFACE.CPropParamClr clr_prop4 = m_ReportApp.m_rstDataMgr.m_ReportMgr.GetPropertyParamTable(); clr_prop4.SetDataSourceId(0);// clr_prop4.SetType((int)DisplayPicutureType.AnalyzeDataTable);//table clr_prop4.SetCalTableType((int)CALCULATE_TABLE_TYPE.DIN); List listGriddataclr4 = m_ReportApp.m_rstDataMgr.m_ReportMgr.GridDataTransfer(clr_prop4); m_ReportApp.m_TablesWindow.Controls.Clear(); m_ReportApp.im_DINStandardABCDDS = new DINStandardABCDDS(m_ReportApp.m_rstDataMgr.m_ReportMgr, listGriddataclr4); m_ReportApp.im_DINStandardABCDDS.Dock = DockStyle.Fill; m_ReportApp.m_TablesWindow.Controls.Add(m_ReportApp.im_DINStandardABCDDS); m_ReportApp.m_TablesWindow.Activate(); //OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FilePath + "\\" // + m_RstProp.m_ReportApp.m_DataMgrFun.resultFilesList[m_RstProp.m_ReportApp.m_DataMgrFun.WorkingResult].FileName, "DIN"); break; } #endregion 第二页选项窗体,分析数据表 break; //分析数据图 case DisplayPicutureType.AnalyzeDataChart: m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataChart); #region 第三页选项窗体,分析数据图 m_ReportApp.m_ChartsWindow.Controls.Clear(); string m_reportname = ""; string m_str_AxisY = ""; string str_operatonmodule = ""; //idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp.SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE); CALCULATE_CHART_TYPE ChartType = (CALCULATE_CHART_TYPE)prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE); switch (ChartType) { case CALCULATE_CHART_TYPE.COMMON_FIVE: m_reportname = resTable["m_reportname1"].ToString();//常用夹杂物分类 m_str_AxisY = resTable["m_str_axisy1"].ToString(); str_operatonmodule = resTable["str_operatonmodule1"].ToString(); m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "CommonlyUsedClassify"); m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill; m_ReportApp.m_reportname = m_reportname; m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY; m_ReportApp.type = "pie"; m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition); m_ReportApp.m_ChartsWindow.Activate(); break; case CALCULATE_CHART_TYPE.PARTICALE_COMP: m_reportname = resTable["m_reportname2"].ToString();//颗粒成分 m_str_AxisY = resTable["m_str_axisy2"].ToString();//颗粒数 str_operatonmodule = resTable["str_operatonmodule2"].ToString();//颗粒成分图 m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "PComponent"); m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill; m_ReportApp.m_reportname = m_reportname; m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY; m_ReportApp.type = "pie"; m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition); m_ReportApp.m_ChartsWindow.Activate(); break; case CALCULATE_CHART_TYPE.ELEMENT_COMP: m_reportname = resTable["m_reportname3"].ToString();//元素成分 m_str_AxisY = resTable["m_str_axisy3"].ToString();//元素含量 str_operatonmodule = resTable["str_operatonmodule3"].ToString();//元素成分图 m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "EComponent"); m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill; m_ReportApp.m_reportname = m_reportname; m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY; m_ReportApp.type = "bar"; m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition); m_ReportApp.m_ChartsWindow.Activate(); break; case CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION://颗粒尺寸分布图 m_reportname = resTable["m_reportname4"].ToString();//颗粒尺寸分布 m_str_AxisY = resTable["m_str_axisy4"].ToString();//颗粒数 str_operatonmodule = resTable["str_operatonmodule4"].ToString();//颗粒尺寸分布图 m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_ReportApp, "PSize"); m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill; m_ReportApp.m_reportname = m_reportname; m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY; m_ReportApp.type = "bar"; m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_ParticlesComposition); m_ReportApp.m_ChartsWindow.Activate(); break; case CALCULATE_CHART_TYPE.TRIO_CHART: //idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetPropIndexByPropItemName(m_RstProp. SourceGridData.ConditionItemList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE); //string TrioChartType = prop.ConditionItemList[idx].itemVal.ToString(); //List nameList = prop.ConditionItemList[idx].comboDownList; int index = prop.GetComboDownListIndexByItemName(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE); str_operatonmodule = resTable["str_operatonmodule5"].ToString(); m_ReportApp.im_EChart_Trianglediagram = new Control_ECharts.EChart_Trianglediagram(m_ReportApp); m_ReportApp.im_EChart_Trianglediagram.Template = ""; m_ReportApp.im_EChart_Trianglediagram.Dock = DockStyle.Fill; m_ReportApp.m_ChartsWindow.Controls.Add(m_ReportApp.im_EChart_Trianglediagram); m_ReportApp.m_ChartsWindow.Activate(); break; } #endregion 第三页窗体,分析数据图 break; } #endregion } #endregion #region 属性Grid相关事件 /// /// 属性Grid点击事件 /// /// /// private void PropGrid_Click_1(object sender, EventArgs e) { SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender; ls_gd.Focus(); m_ConditionGrid.m_ClickRow = ls_gd.Selection.ActivePosition.Row; m_ConditionGrid.m_ClickColumn = ls_gd.Selection.ActivePosition.Column; } /// /// 主窗体大小改变时,同时改变属性Grid的大小事件 /// /// /// private void OTSPropertyWindow_Resize(object sender, EventArgs e) { if (null != m_ConditionGrid) { m_ConditionGrid.m_PropWindow_X = this.Width; m_ConditionGrid.InitGridTitlet(); } } #endregion } }