241 lines
11 KiB
C#
241 lines
11 KiB
C#
using LLAirtightApi;
|
|
using Microsoft.Office.Interop.Excel;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
|
|
namespace SLZ_4
|
|
{
|
|
class SaveRecord
|
|
{
|
|
public static void WriteTXT(ref TEST_PARAM testInfo, string code, string strPath, int iCH)
|
|
{
|
|
string fileName = strPath + "\\" + (iCH + 1).ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
|
|
|
|
string str1 = "时间: " + DateTime.Now
|
|
+ "操作员: " + FormMain.form.labelOperator.Text
|
|
+ " 条形码: " + code
|
|
+ " 测试压力: " + testInfo.chTest[iCH].fTestPressure.ToString("F3")
|
|
+ " 测试压力单位: " + FormMain.form.strListPressureUnit[testInfo.iPressureUnit]
|
|
+ " 当前压差: " + testInfo.chTest[iCH].fTestDiffPressure.ToString("F3")
|
|
+ " 泄漏量: " + testInfo.chTest[iCH].fLeakAmount.ToString("F3")
|
|
+ " 泄漏量单位: " + FormMain.form.strListLeakageUnit[testInfo.iLeakUnit]
|
|
+ " 测试结果: " + FormMain.form.strResult[testInfo.chTest[iCH].ResultFlag] + " \n";
|
|
|
|
System.IO.File.AppendAllText(fileName, str1);
|
|
}
|
|
|
|
public static void WriteCSV(ref TEST_PARAM testInfo, string code, string strPath, int iCH)
|
|
{
|
|
try
|
|
{
|
|
string fileName = strPath + "\\" + (iCH + 1).ToString() + "_" + DateTime.Now.ToString("yyyyMMdd") + ".csv";
|
|
bool bWriter = false;
|
|
if (!File.Exists(fileName))
|
|
{
|
|
bWriter = true;
|
|
}
|
|
StreamWriter fileWriter = new StreamWriter(fileName, true, Encoding.UTF8);
|
|
if (bWriter)
|
|
{
|
|
fileWriter.Write("时间,操作员,条形码,测试压力,测试压力单位,当前压差,泄漏量,泄漏量单位,测试结果" + "\r\n");
|
|
fileWriter.Flush();
|
|
}
|
|
|
|
string nowdate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
|
|
|
|
fileWriter.Write(nowdate + ",");
|
|
fileWriter.Write(FormMain.form.labelOperator.Text + ",");
|
|
fileWriter.Write(code + ",");
|
|
fileWriter.Write(testInfo.chTest[iCH].fTestPressure.ToString("F3") + ",");
|
|
fileWriter.Write(FormMain.form.strListPressureUnit[testInfo.iPressureUnit] + ",");
|
|
fileWriter.Write(testInfo.chTest[iCH].fTestDiffPressure.ToString("F3") + ",");
|
|
fileWriter.Write(testInfo.chTest[iCH].fLeakAmount.ToString("F3") + ",");
|
|
fileWriter.Write(FormMain.form.strListLeakageUnit[testInfo.iLeakUnit] + ",");
|
|
fileWriter.Write(FormMain.form.strResult[testInfo.chTest[iCH].ResultFlag] + "\r\n");
|
|
|
|
fileWriter.Flush();
|
|
fileWriter.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FileLogger.Log("写入CSV失败: " + ex.Message);
|
|
//MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
public static bool OpenExcel(string sPath, string code, string result)
|
|
{
|
|
string path = sPath + "\\" + DateTime.Now.ToString("yyyyMMdd");
|
|
string fileName = path + "\\" + code + "_" + result + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xlsx";
|
|
if (!Directory.Exists(path))
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
try
|
|
{
|
|
FormMain.form.xapp = new Microsoft.Office.Interop.Excel.Application();
|
|
|
|
if (File.Exists(fileName) == false)//判断所选路径是否有文件
|
|
{
|
|
//若不存在该文件,则创建新文件
|
|
Workbooks xbook1 = FormMain.form.xapp.Workbooks;
|
|
FormMain.form.xbook = FormMain.form.xapp.Workbooks.Add(true);
|
|
Worksheet xsheet = (Worksheet)FormMain.form.xbook.Sheets[1];
|
|
|
|
//添加表头
|
|
string[] fieldArr = { "时间", "条形码", "测试压力", "测试压力单位", "当前压差", "泄漏量", "泄漏量单位", "测试结果" };
|
|
for (int i = 0; i < fieldArr.Length; i++)
|
|
{
|
|
xsheet.Cells[i + 1][1] = fieldArr[i];
|
|
}
|
|
FormMain.form.xbook.SaveAs(fileName);//按照指定路径存储新文件
|
|
}
|
|
else
|
|
{
|
|
//若存在该文件,则打开文件并写入数据
|
|
FormMain.form.xbook = FormMain.form.xapp.Workbooks._Open(fileName, Missing.Value, Missing.Value,
|
|
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
|
|
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
|
|
}
|
|
|
|
FormMain.form.xapp.DisplayAlerts = false;
|
|
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
FileLogger.Log("打开Excel文件失败: " + e.Message, LogLevel.ERROR);
|
|
//MessageBox.Show("打开Excel文件失败: " + e.Message);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
public static void WriteExcel(TEST_PARAM testInfo, string code, string strPath, int iCH)
|
|
{
|
|
try
|
|
{
|
|
if (OpenExcel(strPath, code, FormMain.form.strResult[testInfo.chTest[iCH].ResultFlag]))
|
|
{
|
|
Worksheet xsheet = (Worksheet)FormMain.form.xbook.Sheets[1];
|
|
string[] dataArr = { DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"),
|
|
code, testInfo.chTest[iCH].fTestPressure.ToString("F3"),
|
|
FormMain.form.strListPressureUnit[testInfo.iPressureUnit], testInfo.chTest[iCH].fTestDiffPressure.ToString("F1"),
|
|
testInfo.chTest[iCH].fLeakAmount.ToString("F3"),
|
|
FormMain.form.strListLeakageUnit[testInfo.iLeakUnit],
|
|
FormMain.form.strResult[testInfo.chTest[iCH].ResultFlag]};
|
|
|
|
int c = xsheet.UsedRange.Rows.Count;
|
|
for (int i = 0; i < dataArr.Length; i++)
|
|
{
|
|
xsheet.Cells[i + 1][c + 1] = dataArr[i];
|
|
}
|
|
|
|
FormMain.form.xbook.Save();
|
|
if (FormMain.form.xbook != null)
|
|
{
|
|
FormMain.form.xbook.Close();
|
|
FormMain.form.xbook = null;
|
|
if (FormMain.form.xapp != null)
|
|
{
|
|
FormMain.form.xapp.Quit();
|
|
FormMain.form.xapp = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FileLogger.Log("打开Excel失败: "+ ex.Message);
|
|
//MessageBox.Show("Excel:" + ex.Message);
|
|
}
|
|
|
|
}
|
|
public static bool OpenSQL()
|
|
{
|
|
if (FormMain.form.sqlConnection != null)
|
|
{
|
|
if (FormMain.form.sqlConnection.State == ConnectionState.Open)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
FormMain.form.sqlConnection.Close();
|
|
FormMain.form.sqlConnection = null;
|
|
}
|
|
}
|
|
try
|
|
{
|
|
//string connectionString = "Data source=" + configParam.databaseParam.sServer;
|
|
//connectionString += ";Initial Catalog=master;User Id=" + configParam.databaseParam.sDBUser
|
|
// + ";Password=" + configParam.databaseParam.sDBPassword;//定义连接字符串
|
|
|
|
//sqlConnection = new SqlConnection(connectionString);//创建连接
|
|
//sqlConnection.Open();//打开并连接数据库
|
|
|
|
//if (configParam.databaseParam.sDBName == "")
|
|
//{
|
|
// configParam.databaseParam.sDBName = "LeakTest";
|
|
//}
|
|
//string selectString = "Select * FROM master..SYSDATABASES WHERE name ='" + configParam.databaseParam.sDBName + "'";//输入sql语句,判断是否存在名为LeakTest的数据库
|
|
|
|
//SqlCommand cmd = new SqlCommand(selectString, sqlConnection);
|
|
//var str1 = cmd.ExecuteScalar();
|
|
//if (str1 is null)
|
|
//{
|
|
// cmd.CommandText = "CREATE DATABASE " + configParam.databaseParam.sDBName;//如果不存在则新建数据库
|
|
// cmd.ExecuteNonQuery();
|
|
//}
|
|
|
|
|
|
//sqlConnection.Close();//关闭数据库
|
|
return true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
FileLogger.Log("打开数据库失败:" + e.Message, LogLevel.ERROR);
|
|
return false;
|
|
throw;
|
|
}
|
|
}
|
|
public static void WriteSQL(ref TEST_PARAM testInfo, string code, string strPath, int iCH)
|
|
{
|
|
try
|
|
{
|
|
if (OpenSQL())
|
|
{
|
|
string nowday = DateTime.Now.ToString("yyyy_MM_dd");
|
|
string selectString2 = "select * from dbo.sysobjects where name=('test" + nowday + "')";//查询是否有名为leaktest+日期的表格
|
|
//SqlCommand cmd2 = new SqlCommand(selectString2, sqlConnection);
|
|
//var str2 = cmd2.ExecuteScalar();
|
|
//if (str2 is null)
|
|
//{
|
|
// //若没有表格则新建表格
|
|
// cmd2.CommandText = "CREATE TABLE test" + nowday +
|
|
// " ([Time] DATETIME ,[BarCode] VarChar(50),[Pressure] FLOAT,[PressureUnit] VarChar(50)," +
|
|
// "[PressureDiff] FLOAT,[Leakage] FLOAT,[LeakageUnit] VarChar(50),[Result] VarChar(50))"; //Office is the named range.
|
|
// cmd2.ExecuteNonQuery();
|
|
//}
|
|
|
|
////往表格插入数据
|
|
//cmd2.CommandText = "INSERT INTO test" + nowday +
|
|
// " (Time, BarCode, Pressure, PressureUnit, PressureDiff, Leakage, LeakageUnit, Result)" +
|
|
// " VALUES('" + DateTime.Now + "', '" + textCode.Text + "', '" + testInfo.fTestPressure.ToString("F3") + "', '" +
|
|
// strListPressureUnit[iPressureUnit] + "', '" + testInfo.fTestDiffPressure.ToString("F1") + "', '" +
|
|
// testInfo.fLeakAmount.ToString("F3") + "', '" + strListLeakageUnit[ileakageUnit] + "', '" + labelResult.Text + "')";
|
|
|
|
//cmd2.ExecuteNonQuery();
|
|
}
|
|
}
|
|
catch (SqlException ex)
|
|
{
|
|
FileLogger.Log("写入数据库失败: " + ex.Message);
|
|
//MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
}
|