ChangeGridCellValEvent.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using OTSIncAReportApp.OTSSampleReportInfo;
  2. using SourceGrid;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace OTSIncAReportApp.OTSDataMgrFunction
  9. {
  10. /// <summary>
  11. /// 与属性Grid操作事件对应的事件类,在该类中实现属性Grid的操作方法实现
  12. /// </summary>
  13. class ChangeGridCellValEvent : SourceGrid.Cells.Controllers.ControllerBase
  14. {
  15. #region 变量定义
  16. /// <summary>
  17. /// 属性Grid类对象全局变量
  18. /// </summary>
  19. OTSSourceGrid m_SampleGrid = null;
  20. private const int Constant = 1;
  21. #endregion
  22. #region 构造函数
  23. /// <summary>
  24. /// 构造函数
  25. /// </summary>
  26. /// <param name="SGrid"></param>
  27. public ChangeGridCellValEvent(OTSSourceGrid SGrid)
  28. {
  29. m_SampleGrid = SGrid;
  30. }
  31. #endregion
  32. #region 下拉框事件
  33. /// <summary>
  34. /// 属性Grid的下拉框下拉完成后,触发的事件。SourceGrid的事件不是用delegate方法实现的,与dot net 的标准事件实现方式不同,需要在这里override才可以
  35. /// </summary>
  36. /// <param name="sender"></param>
  37. /// <param name="e"></param>
  38. public override void OnValueChanged(SourceGrid.CellContext sender, EventArgs e)
  39. {
  40. ReportCondition SourceGridData = m_SampleGrid.m_PropCondition.SourceGridData;
  41. int selindex = 0;
  42. foreach (var item in SourceGridData.ConditionItemList)
  43. {
  44. if (item.iItemId == (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_PropCondition.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag)
  45. {
  46. OTS_ITEM_TYPES ValType = item.iItemValType;
  47. switch (ValType)
  48. {
  49. case OTS_ITEM_TYPES.COMBO:
  50. item.itemVal = (string)m_SampleGrid.m_PropCondition.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
  51. selindex = item.comboDownList.IndexOf(item.itemVal.ToString());
  52. break;
  53. case OTS_ITEM_TYPES.DOUBLE:
  54. var dValue = m_SampleGrid.m_PropCondition.PropGrid[m_SampleGrid.m_ClickRow, 2].Value;
  55. double v = Convert.ToDouble(dValue);
  56. item.itemVal = v;
  57. break;
  58. default:
  59. break;
  60. }
  61. break;
  62. }
  63. }
  64. int tabinex = (int)m_SampleGrid.m_PropCondition.tabIndex;
  65. SourceGridData = m_SampleGrid.ChangeSouceGrid(tabinex, (OTS_REPORT_PROP_GRID_ITEMS)m_SampleGrid.m_PropCondition.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag, m_SampleGrid.m_PropCondition.PropGrid[m_SampleGrid.m_ClickRow, 2].Value.ToString(), selindex);
  66. m_SampleGrid.m_PropCondition.SourceGridData = SourceGridData;
  67. m_SampleGrid.m_PropCondition.DisProperyWindow(SourceGridData);
  68. }
  69. #endregion
  70. }
  71. /// <summary>
  72. /// 组合框类,与属性Grid关联
  73. /// </summary>
  74. class ItemValueChange2 : SourceGrid.Cells.Controllers.ControllerBase
  75. {
  76. OTSSourceGrid m_SampleGrid = null;
  77. public ItemValueChange2(OTSSourceGrid SGrid)
  78. {
  79. m_SampleGrid = SGrid;
  80. }
  81. public override void OnValueChanged(CellContext sender, EventArgs e)
  82. {
  83. //判断如果对选择颗粒,全部颗粒进行了重新选择的话
  84. if (sender.Position.Row == 2)
  85. m_SampleGrid.m_PropCondition.m_ReportApp.im_ParticlesGridDevidePage = null;//需要重新刷新颗粒列表
  86. //3,并根据CGridInClr条件从底层获取数据,并加载相应的模块
  87. m_SampleGrid.m_PropCondition.ShowDataDiagram(m_SampleGrid.m_PropCondition.tabIndex);
  88. //------------------------------------------------------------------------------------------------------------------
  89. m_SampleGrid.m_ClickRow = sender.Position.Row;
  90. if (m_SampleGrid.m_PropCondition.PropGrid.Rows[m_SampleGrid.m_ClickRow].Tag != null)
  91. {
  92. m_SampleGrid.m_PropCondition.m_ReportApp.m_RstWindow.SelectWorkSampleNode();
  93. }
  94. }
  95. }
  96. }