Files
friction/PanelAnalysis.cs
mjjo53 879b3abda4 - 글자 크기와 툴바 아이콘 크기 조정
- Material compatibility table 리포트에 추가
- Material compatibility table 정렬되지 않도록
- 탭 패널 아이콘 적용

Radar Graph
- 항목의 폰트 크기 조정
- 영역에 색 지정 데이터는 라인으로
- 이 창을 띄울 땐 무조건 All이 선택되도록
- 데이터가 3개보다 적을 때 팝업

Trend Graph
- 재질 쌍 표시
- 영역 색을 조정

Analysis Table
- 재질 더블클릭 시 Material Table이 선택
2017-06-28 01:26:07 +09:00

179 lines
4.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class PanelAnalysis : DockContent
{
MainForm m_Owner = null;
string m_CurSpring = "";
public PanelAnalysis(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
Theme.Apply(this);
Theme.Apply(dgvAnalysis);
lbInfo11.BackColor = Theme.Green;
lbInfo12.BackColor = Theme.Yellow;
lbInfo13.BackColor = Theme.Red;
lbInfo21.BackColor = Theme.Green;
lbInfo22.BackColor = Theme.Yellow;
lbInfo23.BackColor = Theme.Red;
lbInfo24.BackColor = Theme.Gray;
}
public void Reset()
{
m_CurSpring = "";
}
private Color GetDependancyColor(float fValue, int iCnt)
{
Config.ANALYSIS.DEPENDANCY Type = Config.ANALYSIS.GetDependancy(fValue, iCnt);
switch(Type)
{
case Config.ANALYSIS.DEPENDANCY.NO:
return Theme.Green;
case Config.ANALYSIS.DEPENDANCY.POTENTIAL:
return Theme.Yellow;
case Config.ANALYSIS.DEPENDANCY.HIGH:
return Theme.Red;
case Config.ANALYSIS.DEPENDANCY.NOT_ENNOUGH_DATA:
return Theme.Gray;
}
return Theme.White;
}
public void UpdateData(DataHandler data)
{
string strSpring = data.GetCurSpring();
if (strSpring == m_CurSpring)
return;
lbSpring.Text = "Material Spring: " +strSpring;
lbSpring.ForeColor = Theme.Orange;
dgvAnalysis.Columns.Clear();
dgvAnalysis.Rows.Clear();
dgvAnalysis.DefaultCellStyle.Format = "N2";
dgvAnalysis.Columns.Add("chTable", "Table");
dgvAnalysis.Columns.Add("chNoTest", "No. of Tests");
dgvAnalysis.Columns.Add("chAvg", "Average RPN");
dgvAnalysis.Columns.Add("chSTD", "Standard Deviation");
dgvAnalysis.Columns.Add("chForce", "Normal Force");
dgvAnalysis.Columns.Add("chTemp", "Temperature");
dgvAnalysis.Columns.Add("chHumi", "Rel. Humidity");
dgvAnalysis.Columns.Add("chVel", "Velocity");
foreach (string strTable in data.GetTableList())
{
DataHandler.CalcResult result = data.GetCalc(strSpring, strTable);
if (result.m_iCnt <= 0)
continue;
int iIdx = dgvAnalysis.Rows.Add(strTable, result.m_iCnt, result.m_fAvgRPN, result.m_fStdRPN, result.m_fDiffByForce, result.m_fDiffByTemp, result.m_fDiffByHumid, result.m_fDiffByVel);
Config.ANALYSIS.RISK RiskType = Config.ANALYSIS.GetRisk(result.m_fAvgRPN);
Config.ANALYSIS.DEPENDANCY DependancyType = Config.ANALYSIS.GetDependancy(result.m_fStdRPN, result.m_iCnt);
if(DependancyType == Config.ANALYSIS.DEPENDANCY.NOT_ENNOUGH_DATA)
{
for (int i = 2; i <= 7; i++)
{
dgvAnalysis.Rows[iIdx].Cells[i].Style.BackColor = Theme.Gray;
dgvAnalysis.Rows[iIdx].Cells[i].Style.ForeColor = Theme.Backcolor;
}
}
else
{
switch (RiskType)
{
case Config.ANALYSIS.RISK.NO:
dgvAnalysis.Rows[iIdx].Cells[2].Style.BackColor = Theme.Green;
break;
case Config.ANALYSIS.RISK.POTENTIAL:
dgvAnalysis.Rows[iIdx].Cells[2].Style.BackColor = Theme.Yellow;
break;
case Config.ANALYSIS.RISK.HIGH:
dgvAnalysis.Rows[iIdx].Cells[2].Style.BackColor = Theme.Red;
break;
}
dgvAnalysis.Rows[iIdx].Cells[3].Style.BackColor = GetDependancyColor(result.m_fStdRPN, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[4].Style.BackColor = GetDependancyColor(result.m_fDiffByForce, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[5].Style.BackColor = GetDependancyColor(result.m_fDiffByTemp, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[6].Style.BackColor = GetDependancyColor(result.m_fDiffByHumid, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[7].Style.BackColor = GetDependancyColor(result.m_fDiffByVel, result.m_iCnt);
}
}
m_CurSpring = strSpring;
}
public void SelectRow(string strTable)
{
dgvAnalysis.ClearSelection();
foreach (DataGridViewRow row in dgvAnalysis.Rows)
{
if ((string)row.Cells["chTable"].Value == strTable)
{
row.Selected = true;
break;
}
}
}
public DataTable GetData()
{
var dt = new DataTable();
foreach (DataGridViewColumn column in dgvAnalysis.Columns)
{
if (column.Visible)
dt.Columns.Add(column.HeaderText);
}
object[] cellValues = new object[dgvAnalysis.Columns.Count];
foreach (DataGridViewRow row in dgvAnalysis.Rows)
{
for (int i = 0; i < row.Cells.Count; i++)
cellValues[i] = row.Cells[i].Value;
dt.Rows.Add(cellValues);
}
return dt;
}
private void dgvAnalysis_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if(dgvAnalysis.Columns[e.ColumnIndex].HeaderText == "Table")
{
string strTable = dgvAnalysis.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string;
m_Owner.OnApplyData(this, m_CurSpring, strTable);
}
}
}
}