using ClientLib; using ClientLib.CommonService; using PublicLib; using DevExpress.XtraEditors; using DevExpress.XtraGrid.Views.Grid.ViewInfo; using Microsoft.Win32; using System; using System.Data; using System.IO; using System.Reflection; using System.Drawing; using System.Windows.Forms; using System.Diagnostics; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraExport; namespace HM_WORK { public partial class WorkManager : XtraForm { private bool m_LoginCancel; //private bool m_Loading; Timer m_Timer; public WorkManager() { InitializeComponent(); textEdit_CUST_NM.ImeMode = System.Windows.Forms.ImeMode.Hangul; m_LoginCancel = false; //m_Loading = true; this.ClientSize = new Size(1800, 980); if (ConstClass._DEBUG_MODE) { this.WindowState = FormWindowState.Normal; } else { this.WindowState = Screen.PrimaryScreen.WorkingArea.Width > 1920 ? FormWindowState.Normal : FormWindowState.Maximized; } if (File.Exists(ConstClass._RUN_PATH + "app.ico")) { this.Icon = Icon.ExtractAssociatedIcon(ConstClass._RUN_PATH + "app.ico"); } else { this.Icon = Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location); } // Registry ConstClass._REG = Registry.CurrentUser; ConstClass._REG = ConstClass._REG.OpenSubKey(ConstClass._REGISTRY_PATH, true); if (ConstClass._REG == null) { ConstClass._REG = Registry.CurrentUser.CreateSubKey(ConstClass._REGISTRY_PATH); } ConstClass._MD5 = new FileHashCalc(); UtilClass.SetLocalIPAddress(); ConstClass._PC_NM = SystemInformation.ComputerName; ConstClass._USER = Properties.Settings.Default.USER; ConstClass._DEFAULT_URL = Properties.Settings.Default.DEFAULT_URL; ConstClass._SERVICE_URL = ConstClass._DEFAULT_URL + Properties.Settings.Default.SERVICE_URL; ConstClass._UPDATE_SERVICE = ConstClass._DEFAULT_URL + Properties.Settings.Default.UPDATE_SERVICE; ClientClass.initClient(); ConstClass._USR_ID = ""; LoginForm loginForm = new LoginForm(); if (loginForm.ShowDialog() != DialogResult.Yes) { m_LoginCancel = true; } m_Timer = new Timer(); m_Timer.Enabled = false; dateEdit_SDATE.DateTime = DateTime.Now; dateEdit_FDATE.DateTime = DateTime.Now; labelControl_SDATE_YO.Text = GetDay(DateTime.Now) + "부터"; labelControl_FDATE_YO.Text = GetDay(DateTime.Now) + "까지"; simpleButton_OUT.Click += (sender, e) => { OutBarCodeForm form = new OutBarCodeForm(); if (form.ShowDialog() == System.Windows.Forms.DialogResult.Yes) { searchProc(); } }; comboBoxEdit_ORDER_BY.EditValueChanged += (sender, e) => { searchProc(); }; dateEdit_SDATE.EditValueChanged += (sender, e) => { labelControl_SDATE_YO.Text = GetDay(dateEdit_SDATE.DateTime) + "부터"; }; dateEdit_FDATE.EditValueChanged += (sender, e) => { labelControl_FDATE_YO.Text = GetDay(dateEdit_FDATE.DateTime) + "까지"; }; simpleButton_Cust_Search.Click += (sender, e) => { selectCustProc(); }; textEdit_CUST_NM.KeyPress += (sender, e) => { if (e.KeyChar == '\r') { selectCustProc(); } }; gridView_Main.CustomDrawCell += (sender, e) => { DataRow row = gridView_Main.GetDataRow(e.RowHandle); if (!UtilClass.isEqual(row["BILL_NO"], "")) { e.Appearance.BackColor = Color.FromArgb(206, 254, 188); e.Appearance.ForeColor = Color.DarkBlue; } }; textEdit_CUST_NM.EditValueChanged += (sender, e) => { if (UtilClass.isNull(textEdit_CUST_NM.Text)) { labelControl_CUST_CD.Text = ""; } }; gridView_Main.DoubleClick += (sender, e) => { Point aPT = gridControl_Main.PointToClient(Control.MousePosition); GridHitInfo aInfo = gridView_Main.CalcHitInfo(aPT); if (aInfo.InRowCell) { DataRow aRow = gridView_Main.GetFocusedDataRow(); string bill_no = UtilClass.toStr(aRow["BILL_NO"]); if (!UtilClass.isNull(bill_no)) { string message = "계산서번호 " + bill_no + " 로 계산서 발행된 자료입니다.\r\r" + "수정 및 삭제작업을 할 수 없습니다.\r\r" + "계산서 발행을 취소한 후에 작업하시기 바랍니다."; XtraMessageBox.Show(message); return; } updateProc(); } }; dateEdit_FDATE.KeyPress += (sender, e) => { searchProc(); }; m_Timer.Tick += (sender, e) => { DateTime dt = DateTime.Now; string datePart = dt.ToString("yyyy-MM-dd hh:mm:ss"); labelControl_Time.Text = datePart; }; simpleButton_Search.Click += (sender, e) => { searchProc(); }; simpleButton_Print.Click += (sender, e) => { printProc(); }; simpleButton_Excel_Save.Click += (sender, e) => { excelProc(); }; simpleButton_Close.Click += (sender, e) => { this.Close(); }; this.Shown += (sender, e) => { if (m_LoginCancel) { this.Close(); return; } SaveSysLog("현장용 프로그램 로그인 완료."); this.Text = "(주)한미칼라-현장용 " + Application.ProductVersion; //m_Loading = false; dateEdit_SDATE.Focus(); //시간 설정. m_Timer.Interval = 100; m_Timer.Enabled = true; searchProc(); }; } public void SaveSysLog(string strLog) { try { SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("REG_ID", SqlDbType.NVarChar, ConstClass._USR_ID), ClientClass.CreateSqlParameter("REG_IP", SqlDbType.NVarChar, ConstClass._IP), ClientClass.CreateSqlParameter("LOG_TEXT", SqlDbType.NVarChar, strLog), }; ResultData resultData = ClientClass.SetData("SaveSysLog", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } } catch (Exception ex) { } } private void selectCustProc() { SelectCustomerForm form = new SelectCustomerForm(textEdit_CUST_NM.Text); if (form.ShowDialog() != System.Windows.Forms.DialogResult.Yes) { return; } textEdit_CUST_NM.Text = form.m_CUST_NN; labelControl_CUST_CD.Text = form.m_CUST_CD; searchProc(); } public void searchProc() { try { this.Cursor = Cursors.WaitCursor; gridControl_Main.DataSource = null; SerializedSqlParam[] aParam = new SerializedSqlParam[] { ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD), ClientClass.CreateSqlParameter("CUST_CD", SqlDbType.NVarChar, labelControl_CUST_CD.Text), ClientClass.CreateSqlParameter("SDATE", SqlDbType.NVarChar, dateEdit_SDATE.DateTime.ToString("yyyy-MM-dd")), ClientClass.CreateSqlParameter("FDATE", SqlDbType.NVarChar, dateEdit_FDATE.DateTime.ToString("yyyy-MM-dd")), ClientClass.CreateSqlParameter("ORDER_BY", SqlDbType.Int, comboBoxEdit_ORDER_BY.SelectedIndex) }; ResultData resultData = ClientClass.GetData("GetWorkOrderManager", aParam); if (resultData.isError) { throw new Exception(resultData.ResultValue); } DataTable aData = resultData.TableData; foreach (DataRow arow in aData.Rows) { if (UtilClass.isEqual(arow["LN_SEQ"], "01")) { continue; } arow["PRINT_POS"] = ""; } gridControl_Main.DataSource = aData; aData.AcceptChanges(); this.Cursor = Cursors.Arrow; } catch (Exception ex) { this.Cursor = Cursors.Arrow; MessageBox.Show(ex.Message); } } public void newProc() { } public void updateProc() { DataRow row = gridView_Main.GetFocusedDataRow(); if (row == null) { return; } string order_no = UtilClass.toStr(row["ORDER_NO"]); WorkManagerPopup form = new WorkManagerPopup(); string str = form.initProc(order_no); if (!UtilClass.isNull(str)) { MessageBox.Show(str); return; } if (form.ShowDialog() == DialogResult.Yes) { searchProc(); for (int i = 0; i < gridView_Main.RowCount; i++) { if (UtilClass.isEqual(gridView_Main.GetDataRow(i)["ORDER_NO"], order_no)) { gridView_Main.FocusedRowHandle = i; break; } } } } private void excelProc() { ExportExcelGrid(gridControl_Main); } private void printProc() { DataTable data = gridControl_Main.DataSource as DataTable; WorkManagerReport report = new WorkManagerReport(); report.SetData(data, dateEdit_SDATE.Text, dateEdit_FDATE.Text ); } private void ExportExcelGrid(DevExpress.XtraGrid.GridControl grid) { SaveFileDialog fd = new SaveFileDialog(); fd.FileName = grid.MainView.ViewCaption; fd.Filter = "Excel(*.xls)|*.xls|PDF(*.pdf)|*.pdf"; if (fd.ShowDialog() == DialogResult.OK) { if (fd.FilterIndex == 1) { if (grid.MainView is GridView) { (grid.MainView as GridView).OptionsPrint.AutoWidth = false; grid.MainView.ExportToXls(fd.FileName, new DevExpress.XtraPrinting.XlsExportOptions(DevExpress.XtraPrinting.TextExportMode.Value, true)); } else { using (DevExpress.XtraExport.ExportExcelProvider ExportProvider = new DevExpress.XtraExport.ExportXlsProviderInternal(fd.FileName)) { DevExpress.XtraGrid.Export.BaseExportLink link = grid.DefaultView.CreateExportLink(ExportProvider as IExportProvider); link.ExportTo(true); } } } else { grid.MainView.ExportToPdf(fd.FileName); } Process ps = new Process(); ps.StartInfo.FileName = fd.FileName; ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; ps.Start(); } } private string GetDay(DateTime dt) { string strDay = ""; switch (dt.DayOfWeek) { case DayOfWeek.Monday: strDay = "월요일"; break; case DayOfWeek.Tuesday: strDay = "화요일"; break; case DayOfWeek.Wednesday: strDay = "수요일"; break; case DayOfWeek.Thursday: strDay = "목요일"; break; case DayOfWeek.Friday: strDay = "금요일"; break; case DayOfWeek.Saturday: strDay = "토요일"; break; case DayOfWeek.Sunday: strDay = "일요일"; break; } return strDay; } } }