This commit is contained in:
chikyun.kim
2018-10-23 08:50:11 +09:00
parent 74d52a3e70
commit 28cde78186
30 changed files with 8100 additions and 1377 deletions

View File

@@ -6,15 +6,30 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using util = FCOMMON.Util;
namespace FPJ0000
{
public partial class fPartList : Form
public partial class fPartList : FCOMMON.fBase
{
string fn_fpcolsize = "";
int ProjectIndex = -1;
int colidx_itemname = -1;
int colidx_item = -1;
int colidx_qty = -1;
int colidx_amt = -1;
int colidx_price = -1;
int colidx_model = -1;
int colidx_supply = -1;
int colidx_supplyidx = -1;
public fPartList(int idx_)
{
InitializeComponent();
fn_fpcolsize = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + ".ini");
this.ProjectIndex = idx_;
this.FormClosed += fPartList_FormClosed;
this.KeyPreview = true;
@@ -36,22 +51,26 @@ namespace FPJ0000
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();
//열번호찾기
foreach(FarPoint.Win.Spread.Column col in this.fpSpread1.ActiveSheet.Columns)
{
string colname = col.DataField.ToLower();
if (colname == "itemmodel") colidx_model = col.Index;
else if (colname == "itemname") colidx_itemname = col.Index;
else if (colname == "item") colidx_item = col.Index;
else if (colname == "qty") colidx_qty = col.Index;
else if (colname == "price") colidx_price = col.Index;
else if (colname == "amt") colidx_amt = col.Index;
else if (colname == "supplyidx") colidx_supplyidx = col.Index;
else if (col.Label.ToLower() == "supply") colidx_supply = col.Index;
}
RefreshData();
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
void RefreshData()
{
@@ -59,25 +78,24 @@ namespace FPJ0000
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();
//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();
RefreshSum();
}
void RefreshSum()
{
decimal sum = 0;
foreach( dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
foreach (dsPRJ.ProjectsPartRow dr in this.dsPRJ.ProjectsPart.Rows)
{
if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue;
sum += dr.amt;
@@ -109,30 +127,92 @@ namespace FPJ0000
f.Show();
}
private void dv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
private void exportListToolStripMenuItem_Click(object sender, EventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
var col = dv1.Columns[e.ColumnIndex];
var taItem = new FCM0000.dsMSSQLTableAdapters.ItemsTableAdapter();
switch (col.DataPropertyName)
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "excel|*.xls";
if(sd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
case "ItemName":
var valuen = dv1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
fpSpread1.SaveExcel(sd.FileName,
FarPoint.Excel.ExcelSaveFlags.SaveAsViewed
| FarPoint.Excel.ExcelSaveFlags.NoFormulas
| FarPoint.Excel.ExcelSaveFlags.SaveCustomColumnHeaders );
}
//dv1.ExportData("partlist.csv");
}
private void autoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.fpSpread1.ActiveSheet.DataAutoSizeColumns = true;
for (int i = 0; i < this.fpSpread1.ActiveSheet.Rows.Count; i++)
this.fpSpread1.ActiveSheet.SetRowHeight(i, 25);
//dv1.AutoResizeColumns();
}
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (FarPoint.Win.Spread.Column col in this.fpSpread1.ActiveSheet.Columns)
{
col.Width = 100;
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
FPUtil.ColsizeSave(this.fpSpread1, fn_fpcolsize);
}
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
FPUtil.ColSizeLoad(ref this.fpSpread1, fn_fpcolsize);
}
private void fpSpread1_EditModeOff(object sender, EventArgs e)
{
int Colidx = this.fpSpread1.ActiveSheet.ActiveColumnIndex;
int Rowidx = this.fpSpread1.ActiveSheet.ActiveRowIndex;
var taItem = new FCM0000.dsMSSQLTableAdapters.ItemsTableAdapter();
switch (this.fpSpread1.ActiveSheet.Columns[Colidx].DataField.ToLower())
{
case "supplyname":
var valuen1 = fpSpread1.ActiveSheet.Cells[Rowidx, Colidx].Value;//.Rows[Rowidx].Cells[e.ColumnIndex].Value;
if (valuen1 != null)
{
string inputtext1 = valuen1.ToString().Trim();
if (inputtext1 != "")
{
FCM0000.fLovSupply f = new FCM0000.fLovSupply(inputtext1);
if(f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_supply].Value = f.Title;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_supplyidx].Value = f.Index;
} else
{
//fpSpread1.ActiveSheet.Cells[Rowidx, colidx_supply].Value = string.Empty;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_supplyidx].Value = -1;
}
}
}
break;
case "itemname":
var valuen = fpSpread1.ActiveSheet.Cells[Rowidx, Colidx].Value;//.Rows[Rowidx].Cells[e.ColumnIndex].Value;
if (valuen != null)
{
string inputtext = valuen.ToString().Trim();
if (inputtext == "")
{
dv1.Rows[e.RowIndex].Cells["dvc_itemName"].Value = inputtext;
}
else
if (inputtext != "")
{
//검색을 실행해서 보여준다.
var SearchDT = taItem.GetSearch("%" + inputtext + "%");
if (SearchDT == null || SearchDT.Rows.Count < 1)
{
//FCOMMON.Util.MsgE("검색 결과가 없습니다.");
fpSpread1.ActiveSheet.ActiveColumnIndex += 2;
return;
}
else
@@ -141,105 +221,53 @@ namespace FPJ0000
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;
//var c = fpSpread1.ActiveSheet.Columns["sdf"];
dv1.Rows[e.RowIndex].Cells["dvc_sid"].Value = f.SID;
dv1.Rows[e.RowIndex].Cells["dvc_supply"].Value = f.itemSupply;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_item].Value = f.item;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_itemname].Value = f.itemName;
if(f.itemmodel != "")
dv1.Rows[e.RowIndex].Cells["dvc_model"].Value = f.itemmodel;
//fpSpread1.ActiveSheet.Cells[Rowidx, colidx_sid].Value = f.SID;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_supplyidx].Value = f.itemSupplyidx;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_supply].Value = f.itemSupply;
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;
if (f.itemmodel != "")
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_model].Value = f.itemmodel;
if (f.itemprice != 0)
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_price].Value = f.itemprice;
var valueq1 = fpSpread1.ActiveSheet.Cells[Rowidx, colidx_qty].Value;
var valuep1 = fpSpread1.ActiveSheet.Cells[Rowidx, colidx_price].Value;
Int32 iQty = 0;
decimal iPrice = 0;
if (valueq1 != null) iQty = (Int32)valueq1;
if (valuep1 != null) iPrice = (decimal)valuep1;
if (valueq1 != null && valueq1.ToString() != "") iQty = (Int32)valueq1;
if (valuep1 != null && valuep1.ToString() != "") iPrice = (decimal)valuep1;
decimal iAmt = iQty * iPrice;
dv1.Rows[e.RowIndex].Cells["dvc_amt"].Value = iAmt;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_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;
var valueq = fpSpread1.ActiveSheet.Cells[Rowidx, colidx_qty].Value;
var valuep = fpSpread1.ActiveSheet.Cells[Rowidx, colidx_price].Value;
Int32 iQty1 = 0;
decimal iPrice1 = 0;
if (valueq != null && valueq.ToString() != "") iQty1 = (Int32)valueq;
if (valuep != null && valuep.ToString() != "") iPrice1 = (decimal)valuep;
var amt = iQty1 * iPrice1;
fpSpread1.ActiveSheet.Cells[Rowidx, colidx_amt].Value = amt;
//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)
{
}
}
}