frmReportApp.cs 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251
  1. using CefSharp;
  2. using CefSharp.WinForms;
  3. using OTS.WinFormsUI.Docking;
  4. using OTSIncAReportApp.OTSDataMgrFunction;
  5. using OTSIncAReportApp.OTSRibbon;
  6. using OTSIncAReportApp.OTSSampleReportInfo;
  7. using OTSIncAReportApp.SysMgrTools;
  8. using OTSIncAReprotCharts;
  9. using System;
  10. using System.Collections;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Diagnostics;
  14. using System.Drawing;
  15. using System.Windows.Forms;
  16. namespace OTSIncAReportApp
  17. {
  18. /// <summary>
  19. /// 报告主窗体类
  20. /// </summary>
  21. public partial class frmReportApp : Form
  22. {
  23. #region 共享窗体对象--------------------------------------------------------------------------------------
  24. public frmMeasureRstMgr m_RstWindow = null; //测量结果,树控件窗体,属性Grid窗体
  25. public frmMeasureRstProp m_PropWindow = null; //属性Grid窗体
  26. public frmSampleImage m_SImageWindow = null; //BSE窗体
  27. public frmCharts m_CChartsWindow = null; //图表窗体
  28. public frmTables m_CTablesWindow = null; //报表窗体
  29. public frmReportSysConfig m_ReportSysConfigForm; //配置参数窗体
  30. #endregion //-----------------------------------------------------------------------------------------------
  31. #region 报告类结构相关------------------------------------------------------------------------------------
  32. NLog.Logger log;
  33. const String m_csFileName = "OTSReportAppLog"; //日志文件名常量
  34. public OutputNlog m_OutputNlog; //日志类对象
  35. public DataMgrFun m_DataMgrFun = null; //DataMgrFun 对象, 此类是和调用C++ DataMGR交互数据
  36. public OTSRibbonFun m_RibbonFun = null; //报告菜单相关操作类
  37. public string m_OTSReportMgrParamFile = "\\Config\\SysData\\OTSReportMgrParam.rpf"; //报告对应使用的参数文件名
  38. public int ResultFileId = 0; //测量结果ID
  39. public List<DataOperation.Model.ResultFile> resultFilesList = new List<DataOperation.Model.ResultFile>(); //测量结果列表
  40. public DataOperation.Model.RptConfigFile m_RptConfigFile = new DataOperation.Model.RptConfigFile(); //报表程序的配置文件
  41. public int WorkingResult = -1; //当前工作结果
  42. public OTSSampleMeaInfo SourceGridData = new OTSSampleMeaInfo(); //当前SourceGrid
  43. public List<OTSSampleMeaInfo> SourceGridDataList = new List<OTSSampleMeaInfo>(); //所有模块的SourceGrid
  44. public List<OTSSampleMeaInfo> SourceGridDataListLog = new List<OTSSampleMeaInfo>(); //所有模块的SourceGrid使用记录
  45. public List<DataOperation.Model.Particle> SelectedParticles = new List<DataOperation.Model.Particle>(); //所有选择颗粒
  46. public DataTable OriginalPoint = new DataTable();//帧图位置point
  47. public string MoreSource = "";
  48. Hashtable table; //国际化表
  49. string[] m_str_resultfilepaths;
  50. #endregion //-----------------------------------------------------------------------------------------------
  51. #region EChart相关变量------------------------------------------------------------------------------------
  52. //定义浏览器
  53. public CefSharp.WinForms.ChromiumWebBrowser browser;
  54. public CefSharp.WinForms.ChromiumWebBrowser browsermore;//多测量结果对比时使用
  55. public bool more = false;
  56. public bool trans = false;
  57. //定义浏览器
  58. public CefSharp.WinForms.ChromiumWebBrowser browser_trio;
  59. public CefSharp.WinForms.ChromiumWebBrowser browser_triomore;//多测量结果对比时使用
  60. public class JsEvent
  61. {
  62. public string MessageText { set; get; }
  63. public void ShowTest()
  64. {
  65. MessageBox.Show(MessageText);
  66. }
  67. }
  68. public JsEvent js = new JsEvent();
  69. public string m_reportname;
  70. public string data;
  71. public string type;
  72. public bool timerKG;
  73. #endregion //------------------------------------------------------------------------------------------------
  74. #region 各功能模块窗体 -----------------------------------------------------------------------------------
  75. /// <summary>
  76. /// 颗粒分布图
  77. /// </summary>
  78. public OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE im_Control_DrawDistrbutionImageAndBSE = null;
  79. /// <summary>
  80. /// 颗粒排序图
  81. /// </summary>
  82. public OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage im_Control_DrawDistrbutionSortImage = null;
  83. /// <summary>
  84. /// 颗粒列表_分页
  85. /// </summary>
  86. public OTSIncAReportGrids.ParticlesGridDevidePage im_ParticlesGridDevidePage = null;
  87. /// <summary>
  88. /// 颗粒成份分布表
  89. /// </summary>
  90. public OTSIncAReportGrids.CompositionDistributionGrid im_CompositionDistributionGrid = null;
  91. /// <summary>
  92. /// 平均元素含量表
  93. /// </summary>
  94. public OTSIncAReportGrids.ElementCompositionAvgGrid im_ElementCompositionAvgGrid = null;
  95. /// <summary>
  96. /// 元素含量表
  97. /// </summary>
  98. public OTSIncAReportGrids.ElementContentGrid im_ElementContentGrid = null;
  99. /// <summary>
  100. /// 颗粒尺寸表
  101. /// </summary>
  102. public OTSIncAReportGrids.ParticlesSizeGrid im_ParticlesSizeGrid = null;
  103. /// <summary>
  104. /// 测量结果概况
  105. /// </summary>
  106. public OTSIncAReportGrids.ResultGrid im_ResultGrid = null;
  107. /// <summary>
  108. /// 颗粒成份图EChart
  109. /// </summary>
  110. public Control_ECharts.EChart_ParticlesComposition im_EChart_ParticlesComposition = null;
  111. /// <summary>
  112. /// 三元相图EChart
  113. /// </summary>
  114. public Control_ECharts.EChart_Trianglediagram im_EChart_Trianglediagram = null;
  115. #endregion //--------------------------------------------------------------------------------------------
  116. #region 窗体初始化及构造函数
  117. /// <summary>
  118. /// 窗体构造函数
  119. /// </summary>
  120. public frmReportApp()
  121. {
  122. InitializeComponent();
  123. //m_ReportProjFileMgr = new OTSINTERFACE.COTSReportProjFileMgrClr();
  124. m_OutputNlog = new OutputNlog();
  125. m_OutputNlog.Visible = true;
  126. //树窗口
  127. m_RstWindow = new frmMeasureRstMgr(this);
  128. //属性窗口
  129. m_PropWindow = new frmMeasureRstProp(this);
  130. //分布图,排列图窗体
  131. m_SImageWindow = new frmSampleImage(this);
  132. //chart图表窗体
  133. m_CChartsWindow = new frmCharts(this);
  134. //grid表格窗体
  135. m_CTablesWindow = new frmTables(this);
  136. //初始化Ribbon类,操作Ribbon按钮的可用或者不可用
  137. m_RibbonFun = new OTSRibbonFun(this);
  138. //和DataMgr进行数据交互类
  139. m_DataMgrFun = new DataMgrFun(this);
  140. //配置文件管理窗体
  141. m_ReportSysConfigForm = new frmReportSysConfig(this);
  142. SetTag();
  143. #region 国际化语言
  144. Language lan = new Language(this);
  145. table = lan.GetNameTable(this.Name);
  146. #endregion
  147. }
  148. /// <summary>
  149. /// 为生成后没有Name的控件添加标签,为了国际化语言设置时可以找到这个控件
  150. /// </summary>
  151. protected void SetTag()
  152. {
  153. ribbonPanel3.Tag = "ribbonPanel3";
  154. ribbonPanel2.Tag = "ribbonPanel2";
  155. rbSelTool.Tag = "rbSelTool";
  156. rbChoiceTools.Tag = "rbChoiceTools";
  157. ribbonTab1.Tag = "ribbonTab1";
  158. rbMenu.Tag = "rbMenu";
  159. dpbOpen.Tag = "dpbOpen";
  160. dpbExport.Tag = "dpbExport";
  161. dpbCopy.Tag = "dpbCopy";
  162. dpbCopyAll.Tag = "dpbCopyAll";
  163. ribbonOrbOptionButton1.Tag = "ribbonOrbOptionButton1";
  164. }
  165. /// <summary>
  166. /// 窗体构造函数,可接收多个测量结果文件
  167. /// </summary>
  168. public frmReportApp(string[] str_resultfilepaths)
  169. {
  170. m_str_resultfilepaths = str_resultfilepaths;
  171. InitializeComponent();
  172. m_OutputNlog = new OutputNlog();
  173. m_OutputNlog.Visible = true;
  174. //树窗口
  175. m_RstWindow = new frmMeasureRstMgr(this);
  176. //属性窗口
  177. m_PropWindow = new frmMeasureRstProp(this);
  178. //初始化图形组件中返回的颗粒列表对象
  179. SelectedParticles = new List<DataOperation.Model.Particle>();
  180. //分布图,排列图窗体
  181. m_SImageWindow = new frmSampleImage(this);
  182. //chart图表窗体
  183. m_CChartsWindow = new frmCharts(this);
  184. //grid表格窗体
  185. m_CTablesWindow = new frmTables(this);
  186. //初始化Ribbon类,操作Ribbon按钮的可用或者不可用
  187. m_RibbonFun = new OTSRibbonFun(this);
  188. //和DataMgr进行数据交互类
  189. m_DataMgrFun = new DataMgrFun(this);//必须放在new frmReportSysConfig(this)前
  190. //配置文件管理窗体
  191. m_ReportSysConfigForm = new frmReportSysConfig(this);
  192. SetTag();
  193. #region 国际化语言
  194. Language lan = new Language(this);
  195. table = lan.GetNameTable(this.Name);
  196. #endregion
  197. }
  198. /// <summary>
  199. /// 报告主窗体加载事件
  200. /// </summary>
  201. /// <param name="sender"></param>
  202. /// <param name="e"></param>
  203. private void OTSReportApp_Load(object sender, EventArgs e)
  204. {
  205. log = NLog.LogManager.GetCurrentClassLogger();
  206. if (Cef.IsInitialized == false)
  207. {
  208. var settings = new CefSettings();
  209. settings.Locale = "zh-CN";
  210. settings.CefCommandLineArgs.Add("disable-gpu", "1");
  211. Cef.Initialize(settings);
  212. }
  213. //加载配置文件
  214. string pathe = Application.StartupPath + m_OTSReportMgrParamFile;
  215. DataSet ds = DataOperation.DataAccess.XMLoperate.GetXml(pathe);
  216. m_RptConfigFile.FileFolderSize = ds.Tables[0].Rows[0]["FileFolderSize"].ToString();
  217. m_RptConfigFile.FileFolderTrigTemp = ds.Tables[0].Rows[0]["FileFolderTrigTemp"].ToString();
  218. m_RptConfigFile.Scale = ds.Tables[0].Rows[0]["Scale"].ToString();
  219. m_RptConfigFile.PartSizeFile = ds.Tables[1].Rows[2]["Name"].ToString();
  220. m_RptConfigFile.TriTempFile = ds.Tables[1].Rows[3]["Name"].ToString();
  221. //设置菜单按钮,都为true状态
  222. m_RibbonFun.SetAllRibbonButnStatu(false);
  223. //创建,树窗口,属性grid窗口,分布图,grid,chart窗体等。
  224. CreateNewWorkspaceWindow();
  225. //激活测量结果窗体
  226. this.m_RstWindow.Activate();
  227. //激活分布图窗体
  228. this.m_SImageWindow.Activate();
  229. if (m_str_resultfilepaths != null)
  230. {
  231. //构造函数直接接收传入的测量结果文件,并加载
  232. for (int i = 0; i < m_str_resultfilepaths.Length; i++)
  233. {
  234. this.m_RstWindow.AddSampleClick(m_str_resultfilepaths[i].Replace("^", " "));
  235. }
  236. }
  237. }
  238. #endregion
  239. #region Ribbon菜单按钮及菜单相关按按钮事件
  240. /// <summary>
  241. /// 新建按钮事件
  242. /// </summary>
  243. /// <param name="sender"></param>
  244. /// <param name="e"></param>
  245. private void ribTitleNewFile_Click(object sender, EventArgs e)
  246. {
  247. InitReportProState();
  248. }
  249. /// <summary>
  250. /// 初始伦报告加载
  251. /// </summary>
  252. public void InitReportProState()
  253. {
  254. //清除树窗体
  255. m_RstWindow.treeView1.Nodes.Clear();
  256. //清除属性Grid
  257. m_PropWindow.m_SampleGrid = new SampleGrid(m_PropWindow);
  258. resultFilesList.Clear();
  259. //清除各模块报表文件
  260. m_CChartsWindow.Controls.Clear();
  261. m_CTablesWindow.Controls.Clear();
  262. m_SImageWindow.Controls.Clear();
  263. //再重新初始化下拉菜单和ribbon菜单中的按钮状态
  264. m_RibbonFun.SetAllRibbonButnStatu(false);
  265. im_Control_DrawDistrbutionImageAndBSE = null;
  266. im_Control_DrawDistrbutionSortImage = null;
  267. im_ParticlesGridDevidePage = null;
  268. im_CompositionDistributionGrid = null;
  269. im_ElementCompositionAvgGrid = null;
  270. im_ElementContentGrid = null;
  271. im_ParticlesSizeGrid = null;
  272. im_ResultGrid = null;
  273. }
  274. /// <summary>
  275. /// 程序管理按钮点击事件
  276. /// </summary>
  277. /// <param name="sender"></param>
  278. /// <param name="e"></param>
  279. private void RibbonOrbOptionButton1_Click(object sender, EventArgs e)
  280. {
  281. //程序管理
  282. m_ReportSysConfigForm.ShowDialog();
  283. }
  284. /// <summary>
  285. /// 打开报告项目文件按钮事件
  286. /// </summary>
  287. /// <param name="sender"></param>
  288. /// <param name="e"></param>
  289. private void rbOpen_Click(object sender, EventArgs e)
  290. {
  291. string path = "";
  292. OpenFileDialog fileDialog = new OpenFileDialog();
  293. fileDialog.Filter = "文本文件|*.rst";
  294. fileDialog.RestoreDirectory = true;
  295. if (fileDialog.ShowDialog() == DialogResult.OK)
  296. path = System.IO.Path.GetFullPath(fileDialog.FileName);
  297. this.m_RstWindow.AddSampleClick(path);
  298. }
  299. /// <summary>
  300. /// 模板导出按钮事件
  301. /// </summary>
  302. /// <param name="sender"></param>
  303. /// <param name="e"></param>
  304. private void rbOut_Click(object sender, EventArgs e)
  305. {
  306. OTSReport_Export oe = new OTSReport_Export(this);
  307. oe.ShowDialog();
  308. }
  309. /// <summary>
  310. /// 全图匹配按钮事件
  311. /// </summary>
  312. /// <param name="sender"></param>
  313. /// <param name="e"></param>
  314. private void rbAllImage_Click(object sender, EventArgs e)
  315. {
  316. int tabIndex = (int)(m_PropWindow.tabIndex);
  317. switch (tabIndex)
  318. {
  319. case (int)DisplayPicutureType.AnalyzeImg:
  320. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  321. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  322. if (imgDisType == 0)
  323. {
  324. if (im_Control_DrawDistrbutionImageAndBSE != null)
  325. {
  326. //分布图
  327. im_Control_DrawDistrbutionImageAndBSE.FullGraphMate();
  328. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  329. }
  330. }
  331. else
  332. {
  333. if (im_Control_DrawDistrbutionSortImage != null)
  334. {
  335. //排列图
  336. }
  337. }
  338. break;
  339. case (int)DisplayPicutureType.AnalyzeDataTable:
  340. break;
  341. case (int)DisplayPicutureType.AnalyzeDataChart:
  342. break;
  343. default:
  344. break;
  345. }
  346. }
  347. /// <summary>
  348. /// 宽度匹配按钮事件
  349. /// </summary>
  350. /// <param name="sender"></param>
  351. /// <param name="e"></param>
  352. private void rbWidthImage_Click(object sender, EventArgs e)
  353. {
  354. int tabIndex = (int)(m_PropWindow.tabIndex);
  355. switch (tabIndex)
  356. {
  357. case (int)DisplayPicutureType.AnalyzeImg:
  358. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  359. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  360. if (imgDisType == 0)
  361. {
  362. if (im_Control_DrawDistrbutionImageAndBSE != null)
  363. {
  364. //分布图
  365. im_Control_DrawDistrbutionImageAndBSE.WidthMate();
  366. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  367. }
  368. }
  369. else
  370. {
  371. if (im_Control_DrawDistrbutionSortImage != null)
  372. {
  373. //排列图
  374. }
  375. }
  376. break;
  377. case (int)DisplayPicutureType.AnalyzeDataTable:
  378. break;
  379. case (int)DisplayPicutureType.AnalyzeDataChart:
  380. break;
  381. default:
  382. break;
  383. }
  384. }
  385. /// <summary>
  386. /// 帧图边框按钮事件
  387. /// </summary>
  388. /// <param name="sender"></param>
  389. /// <param name="e"></param>
  390. private void rbFrame_Click(object sender, EventArgs e)
  391. {
  392. int tabIndex = (int)(m_PropWindow.tabIndex);
  393. switch (tabIndex)
  394. {
  395. case (int)DisplayPicutureType.AnalyzeImg:
  396. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  397. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  398. if (imgDisType == 0)
  399. {
  400. if (im_Control_DrawDistrbutionImageAndBSE != null)
  401. {
  402. //分布图
  403. im_Control_DrawDistrbutionImageAndBSE.ShowGridLine();
  404. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  405. }
  406. }
  407. else
  408. {
  409. if (im_Control_DrawDistrbutionSortImage != null)
  410. {
  411. }
  412. }
  413. break;
  414. case (int)DisplayPicutureType.AnalyzeDataTable:
  415. break;
  416. case (int)DisplayPicutureType.AnalyzeDataChart:
  417. break;
  418. default:
  419. break;
  420. }
  421. }
  422. /// <summary>
  423. /// 标尺按钮事件
  424. /// </summary>
  425. /// <param name="sender"></param>
  426. /// <param name="e"></param>
  427. private void rbStaff_Click(object sender, EventArgs e)
  428. {
  429. int tabIndex = (int)(m_PropWindow.tabIndex);
  430. switch (tabIndex)
  431. {
  432. case (int)DisplayPicutureType.AnalyzeImg:
  433. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  434. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  435. if (imgDisType == 0)
  436. {
  437. if (im_Control_DrawDistrbutionImageAndBSE != null)
  438. {
  439. //分布图
  440. im_Control_DrawDistrbutionImageAndBSE.ShowRulerControl();
  441. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  442. }
  443. }
  444. else
  445. {
  446. if (im_Control_DrawDistrbutionSortImage != null)
  447. {
  448. im_Control_DrawDistrbutionSortImage.ShowRulerControl();
  449. im_Control_DrawDistrbutionSortImage.Invalidate();
  450. }
  451. }
  452. break;
  453. case (int)DisplayPicutureType.AnalyzeDataTable:
  454. break;
  455. case (int)DisplayPicutureType.AnalyzeDataChart:
  456. break;
  457. default:
  458. break;
  459. }
  460. }
  461. /// <summary>
  462. /// 恢复按钮事件
  463. /// </summary>
  464. /// <param name="sender"></param>
  465. /// <param name="e"></param>
  466. private void rbRenew_Click(object sender, EventArgs e)
  467. {
  468. int tabIndex = (int)m_PropWindow.tabIndex;
  469. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  470. int DisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  471. switch (tabIndex)
  472. {
  473. case (int)DisplayPicutureType.AnalyzeImg:
  474. if (DisType == (int)IMAGE_DISPLAY_TYPE.GENERAL)
  475. {
  476. if (im_Control_DrawDistrbutionImageAndBSE != null)
  477. {
  478. //分布图
  479. im_Control_DrawDistrbutionImageAndBSE.ShowRulerControl(false);
  480. im_Control_DrawDistrbutionImageAndBSE.ShowGridLine(false);
  481. im_Control_DrawDistrbutionImageAndBSE.Invalidate();
  482. m_SImageWindow.Controls.Clear();
  483. im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(this);
  484. im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
  485. m_SImageWindow.Controls.Add(im_Control_DrawDistrbutionImageAndBSE);
  486. m_SImageWindow.Activate();
  487. im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = "";
  488. im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(SourceGridData);
  489. im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(SelectedParticles);
  490. //并删除排列图
  491. im_Control_DrawDistrbutionSortImage = null;
  492. }
  493. }
  494. if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID)
  495. {
  496. if (im_Control_DrawDistrbutionSortImage != null)
  497. {
  498. //排序图
  499. im_Control_DrawDistrbutionSortImage.ShowRulerControl(false);
  500. im_Control_DrawDistrbutionSortImage.Invalidate();
  501. m_SImageWindow.Controls.Clear();
  502. im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(this);
  503. im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
  504. m_SImageWindow.Controls.Add(im_Control_DrawDistrbutionSortImage);
  505. m_SImageWindow.Activate();
  506. im_Control_DrawDistrbutionSortImage.ShowSourceName = "";
  507. im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(SourceGridData);
  508. im_Control_DrawDistrbutionSortImage.SetSelectParticle(SelectedParticles);
  509. }
  510. }
  511. break;
  512. case (int)DisplayPicutureType.AnalyzeDataTable:
  513. break;
  514. case (int)DisplayPicutureType.AnalyzeDataChart:
  515. break;
  516. default:
  517. break;
  518. }
  519. }
  520. /// <summary>
  521. /// 反选操作按钮事件
  522. /// </summary>
  523. /// <param name="sender"></param>
  524. /// <param name="e"></param>
  525. private void rbReverseSelection_Click(object sender, EventArgs e)
  526. {
  527. int tabIndex = (int)(m_PropWindow.tabIndex);
  528. switch (tabIndex)
  529. {
  530. case (int)DisplayPicutureType.AnalyzeImg:
  531. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  532. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  533. if (imgDisType == 0)
  534. {
  535. if (im_Control_DrawDistrbutionImageAndBSE != null)
  536. {
  537. //分布图
  538. im_Control_DrawDistrbutionImageAndBSE.ReverSeSelection();
  539. }
  540. }
  541. else
  542. {
  543. if (im_Control_DrawDistrbutionSortImage != null)
  544. {
  545. im_Control_DrawDistrbutionSortImage.ReverSeSelection();
  546. }
  547. }
  548. break;
  549. case (int)DisplayPicutureType.AnalyzeDataTable:
  550. break;
  551. case (int)DisplayPicutureType.AnalyzeDataChart:
  552. break;
  553. default:
  554. break;
  555. }
  556. }
  557. /// <summary>
  558. /// 圆形工具按钮事件
  559. /// </summary>
  560. /// <param name="sender"></param>
  561. /// <param name="e"></param>
  562. private void rbCircular_Click(object sender, EventArgs e)
  563. {
  564. int tabIndex = (int)(m_PropWindow.tabIndex);
  565. switch (tabIndex)
  566. {
  567. case (int)DisplayPicutureType.AnalyzeImg:
  568. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  569. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  570. if (imgDisType == 0)
  571. {
  572. if (im_Control_DrawDistrbutionImageAndBSE != null)
  573. {
  574. //分布图
  575. im_Control_DrawDistrbutionImageAndBSE.MultiSelect_Ellipse();
  576. }
  577. }
  578. else
  579. {
  580. if (im_Control_DrawDistrbutionSortImage != null)
  581. {
  582. im_Control_DrawDistrbutionSortImage.MultiSelect_Ellipse();
  583. }
  584. }
  585. break;
  586. case (int)DisplayPicutureType.AnalyzeDataTable:
  587. break;
  588. case (int)DisplayPicutureType.AnalyzeDataChart:
  589. break;
  590. default:
  591. break;
  592. }
  593. }
  594. /// <summary>
  595. /// 矩形工具按钮事件
  596. /// </summary>
  597. /// <param name="sender"></param>
  598. /// <param name="e"></param>
  599. private void rbRectangle_Click(object sender, EventArgs e)
  600. {
  601. int tabIndex = (int)(m_PropWindow.tabIndex);
  602. switch (tabIndex)
  603. {
  604. case (int)DisplayPicutureType.AnalyzeImg:
  605. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  606. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  607. if (imgDisType == 0)
  608. {
  609. if (im_Control_DrawDistrbutionImageAndBSE != null)
  610. {
  611. //分布图
  612. im_Control_DrawDistrbutionImageAndBSE.MultiSelect_Rectangle();
  613. }
  614. }
  615. else
  616. {
  617. if (im_Control_DrawDistrbutionSortImage != null)
  618. {
  619. im_Control_DrawDistrbutionSortImage.MultiSelect_Rectangle();
  620. }
  621. }
  622. break;
  623. case (int)DisplayPicutureType.AnalyzeDataTable:
  624. break;
  625. case (int)DisplayPicutureType.AnalyzeDataChart:
  626. break;
  627. default:
  628. break;
  629. }
  630. }
  631. /// <summary>
  632. /// 取消多边形选择工具按钮事件
  633. /// </summary>
  634. /// <param name="sender"></param>
  635. /// <param name="e"></param>
  636. private void rbCancel_Click(object sender, EventArgs e)
  637. {
  638. int tabIndex = (int)(m_PropWindow.tabIndex);
  639. switch (tabIndex)
  640. {
  641. case (int)DisplayPicutureType.AnalyzeImg:
  642. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
  643. int imgDisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  644. if (imgDisType == 0)// oper_module == "颗粒分布图"
  645. {
  646. if (im_Control_DrawDistrbutionImageAndBSE != null)
  647. {
  648. //分布图
  649. im_Control_DrawDistrbutionImageAndBSE.DeselectAllParticle();
  650. }
  651. }
  652. else
  653. {
  654. if (im_Control_DrawDistrbutionSortImage != null)
  655. {
  656. im_Control_DrawDistrbutionSortImage.DeselectAllParticle();
  657. }
  658. }
  659. break;
  660. case (int)DisplayPicutureType.AnalyzeDataTable:
  661. break;
  662. case (int)DisplayPicutureType.AnalyzeDataChart:
  663. break;
  664. default:
  665. break;
  666. }
  667. }
  668. #endregion
  669. #region 自定义封装相关方法
  670. /// <summary>
  671. /// 新建一个工作区域
  672. /// </summary>
  673. public void CreateNewWorkspaceWindow()
  674. {
  675. //Show BSE图窗口
  676. CreateSampleWindow();
  677. //创建测量数据窗口
  678. CreateCTablesWindow();
  679. //创建图表窗口
  680. CreateChartsWindow();
  681. m_OutputNlog = new OutputNlog();
  682. m_OutputNlog.Show(DockWindowPanel, OTS.WinFormsUI.Docking.DockState.DockRight);
  683. m_OutputNlog.Visible = true;
  684. m_RstWindow.Show(DockWindowPanel, OTS.WinFormsUI.Docking.DockState.DockLeft);
  685. m_PropWindow.Show(DockWindowPanel);
  686. DockWindowPanel.DockLeftPortion = 300;
  687. DockWindowPanel.DockRightPortion = 351;
  688. }
  689. /// <summary>
  690. /// 创建新的窗体
  691. /// </summary>
  692. /// <param name="WorkWindow"></param>
  693. /// <param name="iType"></param>
  694. /// <returns></returns>
  695. private OTS.WinFormsUI.Docking.DockContent CreateNewDocument(OTS.WinFormsUI.Docking.DockContent WorkWindow, DisplayPicutureType iType)
  696. {
  697. string text = "";
  698. if (iType == DisplayPicutureType.AnalyzeImg)
  699. {
  700. text = "分析图";
  701. }
  702. else if (iType == DisplayPicutureType.AnalyzeDataTable)
  703. {
  704. text = "分析数据表";
  705. }
  706. else if (iType == DisplayPicutureType.AnalyzeDataChart)
  707. {
  708. text = "分析数据图";
  709. }
  710. WorkWindow.Text = text;
  711. return WorkWindow;
  712. }
  713. /// <summary>
  714. /// 创建样品BSE图窗口
  715. /// </summary>
  716. public void CreateSampleWindow()
  717. {
  718. if (null == m_SImageWindow)
  719. {
  720. m_SImageWindow = new frmSampleImage(this);
  721. }
  722. m_SImageWindow = (frmSampleImage)CreateNewDocument(m_SImageWindow, DisplayPicutureType.AnalyzeImg);
  723. if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi)
  724. {
  725. m_SImageWindow.MdiParent = this;
  726. m_SImageWindow.Show();
  727. }
  728. else
  729. {
  730. m_SImageWindow.Show(DockWindowPanel);
  731. }
  732. }
  733. /// <summary>
  734. /// 创建Grid表格窗体
  735. /// </summary>
  736. private void CreateCTablesWindow()
  737. {
  738. if (null == m_CTablesWindow)
  739. {
  740. m_CTablesWindow = new frmTables(this);
  741. }
  742. m_CTablesWindow = (frmTables)CreateNewDocument(m_CTablesWindow, DisplayPicutureType.AnalyzeDataTable);
  743. if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi)
  744. {
  745. m_CTablesWindow.MdiParent = this;
  746. m_CTablesWindow.Show();
  747. }
  748. else
  749. {
  750. m_CTablesWindow.Show(DockWindowPanel);
  751. }
  752. }
  753. /// <summary>
  754. /// 创建chart图表窗体
  755. /// </summary>
  756. private void CreateChartsWindow()
  757. {
  758. if (null == m_CChartsWindow)
  759. {
  760. m_CChartsWindow = new frmCharts(this);
  761. }
  762. m_CChartsWindow = (frmCharts)CreateNewDocument(m_CChartsWindow, DisplayPicutureType.AnalyzeDataChart);
  763. if (DockWindowPanel.DocumentStyle == DocumentStyle.SystemMdi)
  764. {
  765. m_CChartsWindow.MdiParent = this;
  766. m_CChartsWindow.Show();
  767. }
  768. else
  769. {
  770. m_CChartsWindow.Show(DockWindowPanel);
  771. }
  772. }
  773. /// <summary>
  774. /// 添加属性Grid相关数据
  775. /// </summary>
  776. public void DisCurrentPicProperty()
  777. {
  778. OTSSampleMeaInfo SMInfo = new OTSSampleMeaInfo();
  779. //获取工作样品属性
  780. if (!m_DataMgrFun.GetWorkSamplePropertyVal(ref SMInfo))
  781. {
  782. return;
  783. }
  784. //添加属性Grid相关数据
  785. m_PropWindow.DisProperyWindow(SMInfo);
  786. }
  787. /// <summary>
  788. /// 新建样品时提示保存样品信息Messagebox
  789. /// </summary>
  790. /// <returns></returns>
  791. public int ShowSaveInfoMsgBox()
  792. {
  793. //是否保存修改信息,保存样品信息提示
  794. int iRev = (int)MessageBox.Show("是否保存修改信息", "信息提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
  795. if (iRev == (int)DialogResult.Yes)
  796. {
  797. return (int)MessageBoxRev.DIALOG_YES;
  798. }
  799. else if (iRev == (int)DialogResult.No)
  800. {
  801. return (int)MessageBoxRev.DIALOG_NO;
  802. }
  803. else
  804. {
  805. return (int)MessageBoxRev.DIALOG_CANCEL;
  806. }
  807. }
  808. #endregion
  809. #region 系统菜单相关功能
  810. private void ribbonOrbMenuItem4_Click(object sender, EventArgs e)
  811. {
  812. MemoryManagementClass.FlushMemory();
  813. //系统菜单,输出
  814. OTSReport_Export oe = new OTSReport_Export(this);
  815. oe.ShowDialog();
  816. oe.Dispose();
  817. oe = null;
  818. MemoryManagementClass.FlushMemory();
  819. }
  820. /// <summary>
  821. /// 复制
  822. /// </summary>
  823. /// <param name="sender"></param>
  824. /// <param name="e"></param>
  825. private void ribbonOrbMenuItem6_Click(object sender, EventArgs e)
  826. {
  827. int tabIndex = (int)m_PropWindow.tabIndex;
  828. //int imgDisType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString());
  829. //int calTableType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString());
  830. //int calChartType = SourceGridData.SampleDataList[2].comboDownList.IndexOf(SourceGridData.SampleDataList[2].itemVal.ToString());
  831. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
  832. int DisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  833. switch (tabIndex)
  834. {
  835. case (int)DisplayPicutureType.AnalyzeImg: //如果是分布图,排列图
  836. if (DisType == (int)IMAGE_DISPLAY_TYPE.GENERAL) //oper_module == "颗粒分布图"
  837. {
  838. if (im_Control_DrawDistrbutionImageAndBSE != null)
  839. {
  840. //分布图
  841. im_Control_DrawDistrbutionImageAndBSE.CopyToBitmap();
  842. }
  843. }
  844. if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID)
  845. {
  846. if (im_Control_DrawDistrbutionSortImage != null)
  847. {
  848. //排列图
  849. im_Control_DrawDistrbutionSortImage.CopyToBitmap();
  850. }
  851. }
  852. break;
  853. case (int)DisplayPicutureType.AnalyzeDataTable: //如果是Grid表格
  854. if (DisType == (int)CALCULATE_TABLE_TYPE.MEASURE_INFO)
  855. {
  856. if (im_ResultGrid != null)
  857. {
  858. //测量结果信息
  859. im_ResultGrid.CopySelected();
  860. }
  861. }
  862. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO)
  863. {
  864. if (im_ParticlesGridDevidePage != null)
  865. {
  866. //颗粒列表
  867. im_ParticlesGridDevidePage.CopySelected();
  868. }
  869. }
  870. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP)
  871. {
  872. if (im_CompositionDistributionGrid != null)
  873. {
  874. //成份分布表
  875. im_CompositionDistributionGrid.CopySelected();
  876. }
  877. }
  878. if (DisType == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP)
  879. {
  880. if (im_ElementCompositionAvgGrid != null)
  881. {
  882. //平均元素含量表
  883. im_ElementCompositionAvgGrid.CopySelected();
  884. }
  885. }
  886. if (DisType == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP)
  887. {
  888. if (im_ElementContentGrid != null)
  889. {
  890. //元素含量表
  891. im_ElementContentGrid.CopySelected();
  892. }
  893. }
  894. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  895. {
  896. if (im_ParticlesSizeGrid != null)
  897. {
  898. //颗粒尺寸表
  899. im_ParticlesSizeGrid.CopySelected();
  900. }
  901. }
  902. break;
  903. case (int)DisplayPicutureType.AnalyzeDataChart: //如果是Chart图表
  904. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_COMP)
  905. {
  906. //if (im_ParticalesCompositionChart != null)
  907. //{
  908. // //颗粒成份图
  909. // im_ParticalesCompositionChart.CopyToBitmap();
  910. //}
  911. }
  912. if (DisType == (int)CALCULATE_CHART_TYPE.ELEMENT_COMP)
  913. {
  914. //if (im_ElementCompositionChart != null)
  915. //{
  916. // //元素成份图
  917. // im_ElementCompositionChart.CopyToBitmap();
  918. //}
  919. }
  920. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  921. {
  922. //if (im_ParticalesSizeDistributionChart != null)
  923. //{
  924. // //颗粒尺寸分布图
  925. // im_ParticalesSizeDistributionChart.CopyToBitmap();
  926. //}
  927. }
  928. if (DisType == (int)CALCULATE_CHART_TYPE.TRIO_CHART)
  929. {
  930. //if (im_Trianglediagram != null)
  931. //{
  932. // //三角图
  933. // im_Trianglediagram.CopyToBitmap();
  934. //}
  935. }
  936. break;
  937. default:
  938. break;
  939. }
  940. }
  941. /// <summary>
  942. /// 复制全部
  943. /// </summary>
  944. /// <param name="sender"></param>
  945. /// <param name="e"></param>
  946. private void ribbonOrbMenuItem8_Click(object sender, EventArgs e)
  947. {
  948. int tabIndex = (int)m_PropWindow.tabIndex;
  949. int idx = m_DataMgrFun.GetSampleIndexByPropItemName(SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
  950. int DisType = SourceGridData.SampleDataList[idx].comboDownList.IndexOf(SourceGridData.SampleDataList[idx].itemVal.ToString());
  951. switch (tabIndex)
  952. {
  953. case (int)DisplayPicutureType.AnalyzeImg:
  954. if (DisType == (int)IMAGE_DISPLAY_TYPE.GENERAL)
  955. {
  956. if (im_Control_DrawDistrbutionImageAndBSE != null)
  957. {
  958. //分布图
  959. im_Control_DrawDistrbutionImageAndBSE.CopyToBitmap();
  960. }
  961. }
  962. if (DisType == (int)IMAGE_DISPLAY_TYPE.IMAGE_GRID)
  963. {
  964. if (im_Control_DrawDistrbutionSortImage != null)
  965. {
  966. //排列图
  967. im_Control_DrawDistrbutionSortImage.CopyToBitmap();
  968. }
  969. }
  970. break;
  971. case (int)DisplayPicutureType.AnalyzeDataTable:
  972. if (DisType == (int)CALCULATE_TABLE_TYPE.MEASURE_INFO)
  973. {
  974. if (im_ResultGrid != null)
  975. {
  976. //测量结果信息
  977. im_ResultGrid.CopyAll();
  978. }
  979. }
  980. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_GENE_INFO)
  981. {
  982. if (im_ParticlesGridDevidePage != null)
  983. {
  984. //颗粒列表
  985. im_ParticlesGridDevidePage.CopyAll();
  986. }
  987. }
  988. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_COMP)
  989. {
  990. if (im_CompositionDistributionGrid != null)
  991. {
  992. //成份分布表
  993. im_CompositionDistributionGrid.CopyAll();
  994. }
  995. }
  996. if (DisType == (int)CALCULATE_TABLE_TYPE.AVE_ELEMENT_COMP)
  997. {
  998. if (im_ElementCompositionAvgGrid != null)
  999. {
  1000. //平均元素含量表
  1001. im_ElementCompositionAvgGrid.CopyAll();
  1002. }
  1003. }
  1004. if (DisType == (int)CALCULATE_TABLE_TYPE.ELEMENT_COMP)
  1005. {
  1006. if (im_ElementContentGrid != null)
  1007. {
  1008. //元素含量表
  1009. im_ElementContentGrid.CopyAll();
  1010. }
  1011. }
  1012. if (DisType == (int)CALCULATE_TABLE_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  1013. {
  1014. if (im_ParticlesSizeGrid != null)
  1015. {
  1016. //颗粒尺寸表
  1017. im_ParticlesSizeGrid.CopyAll();
  1018. }
  1019. }
  1020. break;
  1021. case (int)DisplayPicutureType.AnalyzeDataChart:
  1022. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_COMP)
  1023. {
  1024. //if (im_ParticalesCompositionChart != null)
  1025. //{
  1026. // //颗粒成份图
  1027. // im_ParticalesCompositionChart.CopyToBitmap();
  1028. //}
  1029. }
  1030. if (DisType == (int)CALCULATE_CHART_TYPE.ELEMENT_COMP)
  1031. {
  1032. //if (im_ElementCompositionChart != null)
  1033. //{
  1034. // //元素成份图
  1035. // im_ElementCompositionChart.CopyToBitmap();
  1036. //}
  1037. }
  1038. if (DisType == (int)CALCULATE_CHART_TYPE.PARTICALE_SIZE_DISTRIBUTION)
  1039. {
  1040. //if (im_ParticalesSizeDistributionChart != null)
  1041. //{
  1042. // //颗粒尺寸分布图
  1043. // im_ParticalesSizeDistributionChart.CopyToBitmap();
  1044. //}
  1045. }
  1046. if (DisType == (int)CALCULATE_CHART_TYPE.TRIO_CHART)
  1047. {
  1048. //if (im_Trianglediagram != null)
  1049. //{
  1050. // //三角图
  1051. // im_Trianglediagram.CopyToBitmap();
  1052. //}
  1053. }
  1054. break;
  1055. default:
  1056. break;
  1057. }
  1058. }
  1059. private void frmReportApp_FormClosed(object sender, FormClosedEventArgs e)
  1060. {
  1061. Process.GetCurrentProcess().Kill();
  1062. this.Hide();//打开EChar图后,回收浏览器资源暂卡,为达到操作流畅性,先隐藏窗体再回收资源
  1063. //m_DataMgrFun.DisposeCppObject();
  1064. this.Invoke(new Action(() =>
  1065. {
  1066. if (Cef.IsInitialized)
  1067. Cef.Shutdown();
  1068. }));
  1069. }
  1070. #endregion
  1071. private void dpbOpen_Click(object sender, EventArgs e)
  1072. {
  1073. OpenProFile();
  1074. }
  1075. /// <summary>
  1076. /// 打开报告项目工程文件,封装方法
  1077. /// </summary>
  1078. /// <returns></returns>
  1079. private bool OpenProFile()
  1080. {
  1081. OpenFileDialog openFileDialog = new OpenFileDialog();
  1082. openFileDialog.Filter = "Measure Project Files((*.prj)|*.prj";
  1083. openFileDialog.ValidateNames = true;
  1084. openFileDialog.CheckPathExists = true;
  1085. openFileDialog.CheckFileExists = true;
  1086. openFileDialog.Multiselect = false;
  1087. if (openFileDialog.ShowDialog() == DialogResult.OK)
  1088. {
  1089. string strFilePath = System.IO.Path.GetDirectoryName(openFileDialog.FileName);
  1090. System.IO.DirectoryInfo folder = new System.IO.DirectoryInfo(strFilePath);
  1091. foreach (System.IO.DirectoryInfo directory in folder.GetDirectories())
  1092. {
  1093. foreach (System.IO.FileInfo file in directory.GetFiles("*.rst"))
  1094. {
  1095. this.m_RstWindow.AddSampleClick(file.FullName);
  1096. }
  1097. }
  1098. return true;
  1099. }
  1100. else return false;
  1101. }
  1102. }
  1103. }