init
This commit is contained in:
1
DataPRO/Reports/.svn/entries
Normal file
1
DataPRO/Reports/.svn/entries
Normal file
@@ -0,0 +1 @@
|
||||
12
|
||||
1
DataPRO/Reports/.svn/format
Normal file
1
DataPRO/Reports/.svn/format
Normal file
@@ -0,0 +1 @@
|
||||
12
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,459 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace DTS.Reports
|
||||
{
|
||||
public class DiagnosticsReport : ReportBase
|
||||
{
|
||||
private enum DASFields
|
||||
{
|
||||
DAS,
|
||||
FW,
|
||||
CalDate,
|
||||
DueDate,
|
||||
Connection,
|
||||
Input,
|
||||
Battery
|
||||
}
|
||||
private enum AnalogFields
|
||||
{
|
||||
ExportNum,
|
||||
DAS,
|
||||
Module,
|
||||
Channel,
|
||||
Object,
|
||||
Sens,
|
||||
Desc,
|
||||
Exc,
|
||||
Offset,
|
||||
Shunt,
|
||||
Range,
|
||||
Noise
|
||||
}
|
||||
private enum SquibFields
|
||||
{
|
||||
DAS,
|
||||
Module,
|
||||
Channel,
|
||||
Desc,
|
||||
ISO,
|
||||
FireMode,
|
||||
Delay,
|
||||
Duration
|
||||
}
|
||||
public class AnalogHelper
|
||||
{
|
||||
public enum ResultStatus
|
||||
{
|
||||
Passed,
|
||||
Failed,
|
||||
NotTested
|
||||
}
|
||||
public int ExportNum { get; set; }
|
||||
public string DAS { get; set; }
|
||||
public string Module { get; set; }
|
||||
public string Channel { get; set; }
|
||||
public string Object { get; set; }
|
||||
public string SensorSerialNumber { get; set; }
|
||||
public string SerialNumberWithAxis { get; set; }
|
||||
public string Desc { get; set; }
|
||||
public double ScalefactorMilliVoltsPerADC { get; set; }
|
||||
public double ActualRangeMv { get; set; }
|
||||
public double Exc { get; set; }
|
||||
public ResultStatus ExcStatus { get; set; }
|
||||
public double Offset { get; set; }
|
||||
public ResultStatus OffStatus { get; set; }
|
||||
public double Shunt { get; set; }
|
||||
public ResultStatus ShuntStatus { get; set; }
|
||||
public double Range { get; set; }
|
||||
public ResultStatus RangeStatus { get; set; }
|
||||
public double Noise { get; set; }
|
||||
public ResultStatus NoiseStatus { get; set; }
|
||||
}
|
||||
public class DASHelper
|
||||
{
|
||||
public string DAS { get; set; }
|
||||
public string Firmware { get; set; }
|
||||
public DateTime CalDate { get; set; }
|
||||
public DateTime DueDate { get; set; }
|
||||
public string Connection { get; set; }
|
||||
public string Input { get; set; }
|
||||
public string Battery { get; set; }
|
||||
}
|
||||
public class SquibHelper
|
||||
{
|
||||
public enum ResultStatus
|
||||
{
|
||||
Passed,
|
||||
Failed,
|
||||
NotTested
|
||||
}
|
||||
public string DAS { get; set; }
|
||||
public string Module { get; set; }
|
||||
public string Channel { get; set; }
|
||||
public string Desc { get; set; }
|
||||
public string ISO { get; set; }
|
||||
public string FireMode { get; set; }
|
||||
public double Delay { get; set; }
|
||||
public ResultStatus DelayStatus { get; set; }
|
||||
public double Duration { get; set; }
|
||||
public ResultStatus DurationStatus { get; set; }
|
||||
public double Resistance { get; set; }
|
||||
}
|
||||
public DiagnosticsReport()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static string GetReportFilename(bool isPreTest, string testId)
|
||||
{
|
||||
if (false == string.IsNullOrEmpty(testId))
|
||||
{
|
||||
return isPreTest
|
||||
? $"{testId} Pretest Diagnostics {GetFilenameTimeStamp()}.xlsx"
|
||||
: $"{testId} Post-Test Diagnostics {GetFilenameTimeStamp()}.xlsx";
|
||||
}
|
||||
else
|
||||
{
|
||||
// Return the template filename
|
||||
return "Diagnostic Results.xlsx";
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetReportFilenamePath(bool isPreTest, string reportPath, string testId)
|
||||
{
|
||||
var filename = GetReportFilename(isPreTest, testId);
|
||||
return Path.Combine(reportPath, filename);
|
||||
}
|
||||
|
||||
public void DoReport(DASHelper[] das, AnalogHelper[] analog, SquibHelper[] squib, string outputFileName, string folderNameId, string sensitivityDisplayFormat,
|
||||
bool generateExcelReports, bool generatePDFReports)
|
||||
{
|
||||
var dtDAS = new DataTable();
|
||||
var dtAnalog = new DataTable();
|
||||
var dtSquib = new DataTable();
|
||||
var dtAnalogStyles = new DataTable();
|
||||
var dtSquibStyles = new DataTable();
|
||||
var minDate = new DateTime(1970, 1, 1);
|
||||
|
||||
try
|
||||
{
|
||||
dtAnalog.TableName = "Analog";
|
||||
dtDAS.TableName = "DAS";
|
||||
dtSquib.TableName = "Squibs";
|
||||
|
||||
var analogFields = Enum.GetValues(typeof(AnalogFields)).Cast<AnalogFields>().ToArray();
|
||||
foreach (var field in analogFields)
|
||||
{
|
||||
var c = dtAnalog.Columns.Add(field.ToString());
|
||||
var c2 = dtAnalogStyles.Columns.Add(field.ToString(), typeof(int));
|
||||
switch (field)
|
||||
{
|
||||
case AnalogFields.Channel: c.DataType = typeof(string); break;
|
||||
case AnalogFields.DAS: c.DataType = typeof(string); break;
|
||||
case AnalogFields.Desc: c.DataType = typeof(string); break;
|
||||
case AnalogFields.Exc: c.DataType = typeof(double); break;
|
||||
case AnalogFields.ExportNum: c.DataType = typeof(int); break;
|
||||
case AnalogFields.Module: c.DataType = typeof(string); break;
|
||||
case AnalogFields.Noise: c.DataType = typeof(double); break;
|
||||
case AnalogFields.Object: c.DataType = typeof(string); break;
|
||||
case AnalogFields.Offset: c.DataType = typeof(double); break;
|
||||
case AnalogFields.Range: c.DataType = typeof(string); break;
|
||||
case AnalogFields.Sens: c.DataType = typeof(string); break;
|
||||
case AnalogFields.Shunt: c.DataType = typeof(double); break;
|
||||
}
|
||||
}
|
||||
var dasFields = Enum.GetValues(typeof(DASFields)).Cast<DASFields>().ToArray();
|
||||
foreach (var field in dasFields)
|
||||
{
|
||||
var c = dtDAS.Columns.Add(field.ToString());
|
||||
switch (field)
|
||||
{
|
||||
case DASFields.Battery: c.DataType = typeof(string); break;
|
||||
case DASFields.CalDate: c.DataType = typeof(string); break;
|
||||
case DASFields.Connection: c.DataType = typeof(string); break;
|
||||
case DASFields.DAS: c.DataType = typeof(string); break;
|
||||
case DASFields.DueDate: c.DataType = typeof(string); break;
|
||||
case DASFields.FW: c.DataType = typeof(string); break;
|
||||
case DASFields.Input: c.DataType = typeof(string); break;
|
||||
}
|
||||
}
|
||||
var squibFields = Enum.GetValues(typeof(SquibFields)).Cast<SquibFields>().ToArray();
|
||||
foreach (var field in squibFields)
|
||||
{
|
||||
var c = dtSquib.Columns.Add(field.ToString());
|
||||
var c2 = dtSquibStyles.Columns.Add(field.ToString(), typeof(int));
|
||||
switch (field)
|
||||
{
|
||||
case SquibFields.Channel: c.DataType = typeof(string); break;
|
||||
case SquibFields.DAS: c.DataType = typeof(string); break;
|
||||
case SquibFields.Delay: c.DataType = typeof(double); break;
|
||||
case SquibFields.Desc: c.DataType = typeof(string); break;
|
||||
case SquibFields.Duration: c.DataType = typeof(double); break;
|
||||
case SquibFields.FireMode: c.DataType = typeof(string); break;
|
||||
case SquibFields.ISO: c.DataType = typeof(string); break;
|
||||
case SquibFields.Module: c.DataType = typeof(string); break;
|
||||
}
|
||||
}
|
||||
foreach (var ch in squib)
|
||||
{
|
||||
var row = dtSquib.NewRow();
|
||||
var row2 = dtSquibStyles.NewRow();
|
||||
|
||||
foreach (var field in squibFields)
|
||||
{
|
||||
object o = null;
|
||||
row2[field.ToString()] = -1;
|
||||
switch (field)
|
||||
{
|
||||
case SquibFields.Channel: o = ch.Channel; break;
|
||||
case SquibFields.DAS: o = ch.DAS; break;
|
||||
case SquibFields.Delay:
|
||||
o = ch.Delay;
|
||||
switch (ch.DelayStatus)
|
||||
{
|
||||
case SquibHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
case SquibHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case SquibHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SquibFields.Desc: o = ch.Desc; break;
|
||||
case SquibFields.Duration:
|
||||
o = ch.Duration;
|
||||
switch (ch.DurationStatus)
|
||||
{
|
||||
case SquibHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
case SquibHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case SquibHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SquibFields.FireMode: o = ch.FireMode; break;
|
||||
case SquibFields.ISO: o = ch.ISO; break;
|
||||
case SquibFields.Module: o = ch.Module; break;
|
||||
}
|
||||
row[field.ToString()] = o;
|
||||
}
|
||||
dtSquib.Rows.Add(row);
|
||||
dtSquibStyles.Rows.Add(row2);
|
||||
}
|
||||
foreach (var ch in analog)
|
||||
{
|
||||
var row = dtAnalog.NewRow();
|
||||
var row2 = dtAnalogStyles.NewRow();
|
||||
|
||||
foreach (var field in analogFields)
|
||||
{
|
||||
object o = null;
|
||||
row2[field.ToString()] = -1;
|
||||
switch (field)
|
||||
{
|
||||
case AnalogFields.Channel:
|
||||
o = ch.Channel;
|
||||
break;
|
||||
case AnalogFields.DAS: o = ch.DAS; break;
|
||||
case AnalogFields.Desc: o = ch.Desc; break;
|
||||
case AnalogFields.Exc:
|
||||
o = ch.Exc / 1000D;
|
||||
switch (ch.ExcStatus)
|
||||
{
|
||||
case AnalogHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AnalogFields.ExportNum: o = ch.ExportNum; break;
|
||||
case AnalogFields.Module: o = ch.Module; break;
|
||||
case AnalogFields.Noise:
|
||||
o = ch.Noise;
|
||||
switch (ch.NoiseStatus)
|
||||
{
|
||||
case AnalogHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AnalogFields.Object: o = ch.Object; break;
|
||||
case AnalogFields.Offset:
|
||||
o = ch.Offset;
|
||||
switch (ch.OffStatus)
|
||||
{
|
||||
case AnalogHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AnalogFields.Range:
|
||||
if (double.IsInfinity(ch.Range))
|
||||
{
|
||||
o = "Infinity";
|
||||
}
|
||||
else if (double.IsNaN(ch.Range))
|
||||
{
|
||||
o = "---";
|
||||
}
|
||||
else
|
||||
{
|
||||
o = string.Format("{0:0.00}", ch.Range);
|
||||
}
|
||||
switch (ch.RangeStatus)
|
||||
{
|
||||
case AnalogHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AnalogFields.Sens: o = ch.SensorSerialNumber; break;
|
||||
case AnalogFields.Shunt:
|
||||
o = ch.Shunt;
|
||||
switch (ch.ShuntStatus)
|
||||
{
|
||||
case AnalogHelper.ResultStatus.Failed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Fail;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.NotTested:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.NotTested;
|
||||
break;
|
||||
case AnalogHelper.ResultStatus.Passed:
|
||||
row2[field.ToString()] = (int)ReportBase.FillStyles.Pass;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
row[field.ToString()] = o;
|
||||
}
|
||||
dtAnalog.Rows.Add(row);
|
||||
dtAnalogStyles.Rows.Add(row2);
|
||||
}
|
||||
foreach (var d in das)
|
||||
{
|
||||
var row = dtDAS.NewRow();
|
||||
foreach (var field in dasFields)
|
||||
{
|
||||
object o = null;
|
||||
switch (field)
|
||||
{
|
||||
case DASFields.Battery: o = d.Battery; break;
|
||||
case DASFields.CalDate:
|
||||
if (d.CalDate.Year < 1970)
|
||||
{
|
||||
o = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (d.CalDate == minDate)
|
||||
{
|
||||
o = "--";
|
||||
}
|
||||
else
|
||||
{
|
||||
o = d.CalDate.ToShortDateString();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DASFields.Connection: o = d.Connection; break;
|
||||
case DASFields.DAS: o = d.DAS; break;
|
||||
case DASFields.DueDate:
|
||||
if (d.DueDate.Year < 1970)
|
||||
{
|
||||
o = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (d.CalDate == minDate)
|
||||
{
|
||||
o = "--";
|
||||
}
|
||||
else
|
||||
{
|
||||
o = d.DueDate.ToShortDateString();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DASFields.FW: o = d.Firmware; break;
|
||||
case DASFields.Input: o = d.Input; break;
|
||||
}
|
||||
row[field.ToString()] = o;
|
||||
}
|
||||
dtDAS.Rows.Add(row);
|
||||
}
|
||||
TemplateFilename = GetReportFilenamePath(false, GetTemplateReportPath(), string.Empty);
|
||||
OutputFilename = outputFileName;
|
||||
|
||||
if (File.Exists(outputFileName))
|
||||
{
|
||||
ReportFileWillBeOverwritten(outputFileName);
|
||||
try
|
||||
{
|
||||
File.Delete(outputFileName);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
ReportFileInUse(outputFileName);
|
||||
}
|
||||
}
|
||||
|
||||
if (generateExcelReports)
|
||||
{
|
||||
OutputReport(new DataTable[] { dtDAS, dtAnalog, dtSquib }, new DataTable[] { null, dtAnalogStyles, dtSquibStyles });
|
||||
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[] { dtDAS, dtAnalog, dtSquib }, new DataTable[] { null, dtAnalogStyles, dtSquibStyles }, sensitivityDisplayFormat);
|
||||
CopyReportIfNeeded(folderNameId, outputFileName);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
dtDAS.Dispose();
|
||||
dtAnalog.Dispose();
|
||||
dtSquib.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ClassDiagram MajorVersion="1" MinorVersion="1">
|
||||
<Class Name="DTS.Reports.ChannelCalibrationList">
|
||||
<Position X="0.5" Y="2" Width="1.5" />
|
||||
<Compartments>
|
||||
<Compartment Name="Nested Types" Collapsed="false" />
|
||||
</Compartments>
|
||||
<NestedTypes>
|
||||
<Enum Name="DTS.Reports.ChannelCalibrationList.Fields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>ChannelCalibrationList.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Class Name="DTS.Reports.ChannelCalibrationList.ChannelHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>ChannelCalibrationList.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
</NestedTypes>
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAABAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||
<FileName>ChannelCalibrationList.cs</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="DTS.Reports.DASLayout">
|
||||
<Position X="2.75" Y="2" Width="1.5" />
|
||||
<Compartments>
|
||||
<Compartment Name="Nested Types" Collapsed="false" />
|
||||
</Compartments>
|
||||
<NestedTypes>
|
||||
<Class Name="DTS.Reports.DASLayout.ChannelHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>DASLayout.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Enum Name="DTS.Reports.DASLayout.Fields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>DASLayout.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
</NestedTypes>
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAABAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||
<FileName>DASLayout.cs</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="DTS.Reports.DiagnosticsReport" Collapsed="true">
|
||||
<Position X="7.25" Y="2" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<HashCode>AAAAABAAAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||
<FileName>DiagnosticsReport.cs</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="DTS.Reports.ReportBase" Collapsed="true">
|
||||
<Position X="3.75" Y="0.75" Width="1.5" />
|
||||
<TypeIdentifier>
|
||||
<HashCode>Rh0KPcBCmPktCqzaJjmcIPAJkSc4YAUBbKoghQAaggo=</HashCode>
|
||||
<FileName>ReportBase.cs</FileName>
|
||||
</TypeIdentifier>
|
||||
<Lollipop Position="0.2" />
|
||||
</Class>
|
||||
<Class Name="DTS.Reports.TestPreviewReport">
|
||||
<Position X="5" Y="2" Width="1.75" />
|
||||
<NestedTypes>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.Tables" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Class Name="DTS.Reports.TestPreviewReport.SensorHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
<Lollipop Position="0.2" />
|
||||
</Class>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.SquibFields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.StyleTables" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.TestObjectFields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.TestObjectPageFields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Class Name="DTS.Reports.TestPreviewReport.SquibHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
<Lollipop Position="0.2" />
|
||||
</Class>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.DASFields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Class Name="DTS.Reports.TestPreviewReport.DASHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.ISOSummaryFields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
<Class Name="DTS.Reports.TestPreviewReport.TestObjectHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Class Name="DTS.Reports.TestPreviewReport.ISOSummaryHelper" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Enum Name="DTS.Reports.TestPreviewReport.SensorFields" Collapsed="true">
|
||||
<TypeIdentifier>
|
||||
<NewMemberFileName>TestPreviewReport.cs</NewMemberFileName>
|
||||
</TypeIdentifier>
|
||||
</Enum>
|
||||
</NestedTypes>
|
||||
<TypeIdentifier>
|
||||
<HashCode>AoACABgQAAAiAAAAAggAAAAgAARABAkIICAAAAAIIAA=</HashCode>
|
||||
<FileName>TestPreviewReport.cs</FileName>
|
||||
</TypeIdentifier>
|
||||
</Class>
|
||||
<Font Name="Segoe UI" Size="9" />
|
||||
</ClassDiagram>
|
||||
@@ -0,0 +1,161 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using DTS.Common.Interface.Channels;
|
||||
using DTS.Common.Interface.Sensors;
|
||||
|
||||
namespace DTS.Reports
|
||||
{
|
||||
public class DASLayout : ReportBase
|
||||
{
|
||||
|
||||
|
||||
|
||||
public class ChannelHelper
|
||||
{
|
||||
public int DCH { get; set; }
|
||||
public string Module { get; set; }
|
||||
public string Channel { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string SensorSerial { get; set; }
|
||||
public string Sensitivity { get; set; }
|
||||
public string ISOCode { get; set; }
|
||||
public string Range { get; set; }
|
||||
public string SquibFireMode { get; set; }
|
||||
public string Filter { get; set; }
|
||||
public string Voltage { get; set; }
|
||||
public string LevelTrigger { get; set; }
|
||||
public double DelayMS { get; set; }
|
||||
public double DurationMS { get; set; }
|
||||
public int ChannelType { get; set; }
|
||||
// holds a reference to the group channel, done as part of
|
||||
// 13100 Generate Test Setup report during check channels function, needed to verify polarity settings prior to running test
|
||||
public IGroupChannel GroupChannel { get; set; }
|
||||
// holds a reference to the sensor calibration, done as part of
|
||||
// 13100 Generate Test Setup report during check channels function, needed to verify polarity settings prior to running test
|
||||
public ISensorCalibration Calibration { get; set; }
|
||||
}
|
||||
public enum Fields
|
||||
{
|
||||
DCH,
|
||||
Module,
|
||||
Channel,
|
||||
Description,
|
||||
Sensor,
|
||||
ISOCode,
|
||||
Range,
|
||||
SquibFireMode,
|
||||
Sens,
|
||||
Filter,
|
||||
Delay,
|
||||
Volt,
|
||||
Duration,
|
||||
Trigger,
|
||||
ChannelType
|
||||
}
|
||||
public DASLayout()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public static string GetReportFilenamePath(string reportPath, string serialNumberDAS, string testId)
|
||||
{
|
||||
var filename = "DAS Layout.xlsx";
|
||||
if (false == string.IsNullOrEmpty(testId))
|
||||
filename = string.Format("{1} {0} - {2}Layout.xlsx", serialNumberDAS, testId, GetFilenameTimeStamp());
|
||||
return System.IO.Path.Combine(reportPath, filename);
|
||||
}
|
||||
|
||||
public void DoReport(ChannelHelper[] channels, string outputFileName, string folderNameId, string sensitivityDisplayFormat,
|
||||
bool generateExcelReports, bool generatePDFReports)
|
||||
{
|
||||
using (var dt = new DataTable())
|
||||
{
|
||||
dt.TableName = "Layout";
|
||||
|
||||
var fields = Enum.GetValues(typeof(Fields)).Cast<Fields>().ToArray();
|
||||
foreach (var field in fields)
|
||||
{
|
||||
var c = dt.Columns.Add(field.ToString());
|
||||
switch (field)
|
||||
{
|
||||
case Fields.Channel: c.DataType = typeof(string); break;
|
||||
case Fields.DCH: c.DataType = typeof(int); break;
|
||||
case Fields.Delay: c.DataType = typeof(double); break;
|
||||
case Fields.Description: c.DataType = typeof(string); break;
|
||||
case Fields.Duration: c.DataType = typeof(double); break;
|
||||
case Fields.Filter: c.DataType = typeof(string); break;
|
||||
case Fields.ISOCode: c.DataType = typeof(string); break;
|
||||
case Fields.Module: c.DataType = typeof(string); break;
|
||||
case Fields.Range: c.DataType = typeof(string); break;
|
||||
case Fields.Sens: c.DataType = typeof(string); break;
|
||||
case Fields.Sensor: c.DataType = typeof(string); break;
|
||||
case Fields.SquibFireMode: c.DataType = typeof(string); break;
|
||||
case Fields.Trigger: c.DataType = typeof(string); break;
|
||||
case Fields.Volt: c.DataType = typeof(string); break;
|
||||
case Fields.ChannelType: c.DataType = typeof(int); break;
|
||||
}
|
||||
}
|
||||
foreach (var ch in channels)
|
||||
{
|
||||
var row = dt.NewRow();
|
||||
foreach (var field in fields)
|
||||
{
|
||||
object o = null;
|
||||
switch (field)
|
||||
{
|
||||
case Fields.ChannelType: o = ch.ChannelType; break;
|
||||
case Fields.Channel: o = ch.Channel; break;
|
||||
case Fields.DCH: o = ch.DCH; break;
|
||||
case Fields.Delay: o = ch.DelayMS; break;
|
||||
case Fields.Description: o = ch.Description; break;
|
||||
case Fields.Duration: o = ch.DurationMS; break;
|
||||
case Fields.Filter: o = ch.Filter; break;
|
||||
case Fields.ISOCode: o = ch.ISOCode; break;
|
||||
case Fields.Module: o = ch.Module; break;
|
||||
case Fields.Range: o = ch.Range; break;
|
||||
case Fields.Sens: o = ch.Sensitivity; break;
|
||||
case Fields.Sensor: o = ch.SensorSerial; break;
|
||||
case Fields.SquibFireMode: o = ch.SquibFireMode; break;
|
||||
case Fields.Trigger: o = ch.LevelTrigger; break;
|
||||
case Fields.Volt: o = ch.Voltage; break;
|
||||
}
|
||||
row[field.ToString()] = o;
|
||||
}
|
||||
dt.Rows.Add(row);
|
||||
}
|
||||
TemplateFilename = GetReportFilenamePath(GetTemplateReportPath(), string.Empty, string.Empty);
|
||||
OutputFilename = outputFileName;
|
||||
|
||||
if (System.IO.File.Exists(outputFileName))
|
||||
{
|
||||
ReportFileWillBeOverwritten(outputFileName);
|
||||
try
|
||||
{
|
||||
System.IO.File.Delete(outputFileName);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
ReportFileInUse(outputFileName);
|
||||
}
|
||||
}
|
||||
if (generateExcelReports)
|
||||
{
|
||||
OutputReport(new DataTable[] { dt }, null);
|
||||
CopyReportIfNeeded(folderNameId, outputFileName);
|
||||
}
|
||||
|
||||
if (generatePDFReports)
|
||||
{
|
||||
//PDF
|
||||
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 }, null, sensitivityDisplayFormat);
|
||||
CopyReportIfNeeded(folderNameId, outputFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("DiagnosticsReport")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("DiagnosticsReport")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2013")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("4d40eb18-3010-4337-b4ac-4b53328526dd")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{69B8B28D-E065-498C-8826-FFB6F7A60106}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>DiagnosticsReport</RootNamespace>
|
||||
<AssemblyName>DiagnosticsReport</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<SccProjectName>
|
||||
</SccProjectName>
|
||||
<SccLocalPath>
|
||||
</SccLocalPath>
|
||||
<SccAuxPath>
|
||||
</SccAuxPath>
|
||||
<SccProvider>
|
||||
</SccProvider>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="C1.WPF.Excel.4, Version=4.0.20142.409, Culture=neutral, PublicKeyToken=2aa4ec5576d6c3ce, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\ComponentOne\WPF Edition\bin\v4\C1.WPF.Excel.4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="C1.WPF.FlexGrid.4, Version=4.0.20142.409, Culture=neutral, PublicKeyToken=2aa4ec5576d6c3ce, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\ComponentOne\WPF Edition\bin\v4\C1.WPF.FlexGrid.4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="C1.WPF.Pdf.4, Version=4.0.20142.409, Culture=neutral, PublicKeyToken=2aa4ec5576d6c3ce, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\ComponentOne\WPF Edition\bin\v4\C1.WPF.Pdf.4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ChannelCalibrationList.cs" />
|
||||
<Compile Include="TestPreviewReport.cs" />
|
||||
<Compile Include="DASLayout.cs" />
|
||||
<Compile Include="DiagnosticsReport.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ReportBase.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Design\ReportsClassDiagram.cd" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Common\DTS.Common\DTS.Common.csproj">
|
||||
<Project>{f7a0804f-61a4-40ae-83d0-f1137622b592}</Project>
|
||||
<Name>DTS.Common</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
Binary file not shown.
BIN
DataPRO/Reports/.svn/wc.db
Normal file
BIN
DataPRO/Reports/.svn/wc.db
Normal file
Binary file not shown.
0
DataPRO/Reports/.svn/wc.db-journal
Normal file
0
DataPRO/Reports/.svn/wc.db-journal
Normal file
Reference in New Issue
Block a user