private void bt_import_rd_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textEdit_rd_actual.Text) && !string.IsNullOrEmpty(textEdit_rd_2.Text))
{
this.Cursor = Cursors.WaitCursor;
//读取编辑好的更新文档
DataTable dt_actual = IoHelper.LoadExcelToDataTable(textEdit_rd_actual.Text);
DataTable dt_type = IoHelper.LoadExcelToDataTable(textEdit_rd_2.Text);
if (!Convert.IsDBNull(dt_actual) && !Convert.IsDBNull(dt_type))
{
Boolean flag = false;
for (int i = 0; i < dt_type.Columns.Count; i++)
{
if (dt_type.Columns[i].ColumnName == "Lot Type")
{
flag = true;
break;
}
}
if (flag)
{
ImportData(dt_actual, dt_type);
}
else
{
DevExpress.XtraEditors.XtraMessageBox.Show("传输数据不存在Lottype列 请Check!");
}
}
else
{
DevExpress.XtraEditors.XtraMessageBox.Show("传输数据为空 请Check!");
}
this.Cursor = Cursors.Default;
}
else
{
DevExpress.XtraEditors.XtraMessageBox.Show("传输数据为空 请Check!");
}
}
private void ImportData(DataTable dt_actual, DataTable dt_type)
{
DataView dv = new DataView(dt_actual);
DataTable dt_mon = dv.ToTable(true, "YEAR", "MONTH");
dt_mon.DefaultView.RowFilter = "year IS NOT NULL AND month IS NOT NULL";
dt_mon = dt_mon.DefaultView.ToTable();
string monthlist = "";
for (int i = 0; i < dt_mon.Rows.Count; i++)
{
monthlist += "'" + Convert.ToString(dt_mon.Rows[i]["YEAR"]) + Convert.ToString(dt_mon.Rows[i]["MONTH"]) + "',";
}
monthlist = monthlist.Length == 0 ? monthlist : monthlist.Substring(0, monthlist.Length - 1);
//删除所传数据月份数据
string sql_del = @"
DELETE FROM icost_rd_detail WHERE idate IN(" + monthlist + @")
";
DataTool.ExecuteSql(sql_del);
DataTable dt_detail = new DataTable();
dt_detail.Columns.Add("COMPANY", typeof(string));
dt_detail.Columns.Add("ACCOUNT", typeof(string));
dt_detail.Columns.Add("DESCRIPTION", typeof(string));
dt_detail.Columns.Add("YEAR", typeof(string));
dt_detail.Columns.Add("MONTH", typeof(string));
dt_detail.Columns.Add("FAB", typeof(string));
dt_detail.Columns.Add("MOTHER_FAB", typeof(string));
dt_detail.Columns.Add("SUB_LOCATION", typeof(string));
dt_detail.Columns.Add("TRANSTYPE", typeof(string));
dt_detail.Columns.Add("COST_CENTER", typeof(string));
dt_detail.Columns.Add("PRODUCT_ID", typeof(string));
dt_detail.Columns.Add("LOTID", typeof(string));
dt_detail.Columns.Add("QTY", typeof(double));
dt_detail.Columns.Add("UNIT", typeof(string));
dt_detail.Columns.Add("PO_NO", typeof(string));
dt_detail.Columns.Add("PROJECT_CODE", typeof(string));
dt_detail.Columns.Add("ITEM_TEXT", typeof(string));
dt_detail.Columns.Add("AMOUNT", typeof(double));
dt_detail.Columns.Add("LOTTYPE", typeof(string));
dt_detail.Columns.Add("IDATE", typeof(string));
dt_detail.Columns.Add("SEQ", typeof(string));
int a = 0;
foreach (DataRow dr in dt_actual.Rows)
{
if (!Convert.IsDBNull(dr[17]))
{
a++;
dt_detail.Rows.Add(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7], dr[8], dr[9], dr[10], dr[11], dr[12], dr[13], dr[14], dr[15], dr[16], dr[17], "", Convert.ToString(dr[3]) + Convert.ToString(dr[4]), a);
}
}
dt_detail.DefaultView.RowFilter = "idate IS NOT NULL";
dt_detail = dt_detail.DefaultView.ToTable();
//删除已导入数据
string sql = @" truncate table icost_rd_detail_temp";
DataTool.ExecuteSql(sql);
DataTable dt_temp = new DataTable();
dt_temp.Columns.Add("YEAR", typeof(string));
dt_temp.Columns.Add("MONTH", typeof(string));
dt_temp.Columns.Add("FAB", typeof(string));
dt_temp.Columns.Add("LOTTYPE", typeof(string));
dt_temp.Columns.Add("PRODUCT_ID", typeof(string));
dt_temp.Columns.Add("PROCESS", typeof(string));
dt_temp.Columns.Add("LOTID", typeof(string));
dt_temp.Columns.Add("QTY", typeof(double));
dt_temp.Columns.Add("AMOUNT", typeof(double));
dt_temp.Columns.Add("IDATE", typeof(string));
foreach (DataRow dr in dt_type.Rows)
{
if (!Convert.IsDBNull(dr[18]) && !Convert.IsDBNull(dr[10]))
{
dt_temp.Rows.Add(dr[0], dr[1], dr[2], dr[8], dr[9], dr[11], dr[10], dr[12], dr[18], Convert.ToString(dr[0]) + Convert.ToString(dr[1]));
}
}
dt_temp.DefaultView.RowFilter = "idate IS NOT NULL";
dt_temp = dt_temp.DefaultView.ToTable();
int j = 0;
if (dt_detail != null && dt_temp != null)
{
j = DataTool.BulkInsert("icost_rd_detail", dt_detail);
j = j + DataTool.BulkInsert("icost_rd_detail_temp", dt_temp);
}
if (j >= 2)
{
DataTool.ExecuteProcedure("icost_prc_rd_update");
ccb_date_rd.Text = "";
dt_from_rd.Text = "";
dt_to_rd.Text = "";
SelectFilter_Load_RD();
DevExpress.XtraEditors.XtraMessageBox.Show("RD相关数据保存成功");
}
else
{
DevExpress.XtraEditors.XtraMessageBox.Show("RD相关数据保存失败!请联系开发人员");
}
}
解释代码
最新发布