320 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			320 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Data;
 | |
| using System.Linq;
 | |
| using System.Windows.Forms;
 | |
| using System.Threading.Tasks;
 | |
| 
 | |
| namespace FPJ0000
 | |
| {
 | |
|     public partial class fEboardData : FCOMMON.fBase
 | |
|     {
 | |
|         dsPRJ.EETGW_JobReport_EBoardRow dr = null;
 | |
|         public fEboardData(dsPRJ.EETGW_JobReport_EBoardRow dr_)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             this.UseFormSetting = false;
 | |
|             this.dr = dr_;
 | |
|             this.dsPRJ.ProjectsHistory.TableNewRow += ProjectsHistory_TableNewRow;
 | |
|         }
 | |
| 
 | |
|         void ProjectsHistory_TableNewRow(object sender, DataTableNewRowEventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         delegate void SetComboboxItemsHandler(ComboBox ctl, string[] list);
 | |
|         void SetComboboxItems(ComboBox ctl, string[] list)
 | |
|         {
 | |
|             //콤보박스의 아이템을 업데이트합니다.
 | |
|             if (ctl.InvokeRequired)
 | |
|             {
 | |
|                 this.BeginInvoke(new SetComboboxItemsHandler(SetComboboxItems), new object[] { ctl, list });
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             ctl.Items.Clear();
 | |
|             ctl.Items.AddRange(list);
 | |
|             ctl.Enabled = true;
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void fProjectData_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             EnsureVisibleAndUsableSize();
 | |
|             var db = new EEEntities();
 | |
| 
 | |
|             //자동완성목록 업데이트
 | |
|             Task.Run(new Action(() =>
 | |
|             {
 | |
| 
 | |
|                 //UID목록
 | |
|                 var lst_uid = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.uid) == false).OrderBy(t => t.uid).GroupBy(t => t.uid).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbUID, lst_uid.Select(t => t.uid).ToArray());
 | |
| 
 | |
|                 //요청자
 | |
|                 var lst_req = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.요청자) == false).OrderBy(t => t.요청자).GroupBy(t => t.요청자).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmb요청자, lst_req.Select(t => t.요청자).ToArray());
 | |
| 
 | |
|                 //모델
 | |
|                 var lst_mod = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Model) == false).OrderBy(t => t.Model).GroupBy(t => t.Model).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbModel, lst_mod.Select(t => t.Model).ToArray());
 | |
|                 cmbModel.Enabled = true;
 | |
| 
 | |
|                 //BoardName
 | |
|                 var lst_bon = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.BoardName) == false).OrderBy(t => t.BoardName).GroupBy(t => t.BoardName).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbBoardName, lst_bon.Select(t => t.BoardName).ToArray());
 | |
|                 cmbBoardName.Enabled = true;
 | |
| 
 | |
|                 //BoardVender
 | |
|                 var lst_bvn = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.BoardVender) == false).OrderBy(t => t.BoardVender).GroupBy(t => t.BoardVender).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbBoardVender, lst_bvn.Select(t => t.BoardVender).ToArray());
 | |
| 
 | |
|                 //SN
 | |
|                 var lst_srn = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.SN) == false).OrderBy(t => t.SN).GroupBy(t => t.SN).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbSN, lst_srn.Select(t => t.SN).ToArray());
 | |
| 
 | |
|                 ////status
 | |
|                 //var lst_sta = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Status) == false).OrderBy(t => t.Status).GroupBy(t => t.Status).Select(t => t.FirstOrDefault());
 | |
|                 //SetComboboxItems(cmbStatus,lst_sta.Select(t => t.Status).ToArray());
 | |
| 
 | |
|                 //분류
 | |
|                 var lst_cat = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.분류) == false).OrderBy(t => t.분류).GroupBy(t => t.분류).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmb분류, lst_cat.Select(t => t.분류).ToArray());
 | |
| 
 | |
|                 //Site
 | |
|                 var lst_sit = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Site) == false).OrderBy(t => t.Site).GroupBy(t => t.Site).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbSite, lst_sit.Select(t => t.Site).ToArray());
 | |
| 
 | |
|                 //Line
 | |
|                 var lst_lin = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Line) == false).OrderBy(t => t.Line).GroupBy(t => t.Line).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbLine, lst_lin.Select(t => t.Line).ToArray());
 | |
