using CefSharp; using CefSharp.WinForms; using OTS.WinFormsUI.Docking; using OTSIncAReportApp.OTSDataMgrFunction; using OTSIncAReportApp.OTSRibbon; using OTSIncAReportApp.OTSSampleReportInfo; using OTSIncAReportApp.SysMgrTools; using OTSIncAReprotCharts; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Drawing; using System.Windows.Forms; namespace OTSIncAReportApp { /// /// 报告主窗体类 /// public partial class frmReportApp : Form { #region 共享窗体对象-------------------------------------------------------------------------------------- public frmMeasureRstMgr m_RstWindow = null; //测量结果,树控件窗体,属性Grid窗体 public frmMeasureRstProp m_PropWindow = null; //属性Grid窗体 public frmSampleImage m_SImageWindow = null; //BSE窗体 public frmCharts m_CChartsWindow = null; //图表窗体 public frmTables m_CTablesWindow = null; //报表窗体 public frmReportSysConfig m_ReportSysConfigForm; //配置参数窗体 #endregion //----------------------------------------------------------------------------------------------- #region 报告类结构相关------------------------------------------------------------------------------------ NLog.Logger log; const String m_csFileName = "OTSReportAppLog"; //日志文件名常量 public OutputNlog m_OutputNlog; //日志类对象 public DataMgrFun m_DataMgrFun = null; //DataMgrFun 对象, 此类是和调用C++ DataMGR交互数据 public OTSRibbonFun m_RibbonFun = null; //报告菜单相关操作类 public string m_OTSReportMgrParamFile = "\\Config\\SysData\\OTSReportMgrParam.rpf"; //报告对应使用的参数文件名 public int ResultFileId = 0; //测量结果ID public List resultFilesList = new List(); //测量结果列表 public DataOperation.Model.RptConfigFile m_RptConfigFile = new DataOperation.Model.RptConfigFile(); //报表程序的配置文件 public int WorkingResult = -1; //当前工作结果 public OTSSampleMeaInfo SourceGridData = new OTSSampleMeaInfo(); //当前SourceGrid public List SourceGridDataList = new List(); //所有模块的SourceGrid public List SourceGridDataListLog = new List(); //所有模块的SourceGrid使用记录 public List SelectedParticles = new List(); //所有选择颗粒 public DataTable OriginalPoint = new DataTable();//帧图位置point public string MoreSource = ""; Hashtable table; //国际化表 string[] m_str_resultfilepaths; #endregion //----------------------------------------------------------------------------------------------- #region EChart相关变量------------------------------------------------------------------------------------ //定义浏览器 public CefSharp.WinForms.ChromiumWebBrowser browser; public CefSharp.WinForms.ChromiumWebBrowser browsermore;//多测量结果对比时使用 public bool more = false; public bool trans = false; //定义浏览器 public CefSharp.WinForms.ChromiumWebBrowser browser_trio; public CefSharp.WinForms.ChromiumWebBrowser browser_triomore;//多测量结果对比时使用 public class JsEvent { public string MessageText { set; get; } public void ShowTest() { MessageBox.Show(MessageText); } } public JsEvent js = new JsEvent(); public string m_reportname; public string data; public string type; public bool timerKG; #endregion //------------------------------------------------------------------------------------------------ #region 各功能模块窗体 ----------------------------------------------------------------------------------- /// /// 颗粒分布图 /// public OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE im_Control_DrawDistrbutionImageAndBSE = null; /// /// 颗粒排序图 /// public OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage im_Control_DrawDistrbutionSortImage = null; /// /// 颗粒列表_分页 /// public OTSIncAReportGrids.ParticlesGridDevidePage im_ParticlesGridDevidePage = null; /// /// 颗粒成份分布表 /// public OTSIncAReportGrids.CompositionDistributionGrid im_CompositionDistributionGrid = null; /// /// 平均元素含量表 /// public OTSIncAReportGrids.ElementCompositionAvgGrid im_ElementCompositionAvgGrid = null; /// /// 元素含量表 /// public OTSIncAReportGrids.ElementContentGrid im_ElementContentGrid = null; /// /// 颗粒尺寸表 /// public OTSIncAReportGrids.ParticlesSizeGrid im_ParticlesSizeGrid = null; /// /// 测量结果概况 /// public OTSIncAReportGrids.ResultGrid im_ResultGrid = null; /// /// 颗粒成份图EChart /// public Control_ECharts.EChart_ParticlesComposition im_EChart_ParticlesComposition = null; /// /// 三元相图EChart /// public Control_ECharts.EChart_Trianglediagram im_EChart_Trianglediagram = null; /// /// 国标信息表方法一 /// public OTSIncAReportGB.ChineseStandardABCDDS im_ChineseStandardABCDDS = null; /// /// 国标信息表方法二 /// public OTSIncAReportGB.NationalStandardMethodTwo im_NationalStandardMethodTwo = null; /// /// 美标 /// public OTSIncAReportGB.ASTMStandardABCDDS im_ASTMStandardABCDDS = null; /// /// 德标 /// public OTSIncAReportGB.DINStandardABCDDS im_DINStandardABCDDS = null; #endregion //-------------------------------------------------------------------------------------------- #region 窗体初始化及构造函数 /// /// 窗体构造函数 /// public frmReportApp() { InitializeComponent(); m_OutputNlog = new OutputNlog(); m_OutputNlog.Visible = true; //树窗口 m_RstWindow = new frmMeasureRstMgr(this); //属性窗口 m_PropWindow = new frmMeasureRstProp(this); //分布图,排列图窗体 m_SImageWindow = new frmSampleImage(this); //chart图表窗体 m_CChartsWindow = new frmCharts(this); //grid表格窗体 m_CTablesWindow = new frmTables(this); //初始化Ribbon类,操作Ribbon按钮的可用或者不可用 m_RibbonFun = new OTSRibbonFun(this); //和DataMgr进行数据交互类 m_DataMgrFun = new DataMgrFun(this); //配置文件管理窗体 m_ReportSysConfigForm = new frmReportSysConfig(this); SetTag(); #region 国际化语言 Language lan = new Language(this); table = lan.GetNameTable(this.Name); #endregion } /// /// 为生成后没有Name的控件添加标签,为了国际化语言设置时可以找到这个控件 /// protected void SetTag() { ribbonPanel3.Tag = "ribbonPanel3"; ribbonPanel2.Tag = "ribbonPanel2"; rbSelTool.Tag = "rbSelTool"; rbChoiceTools.Tag = "rbChoiceTools"; ribbonTab1.Tag = "ribbonTab1"; rbMenu.Tag = "rbMenu"; dpbOpen.Tag = "dpbOpen"; dpbExport.Tag = "dpbExport"; dpbCopy.Tag = "dpbCopy"; dpbCopyAll.Tag = "dpbCopyAll"; ribbonOrbOptionButton1.Tag = "ribbonOrbOptionButton1"; } /// /// 窗体构造函数,可接收多个测量结果文件 /// public frmReportApp(string[] str_resultfilepaths) { m_str_resultfilepaths = str_resultfilepaths; InitializeComponent(); m_OutputNlog = new OutputNlog(); m_OutputNlog.Visible = true; //树窗口 m_RstWindow = new frmMeasureRstMgr(this); //属性窗口 m_PropWindow = new frmMeasureRstProp(this); //初始化图形组件中返回的颗粒列表对象 SelectedParticles = new List(); //分布图,排列图窗体 m_SImageWindow = new frmSampleImage(this); //chart图表窗体 m_CChartsWindow = new frmCharts(this); //grid表格窗体 m_CTablesWindow = new frmTables(this); //初始化Ribbon类,操作Ribbon按钮的可用或者不可用 m_RibbonFun = new OTSRibbonFun(this); //和DataMgr进行数据交互类 m_DataMgrFun = new DataMgrFun(this);//必须放在new frmReportSysConfig(this)前 //配置文件管理窗体 m_ReportSysConfigForm = new frmReportSysConfig(this); SetTag(); #region 国际化语言 Language lan = new Language(this); table = lan.GetNameTable(this.Name); #endregion } /// /// 报告主窗体加载事件 /// /// /// private void OTSReportApp_Load(object sender, EventArgs e) { log = NLog.LogManager.GetCurrentClassLogger(); if (Cef.IsInitialized == false) { var settings = new CefSettings(); settings.Locale = "zh-CN"; settings.CefCommandLineArgs.Add("disable-gpu", "1"); Cef.Initialize(settings); } //加载配置文件 string pathe = Application.StartupPath + m_OTSReportMgrParamFile; DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(pathe); m_RptConfigFile.FileFolderSize = ds.Tables[0].Rows[0]["FileFolderSize"].ToString(); m_RptConfigFile.FileFolderTrigTemp = ds.Tables[0].Rows[0]["FileFolderTrigTemp"].ToString(); m_RptConfigFile.Scale = ds.Tables[0].Rows[0]["Scale"].ToString(); m_RptConfigFile.PartSizeFile = ds.Tables[1].Rows[2]["Name"].ToString(); m_RptConfigFile.TriTempFile = ds.Tables[1].Rows[3]["Name"].ToString(); //设置菜单按钮,都为true状态 m_RibbonFun.SetAllRibbonButnStatu(false); //创建,树窗口,属性grid窗口,分布图,grid,chart窗体等。 CreateNewWorkspaceWindow(); //激活测量结果窗体 this.m_RstWindow.Activate(); //激活分布图窗体 this.m_SImageWindow.Activate(); if (m_str_resultfilepaths != null) { //构造函数直接接收传入的测量结果文件,并加载 for (int i = 0; i < m_str_resultfilepaths.Length; i++) { this.m_RstWindow.AddSampleClick(m_str_resultfilepaths[i].Replace("^", " ")); } } } #endregion #region Ribbon菜单按钮及菜单相关按按钮事件 /// /// 新建按钮事件 /// /// /// private void ribTitleNewFile_Click(object sender, EventArgs e) { InitReportProState(); } /// /// 初始伦报告加载 /// public void InitReportProState() { //清除树窗体 m_RstWindow.treeView1.Nodes.Clear(); //清除属性Grid m_PropWindow.m_SampleGrid = new SampleGrid(m_PropWindow); resultFilesList.Clear(); //清除各模块报表文件 m_CChartsWindow.Controls.Clear(); m_CTablesWindow.Controls.Clear(); m_SImageWindow.Controls.Clear(); //再重新初始化下拉菜单和ribbon菜单中的按钮状态 m_RibbonFun.SetAllRibbonButnStatu(false); im_Control_DrawDistrbutionImageAndBSE = null; im_Control_DrawDistrbutionSortImage = null; im_ParticlesGridDevidePage = null; im_CompositionDistributionGrid = null; im_ElementCompositionAvgGrid = null; im_ElementContentGrid = null; im_ParticlesSizeGrid = null; im_ResultGrid = null; } /// /// 程序管理按钮点击事件 /// /// /// private void RibbonOrbOptionButton1_Click(object sender, EventArgs e) { //程序管理 m_ReportSysConfigForm.ShowDialog(); } /// /// 打开报告项目文件按钮事件 /// /// /// private void rbOpen_Click(object sender, EventArgs e) { string path = ""; OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Filter = "文本文件|*.rst"; fileDialog.RestoreDirectory = true; if (fileDialog.ShowDialog() == DialogResult.OK) path = System.IO.Path.GetFullPath(fileDialog.FileName); this.m_RstWindow.AddSampleClick(path); } /// /// 模板导出按钮事件 /// /// /// private void rbOut_Click(object sender, EventArgs e) { OTSReport_Export oe = new OTSReport_Export(this); oe.ShowDialog(); } /// /// 全图匹配按钮事件 /// /// /// private void rbAllImage_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.FullGraphMate(); im_Control_DrawDistrbutionImageAndBSE.Invalidate(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { //排列图 } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 宽度匹配按钮事件 /// /// /// private void rbWidthImage_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.WidthMate(); im_Control_DrawDistrbutionImageAndBSE.Invalidate(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { //排列图 } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 帧图边框按钮事件 /// /// /// private void rbFrame_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.ShowGridLine(); im_Control_DrawDistrbutionImageAndBSE.Invalidate(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 标尺按钮事件 /// /// /// private void rbStaff_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.ShowRulerControl(); im_Control_DrawDistrbutionImageAndBSE.Invalidate(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { im_Control_DrawDistrbutionSortImage.ShowRulerControl(); im_Control_DrawDistrbutionSortImage.Invalidate(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 恢复按钮事件 /// /// /// private void rbRenew_Click(object sender, EventArgs e) { int tabIndex = (int)m_PropWindow.tabIndex; int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int DisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: if (DisType == (int)IMAGE_DISPLAY_TYPE.GENERAL) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.ShowRulerControl(false); im_Control_DrawDistrbutionImageAndBSE.ShowGridLine(false); im_Control_DrawDistrbutionImageAndBSE.Invalidate(); m_SImageWindow.Controls.Clear(); im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(this); im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill; m_SImageWindow.Controls.Add(im_Control_DrawDistrbutionImageAndBSE); m_SImageWindow.Activate(); im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = ""; im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(SourceGridData); im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(SelectedParticles); //并删除排列图 im_Control_DrawDistrbutionSortImage = null; } } if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID) { if (im_Control_DrawDistrbutionSortImage != null) { //排序图 im_Control_DrawDistrbutionSortImage.ShowRulerControl(false); im_Control_DrawDistrbutionSortImage.Invalidate(); m_SImageWindow.Controls.Clear(); im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(this); im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill; m_SImageWindow.Controls.Add(im_Control_DrawDistrbutionSortImage); m_SImageWindow.Activate(); im_Control_DrawDistrbutionSortImage.ShowSourceName = ""; im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(SourceGridData); im_Control_DrawDistrbutionSortImage.SetSelectParticle(SelectedParticles); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 反选操作按钮事件 /// /// /// private void rbReverseSelection_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.ReverSeSelection(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { im_Control_DrawDistrbutionSortImage.ReverSeSelection(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 圆形工具按钮事件 /// /// /// private void rbCircular_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.MultiSelect_Ellipse(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { im_Control_DrawDistrbutionSortImage.MultiSelect_Ellipse(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 矩形工具按钮事件 /// /// /// private void rbRectangle_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.MultiSelect_Rectangle(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { im_Control_DrawDistrbutionSortImage.MultiSelect_Rectangle(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } /// /// 取消多边形选择工具按钮事件 /// /// /// private void rbCancel_Click(object sender, EventArgs e) { int tabIndex = (int)(m_PropWindow.tabIndex); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE); int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); if (imgDisType == 0)// oper_module == "颗粒分布图" { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.DeselectAllParticle(); } } else { if (im_Control_DrawDistrbutionSortImage != null) { im_Control_DrawDistrbutionSortImage.DeselectAllParticle(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: break; case (int)DisplayPicutureType.AnalyzeDataChart: break; default: break; } } #endregion #region 自定义封装相关方法 /// /// 新建一个工作区域 /// public void CreateNewWorkspaceWindow() { //Show BSE图窗口 CreateSampleWindow(); //创建测量数据窗口 CreateCTablesWindow(); //创建图表窗口 CreateChartsWindow(); m_OutputNlog = new OutputNlog(); m_OutputNlog.Show(DockWindowPanel, OTS.WinFormsUI.Docking.DockState.DockRight); m_OutputNlog.Visible = true; m_RstWindow.Show(DockWindowPanel, OTS.WinFormsUI.Docking.DockState.DockLeft); m_PropWindow.Show(DockWindowPanel); DockWindowPanel.DockLeftPortion = 300; DockWindowPanel.DockRightPortion = 351; } /// /// 创建新的窗体 /// /// /// /// //private OTS.WinFormsUI.Docking.DockContent CreateNewDocument(OTS.WinFormsUI.Docking.DockContent WorkWindow, DisplayPicutureType iType) //{ // string text = ""; // if (iType == DisplayPicutureType.AnalyzeImg) // { // text = "分析图"; // } // else if (iType == DisplayPicutureType.AnalyzeDataTable) // { // text = "分析数据表"; // } // else if (iType == DisplayPicutureType.AnalyzeDataChart) // { // text = "分析数据图"; // } // WorkWindow.Text = text; // return WorkWindow; //} /// /// 创建样品BSE图窗口 /// public void CreateSampleWindow() { if (null == m_SImageWindow) { m_SImageWindow = new frmSampleImage(this); } //m_SImageWindow = (frmSampleImage)CreateNewDocument(m_SImageWindow, DisplayPicutureType.AnalyzeImg); if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi) { m_SImageWindow.MdiParent = this; m_SImageWindow.Show(); } else { m_SImageWindow.Show(DockWindowPanel); } } /// /// 创建Grid表格窗体 /// private void CreateCTablesWindow() { if (null == m_CTablesWindow) { m_CTablesWindow = new frmTables(this); } //m_CTablesWindow = (frmTables)CreateNewDocument(m_CTablesWindow, DisplayPicutureType.AnalyzeDataTable); if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi) { m_CTablesWindow.MdiParent = this; m_CTablesWindow.Show(); } else { m_CTablesWindow.Show(DockWindowPanel); } } /// /// 创建chart图表窗体 /// private void CreateChartsWindow() { if (null == m_CChartsWindow) { m_CChartsWindow = new frmCharts(this); } //m_CChartsWindow = (frmCharts)CreateNewDocument(m_CChartsWindow, DisplayPicutureType.AnalyzeDataChart); if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi) { m_CChartsWindow.MdiParent = this; m_CChartsWindow.Show(); } else { m_CChartsWindow.Show(DockWindowPanel); } } /// /// 添加属性Grid相关数据 /// public void DisCurrentPicProperty() { OTSSampleMeaInfo SMInfo = new OTSSampleMeaInfo(); //获取工作样品属性 if (!m_DataMgrFun.GetWorkSamplePropertyVal(ref SMInfo)) { return; } //添加属性Grid相关数据 m_PropWindow.DisProperyWindow(SMInfo); } /// /// 新建样品时提示保存样品信息Messagebox /// /// public int ShowSaveInfoMsgBox() { //是否保存修改信息,保存样品信息提示 int iRev = (int)MessageBox.Show("是否保存修改信息", "信息提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning); if (iRev == (int)DialogResult.Yes) { return (int)MessageBoxRev.DIALOG_YES; } else if (iRev == (int)DialogResult.No) { return (int)MessageBoxRev.DIALOG_NO; } else { return (int)MessageBoxRev.DIALOG_CANCEL; } } #endregion #region 系统菜单相关功能 private void ribbonOrbMenuItem4_Click(object sender, EventArgs e) { MemoryManagementClass.FlushMemory(); //系统菜单,输出 OTSReport_Export oe = new OTSReport_Export(this); oe.ShowDialog(); oe.Dispose(); oe = null; MemoryManagementClass.FlushMemory(); } /// /// 复制 /// /// /// private void ribbonOrbMenuItem6_Click(object sender, EventArgs e) { int tabIndex = (int)m_PropWindow.tabIndex; //int imgDisType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString()); //int calTableType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString()); //int calChartType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString()); int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE); int DisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: //如果是分布图,排列图 if (DisType == (int)IMAGE_DISPLAY_TYPE.GENERAL) //oper_module == "颗粒分布图" { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.CopyToBitmap(); } } if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID) { if (im_Control_DrawDistrbutionSortImage != null) { //排列图 im_Control_DrawDistrbutionSortImage.CopyToBitmap(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: //如果是Grid表格 if (DisType == (int)CALCULATE_TABLE_TYPE.MEASURE_INFO) { if (im_ResultGrid != null) { //测量结果信息 im_ResultGrid.CopySelected(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO) { if (im_ParticlesGridDevidePage != null) { //颗粒列表 im_ParticlesGridDevidePage.CopySelected(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP) { if (im_CompositionDistributionGrid != null) { //成份分布表 im_CompositionDistributionGrid.CopySelected(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP) { if (im_ElementCompositionAvgGrid != null) { //平均元素含量表 im_ElementCompositionAvgGrid.CopySelected(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP) { if (im_ElementContentGrid != null) { //元素含量表 im_ElementContentGrid.CopySelected(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION) { if (im_ParticlesSizeGrid != null) { //颗粒尺寸表 im_ParticlesSizeGrid.CopySelected(); } } break; case (int)DisplayPicutureType.AnalyzeDataChart: //如果是Chart图表 if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_COMP) { //if (im_ParticalesCompositionChart != null) //{ // //颗粒成份图 // im_ParticalesCompositionChart.CopyToBitmap(); //} } if (DisType == (int)CALCULATE_CHART_TYPE.ELEMENT_COMP) { //if (im_ElementCompositionChart != null) //{ // //元素成份图 // im_ElementCompositionChart.CopyToBitmap(); //} } if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION) { //if (im_ParticalesSizeDistributionChart != null) //{ // //颗粒尺寸分布图 // im_ParticalesSizeDistributionChart.CopyToBitmap(); //} } if (DisType == (int)CALCULATE_CHART_TYPE.TRIO_CHART) { //if (im_Trianglediagram != null) //{ // //三角图 // im_Trianglediagram.CopyToBitmap(); //} } break; default: break; } } /// /// 复制全部 /// /// /// private void ribbonOrbMenuItem8_Click(object sender, EventArgs e) { int tabIndex = (int)m_PropWindow.tabIndex; int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE); int DisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString()); switch (tabIndex) { case (int)DisplayPicutureType.AnalyzeImg: if (DisType == (int)IMAGE_DISPLAY_TYPE.GENERAL) { if (im_Control_DrawDistrbutionImageAndBSE != null) { //分布图 im_Control_DrawDistrbutionImageAndBSE.CopyToBitmap(); } } if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID) { if (im_Control_DrawDistrbutionSortImage != null) { //排列图 im_Control_DrawDistrbutionSortImage.CopyToBitmap(); } } break; case (int)DisplayPicutureType.AnalyzeDataTable: if (DisType == (int)CALCULATE_TABLE_TYPE.MEASURE_INFO) { if (im_ResultGrid != null) { //测量结果信息 im_ResultGrid.CopyAll(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO) { if (im_ParticlesGridDevidePage != null) { //颗粒列表 im_ParticlesGridDevidePage.CopyAll(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP) { if (im_CompositionDistributionGrid != null) { //成份分布表 im_CompositionDistributionGrid.CopyAll(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP) { if (im_ElementCompositionAvgGrid != null) { //平均元素含量表 im_ElementCompositionAvgGrid.CopyAll(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP) { if (im_ElementContentGrid != null) { //元素含量表 im_ElementContentGrid.CopyAll(); } } if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION) { if (im_ParticlesSizeGrid != null) { //颗粒尺寸表 im_ParticlesSizeGrid.CopyAll(); } } break; case (int)DisplayPicutureType.AnalyzeDataChart: if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_COMP) { //if (im_ParticalesCompositionChart != null) //{ // //颗粒成份图 // im_ParticalesCompositionChart.CopyToBitmap(); //} } if (DisType == (int)CALCULATE_CHART_TYPE.ELEMENT_COMP) { //if (im_ElementCompositionChart != null) //{ // //元素成份图 // im_ElementCompositionChart.CopyToBitmap(); //} } if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION) { //if (im_ParticalesSizeDistributionChart != null) //{ // //颗粒尺寸分布图 // im_ParticalesSizeDistributionChart.CopyToBitmap(); //} } if (DisType == (int)CALCULATE_CHART_TYPE.TRIO_CHART) { //if (im_Trianglediagram != null) //{ // //三角图 // im_Trianglediagram.CopyToBitmap(); //} } break; default: break; } } private void frmReportApp_FormClosed(object sender, FormClosedEventArgs e) { Process.GetCurrentProcess().Kill(); this.Hide();//打开EChar图后,回收浏览器资源暂卡,为达到操作流畅性,先隐藏窗体再回收资源 this.Invoke(new Action(() => { if (Cef.IsInitialized) Cef.Shutdown(); })); } #endregion private void dpbOpen_Click(object sender, EventArgs e) { OpenProFile(); } /// /// 打开报告项目工程文件,封装方法 /// /// private bool OpenProFile() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Measure Project Files((*.prj)|*.prj"; openFileDialog.ValidateNames = true; openFileDialog.CheckPathExists = true; openFileDialog.CheckFileExists = true; openFileDialog.Multiselect = false; if (openFileDialog.ShowDialog() == DialogResult.OK) { string strFilePath = System.IO.Path.GetDirectoryName(openFileDialog.FileName); System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(strFilePath); foreach (System.IO.DirectoryInfo directory in folder.GetDirectories()) { foreach (System.IO.FileInfo file in directory.GetFiles("*.rst")) { this.m_RstWindow.AddSampleClick(file.FullName); } } return true; } else return false; } private void frmReportApp_FormClosing(object sender, FormClosingEventArgs e) { ServiceInterface.SemController sem = new ServiceInterface.SemController(); sem.DisConnect(); } } }