레이더 그래프에 5가지 상태창 추가
피봇 기능 추가
This commit is contained in:
@@ -13,6 +13,8 @@ namespace friction
|
||||
{
|
||||
public partial class PanelCompatibility : DockContent
|
||||
{
|
||||
const int HEADER_SIZE = 100;
|
||||
|
||||
MainForm m_Owner = null;
|
||||
|
||||
public PanelCompatibility(MainForm owner)
|
||||
@@ -26,9 +28,20 @@ namespace friction
|
||||
|
||||
dgvMap.CellPainting += DgvMap_CellPainting;
|
||||
dgvMap.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
|
||||
dgvMap.ColumnHeadersHeight = 100;
|
||||
dgvMap.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
|
||||
dgvMap.DefaultCellStyle.Format = "N2";
|
||||
dgvMap.ColumnHeadersHeight = HEADER_SIZE;
|
||||
dgvMap.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
|
||||
dgvMap.RowHeadersWidth = HEADER_SIZE;
|
||||
dgvMap.DefaultCellStyle.Format = "N0";
|
||||
|
||||
dgvMap.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;
|
||||
dgvMap.RowHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;
|
||||
|
||||
dgvMap.CellToolTipTextNeeded += DgvMap_CellToolTipTextNeeded;
|
||||
}
|
||||
|
||||
private void DgvMap_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
|
||||
{
|
||||
e.ToolTipText = "tooltip";
|
||||
}
|
||||
|
||||
public void UpdateData(DataHandler data)
|
||||
@@ -40,26 +53,36 @@ namespace friction
|
||||
dgvMap.Columns.Clear();
|
||||
|
||||
|
||||
int iCol = dgvMap.Columns.Add("table", "table");
|
||||
dgvMap.Columns[iCol].SortMode = DataGridViewColumnSortMode.NotSortable;
|
||||
foreach (var table in Tables)
|
||||
{
|
||||
int iCol = dgvMap.Columns.Add(table, table);
|
||||
dgvMap.Columns[iCol].Width = 29;
|
||||
string strHeaderText = table;
|
||||
//if (strHeaderText.Length > 10)
|
||||
// strHeaderText = strHeaderText.Substring(0, 7) + "...";
|
||||
|
||||
iCol = dgvMap.Columns.Add(table, strHeaderText);
|
||||
dgvMap.Columns[iCol].Width = 10;
|
||||
dgvMap.Columns[iCol].SortMode = DataGridViewColumnSortMode.NotSortable;
|
||||
dgvMap.Columns[iCol].HeaderCell.ToolTipText = table;
|
||||
}
|
||||
|
||||
int iRow = dgvMap.Rows.Add();
|
||||
dgvMap.Rows[iRow].HeaderCell.Value = "spring";
|
||||
foreach (var spring in Springs)
|
||||
{
|
||||
int iRow = dgvMap.Rows.Add();
|
||||
iRow = dgvMap.Rows.Add();
|
||||
dgvMap.Rows[iRow].HeaderCell.Value = spring;
|
||||
dgvMap.Rows[iRow].HeaderCell.ToolTipText = spring;
|
||||
|
||||
var Averages = data.GetAvgAll(spring);
|
||||
var Averages = data.GetAvgAll(spring, Config.TEMP_ALL, Config.HUMID_ALL);
|
||||
foreach(var avg in Averages)
|
||||
{
|
||||
if(avg.m_fAvg > 0)
|
||||
if(avg.m_fMax > 0)
|
||||
{
|
||||
var cell = dgvMap.Rows[iRow].Cells[avg.m_strTable];
|
||||
cell.Value = avg.m_fAvg;
|
||||
Config.ANALYSIS.RISK Risk = Config.ANALYSIS.GetRisk(avg.m_fAvg);
|
||||
cell.Value = avg.m_fMax;
|
||||
Config.ANALYSIS.RISK Risk = Config.ANALYSIS.GetRisk(avg.m_fMax);
|
||||
switch(Risk)
|
||||
{
|
||||
case Config.ANALYSIS.RISK.NO:
|
||||
@@ -75,28 +98,40 @@ namespace friction
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (DataGridViewColumn column in dgvMap.Columns)
|
||||
{
|
||||
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
|
||||
column.ReadOnly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public DataTable GetData()
|
||||
public object[] GetData()
|
||||
{
|
||||
List<string> ColumnHeaders = new List<string>();
|
||||
List<string> RowHeaders = new List<string>();
|
||||
|
||||
var dt = new DataTable();
|
||||
dt.Columns.Add(" ");
|
||||
foreach (DataGridViewColumn column in dgvMap.Columns)
|
||||
{
|
||||
if (column.Visible)
|
||||
dt.Columns.Add(column.HeaderText);
|
||||
|
||||
ColumnHeaders.Add(column.HeaderText);
|
||||
}
|
||||
|
||||
object[] cellValues = new object[dgvMap.Columns.Count+1];
|
||||
object[] cellValues = new object[dgvMap.Columns.Count];
|
||||
foreach (DataGridViewRow row in dgvMap.Rows)
|
||||
{
|
||||
cellValues[0] = row.HeaderCell.Value;
|
||||
for (int i = 0; i < row.Cells.Count; i++)
|
||||
cellValues[i+1] = row.Cells[i].Value;
|
||||
cellValues[i] = row.Cells[i].Value;
|
||||
dt.Rows.Add(cellValues);
|
||||
|
||||
RowHeaders.Add((string)row.HeaderCell.Value);
|
||||
}
|
||||
|
||||
return dt;
|
||||
return new object[]{ dt, ColumnHeaders, RowHeaders };
|
||||
}
|
||||
|
||||
private void DgvMap_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
|
||||
@@ -113,6 +148,8 @@ namespace friction
|
||||
Size titleSize = TextRenderer.MeasureText(e.Value.ToString(), e.CellStyle.Font);
|
||||
if (view.ColumnHeadersHeight < titleSize.Width)
|
||||
view.ColumnHeadersHeight = titleSize.Width;
|
||||
if (view.ColumnHeadersHeight > HEADER_SIZE)
|
||||
view.ColumnHeadersHeight = HEADER_SIZE;
|
||||
e.Graphics.TranslateTransform(0, titleSize.Width);
|
||||
e.Graphics.RotateTransform(-90.0F);
|
||||
e.Graphics.DrawString(e.Value.ToString(), this.Font, brush,
|
||||
@@ -122,5 +159,59 @@ namespace friction
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
void Pivot()
|
||||
{
|
||||
object[] viewData = GetData();
|
||||
DataTable data = (DataTable)viewData[0];
|
||||
List<string> ColumnHeaders = (List<string>)viewData[1];
|
||||
List<string> RowHeaders = (List<string>)viewData[2];
|
||||
|
||||
dgvMap.Rows.Clear();
|
||||
dgvMap.Columns.Clear();
|
||||
|
||||
int iColSize = ColumnHeaders.Count;
|
||||
int iRowSize = RowHeaders.Count - 1;
|
||||
|
||||
for (int i = 0; i < iRowSize; i++)
|
||||
dgvMap.Columns.Add(RowHeaders[i], RowHeaders[i]);
|
||||
|
||||
for (int iCol = 0; iCol < iColSize; iCol++)
|
||||
{
|
||||
int iRowIdx = dgvMap.Rows.Add();
|
||||
dgvMap.Rows[iRowIdx].HeaderCell.Value = ColumnHeaders[iCol];
|
||||
for (int iRow = 0; iRow < iRowSize; iRow++)
|
||||
{
|
||||
DataGridViewCell cell = dgvMap.Rows[iRowIdx].Cells[iRow];
|
||||
cell.Value = data.Rows[iRow][iCol];
|
||||
float fValue = 0;
|
||||
if (cell.Value.GetType() != typeof(System.DBNull))
|
||||
{
|
||||
float.TryParse((string)cell.Value, out fValue);
|
||||
Config.ANALYSIS.RISK Risk = Config.ANALYSIS.GetRisk(fValue);
|
||||
switch (Risk)
|
||||
{
|
||||
case Config.ANALYSIS.RISK.NO:
|
||||
cell.Style.BackColor = Theme.Green;
|
||||
break;
|
||||
case Config.ANALYSIS.RISK.POTENTIAL:
|
||||
cell.Style.BackColor = Theme.Yellow;
|
||||
break;
|
||||
case Config.ANALYSIS.RISK.HIGH:
|
||||
cell.Style.BackColor = Theme.Red;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < iRowSize; i++)
|
||||
dgvMap.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
|
||||
}
|
||||
|
||||
private void btPivot_Click(object sender, EventArgs e)
|
||||
{
|
||||
Pivot();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user