| 
 | |
|                 //division
 | |
|                 var lst_div = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Division) == false).OrderBy(t => t.Division).GroupBy(t => t.Division).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbDivision, lst_div.Select(t => t.Division).ToArray());
 | |
| 
 | |
|                 ////Team
 | |
|                 //var lst_tem = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Team) == false).OrderBy(t => t.Team).GroupBy(t => t.Team).Select(t => t.FirstOrDefault());
 | |
|                 //SetComboboxItems(cmbTeam,lst_tem.Select(t => t.Team).ToArray());
 | |
| 
 | |
|                 //Process
 | |
|                 var lst_prc = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.Process) == false).OrderBy(t => t.Process).GroupBy(t => t.Process).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmbProcess, lst_prc.Select(t => t.Process).ToArray());
 | |
|                 cmbProcess.Enabled = true;
 | |
| 
 | |
|                 //외주업체
 | |
|                 var lst_ext = db.EETGW_JobReport_EBoard.Where(t => string.IsNullOrEmpty(t.외주업체) == false).OrderBy(t => t.외주업체).GroupBy(t => t.외주업체).Select(t => t.FirstOrDefault());
 | |
|                 SetComboboxItems(cmb외주업체, lst_ext.Select(t => t.외주업체).ToArray());
 | |
|             }));
 | |
| 
 | |
| 
 | |
|             ///원인
 | |
|             if (string.IsNullOrEmpty(dr.원인2))
 | |
