CrossViewObject.DesignExt.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. using FastReport.Table;
  2. using FastReport.Utils;
  3. using System;
  4. using System.ComponentModel;
  5. namespace FastReport.CrossView
  6. {
  7. partial class CrossViewObject : TableBase
  8. {
  9. internal enum CrossViewElement
  10. {
  11. None,
  12. Column,
  13. Row,
  14. Cell
  15. }
  16. #region Properties
  17. /// <summary>
  18. /// This property is not relevant to this class.
  19. /// </summary>
  20. [Browsable(false)]
  21. public override int ColumnCount
  22. {
  23. get { return base.ColumnCount; }
  24. set { base.ColumnCount = value; }
  25. }
  26. /// <summary>
  27. /// This property is not relevant to this class.
  28. /// </summary>
  29. [Browsable(false)]
  30. public override int RowCount
  31. {
  32. get { return base.RowCount; }
  33. set { base.RowCount = value; }
  34. }
  35. /// <summary>
  36. /// This property is not relevant to this class.
  37. /// </summary>
  38. [Browsable(false)]
  39. public new int FixedRows
  40. {
  41. get { return base.FixedRows; }
  42. set { base.FixedRows = value; }
  43. }
  44. /// <summary>
  45. /// This property is not relevant to this class.
  46. /// </summary>
  47. [Browsable(false)]
  48. public new int FixedColumns
  49. {
  50. get { return base.FixedColumns; }
  51. set { base.FixedColumns = value; }
  52. }
  53. /// <summary>
  54. /// This property is not relevant to this class.
  55. /// </summary>
  56. [Browsable(false)]
  57. public new bool CanBreak
  58. {
  59. get { return base.CanBreak; }
  60. set { base.CanBreak = value; }
  61. }
  62. /// <summary>
  63. /// This property is not relevant to this class.
  64. /// </summary>
  65. [Browsable(false)]
  66. public new bool GrowToBottom
  67. {
  68. get { return base.GrowToBottom; }
  69. set { base.GrowToBottom = value; }
  70. }
  71. /// <summary>
  72. /// This property is not relevant to this class.
  73. /// </summary>
  74. [Browsable(false)]
  75. public new bool RepeatHeaders
  76. {
  77. get { return base.RepeatHeaders; }
  78. set { base.RepeatHeaders = value; }
  79. }
  80. /// <inheritdoc/>
  81. [Browsable(true)]
  82. [DefaultValue(true)]
  83. [Category("Behavior")]
  84. public override bool RepeatRowHeaders
  85. {
  86. get { return base.RepeatRowHeaders; }
  87. set { base.RepeatRowHeaders = value; }
  88. }
  89. /// <inheritdoc/>
  90. [Browsable(true)]
  91. [DefaultValue(true)]
  92. [Category("Behavior")]
  93. public override bool RepeatColumnHeaders
  94. {
  95. get { return base.RepeatColumnHeaders; }
  96. set { base.RepeatColumnHeaders = value; }
  97. }
  98. #endregion
  99. #region Private Methods
  100. private void RefreshTemplate(bool reset)
  101. {
  102. Helper.UpdateDescriptors();
  103. for (int x = 0; x < Helper.TemplateBodyWidth; x++)
  104. {
  105. for (int y = 0; y < Helper.TemplateBodyHeight; y++)
  106. {
  107. TableCell cell = this[x + FixedColumns, y + FixedRows];
  108. if (reset)
  109. cell.Text = "";
  110. else
  111. cell.SetFlags(Flags.CanEdit, false);
  112. }
  113. }
  114. // CrossViewElement element;
  115. // CrossViewDescriptor descriptor;
  116. // bool isTotal;
  117. for (int x = 0; x < ColumnCount; x++)
  118. {
  119. for (int y = 0; y < RowCount; y++)
  120. {
  121. TableCell cell = this[x, y];
  122. // GetCrossViewElement(cell, out element, out descriptor, out isTotal);
  123. // bool enableSmartTag = descriptor != null && !isTotal;
  124. bool enableSmartTag = false;
  125. cell.SetFlags(Flags.HasSmartTag, enableSmartTag);
  126. }
  127. }
  128. }
  129. #endregion
  130. #region Public Methods
  131. /// <inheritdoc/>
  132. public override void Draw(FRPaintEventArgs e)
  133. {
  134. base.Draw(e);
  135. /*
  136. if (FSelectedCell != null)
  137. DrawSelectedCellFrame(e, FSelectedCell);
  138. */
  139. if (!IsResultCrossView)
  140. RefreshTemplate(false);
  141. }
  142. /// <inheritdoc/>
  143. public override void OnBeforeInsert(int flags)
  144. {
  145. BuildTemplate();
  146. }
  147. #endregion
  148. }
  149. }