private void SetDataValue(int index, ReportRow row) { DataValueDataSet set = context.DB.DataValueSet; set.RecNo = context.DB.GetGenNo("GN_DATAVALUE"); set.DataValueUnitNo = row.RecNo; set.DataNo = index; set.DataValue = row.Cells[index].Raw; }
private void SetSheetValues(Dictionary <string, Cell> sheet, List <string> cellTags, int integCount, int integTime, DataValueUnitDataSet valueUnitSet, DataValueDataSet valueSet, bool isThermo, bool isNozzle = false) { string tag, state = ""; float average = 0; int valueCount = 0; int valueUnitCount = valueUnitSet.GetRowCount(); UnitConvert unit = new UnitConvert(EUnitType.None, 0, 0); for (int i = 0; i < valueUnitCount; i++) { valueUnitSet.Fetch(i); unit.Type = (EUnitType)valueUnitSet.UnitType; unit.From = valueUnitSet.UnitFrom; unit.To = valueUnitSet.UnitTo; if (isThermo == true) { tag = $"{{{cellTags[i]}-N}}"; sheet[tag].Value = valueUnitSet.ValueName; } tag = $"{{{cellTags[i]}}}"; if (cellTags[i] != "365") { if (valueUnitSet.UnitType == 0) { sheet[tag].Value = ""; } else { sheet[tag].Value = unit.ToDescription; } } average = 0; valueSet.Select(valueUnitSet.RecNo); valueCount = valueSet.GetRowCount(); for (int j = 0; j < valueCount; j++) { valueSet.Fetch(j); tag = $"{{{cellTags[i]}-{valueSet.DataNo+1}}}"; if (valueUnitSet.UnitType == 0) { if ((cellTags[i] == "365") && (isNozzle == true)) { state = GetNozzleState((byte)valueSet.DataValue); sheet[tag].Value = state; } else { sheet[tag].Value = ""; average = float.NaN; break; } } else { if (float.IsNaN(valueSet.DataValue) == true) { sheet[tag].Value = ""; average = float.NaN; break; } else { if (string.IsNullOrWhiteSpace(valueUnitSet.Format) == false) { sheet[tag].NumberFormat = valueUnitSet.Format; } sheet[tag].Value = unit.Convert(valueSet.DataValue); average += valueSet.DataValue; } } } tag = $"{{{cellTags[i]}-0}}"; if (cellTags[i] == "365") { if (isNozzle == true) { sheet[tag].Value = state; } else { sheet[tag].Value = ""; } } else { if ((valueUnitSet.UnitType == 0) || (valueCount == 0)) { sheet[tag].Value = ""; } else { if (float.IsNaN(average) == true) { sheet[tag].Value = ""; } else { average = average / valueCount; sheet[tag].Value = unit.Convert(average); } } } } sheet["{min-0}"].Value = "Average"; for (int i = 0; i < integCount; i++) { tag = $"{{min-{i+1}}}"; sheet[tag].Value = $"{(i+1)*integTime} min"; } }
public void Open(Int64 recNo) { sheetTags.Clear(); db.Lock(); try { Dictionary <string, Cell> sheet; DataBookDataSet bookSet = db.DataBookSet; DataSheetDataSet sheetSet = db.DataSheetSet; DataValueUnitDataSet valueUnitSet = db.DataValueUnitSet; DataValueDataSet valueSet = db.DataValueSet; bookSet.Select(recNo); if (bookSet.IsEmpty() == false) { bookSet.Fetch(); if (string.IsNullOrWhiteSpace(bookSet.TestName) == true) { fName = $"None_Line{bookSet.TestLine + 1}"; } else { fName = $"{bookSet.TestName}_Line{bookSet.TestLine + 1}"; } sheetSet.Select(bookSet.RecNo); for (int i = 0; i < sheetSet.GetRowCount(); i++) { sheetSet.Fetch(i); bool isNozzle = false; if ((sheetSet.IDState.EndsWith("Cooling") == true) || (sheetSet.IDState.EndsWith("Heating") == true)) { isNozzle = true; } sheet = sheetTags.Sheets[sheetSet.SheetName]; reportSheet.BeginUpdate(); try { SetSheetTitle(sheet, bookSet, sheetSet); if (sheetSet.Use == true) { valueUnitSet.Select(sheetSet.RecNo); if (i < 4) { SetSheetValues(sheet, calorieTags, bookSet.IntegCount, bookSet.IntegTime, valueUnitSet, valueSet, false, isNozzle); } else { SetSheetValues(sheet, thermoTags, bookSet.IntegCount, bookSet.IntegTime, valueUnitSet, valueSet, true, false); } } } finally { reportSheet.EndUpdate(); } Thread.Sleep(1); } } } finally { db.Unlock(); } }