|             {
 | |
|                 this.richTextBoxEx1.Text = dr.원인;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 try
 | |
|                 {
 | |
|                     this.richTextBoxEx1.Rtf = dr.원인2;
 | |
|                 }
 | |
|                 catch 
 | |
|                 {
 | |
|                     this.richTextBoxEx1.Text = dr.원인;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             ///결과
 | |
|             if (string.IsNullOrEmpty(dr.결과2))
 | |
|             {
 | |
|                 this.richTextBoxEx2.Text = dr.결과;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 try
 | |
|                 {
 | |
|                     this.richTextBoxEx2.Rtf = dr.결과2;
 | |
|                 }
 | |
|                 catch
 | |
|                 {
 | |
|                     this.richTextBoxEx2.Text = dr.결과;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             this.checkBox1.Checked = dr.refdata;
 | |
|             this.tbSdate.Text = dr.pdate;
 | |
|             this.tbEdate.Text = dr.수리완료일;
 | |
|             this.tbQty.Text = dr.QTY.ToString();
 | |
|             this.tbCostNew.Text = dr.NPrice.ToString();
 | |
|             this.tbCostOutSource.Text = dr.OPrice.ToString();
 | |
|             this.tbCostRepair.Text = dr.RepairCost.ToString();
 | |
|             this.tbCostReduct.Text = dr.CostReduction.ToString();
 | |
|             this.bs.DataSource = dr;
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|         private void btSave_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Validate();
 | |
|             this.bs.EndEdit();
 | |
| 
 | |
|             var s1 = tbCostOutSource.Text.Trim();
 | |
|             var s2 = tbCostRepair.Text.Trim();
 | |
|             float v1;
 | |
|             float v2;
 | |
|             var b1 = float.TryParse(s1, out v1);
 | |
|             var b2 = float.TryParse(s2, out v2);
 | |
| 
 | |
|             if (b1 == false)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("입력값이 올바르지 않습니다. 숫자로 입력하세요");
 | |
|                 tbCostOutSource.SelectAll();
 | |
|                 tbCostOutSource.Focus();
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             if (b2 == false)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("입력값이 올바르지 않습니다. 숫자로 입력하세요");
 | |
|                 tbCostRepair.SelectAll();
 | |
|                 tbCostRepair.Focus();
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
| 
 | |
|             if (tbSdate.Text.isEmpty() == false)
 | |
|             {
 | |
|                 if (tbSdate.Text.isDate() == false)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("날짜형태로 입력하세요\n\n예) 2000-01-01");
 | |
|                     tbSdate.SelectAll();
 | |
|                     tbSdate.Focus();
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
|             if (tbEdate.Text.isEmpty() == false)
 | |
|             {
 | |
|                 if (tbEdate.Text.isDate() == false)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("날짜형태로 입력하세요\n\n예) 2000-01-01");
 | |
|                     tbEdate.SelectAll();
 | |
|                     tbEdate.Focus();
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             this.dr.원인 = richTextBoxEx1.Text;
 | |
|             this.dr.원인2 = richTextBoxEx1.Rtf;
 | |
| 
 | |
|             this.dr.결과 = richTextBoxEx2.Text;
 | |
|             this.dr.결과2 = richTextBoxEx2.Rtf;
 | |
|             this.dr.refdata = this.checkBox1.Checked;
 | |
|             
 | |
| 
 | |
|             this.dr.pdate = tbSdate.Text.Trim();
 | |
|             this.dr.수리완료일 = tbEdate.Text.Trim();
 | |
|             this.dr.QTY = tbQty.Text.ToInt();
 | |
|             this.dr.NPrice = tbCostNew.Text.ToDecimal();
 | |
|             this.dr.OPrice = tbCostOutSource.Text.ToDecimal();
 | |
|             this.dr.RepairCost = tbCostRepair.Text.ToDecimal();
 | |
|             this.dr.CostReduction = tbCostReduct.Text.ToDecimal();
 | |
|             this.dr.EndEdit();
 | |
| 
 | |
| 
 | |
|             this.DialogResult = System.Windows.Forms.DialogResult.OK;
 | |
|             this.Close();
 | |
|             //this.tableAdapterManager.UpdateAll(this.dsPRJ);
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         void SelectDate(TextBox ctl)
 | |
|         {
 | |
|             DateTime dt;
 | |
|             var dateStr = ctl.Text.Trim();
 | |
|             if (dateStr == "") dateStr = DateTime.Now.ToShortDateString();
 | |
|             else
 | |
|             {
 | |
|                 if (DateTime.TryParse(dateStr, out dt)) dateStr = dt.ToShortDateString();
 | |
|                 else
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("날짜 형식으로 변환할 수 없는 문자열 입니다.\n" +
 | |
|                         "기준일자가 금일로 변경 됩니다");
 | |
|                     dateStr = DateTime.Now.ToShortDateString();
 | |
|                 }
 | |
|             }
 | |
|             dt = DateTime.Parse(dateStr);
 | |
|             var f = new FCOMMON.fSelectDay(dt);
 | |
|             if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|             {
 | |
|                 ctl.Text = f.dtPick.SelectionStart.ToShortDateString();
 | |
|             }
 | |
|         }
 | |
|         private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 | |
|         {
 | |
|             SelectDate(tbSdate);
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|         private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 | |
|         {
 | |
|             SelectDate(tbEdate);
 | |
|             //if (edateTextBox.Text.isEmpty() == false)
 | |
|             //    cmbStatus.Text = "완료";
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
|         private void bs_CurrentChanged(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|         private void panel1_Paint(object sender, PaintEventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
|         private void tbQty_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             //수량변경시 금액 업데이트           
 | |
|             var qty = tbQty.Text.ToInt();
 | |
|             var nAmt = tbCostNew.Text.ToDouble();
 | |
|             var oAmt = (nAmt * qty) * 0.5f;
 | |
|             var rAmt = tbCostRepair.Text.ToDouble();
 | |
|             var reduction = oAmt - rAmt;
 | |
|             this.tbCostOutSource.Text = oAmt.ToString();
 | |
|             //this.tbCostReduct.Text = reduction.ToString();
 | |
|         }
 | |
| 
 | |
|         private void costnTextBox_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             //Out source 가 변경되면 
 | |
|             var oAmt = tbCostOutSource.Text.ToDouble();
 | |
|             var rAmt = tbCostRepair.Text.ToDouble();
 | |
|             var reduction = oAmt - rAmt;
 | |
|             tbCostReduct.Text = reduction.ToString();
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (dr != null && (dr.RowState == DataRowState.Modified || dr.RowState == DataRowState.Unchanged))
 | |
|             {
 | |
|                 Util.openEboarditemPath(dr.idx);
 | |
|             }
 | |
|             else FCOMMON.Util.MsgE("자료가 저장되기 전에는 폴더를 확인할 수 없습니다.\r\n자료를 저장한 후 다시 시도하세요");
 | |
|         }
 | |
| 
 | |
|         
 | |
|     }
 | |
| }
 | 
