using FastReport.Table;
using FastReport.Utils;
using System;
using System.ComponentModel;
namespace FastReport.CrossView
{
partial class CrossViewObject : TableBase
{
internal enum CrossViewElement
{
None,
Column,
Row,
Cell
}
#region Properties
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public override int ColumnCount
{
get { return base.ColumnCount; }
set { base.ColumnCount = value; }
}
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public override int RowCount
{
get { return base.RowCount; }
set { base.RowCount = value; }
}
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public new int FixedRows
{
get { return base.FixedRows; }
set { base.FixedRows = value; }
}
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public new int FixedColumns
{
get { return base.FixedColumns; }
set { base.FixedColumns = value; }
}
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public new bool CanBreak
{
get { return base.CanBreak; }
set { base.CanBreak = value; }
}
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public new bool GrowToBottom
{
get { return base.GrowToBottom; }
set { base.GrowToBottom = value; }
}
///
/// This property is not relevant to this class.
///
[Browsable(false)]
public new bool RepeatHeaders
{
get { return base.RepeatHeaders; }
set { base.RepeatHeaders = value; }
}
///
[Browsable(true)]
[DefaultValue(true)]
[Category("Behavior")]
public override bool RepeatRowHeaders
{
get { return base.RepeatRowHeaders; }
set { base.RepeatRowHeaders = value; }
}
///
[Browsable(true)]
[DefaultValue(true)]
[Category("Behavior")]
public override bool RepeatColumnHeaders
{
get { return base.RepeatColumnHeaders; }
set { base.RepeatColumnHeaders = value; }
}
#endregion
#region Private Methods
private void RefreshTemplate(bool reset)
{
Helper.UpdateDescriptors();
for (int x = 0; x < Helper.TemplateBodyWidth; x++)
{
for (int y = 0; y < Helper.TemplateBodyHeight; y++)
{
TableCell cell = this[x + FixedColumns, y + FixedRows];
if (reset)
cell.Text = "";
else
cell.SetFlags(Flags.CanEdit, false);
}
}
// CrossViewElement element;
// CrossViewDescriptor descriptor;
// bool isTotal;
for (int x = 0; x < ColumnCount; x++)
{
for (int y = 0; y < RowCount; y++)
{
TableCell cell = this[x, y];
// GetCrossViewElement(cell, out element, out descriptor, out isTotal);
// bool enableSmartTag = descriptor != null && !isTotal;
bool enableSmartTag = false;
cell.SetFlags(Flags.HasSmartTag, enableSmartTag);
}
}
}
#endregion
#region Public Methods
///
public override void Draw(FRPaintEventArgs e)
{
base.Draw(e);
/*
if (FSelectedCell != null)
DrawSelectedCellFrame(e, FSelectedCell);
*/
if (!IsResultCrossView)
RefreshTemplate(false);
}
///
public override void OnBeforeInsert(int flags)
{
BuildTemplate();
}
#endregion
}
}