ITC81DB_V8/ITC81DB/Controls/CenterEquipment/ControlCenterEquipSystemLog.cs

494 lines
18 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.IO;
using System.Text;
using System.Windows.Forms;
using SmartX;
using ITC81DB.Forms;
using ITC81DB.DialogForms;
using ITC81DB_ImageDll;
namespace ITC81DB.Controls
{
public partial class ControlCenterEquipSystemLog : UserControl
{
#region Field
private FormMenu m_ParentForm;
private int FileIndex;
#endregion
#region Constructor
public ControlCenterEquipSystemLog(FormMenu parent)
{
InitializeComponent();
this.ParentForm = parent;
this.InitializeDesign();
this.DefaultSetting();
}
#endregion
#region Property
public FormMenu ParentForm
{
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
#endregion
#region Method
public void InitializeDesign()
{
if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
{
this.labelTitleFileList.Text = "File List";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
{
this.labelTitleFileList.Text = "档案清单";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
{
this.labelTitleFileList.Text = "Seznam souborů";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
{
this.labelTitleFileList.Text = "Список файлов";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
{
this.labelTitleFileList.Text = "Dateiliste";
}
else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish)
{
this.labelTitleFileList.Text = "Lista de archivos";
}
else
{
this.labelTitleFileList.Text = "파일 목록";
}
}
private void DefaultSetting()
{
this.FileIndex = 0;
}
private void FileCopy(FileInfo file, string fileName)
{
try
{
if (this.FileIndex == 0)
{
file.CopyTo(fileName);
this.FileIndex = 0;
}
else
{
file.CopyTo(fileName.Insert(fileName.Length - 4, "_" + this.FileIndex.ToString()));
this.FileIndex = 0;
}
}
catch
{
this.FileIndex++;
this.FileCopy(file, fileName);
}
}
public void LoadFile(string fileName)
{
string fullFilePath = "";
if (fileName.Contains("Exception") == false && fileName.Contains("Alarm") == false)
return;
fullFilePath = this.ParentForm.ParentForm.PathDataBackupFolder + fileName;
this.smartFile1.FilePathName = fullFilePath;
this.smartFile1.Open(this.ParentForm.ParentForm.BufferSmartUart);
this.listBoxContents.Items.Clear();
try
{
if (this.smartFile1.ReadStringAllBuffer() == true)
{
long lineNum = this.smartFile1.GetCount();
for (int i = 0; i < lineNum; i++)
{
this.listBoxContents.Items.Add(this.smartFile1.ReadStringBuffer(i));
}
if (fileName.Contains("Alarm") == true)
{
this.listBoxContents.SelectedIndex = (int)lineNum - 1;
}
}
}
catch
{
DialogFormMessage myMsg = new DialogFormMessage(16, this.ParentForm.ParentForm.SystemConfig1.Language);
myMsg.ShowDialog();
this.smartFile1.Close();
}
this.smartFile1.Close();
}
public void DisplayRefresh(SystemStatus status)
{
bool directoryCheck = false;
int index = 0;
this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplay = DataStore.DisplayStore.EquipSystemLog;
this.ParentForm.DisplayTitleRoot(this.ParentForm.ParentForm.CurrentSystemStatus);
this.ParentForm.ParentForm.SetDisplayMode(DataStore.DisplayMode.Menu);
this.listBoxContents.Items.Clear();
DirectoryInfo dir = new DirectoryInfo(this.ParentForm.ParentForm.PathDataBackupFolder);
directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
FileInfo[] files = dir.GetFiles();
this.listBoxList.SelectedIndexChanged -= new EventHandler(this.listBoxList_SelectedIndexChanged);
this.listBoxList.SelectedIndex = -1;
this.listBoxList.Items.Clear();
foreach (FileInfo file in files)
{
if (file.Name.Contains("Data") != true && file.Name.Contains("Stat") != true && file.Name.Contains(".jpg") != true)
this.listBoxList.Items.Add(file.Name);
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
this.buttonFileView.Enabled = false;
this.listBoxList.SelectedIndexChanged += new EventHandler(this.listBoxList_SelectedIndexChanged);
}
#endregion
#region Event Handler
private void listBoxList_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (this.listBoxList.SelectedItem.ToString().Contains("Exception") == true
|| this.listBoxList.SelectedItem.ToString().Contains("Alarm") == true)
this.buttonFileView.Enabled = true;
else
this.buttonFileView.Enabled = false;
}
catch
{
this.buttonFileView.Enabled = false;
}
}
private void buttonFileView_Click(object sender, EventArgs e)
{
if (this.listBoxList.SelectedIndex == -1)
return;
this.LoadFile(this.listBoxList.SelectedItem.ToString());
}
private void buttonBackup_Click(object sender, EventArgs e)
{
if (this.listBoxList.Items.Count == 0)
{
DialogFormMessage msg = new DialogFormMessage(4, this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
return;
}
if (this.ParentForm.ParentForm.IsCommunicationLogOpen == true)
{
this.ParentForm.ParentForm.smartFileCommunicationLog.Close();
this.ParentForm.ParentForm.IsCommunicationLogOpen = false;
}
if (this.ParentForm.ParentForm.IsErrorLogOpen == true)
{
this.ParentForm.ParentForm.smartFileCheckLog.Close();
this.ParentForm.ParentForm.IsErrorLogOpen = false;
}
if (this.ParentForm.ParentForm.IsBarcodeLogOpen == true)
{
this.ParentForm.ParentForm.smartFileBarcodeLog.Close();
this.ParentForm.ParentForm.IsBarcodeLogOpen = false;
}
this.ParentForm.ParentForm.smartFileStartStopLog.Close();
int count = 0;
bool directoryCheck = false;
string filePath = "";
DirectoryInfo dir = new DirectoryInfo(this.ParentForm.ParentForm.PathDataBackupFolder);
directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
SmartSplash splash = new SmartSplash();
splash.CenterPosition = true;
splash.AnimationInterval = 200;
splash.LoadingImagePathname = "SmartLoading4";
splash.Start();
try
{
DirectoryInfo dinfo = new DirectoryInfo("하드 디스크\\");
dinfo.GetDirectories();
}
catch
{
splash.Finish();
// USB메모리가 장착되지 않았습니다
DialogFormMessage msg = new DialogFormMessage(5, this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
return;
}
this.listBoxList.SelectedIndexChanged -= new EventHandler(this.listBoxList_SelectedIndexChanged);
try
{
if (this.listBoxList.SelectedIndex == -1)
{
#region 전체 데이터 백업
try
{
filePath = "하드 디스크\\";
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
if (file.Name.Contains("Data") != true && file.Name.Contains("Stat") != true && file.Name.Contains(".jpg") != true)
{
count++;
this.FileCopy(file, filePath + file.Name);
this.listBoxList.Items.Remove(file.Name);
file.Delete();
}
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
splash.Finish();
DialogFormMessage msg = new DialogFormMessage(count.ToString(), this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
}
catch
{
splash.Finish();
// 제조사에 문의하세요
DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
return;
}
#endregion
}
else
{
#region 선택 데이터 백업
try
{
filePath = "하드 디스크\\";
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
if (file.Name.Contains(this.listBoxList.SelectedItem.ToString()) == true)
{
this.FileCopy(file, filePath + file.Name);
this.listBoxList.Items.Remove(file.Name);
file.Delete();
break;
}
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
splash.Finish();
DialogFormMessage msg = new DialogFormMessage("1", this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
}
catch
{
splash.Finish();
// 제조사에 문의하세요
DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
return;
}
#endregion
}
}
catch (Exception ex)
{
FormMain.Exception(ex);
directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
FileInfo[] files = dir.GetFiles();
this.listBoxList.SelectedIndex = -1;
this.listBoxList.Items.Clear();
foreach (FileInfo file in files)
{
if (file.Name.Contains("Data") != true && file.Name.Contains("Stat") != true && file.Name.Contains(".jpg") != true)
this.listBoxList.Items.Add(file.Name);
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
this.buttonFileView.Enabled = false;
}
this.listBoxContents.Items.Clear();
this.listBoxList.SelectedIndexChanged += new EventHandler(this.listBoxList_SelectedIndexChanged);
if(this.ParentForm.ParentForm.SystemConfig3.IsStartStopLog == true)
this.ParentForm.ParentForm.smartFileStartStopLog.Open();
}
private void buttonClear_Click(object sender, EventArgs e)
{
if (this.listBoxList.Items.Count == 0)
return;
this.ParentForm.ParentForm.smartFileCommunicationLog.Close();
this.ParentForm.ParentForm.IsCommunicationLogOpen = false;
this.ParentForm.ParentForm.smartFileStartStopLog.Close();
this.ParentForm.ParentForm.smartFileCheckLog.Close();
this.ParentForm.ParentForm.IsErrorLogOpen = false;
bool directoryCheck = false;
DirectoryInfo dir = new DirectoryInfo(this.ParentForm.ParentForm.PathDataBackupFolder);
directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
FileInfo[] checkLogFiles = dir.GetFiles();
this.listBoxList.SelectedIndexChanged -= new EventHandler(this.listBoxList_SelectedIndexChanged);
try
{
DialogFormYesNo myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig1.Language, 28);
if (myDlg.ShowDialog() == DialogResult.Yes)
{
SmartSplash splash = new SmartSplash();
splash.CenterPosition = true;
splash.AnimationInterval = 200;
splash.LoadingImagePathname = "SmartLoading4";
splash.Start();
if (this.listBoxList.SelectedIndex == -1)
{
#region ListBox 선택되지 않았을 때
try
{
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
if (file.Name.Contains("Data") != true && file.Name.Contains("Stat") != true && file.Name.Contains(".jpg") != true)
{
this.listBoxList.Items.Remove(file.Name);
file.Delete();
}
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
splash.Finish();
}
catch
{
splash.Finish();
DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
return;
}
#endregion
}
else
{
#region ListBox 선택되었을 때
try
{
if (this.listBoxList.SelectedIndex >= 0)
{
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
if (file.Name.Contains(this.listBoxList.SelectedItem.ToString()) == true)
{
this.listBoxList.Items.Remove(file.Name);
file.Delete();
break;
}
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
splash.Finish();
}
}
catch
{
splash.Finish();
DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.ParentForm.SystemConfig1.Language);
msg.ShowDialog();
return;
}
#endregion
}
}
}
catch (Exception ex)
{
FormMain.Exception(ex);
directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
FileInfo[] files = dir.GetFiles();
this.listBoxList.SelectedIndex = -1;
this.listBoxList.Items.Clear();
foreach (FileInfo file in files)
{
if (file.Name.Contains("Data") != true && file.Name.Contains("Stat") != true && file.Name.Contains(".jpg") != true)
this.listBoxList.Items.Add(file.Name);
}
this.labelFilesCount.Text = this.listBoxList.Items.Count.ToString();
this.buttonFileView.Enabled = false;
}
this.listBoxContents.Items.Clear();
this.listBoxList.SelectedIndexChanged += new EventHandler(this.listBoxList_SelectedIndexChanged);
}
#endregion
}
}