init
This commit is contained in:
148
DataPRO/Reports/ChannelCalibrationList.cs
Normal file
148
DataPRO/Reports/ChannelCalibrationList.cs
Normal file
@@ -0,0 +1,148 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace DTS.Reports
|
||||
{
|
||||
public class ChannelCalibrationList : ReportBase
|
||||
{
|
||||
public enum Fields
|
||||
{
|
||||
Location,
|
||||
SensorAxis,
|
||||
SerialNo,
|
||||
Cal,
|
||||
NextCal
|
||||
}
|
||||
public class ChannelHelper
|
||||
{
|
||||
public enum ResultStatus
|
||||
{
|
||||
OK,
|
||||
Overdue,
|
||||
Warn
|
||||
}
|
||||
public string Location { get; set; }
|
||||
public string SensorAxis { get; set; }
|
||||
public string SerialNo { get; set; }
|
||||
public string SerialNumberWithAxis { get; set; }
|
||||
public string Cal { get; set; }
|
||||
public string NextCal { get; set; }
|
||||
public ResultStatus CalStatus { get; set; }
|
||||
public ChannelHelper() { Location = ""; SensorAxis = ""; SerialNo = ""; Cal = ""; NextCal = ""; }
|
||||
public ChannelHelper(string location, string sensorAxis, string serialNo, string cal, string nextCal)
|
||||
{
|
||||
Location = location;
|
||||
SensorAxis = sensorAxis;
|
||||
SerialNo = serialNo;
|
||||
Cal = cal;
|
||||
NextCal = nextCal;
|
||||
}
|
||||
}
|
||||
public ChannelCalibrationList()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static string GetReportFilenamePath(string reportPath, string testId)
|
||||
{
|
||||
var filename = "ChannelCalibrationList.xlsx";
|
||||
if (false == string.IsNullOrEmpty(testId))
|
||||
filename = $"{testId} " + filename;
|
||||
return Path.Combine(reportPath, filename);
|
||||
}
|
||||
public void DoReport(ChannelHelper[] channels, string outputFileName, string folderNameId, string sensitivityDisplayFormat,
|
||||
bool generateExcelReports, bool generatePDFReports)
|
||||
{
|
||||
var dtStyles = new DataTable();
|
||||
using (var dt = new DataTable())
|
||||
{
|
||||
dt.TableName = "List";
|
||||
|
||||
var fields = Enum.GetValues(typeof(Fields)).Cast<Fields>().ToArray();
|
||||
foreach (var field in fields)
|
||||
{
|
||||
var c = dt.Columns.Add(field.ToString());
|
||||
var c2 = dtStyles.Columns.Add(field.ToString(), typeof(int));
|
||||
switch (field)
|
||||
{
|
||||
default: c.DataType = typeof(string); break;
|
||||
}
|
||||
}
|
||||
foreach (var ch in channels)
|
||||
{
|
||||
var row = dt.NewRow();
|
||||
var row2 = dtStyles.NewRow();
|
||||
foreach (var field in fields)
|
||||
{
|
||||
object o = null;
|
||||
row2[field.ToString()] = -1;
|
||||
switch (field)
|
||||
{
|
||||
case Fields.Cal: o = ch.Cal; break;
|
||||
case Fields.Location: o = ch.Location; break;
|
||||
case Fields.NextCal:
|
||||
o = ch.NextCal;
|
||||
if ((!string.IsNullOrWhiteSpace(ch.NextCal)) && (ch.NextCal != "--"))
|
||||
{
|
||||
switch (ch.CalStatus)
|
||||
{
|
||||
case ChannelHelper.ResultStatus.OK:
|
||||
row2[field.ToString()] = (int)FillStyles.Pass;
|
||||
break;
|
||||
case ChannelHelper.ResultStatus.Warn:
|
||||
row2[field.ToString()] = (int)FillStyles.Warn;
|
||||
break;
|
||||
case ChannelHelper.ResultStatus.Overdue:
|
||||
row2[field.ToString()] = (int)FillStyles.Fail;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case Fields.SensorAxis: o = ch.SensorAxis; break;
|
||||
case Fields.SerialNo: o = ch.SerialNo; break;
|
||||
}
|
||||
row[field.ToString()] = o;
|
||||
}
|
||||
dt.Rows.Add(row);
|
||||
dtStyles.Rows.Add(row2);
|
||||
}
|
||||
|
||||
if (File.Exists(outputFileName))
|
||||
{
|
||||
ReportFileWillBeOverwritten(outputFileName);
|
||||
try
|
||||
{
|
||||
File.Delete(outputFileName);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
ReportFileInUse(outputFileName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TemplateFilename = GetReportFilenamePath(GetTemplateReportPath(), string.Empty);
|
||||
OutputFilename = outputFileName;
|
||||
|
||||
if (generateExcelReports)
|
||||
{
|
||||
OutputReport(new DataTable[] { dt }, new DataTable[] { dtStyles });
|
||||
CopyReportIfNeeded(folderNameId, outputFileName);
|
||||
}
|
||||
|
||||
if (generatePDFReports)
|
||||
{
|
||||
//Make a PDF with the same name
|
||||
outputFileName = outputFileName.Replace(".xlsx", ".pdf");
|
||||
//Don't overwrite the Excel file that may be the filled-in template.
|
||||
DestinationTemplateFilename = OutputFilename.Replace(".xlsx", Common.Constants.TEMP_FILE_EXTENSION);
|
||||
OutputFilename = outputFileName;
|
||||
OutputReportPDF(new DataTable[] { dt }, new DataTable[] { dtStyles }, sensitivityDisplayFormat);
|
||||
CopyReportIfNeeded(folderNameId, outputFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user