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();
}
}
}