09-27
This commit is contained in:
245
SubProject/FPJ0000/fPartList.cs
Normal file
245
SubProject/FPJ0000/fPartList.cs
Normal file
@@ -0,0 +1,245 @@
|
||||
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 FPJ0000
|
||||
{
|
||||
public partial class fPartList : Form
|
||||
{
|
||||
int ProjectIndex = -1;
|
||||
public fPartList(int idx_)
|
||||
{
|
||||
InitializeComponent();
|
||||
this.ProjectIndex = idx_;
|
||||
this.FormClosed += fPartList_FormClosed;
|
||||
this.KeyPreview = true;
|
||||
this.KeyDown += fPartList_KeyDown;
|
||||
this.dsPRJ.ProjectsPart.TableNewRow += ProjectsPart_TableNewRow;
|
||||
}
|
||||
|
||||
void ProjectsPart_TableNewRow(object sender, DataTableNewRowEventArgs e)
|
||||
{
|
||||
e.Row["wuid"] = FCOMMON.info.Login.no;
|
||||
e.Row["wdate"] = DateTime.Now;
|
||||
e.Row["Project"] = this.ProjectIndex;
|
||||
}
|
||||
|
||||
void fPartList_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Escape) this.Close();
|
||||
}
|
||||
|
||||
void fPartList_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
var form = this as Form;
|
||||
FCOMMON.Util.SetFormStatus(ref form, this.Name, false);
|
||||
}
|
||||
|
||||
private void fPartList_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
var form = this as Form;
|
||||
FCOMMON.Util.SetFormStatus(ref form, this.Name, true);
|
||||
this.Show();
|
||||
Application.DoEvents();
|
||||
RefreshData();
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
void RefreshData()
|
||||
{
|
||||
this.ta.FillByIDX(this.dsPRJ.Projects, this.ProjectIndex);
|
||||
this.taPart.Fill(this.dsPRJ.ProjectsPart, this.ProjectIndex);
|
||||
|
||||
//로딩후에 sid 와 suuply 를 조회해준다.
|
||||
foreach( dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
|
||||
{
|
||||
if (dr.IsItemNull() || dr.Item < 0) continue;
|
||||
var iteminfo = FCOMMON.DBM.getItemInfo(dr.Item);
|
||||
if(iteminfo.idx != -1)
|
||||
{
|
||||
dr.SID = iteminfo.sid;
|
||||
dr.Supply = iteminfo.supply;
|
||||
}
|
||||
}
|
||||
this.dsPRJ.AcceptChanges();
|
||||
this.dv1.AutoResizeColumns();
|
||||
RefreshSum();
|
||||
}
|
||||
|
||||
void RefreshSum()
|
||||
{
|
||||
decimal sum = 0;
|
||||
foreach( dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
|
||||
{
|
||||
if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue;
|
||||
sum += dr.amt;
|
||||
}
|
||||
lbSum.Text = sum.ToString("N0");
|
||||
}
|
||||
|
||||
|
||||
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Validate();
|
||||
this.bs.EndEdit();
|
||||
this.bsPart.EndEdit();
|
||||
try
|
||||
{
|
||||
var cnt = this.tam.UpdateAll(this.dsPRJ);
|
||||
FCOMMON.Util.MsgI(cnt.ToString() + "건의 자료가 업데이트 되었습니다.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FCOMMON.Util.MsgE(ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void toolStripButton2_Click(object sender, EventArgs e)
|
||||
{
|
||||
var f = new fRPartList(this.ProjectIndex);
|
||||
f.Show();
|
||||
}
|
||||
|
||||
private void dv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
|
||||
var col = dv1.Columns[e.ColumnIndex];
|
||||
var taItem = new FCM0000.dsMSSQLTableAdapters.ItemsTableAdapter();
|
||||
switch (col.DataPropertyName)
|
||||
{
|
||||
case "ItemName":
|
||||
var valuen = dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
|
||||
if (valuen != null)
|
||||
{
|
||||
string inputtext = valuen.ToString().Trim();
|
||||
if (inputtext == "")
|
||||
{
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_itemName"].Value = inputtext;
|
||||
}
|
||||
else
|
||||
{
|
||||
//검색을 실행해서 보여준다.
|
||||
|
||||
var SearchDT = taItem.GetSearch("%" + inputtext + "%");
|
||||
if (SearchDT == null || SearchDT.Rows.Count < 1)
|
||||
{
|
||||
//FCOMMON.Util.MsgE("검색 결과가 없습니다.");
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
//검색된 결과를 표시해서 보여준다.
|
||||
var f = new FCM0000.fLovItem("%" + inputtext + "%");
|
||||
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
{
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_item"].Value = f.item;
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_itemname"].Value = f.itemName;
|
||||
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_sid"].Value = f.SID;
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_supply"].Value = f.itemSupply;
|
||||
|
||||
if(f.itemmodel != "")
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_model"].Value = f.itemmodel;
|
||||
|
||||
if(f.itemprice != 0)
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_price"].Value = f.itemprice;
|
||||
|
||||
var valueq1 = dv1.Rows[e.RowIndex].Cells["dvc_qty"].Value;
|
||||
var valuep1 = dv1.Rows[e.RowIndex].Cells["dvc_price"].Value;
|
||||
|
||||
Int32 iQty = 0;
|
||||
decimal iPrice = 0;
|
||||
if (valueq1 != null) iQty = (Int32)valueq1;
|
||||
if (valuep1 != null) iPrice = (decimal)valuep1;
|
||||
decimal iAmt = iQty * iPrice;
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_amt"].Value = iAmt;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "item":
|
||||
var value = dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
|
||||
if (value != null)
|
||||
{
|
||||
int idx = (int)value;
|
||||
if (idx != -1)
|
||||
{
|
||||
var item = taItem.GetIDX(idx);
|
||||
if (item.Count == 1)
|
||||
{
|
||||
//1개만 찾았다면 그것을 사용한다.
|
||||
var itemnameValue = item[0]["name"];
|
||||
var itemmodel = item[0]["model"];
|
||||
var itemprice = item[0]["price"];
|
||||
|
||||
var itemSID = item[0]["sid"];
|
||||
var itemSupply = item[0]["supply"];
|
||||
|
||||
if (itemprice != null)
|
||||
{
|
||||
var price = (decimal)itemprice;
|
||||
if(price != 0)
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_price"].Value = (decimal)itemprice;
|
||||
}
|
||||
|
||||
|
||||
if (itemnameValue != null)
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_itemname"].Value = itemnameValue.ToString();
|
||||
|
||||
if (itemmodel != null)
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_model"].Value = itemmodel.ToString();
|
||||
|
||||
if (itemSID != null)
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_sid"].Value = itemSID.ToString();
|
||||
|
||||
if (itemSupply != null)
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_supply"].Value = itemSupply.ToString();
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
FCOMMON.Util.MsgE("해당 아이템이 존재하지 않습니다.");
|
||||
dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = DBNull.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "price":
|
||||
case "qty":
|
||||
var valueq = dv1.Rows[e.RowIndex].Cells["dvc_qty"].Value;
|
||||
var valuep = dv1.Rows[e.RowIndex].Cells["dvc_price"].Value;
|
||||
var amt = (Int32)valueq * (decimal)valuep;
|
||||
dv1.Rows[e.RowIndex].Cells["dvc_amt"].Value = amt;
|
||||
RefreshSum();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void autoSizeColumnToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
dv1.AutoResizeColumns();
|
||||
}
|
||||
|
||||
private void exportListToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
dv1.ExportData("partlist.csv");
|
||||
}
|
||||
|
||||
private void dv1_DataError(object sender, DataGridViewDataErrorEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user