..
This commit is contained in:
@@ -4,6 +4,8 @@ using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.ServiceModel.Activation.Configuration;
|
||||
using System.ServiceModel.Configuration;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using util = FCOMMON.Util;
|
||||
@@ -81,10 +83,10 @@ namespace FCM0000
|
||||
else
|
||||
{
|
||||
if (skey.StartsWith("%") == false) skey = "%" + skey;
|
||||
if (skey.EndsWith("%") == false) skey += "%";
|
||||
if (skey.EndsWith("%") == false) skey += "%";
|
||||
}
|
||||
|
||||
this.ta.FillNoImage(this.dsMSSQL.Items, FCOMMON.info.Login.gcode, cateSearch,skey);
|
||||
this.ta.FillNoImage(this.dsMSSQL.Items, FCOMMON.info.Login.gcode, cateSearch, skey);
|
||||
}
|
||||
else
|
||||
this.ta.FillDupCheck(this.dsMSSQL.Items, FCOMMON.info.Login.gcode, cateSearch);
|
||||
@@ -132,7 +134,7 @@ namespace FCM0000
|
||||
tbSearch.Focus();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@@ -425,5 +427,125 @@ namespace FCM0000
|
||||
{
|
||||
if (e.KeyCode == Keys.Enter) toolStripButton2.PerformClick();
|
||||
}
|
||||
|
||||
private void toolStripButton4_Click(object sender, EventArgs e)
|
||||
{
|
||||
var msg = "이 기능은 엑셀 파일에서 품목정보를 읽어들여 업데이트 하는 기능 입니다\n" +
|
||||
"엑셀파일의 열 구성은 다음과 같이 합니다\n" +
|
||||
"SID,품명,모델,단가,공급처,제조\n" +
|
||||
"1번줄에는 제목 줄이며, 실제 자료는 2번 줄 부터 시작합니다\n" +
|
||||
"SID는 9자리이며, (SID/품명이) 없는 자료는 입력되지 않습니다\n1번시트에 데이가 있어야 합니다\n계속 할까요?";
|
||||
if (util.MsgQ(msg) != DialogResult.Yes) return;
|
||||
var od = new OpenFileDialog();
|
||||
od.Filter = "excel|*.xlsx|allfiles|*.*";
|
||||
if (od.ShowDialog() != DialogResult.OK) return;
|
||||
|
||||
|
||||
|
||||
|
||||
libxl.Book book;// = new libxl.BinBook();
|
||||
book = new libxl.XmlBook();
|
||||
book.setKey(FCOMMON.info.libxlCompany, FCOMMON.info.libxlKey);
|
||||
var ta = new dsMSSQLTableAdapters.ItemsTableAdapter();
|
||||
var dt = new dsMSSQL.ItemsDataTable();
|
||||
try
|
||||
{
|
||||
book.load(od.FileName);
|
||||
if (book.sheetCount() < 1)
|
||||
{
|
||||
util.MsgE("1번 시트가 없습니다. 파일을 확인하세요");
|
||||
return;
|
||||
}
|
||||
var sheet = book.getSheet(0);
|
||||
var maxrow = sheet.lastRow();
|
||||
var icnt = 0;
|
||||
var ucnt = 0;
|
||||
|
||||
if (util.MsgQ($"입력을 시작할까요? 전체({maxrow})건\n시간이 오래 걸릴 수 있으므로 기다려 주세요") != DialogResult.Yes) return;
|
||||
|
||||
|
||||
var f = new Form();
|
||||
f.Text = "data input";
|
||||
f.Size = new Size(400, 100);
|
||||
f.ControlBox = false;
|
||||
f.Padding = new Padding(10, 10, 10, 10);
|
||||
var p = new ProgressBar();
|
||||
p.Dock = DockStyle.Fill;
|
||||
p.Maximum = maxrow;
|
||||
p.Value = 0;
|
||||
f.StartPosition = FormStartPosition.CenterScreen;
|
||||
f.Controls.Add(p);
|
||||
f.Show();
|
||||
Application.DoEvents();
|
||||
|
||||
for (int i = 1; i < maxrow; i++)
|
||||
{
|
||||
var sid = sheet.readStr(i, 0); if (sid.isEmpty()) continue;
|
||||
var name = sheet.readStr(i, 1); if (name.isEmpty()) continue;
|
||||
var model = sheet.readStr(i, 2); if (model.isEmpty()) model = name;
|
||||
if (name.Equals(model)) model = ".";
|
||||
|
||||
f.Text = $"입력중 기다려주세요({i}/{maxrow})";
|
||||
p.Value = i;
|
||||
|
||||
decimal price = 0;
|
||||
if (sheet.cellType(i, 3) == libxl.CellType.CELLTYPE_STRING)
|
||||
{
|
||||
var vprice = sheet.readStr(i, 3).Replace(",", "");
|
||||
decimal.TryParse(vprice, out price);
|
||||
}
|
||||
else
|
||||
{
|
||||
price = (decimal)(sheet.readNum(i, 3));
|
||||
}
|
||||
|
||||
var supp = sheet.readStr(i, 4);
|
||||
var manu = sheet.readStr(i, 5);
|
||||
var dr = ta.GetBySID(FCOMMON.info.Login.gcode, sid).FirstOrDefault();
|
||||
if (dr == null)
|
||||
{
|
||||
dr = dt.NewItemsRow();
|
||||
dr.gcode = FCOMMON.info.Login.gcode;
|
||||
dr.disable = false;
|
||||
dr.import = "1";
|
||||
dr.sid = sid;
|
||||
dr.name = name;
|
||||
dr.model = model;
|
||||
dr.supply = supp;
|
||||
dr.manu = manu;
|
||||
dr.price = price;
|
||||
dr.wdate = DateTime.Now;
|
||||
dr.wuid = FCOMMON.info.Login.no;
|
||||
dt.AddItemsRow(dr);
|
||||
icnt += ta.Update(dr);
|
||||
//icnt += 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dr.name.Equals(name) == false) dr.name = name;
|
||||
if (dr.model.isEmpty() || model.Length > dr.model.Length) dr.model = model;
|
||||
if (price > 0) dr.price = price;
|
||||
if (supp.isEmpty() == false) dr.supply = supp;
|
||||
if (manu.isEmpty() == false) dr.manu = manu;
|
||||
dr.EndEdit();
|
||||
ucnt += ta.Update(dr);
|
||||
//ucnt += 1;
|
||||
}
|
||||
|
||||
if(i % 2 ==0) Application.DoEvents();
|
||||
|
||||
}
|
||||
|
||||
f.Dispose();
|
||||
util.MsgI($"입력수:{icnt}\n변경수:{ucnt}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
FCOMMON.Util.MsgE(ex.Message);
|
||||
return;
|
||||
}
|
||||
ta.Dispose();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user