Files
ATV_STDLabelAttach/Handler/Project/Dialog/fHistory.cs
2025-08-06 10:05:24 +09:00

306 lines
7.7 KiB
C#

using AR;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project.Dialog
{
public partial class fHistory : Form
{
public StdLabelPrint.LabelPrint PrinterL = null;
// public StdLabelPrint.LabelPrint PrinterR = null;
public fHistory()
{
InitializeComponent();
//Pub.init();
this.KeyDown += (s1, e1) =>
{
if (e1.KeyCode == Keys.Escape) this.Close();
else if (e1.KeyCode == Keys.F5) btSearch.PerformClick();
};
this.tbSearch.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) btSearch.PerformClick(); };
this.dv.CellFormatting += (s1, e1) =>
{
if (e1.RowIndex >= 0 && e1.ColumnIndex >= 0)
{
var dv = s1 as DataGridView;
//var cell = dv.Rows[e1.RowIndex].Cells["dvc_upload"];
//if (cell.Value != null)
//{
// if (cell.Value.ToString() == "X")
// dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
// else
// dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
//}
//else dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
}
};
this.dv.DataError += dv_DataError;
this.Text =$"Result Viewer ({SETTING.Data.McName})";
///this.Text = string.Format("{0} ver{1} - {2}", Application.ProductName, "");
}
void dv_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
}
private void fHistory_Load(object sender, EventArgs e)
{
dtSD.Value = DateTime.Now;
dtED.Value = DateTime.Now;
//PrinterL = new StdLabelPrint.LabelPrint(SETTING.Data.PrinterName);
//PrinterR = new StdLabelPrint.LabelPrint("PrinterR");
//ApplyZplCode();
refreshList();
}
//public void ApplyZplCode()
//{
// string zplfil = string.Empty;
// var basedir = new System.IO.DirectoryInfo(Util.CurrentPath);
// if (SETTING.Data.PrinterForm7)
// {
// zplfil = System.IO.Path.Combine(basedir.Parent.FullName, "zpl7.txt");
// }
// else
// {
// zplfil = System.IO.Path.Combine(basedir.Parent.FullName, "zpl.txt");
// }
// if (System.IO.File.Exists(zplfil))
// {
// PrinterL.baseZPL = System.IO.File.ReadAllText(zplfil, System.Text.Encoding.Default);
// }
// else
// {
// Pub.log.AddAT("기본 ZPL파일이 없어 설정파일의 내용을 사용합니다");
// if (SETTING.Data.PrinterForm7)
// {
// PrinterL.baseZPL = Properties.Settings.Default.ZPL7;
// }
// else
// {
// PrinterL.baseZPL = Properties.Settings.Default.ZPL;
// }
// }
//}
private void checkBox5_CheckedChanged(object sender, EventArgs e)
{
// cmbUser.Enabled = checkBox5.Checked;
// if(cmbUser.Enabled && cmbUser.Text.isEmpty())
// {
// cmbUser.Text = string.Format("{0}({1})", Pub.LoginName, Pub.LoginNo);
// }
}
void refreshList()
{
//검색일자 검색
if (dtED.Value < dtSD.Value)
{
UTIL.MsgE("검색종료일자가 시작일자보다 작습니다");
dtSD.Value = dtED.Value;
dtSD.Focus();
return;
}
//저장소초기화
this.dataSet1.Component_Reel_Result.Clear();
System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch();
wat.Restart();
//자료를 검색한다.
var search = tbSearch.Text.Trim();
if (search.isEmpty()) search = "%";
else search = "%" + search + "%";
ta.FillBySearch(this.dataSet1.Component_Reel_Result, SETTING.Data.McName, dtSD.Value.ToShortDateString(), dtED.Value.ToShortDateString(), search);
wat.Stop();
tbSearch.Focus();
tbSearch.SelectAll();
dv.AutoResizeColumns();
}
private void btSearch_Click(object sender, EventArgs e)
{
refreshList();
}
private void tbiSearch_KeyDown(object sender, KeyEventArgs e)
{
//내부검색기능
if (e.KeyCode == Keys.Enter)
{
FindData();
}
}
void FindData()
{
string searchkey = tbFind.Text.Trim();
if (searchkey.isEmpty())
{
bs.Filter = "";
tbFind.BackColor = SystemColors.Control;
}
else
{
string filter = "rid0 like '%{0}%' or sid0 like '%{0}%' or qr like '%{0}%' or vlot like '%{0}%'";
filter = string.Format(filter, searchkey);
try
{
bs.Filter = filter;
tbFind.BackColor = Color.Lime;
}
catch
{
bs.Filter = "";
tbFind.BackColor = Color.Pink;
}
}
tbFind.Focus();
tbFind.SelectAll();
}
private void btExport_Click(object sender, EventArgs e)
{
saveXLS();
}
void saveXLS()
{
var license = ("Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9").Split('/');
var xls = new libxl.XmlBook();
xls.setKey(license[0], license[1]);
xls.addSheet("Result");
var Sheet = xls.getSheet(0);
int row = 0;
for (int i = 0; i < this.dv.Columns.Count; i++)
{
var col = this.dv.Columns[i];
Sheet.writeStr(row, i, col.HeaderText);
}
row += 1;
foreach (DataGridViewRow dr in this.dv.Rows)
{
for (int i = 0; i < this.dv.Columns.Count; i++)
{
var propertyName = dv.Columns[i].DataPropertyName;
if (propertyName.isEmpty())
{
Sheet.writeStr(row, i, dr.Cells[i].FormattedValue.ToString());// dr[colname].ToString());
}
else
{
var dType = this.dataSet1.Component_Reel_Result.Columns[propertyName].DataType;
if (dType == typeof(float)) Sheet.writeNum(row, i, (float)dr.Cells[i].Value);
else if (dType == typeof(double)) Sheet.writeNum(row, i, (double)dr.Cells[i].Value);
else if (dType == typeof(int)) Sheet.writeNum(row, i, (int)dr.Cells[i].Value);
else Sheet.writeStr(row, i, dr.Cells[i].FormattedValue.ToString());// dr[colname].ToString());
}
}
row += 1;
}
Sheet.setAutoFitArea(0, 0, row, dv.Columns.Count);
string filename = "export_{0}~{1}.xlsx";
filename = string.Format(filename, dtSD.Value.ToString("yyyyMMdd"), dtED.Value.ToString("yyyyMMdd"));
var sd = new SaveFileDialog();
sd.Filter = "xlsx|*.xlsx";
sd.FileName = filename;
sd.RestoreDirectory = true;
if (sd.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
try
{
xls.save(sd.FileName);
PUB.log.Add("Export Data : " + sd.FileName);
if (UTIL.MsgQ("다음 파일이 생성되었습니다.\n\n" + sd.FileName + "\n\n파일을 확인하시겠습니까?") == DialogResult.Yes)
UTIL.RunExplorer(sd.FileName);
}
catch (Exception ex)
{
PUB.log.AddE(ex.Message);
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
saveXLS();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void viewXMLToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void dv_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
}
private void sendDataToolStripMenuItem_Click(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DataSet1.Component_Reel_ResultRow;
using(var f = new Dialog.fManualPrint(dr.SID,dr.VLOT, dr.QTY.ToString(),dr.MFGDATE,dr.RID, dr.VNAME, dr.PARTNO))
{
f.ShowDialog();
}
}
private void button1_Click(object sender, EventArgs e)
{
var str = tbFind.Text.Trim();
var f = new AR.Dialog.fTouchKeyFull("검색어 입력", str);
if (f.ShowDialog() != DialogResult.OK) return;
tbFind.Text = f.tbInput.Text.Trim();
FindData();
}
private void button2_Click(object sender, EventArgs e)
{
var sd = dtSD.Value.AddDays(-1);
dtSD.Value = sd;
dtED.Value = sd;
}
private void button3_Click(object sender, EventArgs e)
{
var sd = dtED.Value.AddDays(1);
dtSD.Value = sd;
dtED.Value = sd;
}
}
}