using OTSIncAReportApp.OTSSampleReportInfo;
using OTSIncAReportApp.SysMgrTools;
using OTSIncAReportGB;
using OTSIncAReportGrids;
using SourceGrid;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace OTSIncAReportApp.OTSDataMgrFunction
{
///
/// 属性Grid相关操作封装类
///
public class SampleGrid
{
#region 变量定义
///
/// 主框架窗体
///
private frmMeasureRstProp m_RstProp = null;
///
/// 当grid被click时,确定点击的行
///
public int m_ClickRow = 0;
///
/// 当grid被click时,确定点击的列
///
public int m_ClickColumn = 0;
///
/// 当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
///
public int m_PropWindow_X = 0;
///
/// 当改变ProperyWindow窗口大小时,窗口响应Resize(object sender, EventArgs e),返回改变后的尺寸,利用改变后的窗口尺寸重回Grid的行宽和列宽
///
public int m_PropWindow_Y = 0;
///
/// 临时用于计算用的grid行号 总行数
///
public static int m_Const_Grid_Row = 42; //总行数
///
/// 临时用于计算用的grid行号 总列数
///
public static int m_Const_Grid_Column = 3; //总列数
///
/// 测量结果相关类
///
OTSSampleMeaInfo m_WSampleInfo = new OTSSampleMeaInfo();
///
/// 当选择了Grid的某个row ,修改Row的值,引发的事件
///
ChangeGridCellValEvent m_ChangeCellValEvent = null;
///
/// 选择COMBOBOX值引发的事件
///
ItemValueChange2 m_ValChangeEvent2 = null;
///
/// 定义分栏表头样式
///
public SourceGrid.Cells.Views.Cell m_Col_HeaderMode = null;
///
/// 定义大表头grid表头样式
///
SourceGrid.Cells.Views.Cell m_CellTitleModel = null;
///
/// 定义分栏标题格样式
///
SourceGrid.Cells.Views.Cell m_Col_NameMode = null;
///
/// 定义分栏内容格样式
///
SourceGrid.Cells.Views.Cell m_Col_ValMode = null;
///
/// 只读样式cell设置
///
SourceGrid.Cells.Views.Cell M_Col_readonly = null;
///
/// 通用参数组的标题名
///
public String m_Display_Mode_Name = "参数";
///
/// 通用参数组的GRID行数
///
public int m_Display_Mode_Row = 0;
Language lan = new Language();
Hashtable table;
//窗体索引
private int tabIndex = 0;
#endregion
#region 构造函数及初始化函数
public SampleGrid(frmMeasureRstProp Propwindow)
{
m_RstProp = Propwindow;
m_RstProp.PropGrid.Rows.Clear();
m_RstProp.PropGrid.Redim(m_Const_Grid_Row, m_Const_Grid_Column);
table = lan.GetNameTable("SampleGrid");
string str = table["str1"].ToString();
m_Display_Mode_Name = str;
}
///
/// 初始化Grid修改值事件
///
void InitChangeValEvent()
{
m_ChangeCellValEvent = new ChangeGridCellValEvent(this);
m_ValChangeEvent2 = new ItemValueChange2(this);
}
#endregion
#region 初始化属性Grid相关方法
///
/// 初始化属性Grid相关样式
///
public void InitGrid()
{
//初始化Grid修改值事件
InitChangeValEvent();
//定义大表头grid表头样式
{
m_CellTitleModel = new SourceGrid.Cells.Views.Cell();
m_CellTitleModel.BackColor = Color.LightGray;
m_CellTitleModel.ForeColor = Color.Black;
m_CellTitleModel.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
}
//定义分栏表头样式
{
m_Col_HeaderMode = new SourceGrid.Cells.Views.Cell();
m_Col_HeaderMode.BackColor = Color.LightGray; //背景色
m_Col_HeaderMode.ForeColor = Color.Black; //字体颜色
m_Col_HeaderMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleCenter;
}
//定义分栏标题格样式
{
m_Col_NameMode = new SourceGrid.Cells.Views.Cell();
m_Col_NameMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
}
//定义分栏内容格样式
{
m_Col_ValMode = new SourceGrid.Cells.Views.Cell();
m_Col_ValMode.TextAlignment = DevAge.Drawing.ContentAlignment.MiddleLeft;
}
//只读样式cell设置
{
M_Col_readonly = new SourceGrid.Cells.Views.Cell();
M_Col_readonly.ForeColor = Color.Gray;
}
}
///
/// 初始化属性Grid相关表头
///
public void InitGridTitlet()
{
int firstColumnWidth = 15; //第一列的宽度
int SecondColumnWidth = 150;
//设备各单元格宽度---------------------------------------------
m_RstProp.PropGrid.Columns.SetWidth(0, firstColumnWidth); //设置第一列宽度
m_RstProp.PropGrid.Columns.AutoSizeColumn(2); //固定进度条
//ProperyWindows的窗口宽度包括是第二列和第三列的长度总和
m_RstProp.PropGrid.Columns.SetWidth(1, 150); //第二列宽度
m_RstProp.PropGrid.Columns.SetWidth(2, (m_PropWindow_X - firstColumnWidth - SecondColumnWidth - 18)); //第三列宽度
}
///
/// 初始化组的标题栏 iRow:GroupTitle的行号, sGroupName: GroupTitle的名字
///
///
///
public void InitGroupTitle(int iRow, String sGroupName)
{
if (null == m_RstProp.PropGrid[iRow, 0])
{
m_RstProp.PropGrid[iRow, 0] = new SourceGrid.Cells.Link("-");//第一行,上面用来折叠的"-",一会点击后变成"+"
m_RstProp.PropGrid[iRow, 0].View = m_CellTitleModel; //设置表头的样式
//设置表头"-"按钮,点击后的事件
}
if (null == m_RstProp.PropGrid[iRow, 1])
{
m_RstProp.PropGrid[iRow, 1] = new SourceGrid.Cells.Cell(sGroupName); // 设置GroupTitle的名字
m_RstProp.PropGrid[iRow, 1].View = m_CellTitleModel;
m_RstProp.PropGrid[iRow, 1].ColumnSpan = 2; //设置第二列与第三列合并,表头效果完成。 2:从当前列开始合并2列
}
}
#endregion
#region 属性Grid显示相关方法
public void ShowGeneralGrid(OTSSampleMeaInfo SampleInfo)
{
if (SampleInfo.SampleDataList.Count() == 0)
return;
int nGridRow = 0;
string str = table["str2"].ToString();
this.InitGroupTitle(nGridRow, str);
nGridRow++;
int Display_Mode_Row = 1;//确定跨行样式的跨行数变量
// 设置样品Grid数据
for (int i = 0; i < SampleInfo.SampleDataList.Count; i++)
{
Display_Mode_Row++;
//显示样品的属性值
SampleData SData = SampleInfo.SampleDataList[i];
this.SetGridCellVal(nGridRow, SData);
nGridRow++;
}
//控制左边的竖形条框栏的显示
//第二行,第一列,为了效果美化,向下跨行,共跨m_Grid_TotleRow - 1行
if (Display_Mode_Row > 1) //有通用参数组的Grid值显示
{
//获取Grid组Title所在的行号
int iCurRow = Display_Mode_Row;
//第二行的时候,需要定义左边的条框栏
if (m_RstProp.tabIndex == DisplayPicutureType.AnalyzeImg)
{
if (null == m_RstProp.PropGrid[1 + 1, 0])
{
m_RstProp.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
m_RstProp.PropGrid[1, 0].View = m_Col_HeaderMode;
}
else
{
m_RstProp.PropGrid[iCurRow + 1, 0].Value = "";
}
if (iCurRow == 0)
{
m_RstProp.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
}
else
{
m_RstProp.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
}
}
if (m_RstProp.tabIndex == DisplayPicutureType.AnalyzeDataTable)
{
//第二行的时候,需要定义左边的条框栏
if (null == m_RstProp.PropGrid[1 + 1, 0])
{
m_RstProp.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
m_RstProp.PropGrid[1, 0].View = m_Col_HeaderMode;
}
else
{
m_RstProp.PropGrid[iCurRow + 1, 0].Value = "";
}
if (iCurRow == 0)
{
m_RstProp.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
}
else
{
m_RstProp.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
}
}
if (m_RstProp.tabIndex == DisplayPicutureType.AnalyzeDataChart)
{
//第二行的时候,需要定义左边的条框栏
if (null == m_RstProp.PropGrid[1, 0])
{
m_RstProp.PropGrid[1, 0] = new SourceGrid.Cells.Cell("");
m_RstProp.PropGrid[1, 0].View = m_Col_HeaderMode;
}
else
{
m_RstProp.PropGrid[iCurRow + 1, 0].Value = "";
}
if (iCurRow == 0)
{
m_RstProp.PropGrid[iCurRow + 1, 0].RowSpan = iCurRow + Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
}
else
{
m_RstProp.PropGrid[1, 0].RowSpan = Display_Mode_Row - 1; //iCurRow + General_Totle_Row-1 : 去掉标题栏计数
}
}
}
}
///
/// 显示Chart图表相关属性Grid
///
///
public void SetPictureProperty(DisplayPicutureType note)
{
m_RstProp.tabIndex = note;
m_RstProp.PropGrid.Show();
}
public void SetGridCellVal(int Row, SampleData SData)
{
OTS_REPORT_PROP_GRID_ITEMS SampleID = SData.iItemId;
String sCaptionName = SData.sSCaptionName;
object SampleVal = SData.itemVal;
List comboDownList = SData.comboDownList;
OTS_ITEM_TYPES SampleValType = SData.iItemValType;
bool bReadOnly = SData.bReadOnly;
//每行的第一列显示属性名称
if (null == m_RstProp.PropGrid[Row, 1])
{
m_RstProp.PropGrid[Row, 1] = new SourceGrid.Cells.Cell(sCaptionName);
}
else
{
m_RstProp.PropGrid[Row, 1].Value = sCaptionName;
}
m_RstProp.PropGrid[Row, 1].View = m_Col_NameMode;
//每行的第二列显示属性值
if (null == m_RstProp.PropGrid[Row, 2])
{
switch (SData.iItemValType)
{
case OTS_ITEM_TYPES.COMBO:
try
{
SourceGrid.Cells.Editors.ComboBox m_ComboboxText = null;
List ValList = new List();
string[] arraySample;
if (null == comboDownList)
{
List sSampleVal = new List();
ValList = sSampleVal;
}
else
{
ValList = (List)comboDownList;
}
int iValCount = ValList.Count();
if (iValCount > 0)
{
arraySample = new string[iValCount];
for (int i = 0; i < iValCount; i++)
{
arraySample[i] = ValList[i];
}
}
else
{
arraySample = new string[3] { "", "", "" };
}
m_RstProp.PropGrid[Row, 2] = new SourceGrid.Cells.Cell(SampleVal);
m_ComboboxText = new SourceGrid.Cells.Editors.ComboBox(typeof(string), arraySample, true);
m_RstProp.PropGrid[Row, 2].Editor = m_ComboboxText;
m_ComboboxText.Control.DropDownStyle = ComboBoxStyle.DropDownList; //设置下拉框为不可以编辑的状态
m_RstProp.PropGrid[Row, 2].Value = SampleVal;
m_RstProp.PropGrid[Row, 2].AddController(m_ChangeCellValEvent);
m_RstProp.PropGrid[Row, 2].AddController(m_ValChangeEvent2);
m_ComboboxText.EditableMode = EditableMode.SingleClick;
}
catch (Exception)
{
}
break;
case OTS_ITEM_TYPES.DOUBLE:
var txtbox = new SourceGrid.Cells.Editors.TextBoxNumeric(typeof(double));
m_RstProp.PropGrid[Row, 2] = new SourceGrid.Cells.Cell(SampleVal);
txtbox.EditableMode = EditableMode.SingleClick;
m_RstProp.PropGrid[Row, 2].Editor = txtbox;
m_RstProp.PropGrid[Row, 2].AddController(m_ChangeCellValEvent);
m_RstProp.PropGrid[Row, 2].AddController(m_ValChangeEvent2);
break;
default:
break;
}
if (bReadOnly) //只读模式
{
m_RstProp.PropGrid[Row, 2].Editor = null;
m_RstProp.PropGrid[Row, 2].View = M_Col_readonly;// 设置只读
}
else
{
m_RstProp.PropGrid[Row, 2].View = m_Col_ValMode;
}
//行绑定ID值
m_RstProp.PropGrid.Rows[Row].Tag = SampleID;
//数据位置绑定数据类型
m_RstProp.PropGrid[Row, 2].Tag = SampleValType;
}
else
{
m_RstProp.PropGrid[Row, 2].Value = SampleVal;
}
}
#endregion
#region 属性Grid与各功能模块操作等方法
///
/// 根据样品属性 显示对应的图表
///
/// 标签索引
/// 属性中选择的图表名称
public void ShowDataDiagram(int tabindex)
{
int sourceid = m_RstProp.m_ReportApp.WorkingResult;
var projFileMgrClr1 = m_RstProp.m_ReportApp.resultFilesList[sourceid];
var prop = m_RstProp.m_ReportApp.SourceGridData;
String m_fileName = projFileMgrClr1.FileName;
tabIndex = (int)m_RstProp.tabIndex;
#region 对各窗体模块进行实际加载的代码
switch (tabIndex)
{
//分析图
case (int)DisplayPicutureType.AnalyzeImg://第一页选项窗体,分析图
m_RstProp.m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeImg);
int idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_DISPLAY_TYPE);
int display = prop.SampleDataList[idx].comboDownList.IndexOf(prop.SampleDataList[idx].itemVal.ToString());
if (display == 0)
{
//分布图对象为空,或当前显示的与在测量结果中选择的不匹配,则重新加载
if (null != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE)
{
if (m_fileName != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName)
{
//如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = null;
}
}
//不需重新加载,则加载条件
if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE != null)
{
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE);
m_RstProp.m_ReportApp.m_SImageWindow.Activate();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
string ImageType = prop.SampleDataList[idx].itemVal.ToString();
//切换分布图显示方式
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowMode(ImageType);
}
else if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE == null)
{
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionImageAndBSE(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DataSourceID = sourceid;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.ShowSourceName = m_fileName;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE);
m_RstProp.m_ReportApp.m_SImageWindow.Activate();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.DrawDistrbutionImageAndBSE_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionImageAndBSE.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
}
}
else
{
//排列图为空,或与在测量结果中选择的名字不一致时,则重新加载
if (null != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage)
{
if (m_fileName != m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName)
{
//如果已经不是原先的数据源,则需要重新加载,设定为空,后面重新加载
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage = null;
}
}
//不需重新加载,则加载条件
if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage != null)
{
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage);
m_RstProp.m_ReportApp.m_SImageWindow.Activate();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
//判断当前点击测量结果中的数据源名,是否与已经加载的排序图显示的数据源名相同
if (m_fileName == m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName)
{
//相同,加载计算条件
// m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(listGriddataclr);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.IMAGE_TYPE);
string ImageType = prop.SampleDataList[idx].itemVal.ToString();
//切换BSE和分类,两种影像的显示方式
if (ImageType == "BSE")
{
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(false);
}
else
{
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowMode(true);
}
return;
}
}
else if (m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage == null)
{
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage = new OTSIncAReportGraph.Controls.Control_DrawDistrbutionSortImage(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.DataSourceID = sourceid;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.ShowSourceName = m_fileName;
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_SImageWindow.Controls.Add(m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage);
m_RstProp.m_ReportApp.m_SImageWindow.Activate();
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.Control_DrawDistrbutionSortImage_ByQuery(m_RstProp.m_ReportApp.SourceGridData);
m_RstProp.m_ReportApp.im_Control_DrawDistrbutionSortImage.SetSelectParticle(m_RstProp.m_ReportApp.SelectedParticles);
}
}
break;
//分析数据表
case (int)DisplayPicutureType.AnalyzeDataTable:
#region 第二页选项窗体,分析数据表
m_RstProp.m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataTable);
idx = m_RstProp.m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_TABLE_TYPE);
int TableType = prop.SampleDataList[idx].comboDownList.IndexOf(prop.SampleDataList[idx].itemVal.ToString());
switch (TableType)
{
case 0:
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ResultGrid = new ResultGrid(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_ResultGrid.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ResultGrid);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
break;
case 1:
if (m_RstProp.m_ReportApp.im_ParticlesGridDevidePage != null && m_RstProp.m_ReportApp.im_ParticlesGridDevidePage.FileName == m_fileName)
{
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ParticlesGridDevidePage);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
}
else
{
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ParticlesGridDevidePage = new OTSIncAReportGrids.ParticlesGridDevidePage(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_ParticlesGridDevidePage.FileName = m_fileName;
m_RstProp.m_ReportApp.im_ParticlesGridDevidePage.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ParticlesGridDevidePage);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
}
break;
case 2:
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_CompositionDistributionGrid = new CompositionDistributionGrid(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_CompositionDistributionGrid.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_CompositionDistributionGrid);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
break;
case 3:
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ElementContentGrid = new ElementContentGrid(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_ElementContentGrid.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ElementContentGrid);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
break;
case 4://颗粒尺寸分布表
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ParticlesSizeGrid = new ParticlesSizeGrid(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_ParticlesSizeGrid.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ParticlesSizeGrid);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
break;
case 5:
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ElementCompositionAvgGrid = new ElementCompositionAvgGrid(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_ElementCompositionAvgGrid.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ElementCompositionAvgGrid);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
break;
case 6:
//国标一
string resultfile = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
+ m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile);
OTSCLRINTERFACE.CPropParamClr clr_prop = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
clr_prop.SetDataSourceId(0);//
clr_prop.SetType(1);//table
clr_prop.SetCalTableType(6);//国标1
List listGriddataclr = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop);//
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ChineseStandardABCDDS = new ChineseStandardABCDDS(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr);
m_RstProp.m_ReportApp.im_ChineseStandardABCDDS.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ChineseStandardABCDDS);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
//OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath+"\\"
// + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "GB1");
break;
case 7:
//国标二
string resultfile2 = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
+ m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile2);
OTSCLRINTERFACE.CPropParamClr clr_prop2 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
clr_prop2.SetDataSourceId(0);//
clr_prop2.SetType(1);//table
clr_prop2.SetCalTableType(7);//国标2
List listGriddataclr2 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop2);//
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_NationalStandardMethodTwo = new NationalStandardMethodTwo(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr2);
m_RstProp.m_ReportApp.im_NationalStandardMethodTwo.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_NationalStandardMethodTwo);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
//OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
// + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "GB2");
break;
case 8:
//美标
string resultfile3 = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
+ m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile3);
OTSCLRINTERFACE.CPropParamClr clr_prop3 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
clr_prop3.SetDataSourceId(0);//
clr_prop3.SetType(1);//table
clr_prop3.SetCalTableType(8);
List listGriddataclr3 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop3);
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_ASTMStandardABCDDS = new ASTMStandardABCDDS(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr3);
m_RstProp.m_ReportApp.im_ASTMStandardABCDDS.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_ASTMStandardABCDDS);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
//OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
// + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "ASTM");
break;
case 9:
//德标
string resultfile4 = m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
+ m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName;
m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.AddASmplMsrResultMgr(resultfile4);
OTSCLRINTERFACE.CPropParamClr clr_prop4 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GetPropertyParamTable();
clr_prop4.SetDataSourceId(0);//
clr_prop4.SetType(1);//table
clr_prop4.SetCalTableType(9);
List listGriddataclr4 = m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr.GridDataTransfer(clr_prop4);
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Clear();
m_RstProp.m_ReportApp.im_DINStandardABCDDS = new DINStandardABCDDS(m_RstProp.m_ReportApp.m_DataMgrFun.m_ReportMgr, listGriddataclr4);
m_RstProp.m_ReportApp.im_DINStandardABCDDS.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CTablesWindow.Controls.Add(m_RstProp.m_ReportApp.im_DINStandardABCDDS);
m_RstProp.m_ReportApp.m_CTablesWindow.Activate();
//OpenOTSINcAreportTemplateAPP(m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FilePath + "\\"
// + m_RstProp.m_ReportApp.resultFilesList[m_RstProp.m_ReportApp.WorkingResult].FileName, "DIN");
break;
}
#endregion 第二页选项窗体,分析数据表
break;
//分析数据图
case (int)DisplayPicutureType.AnalyzeDataChart:
m_RstProp.m_ReportApp.m_RibbonFun.SetRibbonButnStatu_ByModule(DisplayPicutureType.AnalyzeDataChart);
#region 第三页选项窗体,分析数据图
m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Clear();
string m_reportname = "";
string m_str_AxisY = "";
string str_operatonmodule = "";
idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp.m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.CALCULATE_CHART_TYPE);
int ChartType = prop.SampleDataList[idx].comboDownList.IndexOf(prop.SampleDataList[idx].itemVal.ToString());
switch (ChartType)
{
case 0:
m_reportname = table["m_reportname1"].ToString();//常用夹杂物分类
m_str_AxisY = table["m_str_axisy1"].ToString();
str_operatonmodule = table["str_operatonmodule1"].ToString();
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "CommonlyUsedClassify");
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_reportname = m_reportname;
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
m_RstProp.m_ReportApp.type = "pie";
m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
break;
case 1:
m_reportname = table["m_reportname2"].ToString();//颗粒成分
m_str_AxisY = table["m_str_axisy2"].ToString();//颗粒数
str_operatonmodule = table["str_operatonmodule2"].ToString();//颗粒成分图
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "PComponent");
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_reportname = m_reportname;
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
m_RstProp.m_ReportApp.type = "pie";
m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
break;
case 2:
m_reportname = table["m_reportname3"].ToString();//元素成分
m_str_AxisY = table["m_str_axisy3"].ToString();//元素含量
str_operatonmodule = table["str_operatonmodule3"].ToString();//元素成分图
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "EComponent");
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_reportname = m_reportname;
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
m_RstProp.m_ReportApp.type = "bar";
m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
break;
case 3://颗粒尺寸分布图
m_reportname = table["m_reportname4"].ToString();//颗粒尺寸分布
m_str_AxisY = table["m_str_axisy4"].ToString();//颗粒数
str_operatonmodule = table["str_operatonmodule4"].ToString();//颗粒尺寸分布图
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition = new Control_ECharts.EChart_ParticlesComposition(m_RstProp.m_ReportApp, "PSize");
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_reportname = m_reportname;
m_RstProp.m_ReportApp.im_EChart_ParticlesComposition.m_str_AxisY = m_str_AxisY;
m_RstProp.m_ReportApp.type = "bar";
m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_ParticlesComposition);
m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
break;
case 4:
idx = m_RstProp. m_ReportApp.m_DataMgrFun.GetSampleIndexByPropItemName(m_RstProp. m_ReportApp.SourceGridData.SampleDataList, OTSIncAReportApp.OTSSampleReportInfo.OTS_REPORT_PROP_GRID_ITEMS.TRIO_CHART_TYPE);
string TrioChartType = prop.SampleDataList[idx].itemVal.ToString();
List nameList = prop.SampleDataList[idx].comboDownList;
int index = nameList.IndexOf(TrioChartType);
str_operatonmodule = table["str_operatonmodule5"].ToString();
m_RstProp.m_ReportApp.im_EChart_Trianglediagram = new Control_ECharts.EChart_Trianglediagram(m_RstProp.m_ReportApp);
m_RstProp.m_ReportApp.im_EChart_Trianglediagram.Template = "";
m_RstProp.m_ReportApp.im_EChart_Trianglediagram.Dock = DockStyle.Fill;
m_RstProp.m_ReportApp.m_CChartsWindow.Controls.Add(m_RstProp.m_ReportApp.im_EChart_Trianglediagram);
m_RstProp.m_ReportApp.m_CChartsWindow.Activate();
break;
}
#endregion 第三页窗体,分析数据图
break;
}
#endregion
}
///
/// 打开国标进程EXE
///
private void OpenOTSINcAreportTemplateAPP(string str_path, string str_gbname)
{
//----------------------------------
//共传2个参数
//参数1:测量结果的路径,国标底层需要
//参数2:是打开的国标一,国标二,美标,德标,的类型
ProcessStartInfo process = new ProcessStartInfo();
process.FileName = "ReportGBExe\\OTSIncAReportGB.exe";//打开app的路径
string arg1 = str_path.Replace(" ", "^");//参数1,测量结果的路径
string arg2 = str_gbname.Trim().Replace(" ", "^");//参数2,是打开的类型
process.Arguments = string.Format("{0} {1}", arg1, arg2); //多个参数用空格隔开
process.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(process);
}
#endregion
#region 与属性Grid相关的类
///
/// 与属性Grid操作事件对应的事件类,在该类中实现属性Grid的操作方法实现
///
class ChangeGridCellValEvent : SourceGrid.Cells.Controllers.ControllerBase
{
#region 变量定义
///
/// 属性Grid类对象全局变量
///
SampleGrid m_SampleGrid = null;
private const int Constant = 1;
#endregion
#region 构造函数
///
/// 构造函数
///
///
public ChangeGridCellValEvent(SampleGrid SGrid)
{
m_SampleGrid = SGrid;
}
#endregion
#region 下拉框事件
///
/// 属性Grid的下拉框下拉完成后,触发的事件。SourceGrid的事件不是用delegate方法实现的,与dot net 的标准事件实现方式不同,需要在这里override才可以
///
///
///
public override void OnValueChanged(SourceGrid.CellContext sender, EventArgs e)
{
OTSSampleMeaInfo SourceGridData = m_SampleGrid.m_RstProp.m_ReportApp.SourceGridData;
int selindex = 0;
foreach (var item in SourceGridData.SampleDataList)
{
if (item.iItemId == (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_RstProp.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag)
{
OTS_ITEM_TYPES ValType = item.iItemValType;
switch (ValType)
{
case OTS_ITEM_TYPES.COMBO:
item.itemVal = (string)m_SampleGrid.m_RstProp.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
selindex = item.comboDownList.IndexOf(item.itemVal.ToString());
break;
case OTS_ITEM_TYPES.DOUBLE:
var dValue = m_SampleGrid.m_RstProp.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
double v = Convert.ToDouble(dValue);
item.itemVal = v;
break;
default:
break;
}
break;
}
}
int tabinex = (int)m_SampleGrid.m_RstProp.m_ReportApp.m_PropWindow.tabIndex;
SourceGridData = m_SampleGrid.m_RstProp.m_ReportApp.m_DataMgrFun.ChangeSouceGrid(tabinex, (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_RstProp.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag, m_SampleGrid.m_RstProp.PropGrid[m_SampleGrid.m_ClickRow, 2].Value.ToString(), selindex);
m_SampleGrid.m_RstProp.m_ReportApp.SourceGridData = SourceGridData;
m_SampleGrid.m_RstProp.m_ReportApp.m_PropWindow.DisProperyWindow(SourceGridData);
}
#endregion
}
///
/// 组合框类,与属性Grid关联
///
class ItemValueChange2 : SourceGrid.Cells.Controllers.ControllerBase
{
SampleGrid m_SampleGrid = null;
public ItemValueChange2(SampleGrid SGrid)
{
m_SampleGrid = SGrid;
}
public override void OnValueChanged(CellContext sender, EventArgs e)
{
//判断如果对选择颗粒,全部颗粒进行了重新选择的话
if (sender.Position.Row == 2)
m_SampleGrid.m_RstProp.m_ReportApp.im_ParticlesGridDevidePage = null;//需要重新刷新颗粒列表
//3,并根据CGridInClr条件从底层获取数据,并加载相应的模块
m_SampleGrid.ShowDataDiagram(m_SampleGrid.tabIndex);
//------------------------------------------------------------------------------------------------------------------
m_SampleGrid.m_ClickRow = sender.Position.Row;
if (m_SampleGrid.m_RstProp.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag != null)
{
m_SampleGrid.m_RstProp.m_ReportApp.m_RstWindow.SelectWorkSampleNode();
}
}
}
#endregion
}
}