using OTSIncAReportApp.OTSSampleReportInfo; using OTSIncAReportApp.SysMgrTools; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; namespace OTSIncAReportApp.OTSDataMgrFunction { /// /// 框架与底层进行交互的操作类 /// public class DataMgrFun { #region 变量定义 /// /// 报告主进程框架对象 /// private frmReportApp m_ReportApp = null; #endregion #region 构造函数 /// /// 构造函数 /// /// public DataMgrFun(frmReportApp ReportApp) { m_ReportApp = ReportApp; Language lan = new Language(); table = lan.GetNameTable("DataMgrFun"); } //国际化存储信息 Hashtable table; #endregion #region 获取组合项相关方法 /// /// 根据系统设置的默认粒级表路径,获取所有的粒级表文件List /// /// public List GetPartSizeFileList() { List ret_list = new List(); //遍历粒级文件夹 DirectoryInfo theFolder = new DirectoryInfo(m_ReportApp.m_RptConfigFile.FileFolderSize); if (!theFolder.Exists) return ret_list; //读取遍历粒级文件信息 foreach (FileInfo nextifile in theFolder.GetFiles()) { //找出粒级文件 if (nextifile.Name.Contains(".psf") == true || nextifile.Name.Contains(".PSF") == true) { ret_list.Add(nextifile.Name); } } return ret_list; } /// /// 根据系统设置默认的粒级表的路径,获取粒级表List /// /// /// public List GetPartSizeList() { DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(m_ReportApp.m_RptConfigFile.FileFolderSize + m_ReportApp.m_RptConfigFile.PartSizeFile); string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString(); List sizeList = new List(); for (int i = 0; i < sizestr.Split(',').Length - 1; i++) { if (sizestr.Split(',')[i].Length > 0) { double d1 = Convert.ToDouble(sizestr.Split(',')[i]); double d2 = Convert.ToDouble(sizestr.Split(',')[i + 1]); sizeList.Add(d1.ToString() + "~" + d2.ToString()); } } double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]); sizeList.Add(d.ToString() + "~MAX"); return sizeList; } /// /// 根据传入的粒级表目录,获取粒级表List /// /// public List GetPartSizeList(string path) { DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(path); string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString(); List sizeList = new List(); for (int i = 0; i < sizestr.Split(',').Length - 1; i++) { if (sizestr.Split(',')[i].Length > 0) { double d1 = Convert.ToDouble(sizestr.Split(',')[i]); double d2 = Convert.ToDouble(sizestr.Split(',')[i + 1]); sizeList.Add(d1.ToString() + "~" + d2.ToString()); } } double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]); sizeList.Add(d.ToString() + "~MAX"); return sizeList; } /// /// 获取三元相图模板名称列表 /// /// public List GetTriTemplateNameList() { string pathtpf = m_ReportApp.m_RptConfigFile.FileFolderTrigTemp + m_ReportApp.m_RptConfigFile.TriTempFile; List ret_list = new List(); DataSet ds = DataOperation.DataAccess.XMLoperate.GetXmlData(pathtpf, "XMLData"); DataTable dt = ds.Tables["Member"]; foreach (DataRow item in dt.Rows) { if (item["TemplateName"].ToString() != "") { ret_list.Add(item["TemplateName"].ToString()); } } return ret_list; } /// /// 获取测量结果名称列表 /// /// public List GetSampleListName() { List ret_list = new List(); var resultfileList = m_ReportApp.resultFilesList; foreach (var item in resultfileList) { ret_list.Add(item.FileName); } if (m_ReportApp.MoreSource != "") { ret_list.Add(m_ReportApp.MoreSource); } return ret_list; } /// /// 获取计算方法列表 /// /// public List GetSizeCalMethodTypeList() { List ret_list = new List() { "DMAX", "DMIN", "Area", "FERET" }; return ret_list; } /// /// 数据类型,全部颗粒,分析颗粒 /// /// public List GetDataSourceTypeList() { string sscaptionname23 = table["sscaptionname23"].ToString(); string sscaptionname24 = table["sscaptionname24"].ToString(); List ret_list = new List() { sscaptionname23, sscaptionname24 }; return ret_list; } #endregion #region [属性选项Grid窗体]相关封装方法 /// /// 初始化加载sourceGrid各项 /// /// /// SampleData1 private List GetSourceGridData(int tbindex) { List list = new List(); if (tbindex == 0)//分布图页 { //测量结果数据 List list_source_str = GetSampleListName(); string sSCaptionName1 = table["sscaptionname1"].ToString(); SampleData sampleData = new SampleData(); sampleData.iItemId = 0; sampleData.sSCaptionName = sSCaptionName1; sampleData.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData.bReadOnly = false; sampleData.sDescriptionInfo = "Select Measurement Result"; sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult]; sampleData.comboDownList = list_source_str; list.Add(sampleData); string sSCaptionName2 = table["sscaptionname2"].ToString(); string sSCaptionName13 = table["sscaptionname13"].ToString(); SampleData sampleData1 = new SampleData(); sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE; sampleData1.sSCaptionName = sSCaptionName2;//测量图类型 sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData1.bReadOnly = false; sampleData1.sDescriptionInfo = "Survey Chart Type"; sampleData1.itemVal = "去背景显示"; sampleData1.comboDownList = new List() { "去背景显示", sSCaptionName13,"原图显示","原图颗粒分布" };//bse,颗粒分类图 list.Add(sampleData1); //测量图类型 List list_datasourcetypelist = GetDataSourceTypeList(); string sSCaptionName3 = table["sscaptionname3"].ToString(); string sscaptionname14 = table["sscaptionname14"].ToString(); string sscaptionname15 = table["sscaptionname15"].ToString(); List list1 = new List() { sscaptionname14, sscaptionname15 }; SampleData sampleData2 = new SampleData(); sampleData2.iItemId = OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE; sampleData2.sSCaptionName = sSCaptionName3; sampleData2.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData2.bReadOnly = false; sampleData2.sDescriptionInfo = "chart display mode"; sampleData2.itemVal = list1[0]; sampleData2.comboDownList = list1; list.Add(sampleData2); //测量图显示方式 string sSCaptionName4 = table["sscaptionname4"].ToString(); string sscaptionname16 = table["sscaptionname16"].ToString(); string sscaptionname17 = table["sscaptionname17"].ToString(); List list2 = new List() { sscaptionname16, sscaptionname17 }; SampleData sampleData3 = new SampleData(); sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE; sampleData3.sSCaptionName = sSCaptionName4; sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData3.bReadOnly = false; sampleData3.sDescriptionInfo = "Particle Type"; sampleData3.itemVal = list2[0]; sampleData3.comboDownList = list2; list.Add(sampleData3); //粒级表 string sSCaptionName_partsizefile = "粒级表"; List list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件 SampleData sampleData_partsizefile = new SampleData(); sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE; sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile; sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData_partsizefile.bReadOnly = false; sampleData_partsizefile.sDescriptionInfo = "Particle Table"; sampleData_partsizefile.itemVal = list_partsizelist[0]; sampleData_partsizefile.comboDownList = list_partsizelist; list.Add(sampleData_partsizefile); //粒级 string sscaptionname18 = table["sscaptionname18"].ToString(); SampleData sampleData4 = new SampleData(); List sizeList = new List(); sizeList = GetPartSizeList();//获取粒级后额外增加全部,自定义,选项 sizeList.Insert(0, sscaptionname16);//全部 sizeList.Insert(1, sscaptionname18);//自定义 string sSCaptionName5 = table["sscaptionname5"].ToString(); sampleData4.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS; sampleData4.sSCaptionName = sSCaptionName5; sampleData4.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData4.bReadOnly = false; sampleData4.sDescriptionInfo = "Grain Size"; sampleData4.itemVal = sscaptionname16; sampleData4.comboDownList = sizeList; list.Add(sampleData4); //自定义最小 string sSCaptionName6 = table["sscaptionname6"].ToString(); SampleData sampleData41 = new SampleData(); sampleData41.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN; sampleData41.sSCaptionName = sSCaptionName6; sampleData41.iItemValType = OTS_ITEM_TYPES.DOUBLE; sampleData41.bReadOnly = false; sampleData41.sDescriptionInfo = "Smallest Particle"; sampleData41.itemVal = "0"; list.Add(sampleData41); //自定义最大 string sSCaptionName7 = table["sscaptionname7"].ToString(); SampleData sampleData42 = new SampleData(); sampleData42.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX; sampleData42.sSCaptionName = sSCaptionName7; sampleData42.iItemValType = OTS_ITEM_TYPES.DOUBLE; sampleData42.bReadOnly = false; sampleData42.sDescriptionInfo = "Maximum Particle"; sampleData42.itemVal = "0"; list.Add(sampleData42); //测量数据 string sSCaptionName22 = table["sscaptionname22"].ToString(); string sSCaptionName19 = table["sscaptionname19"].ToString(); string sSCaptionName20 = table["sscaptionname20"].ToString(); string sSCaptionName21 = table["sscaptionname21"].ToString(); List list3 = new List() { sSCaptionName19, sSCaptionName20, sSCaptionName21 }; SampleData sampleData6 = new SampleData(); sampleData6.iItemId = OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE; sampleData6.sSCaptionName = sSCaptionName22; sampleData6.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData6.bReadOnly = false; sampleData6.sDescriptionInfo = "Measured Data"; sampleData6.itemVal = list3[0]; sampleData6.comboDownList = list3; list.Add(sampleData6); //计算方式 string sSCaptionName8 = table["sscaptionname8"].ToString(); SampleData sampleData5 = new SampleData(); sampleData5.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE; sampleData5.sSCaptionName = sSCaptionName8; sampleData5.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData5.bReadOnly = false; sampleData5.sDescriptionInfo = "Dimension calculation method"; sampleData5.itemVal = "DMAX"; sampleData5.comboDownList = GetSizeCalMethodTypeList(); list.Add(sampleData5); } else if (tbindex == 1)//Grid表格页 { //测量结果数据 List list_source_str = GetSampleListName(); string sSCaptionName1 = table["sscaptionname1"].ToString(); SampleData sampleData = new SampleData(); sampleData.iItemId = 0; sampleData.sSCaptionName = sSCaptionName1; sampleData.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData.bReadOnly = false; sampleData.sDescriptionInfo = "Select Measurement Result"; sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult]; sampleData.comboDownList = list_source_str; list.Add(sampleData); //数据类型 List list_datasourcetypelist = GetDataSourceTypeList(); string sSCaptionName9 = table["sscaptionname9"].ToString(); SampleData sampleData1 = new SampleData(); sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE; sampleData1.sSCaptionName = sSCaptionName9; sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData1.bReadOnly = false; sampleData1.sDescriptionInfo = "Data Type"; sampleData1.itemVal = list_datasourcetypelist[0]; sampleData1.comboDownList = list_datasourcetypelist; list.Add(sampleData1); //数据表类型 string sSCaptionName10 = table["sscaptionname10"].ToString(); List list2 = new List() { table["sscaptionname25"].ToString(), table["sscaptionname26"].ToString(), table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname30"].ToString(), "国标一", "国标二", "美标", "德标" }; SampleData sampleData3 = new SampleData(); sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE; sampleData3.sSCaptionName = sSCaptionName10; sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData3.bReadOnly = false; sampleData3.sDescriptionInfo = "Data table type"; sampleData3.itemVal = list2[0]; sampleData3.comboDownList = list2; list.Add(sampleData3); //粒级表 string sSCaptionName_partsizefile = "粒级表"; List list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件 SampleData sampleData_partsizefile = new SampleData(); sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE; sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile; sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData_partsizefile.bReadOnly = false; sampleData_partsizefile.sDescriptionInfo = "Particle Table"; sampleData_partsizefile.itemVal = list_partsizelist[0]; sampleData_partsizefile.comboDownList = list_partsizelist; list.Add(sampleData_partsizefile); //尺寸计算方法 string sSCaptionName8 = table["sscaptionname8"].ToString(); SampleData sampleData13 = new SampleData(); sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE; sampleData13.sSCaptionName = sSCaptionName8; sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData13.bReadOnly = false; sampleData13.sDescriptionInfo = "Dimension Calculation Method"; sampleData13.itemVal = "DMAX"; sampleData13.comboDownList = GetSizeCalMethodTypeList(); list.Add(sampleData13); } else if (tbindex == 2)//Chart图页 { //测量结果数据 List list_source_str = GetSampleListName(); string sSCaptionName1 = table["sscaptionname1"].ToString(); SampleData sampleData = new SampleData(); sampleData.iItemId = 0; sampleData.sSCaptionName = sSCaptionName1; sampleData.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData.bReadOnly = false; sampleData.sDescriptionInfo = "Select Measurement Result"; sampleData.itemVal = list_source_str[m_ReportApp.WorkingResult]; sampleData.comboDownList = list_source_str; list.Add(sampleData); //数据类型 List list_datasourcetypelist = GetDataSourceTypeList(); string sSCaptionName9 = table["sscaptionname9"].ToString(); SampleData sampleData1 = new SampleData(); sampleData1.iItemId = OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE; sampleData1.sSCaptionName = sSCaptionName9; sampleData1.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData1.bReadOnly = false; sampleData1.sDescriptionInfo = "Data Type"; sampleData1.itemVal = list_datasourcetypelist[0]; sampleData1.comboDownList = list_datasourcetypelist; list.Add(sampleData1); //数据图类型 string sSCaptionName10 = table["sscaptionname10"].ToString(); List list2 = new List() { "常用夹杂物分类", table["sscaptionname27"].ToString(), table["sscaptionname28"].ToString(), table["sscaptionname29"].ToString(), table["sscaptionname12"].ToString() }; SampleData sampleData3 = new SampleData(); sampleData3.iItemId = OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE; sampleData3.sSCaptionName = sSCaptionName10; sampleData3.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData3.bReadOnly = false; sampleData3.sDescriptionInfo = "Data graph type"; sampleData3.itemVal = list2[0]; sampleData3.comboDownList = list2; list.Add(sampleData3); //三元相图模板 string sSCaptionName12 = table["sscaptionname12"].ToString(); SampleData sampleData15 = new SampleData(); List trio_listname = GetTriTemplateNameList(); sampleData15.iItemId = OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE; sampleData15.sSCaptionName = sSCaptionName12; sampleData15.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData15.bReadOnly = false; sampleData15.sDescriptionInfo = "Ternary phase diagram"; sampleData15.itemVal = trio_listname.First(); sampleData15.comboDownList = trio_listname; list.Add(sampleData15); //粒级表 string sSCaptionName_partsizefile = "粒级表"; List list_partsizelist = GetPartSizeFileList(); SampleData sampleData_partsizefile = new SampleData(); sampleData_partsizefile.iItemId = OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE; sampleData_partsizefile.sSCaptionName = sSCaptionName_partsizefile; sampleData_partsizefile.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData_partsizefile.bReadOnly = false; sampleData_partsizefile.sDescriptionInfo = "Particle Table"; sampleData_partsizefile.itemVal = list_partsizelist[0]; sampleData_partsizefile.comboDownList = list_partsizelist; list.Add(sampleData_partsizefile); //尺寸计算法 string sSCaptionName8 = table["sscaptionname8"].ToString(); SampleData sampleData13 = new SampleData(); sampleData13.iItemId = OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE; sampleData13.sSCaptionName = sSCaptionName8; sampleData13.iItemValType = OTS_ITEM_TYPES.COMBO; sampleData13.bReadOnly = false; sampleData13.sDescriptionInfo = "Dimension Calculation Method"; sampleData13.itemVal = "DMAX"; sampleData13.comboDownList = GetSizeCalMethodTypeList(); list.Add(sampleData13); } return list; } /// /// 分发SourceGrid,各选项值改变事件 /// /// /// /// /// /// public OTSSampleMeaInfo ChangeSouceGrid(int tbindex, OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel) { OTSSampleMeaInfo ret = new OTSSampleMeaInfo(); ret = m_ReportApp.SourceGridDataList[tbindex]; switch (tbindex) { case 0: ret = ChangeSouceGrid_Image(typ, val, sel); break; case 1: ret = ChangeSouceGrid_Grid(typ, val, sel); break; case 2: ret = ChangeSouceGrid_Chart(typ, val, sel); break; } return ret; } /// /// SourceGrid,分析图页面组合各项方法 /// /// /// /// /// public OTSSampleMeaInfo ChangeSouceGrid_Image(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel) { OTSSampleMeaInfo ret = new OTSSampleMeaInfo(); ret = m_ReportApp.SourceGridDataList[0]; //string strlist = ret.TSampleParam.sSampleTitleName; List list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items; //测量结果数据 if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE) { if (val.Contains("+")) { //ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].bReadOnly = true; //ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = ret.SampleDataList[1].comboDownList[0]; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = val; } else { //ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].bReadOnly = false; DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val); int index = m_ReportApp.resultFilesList.IndexOf(resultFile); m_ReportApp.WorkingResult = index; } } //测量图类型 if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE) { } ////使用哪种方法来替代,字符串呢? //List list_oo = new List(); //list_oo.Add(OTS_RETORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE); //OTS_RETORT_PROP_GRID_ITEMS[] list_oo2 = new OTS_RETORT_PROP_GRID_ITEMS[4] { OTS_RETORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE , // OTS_RETORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE , // OTS_RETORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE , // OTS_RETORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE }; ////--------------------------------------------------------------- //测量图显示方式 if (typ == OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE) { if (sel == 0)//选择分布图 { //strlist = ",0,2,3,7,10,13,"; list_showgrid_item = new List(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13 if (ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE)].comboDownList.IndexOf(ret.SampleDataList[4].itemVal.ToString()) != 0) { //strlist = ",0,2,3,7,10,11,12,13,"; list_showgrid_item = new List(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN,//11 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX,//12 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13 } } else if (sel == 1)//选择排序图时 { //strlist = ",0,2,3,4,13,"; list_showgrid_item = new List(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13 } } //颗粒类型 if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE) { } //测量数据 if (typ == OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE) { if (sel == 0)//全部颗粒类型 { //strlist = ",0,2,3,4,13,"; list_showgrid_item = new List(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13 } else if (sel == 1)//分析颗粒类型 { //strlist = ",0,2,3,4,13,"; list_showgrid_item = new List(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13 } else if (sel == 2)//颗粒尺寸类型 { //strlist = ",0,2,3,4,9,10,13,"; list_showgrid_item = new List(){OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE,//4 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE };//13 } } //颗粒粒级表 if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE) { //点击下拉框,级联联动事件 int idx = m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE); List list_partsize = GetPartSizeList(m_ReportApp.m_RptConfigFile.FileFolderSize + ret.SampleDataList[idx].itemVal.ToString()); string sscaptionname16 = table["sscaptionname16"].ToString(); string sscaptionname18 = table["sscaptionname18"].ToString(); list_partsize.Insert(0, sscaptionname16);//全部 list_partsize.Insert(1, sscaptionname18);//自定义 ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal = list_partsize[0]; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].comboDownList = list_partsize; m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[idx].itemVal.ToString(); } //粒级 if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS) { switch (sel) { case 0: //strlist = strlist.Replace("11,", "").Replace("12,", ""); list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11 list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12 break; case 1: //if (!strlist.Contains(",11,")) //{ // strlist = strlist + "11,12,"; //} if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)) { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11 list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12 } ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].bReadOnly = false; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].itemVal = "0"; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].bReadOnly = false; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].itemVal = "0"; break; default: //if (!strlist.Contains(",11,")) //{ // strlist = strlist + "11,12,"; //} if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)) { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN);//11 list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX);//12 } string[] v = ret.SampleDataList[5].itemVal.ToString().Split('~'); ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].bReadOnly = true; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN)].itemVal = v[0]; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].bReadOnly = true; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX)].itemVal = v[1]; break; } } //尺寸计算法 if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE) { } //ret.TSampleParam.sSampleTitleName = strlist; ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item; ret = FilterData(ret); return ret; } /// /// /// /// /// /// public int GetSampleIndexByPropItemName(List in_list_sampledata, OTS_REPORT_PROP_GRID_ITEMS in_orpgi) { for (int i = 0; i < in_list_sampledata.Count; i++) { if (in_list_sampledata[i].iItemId == in_orpgi) { return i; } } return -1; } /// /// SourceGrid,Grid表格部份组合各项方法 /// /// /// /// /// public OTSSampleMeaInfo ChangeSouceGrid_Grid(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel) { OTSSampleMeaInfo ret = new OTSSampleMeaInfo(); ret = m_ReportApp.SourceGridDataList[1]; //string strlist = ret.TSampleParam.sSampleTitleName; List list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items; //测量结果数据 if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE) { if (val.Contains("+")) { //ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].bReadOnly = true; //ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = ret.SampleDataList[1].comboDownList[0]; ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].itemVal = val; } else { //ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].bReadOnly = false; DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val); int index = m_ReportApp.resultFilesList.IndexOf(resultFile); m_ReportApp.WorkingResult = index; } } //数据类型 if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE) { } //数据表类型 if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE) { switch (sel) { case 2://颗粒成份 //if (!strlist.Contains(",13,")) //{ // strlist = strlist + "13,"; //} if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13 { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE); } list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9 break; case 4://颗粒尺寸分布 //if (!strlist.Contains(",9,")) //{ // strlist = strlist + "9,"; //} //if (!strlist.Contains(",13,")) //{ // strlist = strlist + "13,"; //} if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9 { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE); } if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13 { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE); } break; default://其它Grid模块不需要,粒级表和尺寸计算法 //strlist = strlist.Replace("9,", ""); //strlist = strlist.Replace("13,", ""); list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE);//9 //list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE);//13 break; } } //颗粒粒级表 if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE) { m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal.ToString(); } //尺寸计算方法 if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE) { } //ret.TSampleParam.sSampleTitleName = strlist; ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item; ret = FilterData(ret); return ret; } /// /// SourceGrid,Chart图表部份组合各项方法 /// /// /// /// /// public OTSSampleMeaInfo ChangeSouceGrid_Chart(OTS_REPORT_PROP_GRID_ITEMS typ, string val, int sel) { OTSSampleMeaInfo ret = new OTSSampleMeaInfo(); ret = m_ReportApp.SourceGridDataList[2]; //string strlist = ret.TSampleParam.sSampleTitleName; List list_showgrid_item = ret.TSampleParam.List_ShowGrid_Items; //测量结果数据 if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE) { if (val.Contains("+")) { //ret.SampleDataList[1].bReadOnly = true; //ret.SampleDataList[1].itemVal = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE)].comboDownList[0]; ret.SampleDataList[0].itemVal = val; } else { //ret.SampleDataList[1].bReadOnly = false; DataOperation.Model.ResultFile resultFile = m_ReportApp.resultFilesList.Find(s => s.FileName == val); int index = m_ReportApp.resultFilesList.IndexOf(resultFile); m_ReportApp.WorkingResult = index; } } //数据类型 if (typ == OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE) { } //数据图类型 if (typ == OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE) { switch (sel) { case 4://三元相图 //if (!strlist.Contains(",13,") && !strlist.Contains(",15,")) //{ // strlist = strlist + "13,15,"; //} //else if (!strlist.Contains(",15,")) //{ // strlist = strlist + "15,"; //} if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE) && !list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE) && !list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)) { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE); list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE); list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15 } else if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE)) { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15 } break; case 3://颗粒尺寸分布图 //if (!strlist.Contains(",9,")) //{ // strlist = strlist + "9,"; //} //if (!strlist.Contains(",13,")) //{ // strlist = strlist + "13,"; //} //if (strlist.Contains(",15,")) //{ // strlist = strlist.Replace("15,", ""); //} if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE))//9 { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE); } if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13 { list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE); } if (list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE))//15 { list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE); } break; default: //if (!list_showgrid_item.Contains(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE))//13 //{ // list_showgrid_item.Add(OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE); //} list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE); list_showgrid_item.Remove(OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);//15 break; } } //三元相图模板 if (typ == OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE) { } //颗粒种类 if (typ == OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE) { } //颗粒粒级表 if (typ == OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE) { m_ReportApp.m_RptConfigFile.PartSizeFile = ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].itemVal.ToString(); } //尺寸计算方法 if (typ == OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE) { } //ret.TSampleParam.sSampleTitleName = strlist; ret.TSampleParam.List_ShowGrid_Items = list_showgrid_item; ret = FilterData(ret); return ret; } /// /// 按照枚举字符串,过滤Source掉不显示的项 /// /// /// private OTSSampleMeaInfo FilterData(OTSSampleMeaInfo source) { OTSSampleMeaInfo ret = new OTSSampleMeaInfo(); ret.TabIndex = source.TabIndex; //ret.TSampleParam.sSampleTitleName = source.TSampleParam.sSampleTitleName; //string havestr = source.TSampleParam.sSampleTitleName; //for (int i = 0; i < source.SampleDataList.Count; i++) //{ // if (havestr.Contains(((int)source.SampleDataList[i].iItemId).ToString())) // { // ret.SampleDataList.Add(source.SampleDataList[i]); // } //} //new List list_shogrid_items = source.TSampleParam.List_ShowGrid_Items; for (int i = 0; i < source.SampleDataList.Count; i++) { if (list_shogrid_items.Contains(source.SampleDataList[i].iItemId)) { ret.SampleDataList.Add(source.SampleDataList[i]); } } return ret; } /// /// 获取sourceGrid数据 /// /// /// public bool GetWorkSamplePropertyVal(ref OTSSampleMeaInfo SMeasureInfo) { int tabindex = (int)m_ReportApp.m_PropWindow.tabIndex; if (m_ReportApp.WorkingResult == -1) { return false; } if (m_ReportApp.SourceGridData.SampleDataList.Count > 0) { OTSSampleMeaInfo a = m_ReportApp.SourceGridData; //if (a.TSampleParam.sSampleTitleName == null) //{ // a.TSampleParam.sSampleTitleName = m_ReportApp.SourceGridDataListLog[a.TabIndex].TSampleParam.sSampleTitleName; //} //new if (a.TSampleParam.List_ShowGrid_Items == null) { a.TSampleParam.List_ShowGrid_Items = m_ReportApp.SourceGridDataListLog[a.TabIndex].TSampleParam.List_ShowGrid_Items; } m_ReportApp.SourceGridDataListLog[a.TabIndex] = a; OTSSampleMeaInfo b = m_ReportApp.SourceGridDataListLog[tabindex]; SMeasureInfo = FilterData(b); m_ReportApp.SourceGridData = SMeasureInfo; } else { OTSSampleMeaInfo data = new OTSSampleMeaInfo(); data.TabIndex = 0; //data.TSampleParam.sSampleTitleName = ",0,2,3,7,9,10,13,"; data.TSampleParam.List_ShowGrid_Items = new List { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE,//2 OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE,//3 OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE,//7 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE,//9 OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS,//10 OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13 data.SampleDataList = GetSourceGridData(0); m_ReportApp.SourceGridDataList.Add(data); m_ReportApp.SourceGridDataListLog.Add(data); OTSSampleMeaInfo data1 = new OTSSampleMeaInfo(); data1.TabIndex = 1; //data1.TSampleParam.sSampleTitleName = ",0,1,5,"; data1.TSampleParam.List_ShowGrid_Items = new List { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1 OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE};//5 data1.SampleDataList = GetSourceGridData(1); m_ReportApp.SourceGridDataList.Add(data1); m_ReportApp.SourceGridDataListLog.Add(data1); OTSSampleMeaInfo data2 = new OTSSampleMeaInfo(); data2.TabIndex = 2; //data2.TSampleParam.sSampleTitleName = ",0,1,6,"; data2.TSampleParam.List_ShowGrid_Items = new List { OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE,//0 OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE,//1 OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE }; //,//6 //OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE};//13 data2.SampleDataList = GetSourceGridData(2); m_ReportApp.SourceGridDataList.Add(data2); m_ReportApp.SourceGridDataListLog.Add(data2); switch (tabindex) { case 0: SMeasureInfo = FilterData(data); break; case 1: SMeasureInfo = FilterData(data1); break; case 2: SMeasureInfo = FilterData(data2); break; } m_ReportApp.SourceGridData = SMeasureInfo; } return true; } #endregion #region [测量结果treeview]相关封装方法 /// /// 获取测量结果treeview树测量结果名 /// /// public string GetSampleName() { //获取样品名 String sWorkSampleName = m_ReportApp.resultFilesList[m_ReportApp.WorkingResult].FileName; if (null == sWorkSampleName) { return ""; } return sWorkSampleName; } #endregion #region 自定义方法相关 /// /// 显示默认图表 /// public void ShowsTheDefaultPic() { try { if (m_ReportApp.resultFilesList.Count > 0) { m_ReportApp.m_PropWindow.m_SampleGrid.ShowDataDiagram((int)m_ReportApp.m_PropWindow.tabIndex); } } catch (Exception ex) { //日记记录 string str = ex.ToString(); } } #endregion } }