[성현모] tra 날짜 오류 수정, tra recovery 온도그래프, 버전셀렉트, ok avg 기능 추가
This commit is contained in:
@ -296,19 +296,25 @@ namespace SystemX.Product.TRA.UIControl
|
||||
if (Int64.TryParse(dtRowTestlistSpec[2].ToString(), out outValue))
|
||||
{
|
||||
CPXV2Log.Tables.HIST_TestResult row = list.Where(x => x.StepID == outValue)?.First();
|
||||
if(row == null)
|
||||
if (row == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(row.MeasValStr) == true)
|
||||
if (dtRowTestlistSpec.ItemArray[9].ToString() == "TEMPCELSIUS")
|
||||
{
|
||||
row.MeasVal = Convert.ToDecimal($"{row.Message.Split('_')[1]}");
|
||||
row.MeasValStr = $"{row.Message.Split('_')[1]}";
|
||||
row.Message = string.Empty;
|
||||
}
|
||||
else if (string.IsNullOrEmpty(row.MeasValStr) == true)
|
||||
{
|
||||
if (//!string.IsNullOrEmpty(row.MeasValStr) ||
|
||||
//!string.IsNullOrEmpty(row.Message) ||
|
||||
//!string.IsNullOrEmpty(row.Message) ||
|
||||
((row.MeasVal == 0) ||
|
||||
string.Compare(row.Result, "NONE") == 0))
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
//string strValue = drLog[DMTestHistory.eColList.No.ToString()].ToString();
|
||||
try
|
||||
@ -383,7 +389,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return dtFinal;
|
||||
}
|
||||
@ -422,7 +428,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
chartControlMain.CrosshairOptions.CrosshairLabelBackColor = Color.White;
|
||||
chartControlMain.CrosshairOptions.ValueLineColor = Color.Black;
|
||||
chartControlMain.CrosshairOptions.GroupHeaderTextOptions.TextColor = Color.Blue;
|
||||
|
||||
|
||||
int nSrsIdxValue = AddSeries("Value", ScaleType.Qualitative, ScaleType.Numerical, Color.Red);
|
||||
int nSrsIdxMin = AddSeries("Lower Limit", ScaleType.Qualitative, ScaleType.Numerical, Color.Blue);
|
||||
int nSrsIdxMax = AddSeries("Upper Limit", ScaleType.Qualitative, ScaleType.Numerical, Color.Blue);
|
||||
@ -559,7 +565,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
{
|
||||
string strDim = dtRowTestlist[DMTestDetail.eColTestlist.Dim.ToString()].ToString();
|
||||
|
||||
if (NoChartDispSpec.Contains(strDim))
|
||||
if (data.MO != "TEMPCELSIUS" && NoChartDispSpec.Contains(strDim))
|
||||
return null;
|
||||
|
||||
bool bIsGlobal = (Convert.ToInt32(dtRowTestlist[DMTestDetail.eColTestlist.IsGlobal.ToString()])) > 0 ? true : false;
|
||||
@ -608,7 +614,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
elemUnit.Result = strResult == "NG" || strResult == "ERROR" ? eResultType.NG : strResult == "OK" ? eResultType.OK : eResultType.NONE;
|
||||
|
||||
if (bOKDataOnly && elemUnit.Result != eResultType.OK)
|
||||
if (bOKDataOnly && data.MO != "TEMPCELSIUS" && elemUnit.Result != eResultType.OK)
|
||||
continue;
|
||||
|
||||
resultUnit.DataElements.Add(elemUnit);
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
using DevExpress.Utils;
|
||||
using DevExpress.XtraGrid.Views.Grid;
|
||||
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
|
||||
using DevExpress.XtraPrinting;
|
||||
using DevExpress.XtraVerticalGrid;
|
||||
using DevExpress.XtraVerticalGrid.Rows;
|
||||
using System;
|
||||
@ -57,7 +58,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
delegate void evtDBQueryFinished();
|
||||
event evtDBQueryFinished evtDBFin;
|
||||
|
||||
|
||||
public delegate void evtStepTrendViewHandler(TestTrendDataCollection data);
|
||||
|
||||
public event evtStepTrendViewHandler OnStepSelect;
|
||||
@ -84,9 +85,9 @@ namespace SystemX.Product.TRA.UIControl
|
||||
DBController = getDBController;
|
||||
|
||||
DataManager = new DMTestSummary(SelectView, DBController, dtStart);
|
||||
}
|
||||
}
|
||||
|
||||
public void ViewData(SelectedDataCollection data, DataTable DataList)
|
||||
public void ViewData(SelectedDataCollection data, DataTable DataList, int stepVersion = -1)
|
||||
{
|
||||
if (data == null)
|
||||
return;
|
||||
@ -109,7 +110,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
try
|
||||
{
|
||||
ShowProperties(data);
|
||||
data.StepVersion = stepVersion.ToString();
|
||||
|
||||
SelectedData = data;
|
||||
DTTestLogList = DataList;
|
||||
@ -122,7 +123,12 @@ namespace SystemX.Product.TRA.UIControl
|
||||
string strGetStepVersion = dr[eColList.StepVersion.ToString()].ToString();
|
||||
int nCurStepVersion = int.MinValue;
|
||||
|
||||
if (int.TryParse(strGetStepVersion, out nCurStepVersion) == false)
|
||||
if (stepVersion > -1)
|
||||
{
|
||||
nGetStepVersion = stepVersion;
|
||||
ShowProperties(data);
|
||||
}
|
||||
else if (int.TryParse(strGetStepVersion, out nCurStepVersion) == false)
|
||||
{
|
||||
bOptionNewStepVersionBase = true;
|
||||
|
||||
@ -149,12 +155,12 @@ namespace SystemX.Product.TRA.UIControl
|
||||
DTLastestTestlistSrc = DataManager.SearchTestlist(data, nGetStepVersion, bOptionNewStepVersionBase);
|
||||
DTTestSummary = GetSummaryData(data, DataList);
|
||||
|
||||
ShowDetailData();
|
||||
ShowDetailData();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Searching Failure - {ex.Message}", "Test Trend - Error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CloseWaitingForm()
|
||||
@ -166,12 +172,12 @@ namespace SystemX.Product.TRA.UIControl
|
||||
{
|
||||
DataTable dtSummary = new DataTable();
|
||||
List<Int64> vnpHistSummaryNo = (from drTest in DataList.AsEnumerable()
|
||||
where drTest[eColList.ParentNo.ToString()].ToString() != "-"
|
||||
let npValue = Convert.ToInt64(drTest[eColList.No.ToString()])
|
||||
select npValue).ToList();
|
||||
where drTest[eColList.ParentNo.ToString()].ToString() != "-"
|
||||
let npValue = Convert.ToInt64(drTest[eColList.No.ToString()])
|
||||
select npValue).ToList();
|
||||
|
||||
dtSummary = DataManager.SearchTestSummary(data.TestRequestID, vnpHistSummaryNo);
|
||||
|
||||
|
||||
evtDBFin();
|
||||
|
||||
return dtSummary;
|
||||
@ -184,13 +190,13 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
DataTable dtFinal = new DataTable();
|
||||
|
||||
foreach(string strCol in Enum.GetNames(typeof(eColDataTable)))
|
||||
foreach (string strCol in Enum.GetNames(typeof(eColDataTable)))
|
||||
{
|
||||
Type typCol = typeof(string);
|
||||
|
||||
if (strCol == eColDataTable.StepNo.ToString())
|
||||
typCol = typeof(int);
|
||||
else if (strCol == eColDataTable.Duration.ToString()
|
||||
else if (strCol == eColDataTable.Duration.ToString()
|
||||
|| strCol == eColDataTable.Total.ToString()
|
||||
|| strCol == eColDataTable.OK.ToString()
|
||||
|| strCol == eColDataTable.NG.ToString())
|
||||
@ -266,7 +272,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
}
|
||||
|
||||
DataRow drDisp = dtFinal.NewRow();
|
||||
|
||||
|
||||
drDisp[eColDataTable.StepNo.ToString()] = Convert.ToInt32(Convert.ToInt32(drLog[eColTestSummary.StepID.ToString()]));
|
||||
|
||||
if (drTL != null)
|
||||
@ -277,14 +283,14 @@ namespace SystemX.Product.TRA.UIControl
|
||||
drDisp[eColDataTable.Function.ToString()] = drTL[eColTestlist.UseFunction.ToString()].ToString();
|
||||
|
||||
bool bIsGlobal = (Convert.ToInt32(drTL[eColTestlist.IsGlobal.ToString()])) > 0 ? true : false;
|
||||
if(bIsGlobal == true)
|
||||
if (bIsGlobal == true)
|
||||
{
|
||||
}
|
||||
|
||||
drDisp[eColDataTable.Min.ToString()] = bIsGlobal ? "Global Var" : drTL[eColTestlist.SpecMin.ToString()].ToString();
|
||||
drDisp[eColDataTable.Max.ToString()] = bIsGlobal ? "Global Var" : drTL[eColTestlist.SpecMax.ToString()].ToString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var strMeasVal = drLog[eColTestSummary.Average.ToString()];
|
||||
int nOK = Convert.ToInt32(drLog[eColTestSummary.OK.ToString()]);
|
||||
int nNOK = Convert.ToInt32(drLog[eColTestSummary.NG.ToString()]);
|
||||
@ -337,7 +343,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
gridViewMain.ActiveFilterString = GridViewGetActiveFilterText;
|
||||
}
|
||||
|
||||
|
||||
void ShowProperties(SelectedDataCollection data)
|
||||
{
|
||||
vGridControlInfo.Rows.Clear();
|
||||
@ -357,7 +363,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
}
|
||||
|
||||
OnSizeChanged(vGridControlInfo);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void OnSizeChanged(VGridControl grid)
|
||||
@ -404,5 +410,36 @@ namespace SystemX.Product.TRA.UIControl
|
||||
OnStepSelect(dataSend);
|
||||
}
|
||||
}
|
||||
|
||||
public override void ExportData()
|
||||
{
|
||||
FolderBrowserDialog dlg = new FolderBrowserDialog();
|
||||
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
|
||||
string strFileName = CreateExportFileName();
|
||||
string strExpPath = dlg.SelectedPath + "\\" + strFileName;
|
||||
XlsxExportOptionsEx option = new XlsxExportOptionsEx();
|
||||
string strFile = strExpPath + ".xlsx";
|
||||
|
||||
option.ShowGridLines = true;
|
||||
option.ExportType = DevExpress.Export.ExportType.WYSIWYG;
|
||||
option.ExportMode = XlsxExportMode.SingleFile;
|
||||
option.SheetName = "Test Summary";
|
||||
gridControlMain.ExportToXlsx(strFile, option);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public string CreateExportFileName()
|
||||
{
|
||||
string strFileName = $"{this.ContentsType.ToString()}_{SelectedData.ProductNo}_{SelectedData.TestCode}_{SelectedData.StationName}";
|
||||
|
||||
strFileName += $"_{SelectedData.StartTime.ToString("yyyyMMddHHmmss")}-{SelectedData.EndTime.ToString("yyyyMMddHHmmss")}";
|
||||
|
||||
return strFileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -39,6 +39,8 @@
|
||||
this.Root = new DevExpress.XtraLayout.LayoutControlGroup();
|
||||
this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||
this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
|
||||
this.labelControlOKTestTime = new DevExpress.XtraEditors.LabelControl();
|
||||
this.labelControl4 = new DevExpress.XtraEditors.LabelControl();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridControlMain)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridViewMain)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
|
||||
@ -122,6 +124,8 @@
|
||||
//
|
||||
// groupControl1
|
||||
//
|
||||
this.groupControl1.Controls.Add(this.labelControlOKTestTime);
|
||||
this.groupControl1.Controls.Add(this.labelControl4);
|
||||
this.groupControl1.Controls.Add(this.labelControlTestTime);
|
||||
this.groupControl1.Controls.Add(this.labelControl3);
|
||||
this.groupControl1.Controls.Add(this.labelControlTestResult);
|
||||
@ -199,6 +203,22 @@
|
||||
this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0);
|
||||
this.layoutControlItem3.TextVisible = false;
|
||||
//
|
||||
// labelControlOKTestTime
|
||||
//
|
||||
this.labelControlOKTestTime.Location = new System.Drawing.Point(894, 29);
|
||||
this.labelControlOKTestTime.Name = "labelControlOKTestTime";
|
||||
this.labelControlOKTestTime.Size = new System.Drawing.Size(4, 14);
|
||||
this.labelControlOKTestTime.TabIndex = 7;
|
||||
this.labelControlOKTestTime.Text = "-";
|
||||
//
|
||||
// labelControl4
|
||||
//
|
||||
this.labelControl4.Location = new System.Drawing.Point(800, 29);
|
||||
this.labelControl4.Name = "labelControl4";
|
||||
this.labelControl4.Size = new System.Drawing.Size(88, 14);
|
||||
this.labelControl4.TabIndex = 6;
|
||||
this.labelControl4.Text = "OK Test Time : ";
|
||||
//
|
||||
// UcTRATestHistHost
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
@ -234,5 +254,7 @@
|
||||
private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
|
||||
private DevExpress.XtraEditors.LabelControl labelControl3;
|
||||
private DevExpress.XtraEditors.LabelControl labelControlTestTime;
|
||||
private DevExpress.XtraEditors.LabelControl labelControlOKTestTime;
|
||||
private DevExpress.XtraEditors.LabelControl labelControl4;
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,19 +148,28 @@ namespace SystemX.Product.TRA.UIControl
|
||||
where drData[DMTestHistory.eColList.TestResult.ToString()].ToString() == "NG"
|
||||
select drData).Count();
|
||||
List<int> vnTestTime = (from drData in dtResult.AsEnumerable()
|
||||
where drData[DMTestHistory.eColList.TestResult.ToString()].ToString() == "OK"
|
||||
|| drData[DMTestHistory.eColList.TestResult.ToString()].ToString() == "NG"
|
||||
let nTime = Convert.ToInt32(drData[DMTestHistory.eColList.Duration.ToString()].ToString())
|
||||
select nTime).ToList();
|
||||
where drData[DMTestHistory.eColList.TestResult.ToString()].ToString() == "OK"
|
||||
|| drData[DMTestHistory.eColList.TestResult.ToString()].ToString() == "NG"
|
||||
let nTime = Convert.ToInt32(drData[DMTestHistory.eColList.Duration.ToString()].ToString())
|
||||
select nTime).ToList();
|
||||
|
||||
double dRatio = (((double)(nOKTestCount * 100)) / (nOKTestCount + nNGTestCount));
|
||||
labelControlTestResult.Text = $"{nOKTestCount + nNGTestCount} (OK: {nOKTestCount}/NG: {nNGTestCount}) - Ratio: {dRatio.ToString(".##")}%";
|
||||
|
||||
|
||||
|
||||
labelControlTestTime.Text = vnTestTime.Count > 0 ?
|
||||
$"Average = {(vnTestTime.Average()/1000).ToString(".##")}s, Min = {(((double)vnTestTime.Min()) / 1000).ToString(".##")}s, Max = {(((double)vnTestTime.Max()) / 1000).ToString(".##")}s" :
|
||||
//total
|
||||
labelControlTestTime.Text = vnTestTime.Count > 0 ?
|
||||
$"Average = {(vnTestTime.Average() / 1000).ToString(".##")}s, Min = {(((double)vnTestTime.Min()) / 1000).ToString(".##")}s, Max = {(((double)vnTestTime.Max()) / 1000).ToString(".##")}s" :
|
||||
$"Average = -, Min = -, Max = -";
|
||||
|
||||
//ok
|
||||
List<int> vnOKTestTime = (from drData in dtResult.AsEnumerable()
|
||||
where drData[DMTestHistory.eColList.TestResult.ToString()].ToString() == "OK"
|
||||
let nTime = Convert.ToInt32(drData[DMTestHistory.eColList.Duration.ToString()].ToString())
|
||||
select nTime).ToList();
|
||||
|
||||
labelControlOKTestTime.Text = vnOKTestTime.Count > 0 ?
|
||||
$"Average = {(vnOKTestTime.Average() / 1000).ToString(".##")}s, Min = {(((double)vnOKTestTime.Min()) / 1000).ToString(".##")}s, Max = {(((double)vnOKTestTime.Max()) / 1000).ToString(".##")}s" :
|
||||
$"Average = -, Min = -, Max = -";
|
||||
}
|
||||
|
||||
void DisplayResultTable(DataTable dtResult)
|
||||
@ -209,7 +218,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
gridViewMain.EndUpdate();
|
||||
|
||||
gridViewMain.ActiveFilterString = GridViewGetActiveFilterText;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public DetailTestDataCollection GetSearchInfo(DataRow dtRow)
|
||||
@ -218,8 +227,8 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
//drDetail.TestID = dtRow[DMTestHistory.eColList.TestID.ToString()].ToString();
|
||||
drDetail.No = Convert.ToInt64(dtRow[DMTestHistory.eColList.No.ToString()]);
|
||||
drDetail.StartTime = DateTime.Parse(dtRow[DMTestHistory.eColList.TestDateTime.ToString()].ToString());
|
||||
drDetail.Duration = Convert.ToInt64(dtRow[DMTestHistory.eColList.Duration.ToString()]);
|
||||
drDetail.StartTime = DateTime.Parse(dtRow[DMTestHistory.eColList.TestDateTime.ToString()].ToString());
|
||||
drDetail.Duration = Convert.ToInt64(dtRow[DMTestHistory.eColList.Duration.ToString()]);
|
||||
drDetail.StationName = dtRow[DMTestHistory.eColList.StationName.ToString()].ToString();
|
||||
drDetail.HostID = dtRow[DMTestHistory.eColList.Host.ToString()].ToString();
|
||||
drDetail.SectionID = dtRow[DMTestHistory.eColList.Section.ToString()].ToString();
|
||||
@ -259,7 +268,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
private void SetDetailDataView()
|
||||
{
|
||||
if(nCurrentRowSelected != int.MaxValue)
|
||||
if (nCurrentRowSelected != int.MaxValue)
|
||||
{
|
||||
var dvRow = gridViewMain.GetRow(nCurrentRowSelected);
|
||||
DataRow dtRow = (dvRow as DataRowView).Row;
|
||||
@ -308,7 +317,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
List<DetailTestDataCollection> vDetailData = new List<DetailTestDataCollection>();
|
||||
GridView view = gridViewMain as GridView;
|
||||
|
||||
for(int i=0; i<view.RowCount; i++)
|
||||
for (int i = 0; i < view.RowCount; i++)
|
||||
{
|
||||
DataRow dtRow = (view.GetRow(i) as DataRowView).Row;
|
||||
DetailTestDataCollection dtContent = GetSearchInfo(dtRow);
|
||||
@ -318,7 +327,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
|
||||
return vDetailData;
|
||||
}
|
||||
|
||||
|
||||
public string CreateExportFileName()
|
||||
{
|
||||
string strFileName = $"{this.ContentsType.ToString()}_{SelectedData.ProductNo}_{SelectedData.TestCode}_{SelectedData.StationName}";
|
||||
@ -345,7 +354,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
option.ExportMode = XlsxExportMode.SingleFile;
|
||||
option.SheetName = "Test History";
|
||||
gridControlMain.ExportToXlsx(strFile, option);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -363,7 +372,7 @@ namespace SystemX.Product.TRA.UIControl
|
||||
{
|
||||
e.Merge = false;
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void gridViewMain_RowStyle(object sender, RowStyleEventArgs e)
|
||||
@ -376,5 +385,10 @@ namespace SystemX.Product.TRA.UIControl
|
||||
e.HighPriority = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void groupControl1_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user