| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999 | using OTSCLRINTERFACE;using OTSIncAReportApp.OTSSampleReportInfo;using OTSIncAReportApp.SysMgrTools;using OTSModelSharp.ResourceManage;using System;using System.Collections;using System.Collections.Generic;using System.Data;using System.IO;using System.Linq;using System.Xml;namespace OTSIncAReportApp.OTSDataMgrFunction{    /// <summary>    /// 框架与底层进行交互的操作类    /// </summary>    public class DataMgrFun    {        #region 变量定义        /// 报告文件操作类        /// </summary>        public CReportMgrClr m_ReportMgr = null;        /// <summary>        /// 报告主进程框架对象        /// </summary>        private frmReportApp m_ReportApp = null;        #endregion        #region 构造函数        /// <summary>        /// 构造函数        /// </summary>        /// <param name="ReportApp"></param>        public DataMgrFun(frmReportApp ReportApp)        {            m_ReportApp = ReportApp;            Language lan = new Language();            table = lan.GetNameTable("DataMgrFun");            if (null == m_ReportMgr)            {                //初始化相关变量                m_ReportMgr = new CReportMgrClr();            }            //m_pRptParamFileMgr = new CRptParamFileMgrClr();            //m_pRptParamFileMgr.SetRptParamFile(m_ReportProjFileMgr.GetRptParamFileClr());        }        //国际化存储信息        Hashtable table;        #endregion        #region 获取组合项相关方法        /// <summary>        /// 根据系统设置的默认粒级表路径,获取所有的粒级表文件List        /// </summary>        /// <returns></returns>        public List<string> GetPartSizeFileList()        {            List<string> ret_list = new List<string>();            //遍历粒级文件夹            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;        }        /// <summary>        /// 根据系统设置默认的粒级表的路径,获取粒级表List        /// </summary>        /// <param name="path"></param>        /// <returns></returns>        public List<string> 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<string> sizeList = new List<string>();            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;        }        /// <summary>        /// 根据传入的粒级表目录,获取粒级表List        /// </summary>        /// <returns></returns>        public List<string> GetPartSizeList(string path)        {            DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(path);            string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();            List<string> sizeList = new List<string>();            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;        }        /// <summary>        /// 获取三元相图模板名称列表        /// </summary>        /// <returns></returns>        public List<string> GetTriTemplateNameList()        {            string pathtpf = m_ReportApp.m_RptConfigFile.FileFolderTrigTemp + m_ReportApp.m_RptConfigFile.TriTempFile;            List<string> ret_list = new List<string>();            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;        }        /// <summary>        /// 获取测量结果名称列表        /// </summary>        /// <returns></returns>        public List<string> GetSampleListName()        {            List<string> ret_list = new List<string>();            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;        }        /// <summary>        /// 获取计算方法列表        /// </summary>        /// <returns></returns>        public List<string> GetSizeCalMethodTypeList()        {            List<string> ret_list = new List<string>() { "DMAX", "DMIN", "Area", "FERET" };            return ret_list;        }        /// <summary>        /// 数据类型,全部颗粒,分析颗粒        /// </summary>        /// <returns></returns>        public List<string> GetDataSourceTypeList()        {            string sscaptionname23 = table["sscaptionname23"].ToString();            string sscaptionname24 = table["sscaptionname24"].ToString();            List<string> ret_list = new List<string>() { sscaptionname23, sscaptionname24 };            return ret_list;        }        #endregion        #region [属性选项Grid窗体]相关封装方法        /// <summary>        /// 界面显示Grid        /// </summary>        /// <param name="tbindex"></param>        /// <param name="iItemId"></param>        /// <param name="number"></param>        /// <param name="iItemValType"></param>        /// <param name="bReadOnly"></param>        /// <param name="itemVal"></param>        /// <param name="comboDownList"></param>        /// <returns></returns>        private SampleData NewGridData(int tbindex, OTS_REPORT_PROP_GRID_ITEMS iItemId, int number, OTS_ITEM_TYPES iItemValType, bool bReadOnly, object itemVal, List<string> comboDownList)        {            string text = "";            string des = "";            string downlist = "";            OTSDataType.XmlResourceData.GetInstance().GetStringByKey(tbindex, number, ref text, ref des, ref downlist);            SampleData sampleData = new SampleData();            sampleData.iItemId = iItemId;            sampleData.sSCaptionName = text;            sampleData.iItemValType = iItemValType;            sampleData.bReadOnly = bReadOnly;            sampleData.sDescriptionInfo = des;            if (comboDownList.Count == 0)            {                List<string> liststr = new List<string>();                if (downlist != "")                {                    string[] arrTemp = downlist.Split(',');                    for (int i = 0; i < arrTemp.Count(); i++)                    {                        liststr.Add(arrTemp[i]);                    }                    sampleData.itemVal = liststr[0];                    sampleData.comboDownList = liststr;                }                else                {                    sampleData.itemVal = "0";                    sampleData.comboDownList = liststr;                }            }            else            {                sampleData.itemVal = itemVal;                sampleData.comboDownList = comboDownList;            }            return sampleData;        }        /// <summary>        /// 从报告程序的xml文档中读取数据并生成list<datatabl>表格        /// </summary>        private List<DataTable> LoadStringFromXml()        {            List<DataTable> ResourceDataTables = new List<DataTable>();            XmlDocument xml = new XmlDocument();            xml.Load(".\\Resources\\XMLData\\LanguageDefine.xml");            XmlNode root = xml.SelectSingleNode("Language");            XmlNode root2 = root.SelectSingleNode("DefaultLanguage");            string ss = root2.InnerText;            XmlDocument doc1 = new XmlDocument();            if (ss == "EN")            {                doc1.Load(".\\Resources\\XMLData\\ResourceForCpp\\ResourceForReport-EN.xml");//载入xml文件            }            else if (ss == "ZH")            {                doc1.Load(".\\Resources\\XMLData\\ResourceForCpp\\ResourceForReport-ZH.xml");//载入xml文件            }            root = doc1.SelectSingleNode("XMLData");            root2 = root.SelectSingleNode("collection");            XmlNodeList childlist = root2.ChildNodes;            DataTable dataTable = new DataTable();            dataTable.Columns.Add("grpKey");            dataTable.Columns.Add("text");            dataTable.Columns.Add("description");            for (int i = 0; i < childlist.Count; i++)            {                DataRow dataRow = dataTable.NewRow();                if (childlist[i].Attributes["grpKey"] != null)                {                    dataRow["grpKey"] = childlist[i].Attributes["grpKey"].Value;                }                else                {                    dataRow["grpKey"] = "";                }                if (childlist[i].Attributes["text"] != null)                {                    dataRow["text"] = childlist[i].Attributes["text"].Value;                }                else                {                    dataRow["text"] = "";                }                if (childlist[i].Attributes["description"] != null)                {                    dataRow["description"] = childlist[i].Attributes["description"].Value;                }                else                {                    dataRow["description"] = "";                }                dataTable.Rows.Add(dataRow);                DataTable dataTable1 = new DataTable();                dataTable1.TableName = "ResGrp" + i.ToString();                dataTable1.Columns.Add("itemKey");                dataTable1.Columns.Add("itemName");                dataTable1.Columns.Add("itemText");                dataTable1.Columns.Add("description");                XmlNodeList childlist2 = childlist[i].ChildNodes;                for (int j = 0; j < childlist2.Count; j++)                {                    DataRow dr = dataTable1.NewRow();                    dr["itemKey"] = childlist2[j].Attributes["itemKey"].Value;                    dr["itemName"] = childlist2[j].Attributes["itemName"].Value;                    dr["itemText"] = childlist2[j].Attributes["itemText"].Value;                    if (childlist2[j].Attributes["description"] != null)                    {                        dr["description"] = childlist2[j].Attributes["description"].Value;                    }                    else                    {                        dr["description"] = "";                    }                    dataTable1.Rows.Add(dr);                }                ResourceDataTables.Add(dataTable1);            }            ResourceDataTables.Insert(0, dataTable);            return ResourceDataTables;        }        /// <summary>        /// 初始化加载sourceGrid各项        /// </summary>        /// <param name="tbindex"></param>        /// <returns></returns>SampleData1        private List<SampleData> GetSourceGridData(int tbindex)        {            List<SampleData> list = new List<SampleData>();            if (tbindex == 0)//分布图页            {                //测量结果数据                List<string> list_source_str = GetSampleListName();                list.Add(NewGridData(tbindex, 0, ResourceID.Measurement_Result_Data_0, OTS_ITEM_TYPES.COMBO, false, list_source_str[m_ReportApp.WorkingResult], list_source_str));                //测量图类型  bse,颗粒分类图                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE, ResourceID.Type_Of_Survey_Drawing_0, OTS_ITEM_TYPES.COMBO, false, "", new List<string>() { }));                //测量图显示方式                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE, ResourceID.Display_mode_Of_Measurement_Diagram_0, OTS_ITEM_TYPES.COMBO, false, "", new List<string>() { }));                //颗粒类型                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.PARTICLE_TYPE, ResourceID.Particle_Type_0, OTS_ITEM_TYPES.COMBO, false, "", new List<string>() { }));                //粒级表                List<string> list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, ResourceID.Particle_Size_Table_0, OTS_ITEM_TYPES.COMBO, false, list_partsizelist[0], list_partsizelist));                //粒级                List<string> sizeList = GetPartSizeList();//获取粒级后额外增加全部,自定义,选项                sizeList.Insert(0, OTSDataType.XmlResourceData.GetInstance().GetStringByKey(tbindex, ResourceID.All_0));//全部                sizeList.Insert(1, OTSDataType.XmlResourceData.GetInstance().GetStringByKey(tbindex, ResourceID.custom_0));//自定义                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS, ResourceID.Particle_Size_0, OTS_ITEM_TYPES.COMBO, false, sizeList[0], sizeList));                //自定义最小                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MIN, ResourceID.Minimum_Particle_0, OTS_ITEM_TYPES.DOUBLE, false, "0", new List<string> { }));                //自定义最大                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_MAX, ResourceID.Maximum_Particle_0, OTS_ITEM_TYPES.DOUBLE, false, "0", new List<string> { }));                //测量数据                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.MEASURE_DATA_TYPE, ResourceID.measured_Data_0, OTS_ITEM_TYPES.COMBO, false, "", new List<string> { }));                //计算方式                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE, ResourceID.Dimension_Calculation_Method_0, OTS_ITEM_TYPES.COMBO, false, GetSizeCalMethodTypeList()[0], GetSizeCalMethodTypeList()));            }            else if (tbindex == 1)//Grid表格页            {                //测量结果数据                List<string> list_source_str = GetSampleListName();                list.Add(NewGridData(tbindex, 0, ResourceID.Measurement_Result_Data_1, OTS_ITEM_TYPES.COMBO, false, list_source_str[m_ReportApp.WorkingResult], list_source_str));                //数据类型                List<string> list_datasourcetypelist = GetDataSourceTypeList();                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE, ResourceID.data_type_1, OTS_ITEM_TYPES.COMBO, false, list_datasourcetypelist[0], list_datasourcetypelist));                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE, ResourceID.Data_Table_Type_1, OTS_ITEM_TYPES.COMBO, false, "", new List<string> { }));                //粒级表                List<string> list_partsizelist = GetPartSizeFileList();//从系统默认的路径中查找出所有的粒级表文件                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, ResourceID.Particle_Size_Table_1, OTS_ITEM_TYPES.COMBO, false, list_partsizelist[0], list_partsizelist));                //尺寸计算方法                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE, ResourceID.Dimension_Calculation_Method_1, OTS_ITEM_TYPES.COMBO, false, GetSizeCalMethodTypeList()[0], GetSizeCalMethodTypeList()));            }            else if (tbindex == 2)//Chart图页            {                //测量结果数据                List<string> list_source_str = GetSampleListName();                list.Add(NewGridData(tbindex, 0, ResourceID.Measurement_Result_Data_2, OTS_ITEM_TYPES.COMBO, false, list_source_str[m_ReportApp.WorkingResult], list_source_str));                //数据类型                List<string> list_datasourcetypelist = GetDataSourceTypeList();                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.DATA_SOURCE_TYPE, ResourceID.data_type_2, OTS_ITEM_TYPES.COMBO, false, list_datasourcetypelist[0], list_datasourcetypelist));                //数据图类型                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE, ResourceID.Data_Table_Type_2, OTS_ITEM_TYPES.COMBO, false, "", new List<string> { }));                //三元相图模板                List<string> trio_listname = GetTriTemplateNameList();                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE, ResourceID.Ternary_Phase_Diagram_2, OTS_ITEM_TYPES.COMBO, false, trio_listname.First(), trio_listname));                //粒级表                List<string> list_partsizelist = GetPartSizeFileList();                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE, ResourceID.Particle_Size_Table_2, OTS_ITEM_TYPES.COMBO, false, list_partsizelist[0], list_partsizelist));                //尺寸计算法                list.Add(NewGridData(tbindex, OTS_REPORT_PROP_GRID_ITEMS.SIZE_CAL_METHOD_TYPE, ResourceID.Dimension_Calculation_Method_2, OTS_ITEM_TYPES.COMBO, false, GetSizeCalMethodTypeList().First(), GetSizeCalMethodTypeList()));            }            return list;        }        /// <summary>        /// 分发SourceGrid,各选项值改变事件        /// </summary>        /// <param name="tbindex"></param>        /// <param name="typ"></param>        /// <param name="val"></param>        /// <param name="sel"></param>        /// <returns></returns>        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;        }        /// <summary>        /// SourceGrid,分析图页面组合各项方法        /// </summary>        /// <param name="typ"></param>        /// <param name="val"></param>        /// <param name="sel"></param>        /// <returns></returns>        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<OTS_REPORT_PROP_GRID_ITEMS> 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)].itemVal = val;                }                else                {                    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)            {            }            ////---------------------------------------------------------------            //测量图显示方式            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>(){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>(){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>(){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>(){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)//分析颗粒类型                {                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){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)//颗粒尺寸类型                {                    list_showgrid_item = new List<OTS_REPORT_PROP_GRID_ITEMS>(){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<string> list_partsize = GetPartSizeList(m_ReportApp.m_RptConfigFile.FileFolderSize + ret.SampleDataList[idx].itemVal.ToString());                List<string> list_partsizeChart = new List<string>();                for (int i = 0; i < ret.SampleDataList[idx].comboDownList.Count;i++)                    list_partsizeChart.Add(ret.SampleDataList[idx].comboDownList[i].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 = ret.SampleDataList[idx].itemVal.ToString();                ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS_TABLE)].comboDownList = list_partsizeChart;                ret.SampleDataList[GetSampleIndexByPropItemName(ret.SampleDataList, OTS_REPORT_PROP_GRID_ITEMS.GRAIN_SIZE_CLASS)].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:                        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 (!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 (!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;        }        /// <summary>        ///         /// </summary>        /// <param name="in_list_sampledata"></param>        /// <param name="in_orpgi"></param>        /// <returns></returns>        public int GetSampleIndexByPropItemName(List<SampleData> 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;        }        /// <summary>        /// SourceGrid,Grid表格部份组合各项方法        /// </summary>        /// <param name="typ"></param>        /// <param name="val"></param>        /// <param name="sel"></param>        /// <returns></returns>        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<OTS_REPORT_PROP_GRID_ITEMS> 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)].itemVal = val;                }                else                {                    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 (!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 (!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模块不需要,粒级表和尺寸计算法                                              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;        }        /// <summary>        /// SourceGrid,Chart图表部份组合各项方法        /// </summary>        /// <param name="typ"></param>        /// <param name="val"></param>        /// <param name="sel"></param>        /// <returns></returns>        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<OTS_REPORT_PROP_GRID_ITEMS> 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 (!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 (!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:                                           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;        }        /// <summary>        /// 按照枚举字符串,过滤Source掉不显示的项        /// </summary>        /// <param name="source"></param>        /// <returns></returns>        private OTSSampleMeaInfo FilterData(OTSSampleMeaInfo source)        {            OTSSampleMeaInfo ret = new OTSSampleMeaInfo();            ret.TabIndex = source.TabIndex;            //new            List<OTS_REPORT_PROP_GRID_ITEMS> 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;        }               /// <summary>        /// 获取sourceGrid数据        /// </summary>        /// <param name="SMeasureInfo"></param>        /// <returns></returns>        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> { 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> { 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> { 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]相关封装方法        /// <summary>        /// 获取测量结果treeview树测量结果名        /// </summary>        /// <returns></returns>        public string GetSampleName()        {            //获取样品名            String sWorkSampleName = m_ReportApp.resultFilesList[m_ReportApp.WorkingResult].FileName;            if (null == sWorkSampleName)            {                return "";            }            return sWorkSampleName;        }        #endregion        #region 自定义方法相关        /// <summary>        /// 显示默认图表        /// </summary>        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    }}
 |