private void btYieldChartRefresh_Click(object sender, RoutedEventArgs e) { desiredStartDateTimeForYield = this.dtpStartDateForYield.SelectedDate; desiredStartDateTimeForYield = new DateTime(desiredStartDateTimeForYield.Value.Year, desiredStartDateTimeForYield.Value.Month, desiredStartDateTimeForYield.Value.Day, 0, 0, 0); desiredEndDateTimeForYield = this.dtpEndDateForYield.SelectedDate; desiredEndDateTimeForYield = new DateTime(desiredEndDateTimeForYield.Value.Year, desiredEndDateTimeForYield.Value.Month, desiredEndDateTimeForYield.Value.Day, 23, 59, 59); dtYield.Rows.Clear(); string[] interestedTables = new string[] { $"{projectName}_FCT_Summary", $"{ projectName}_SFG_Summary", $"{projectName}_FG00", $"{projectName}_FG24" }; string excludedLineId = this.cmbReworkLine.Text; for (int index = 0; index < interestedTables.Length; index++) { YieldRateBreakDown yieldrate = myDatabase.GetYieldRateBreakdown(interestedTables[index], desiredStartDateTimeForYield.Value, desiredEndDateTimeForYield.Value, excludedLineId); this.AddRowToYieldDataTable(yieldrate); } }
private void AddRowToYieldDataTable(YieldRateBreakDown yrBreakDown) { DataRow row = dtYield.NewRow(); row["Station"] = yrBreakDown.station; row["InputCount"] = yrBreakDown.inputCount; row["FailCount"] = yrBreakDown.failureCount; if (yrBreakDown.inputCount != 0) { row["FailRate"] = Math.Round(100.0 * yrBreakDown.failureCount / yrBreakDown.inputCount, 3); } for (int i = 0; i < Math.Min(5, yrBreakDown.FailurePattern.Count); i++) { string header1 = $"Top{i + 1}EC"; string header2 = $"Top{i + 1}Count"; string value1 = yrBreakDown.FailurePattern.ElementAt(i).Key; int value2 = yrBreakDown.FailurePattern.ElementAt(i).Value; row[header1] = value1; row[header2] = value2; } dtYield.Rows.Add(row); }