using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.YdmPipeManage;
using Core.StlMes.Client.YdmPipeManage.Tool;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Core.StlMes.Client.YdmPipeReport
{
public partial class FrmRunTimeRptZgNew : FrmBase
{
public FrmRunTimeRptZgNew()
{
InitializeComponent();
}
private string beglongCode = "";//部门ID
private Hashtable ShapeRelation = null;
private void FrmRunTimeRptZgNew_Load(object sender, EventArgs e)
{
dtBathYear.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM"));
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
queryData();
break;
case "Export":
exportData();
break;
case "insertTal":
insertTal();
break;
case "cancelInsertTal":
cancelInsertTal();
break;
case "Close":
this.Close();
break;
}
}
///
/// 查询
///
private void queryData()
{
string yearMothTim = this.dtBathYear.Value.ToString("yyyyMM");
DataTable table1 = null;
DataTable table2 = null;
DataTable table3 = null;
string[] arr = BaseMethod.getPlineValid(this.ValidDataPurviewIds,this.ob);
//beglongCode = ClsBaseInfo.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob);
try
{
this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
if (Constant.WaitingForm == null)
{
Constant.WaitingForm = new WaitingForm();
}
Constant.WaitingForm.ShowToUser = true;
Constant.WaitingForm.Show();
Constant.WaitingForm.Update();
//上期期初
if (!this.GetOriginalLastB(yearMothTim, out table1, arr))
{
}
//本期入库量
if (!this.GetThisInB(yearMothTim, out table2, arr))
{
//return;
}
//本期出库量
if (!this.GetThisOutB(yearMothTim, out table3, arr))
{
//return;
}
DataTable table = new DataTable();
string[] strMergeColumns = new string[] { "JUDGE_STOVE_NO","PLINE_NAME" };
if (table1 != null)
{
table = table1.DefaultView.ToTable(true, strMergeColumns);
if (table2 != null)
{
table.Merge(table2.DefaultView.ToTable(true, strMergeColumns));
}
if (table3 != null)
{
table.Merge(table3.DefaultView.ToTable(true, strMergeColumns));
}
}
else
{
if (table2 != null)
{
table = table2.DefaultView.ToTable(true, strMergeColumns);
if (table3 != null)
{
table.Merge(table3.DefaultView.ToTable(true, strMergeColumns));
}
}
else
{
if (table3 != null)
{
table = table3.DefaultView.ToTable(true, strMergeColumns);
}
}
}
if (table != null)
{
table.DefaultView.Sort = "JUDGE_STOVE_NO,PLINE_NAME";
table = table.DefaultView.ToTable(true, strMergeColumns);
}
else
{
return;
}
string strSort = "", strHeatNo = "",strPlineName = "";
DataRow newrow;
DataRow[] rows;
this.dataTable1.Rows.Clear();
decimal dWgt = 0.0M, dAjust = 0.0M;
int dCount = 0;
decimal dThisIn_Month = 0.0M, dThisOut_Month = 0.00M;
int dThisIn_MonthCount = 0, dThisOut_MonthCount = 0;
string strRowFilters = "";
for (int i = 0; i < table.Rows.Count; i++)
{
newrow = this.dataTable1.NewRow();
try
{
strHeatNo = Convert.ToString(table.Rows[i]["JUDGE_STOVE_NO"]);//炉号
strPlineName = Convert.ToString(table.Rows[i]["PLINE_NAME"]);//产线
strRowFilters = string.IsNullOrEmpty(strHeatNo) ? " JUDGE_STOVE_NO is null " : " JUDGE_STOVE_NO = '" + strHeatNo + "' ";
strRowFilters += string.IsNullOrEmpty(strPlineName) ? " and PLINE_NAME is null " : " and PLINE_NAME = '" + strPlineName + "' ";
try
{
table1.CaseSensitive = true;
rows = table1.Select(strRowFilters);
if (rows.Length > 0)
{
try
{
dWgt = decimal.Parse(Convert.ToString(rows[0]["WEIGHT"]));
dCount = int.Parse(Convert.ToString(rows[0]["COUNT"]));
}
catch
{
dWgt = 0.0M;
dCount = 0;
}
}
else
{
dWgt = 0.0M;
dCount = 0;
}
}
catch
{
dWgt = 0.0M;
dCount = 0;
}
try
{
table2.CaseSensitive = true;
rows = table2.Select(strRowFilters);
if (rows.Length > 0)
{
try
{
dThisIn_Month = decimal.Parse(Convert.ToString(rows[0]["WEIGHT_MONTH"]));
dThisIn_MonthCount = int.Parse(Convert.ToString(rows[0]["WEIGHT_MONTHCOUNT"]));
}
catch
{
dThisIn_Month = 0.0M;
dThisIn_MonthCount = 0;
}
}
else
{
dThisIn_Month = 0.0M;
dThisIn_MonthCount = 0;
}
}
catch
{
dThisIn_Month = 0.0M;
dThisIn_MonthCount = 0;
}
try
{
table3.CaseSensitive = true;
rows = table3.Select(strRowFilters);
if (rows.Length > 0)
{
try
{
dThisOut_Month = decimal.Parse(Convert.ToString(rows[0]["WEIGHT_MONTH"]));
dThisOut_MonthCount = int.Parse(Convert.ToString(rows[0]["weight_monthcount"]));
}
catch
{
dThisOut_Month = 0.0M;
dThisOut_MonthCount = 0;
}
}
else
{
dThisOut_Month = 0.0M;
dThisOut_MonthCount = 0;
}
}
catch
{
dThisOut_Month = 0.0M;
dThisOut_MonthCount = 0;
}
try
{
newrow["JUDGE_STOVE_NO"] = strHeatNo;
newrow["PLINE_NAME"] = strPlineName;
newrow["ORIGINAL_AMOUNT"] = Convert.ToString(dWgt).Trim();
newrow["ORIGINAL_COUNT"] = Convert.ToString(dCount).Trim();
newrow["MONTH_1"] = dThisIn_Month.ToString().Trim();
newrow["MONTH_1COUNT"] = dThisIn_MonthCount.ToString().Trim();
newrow["MONTH_2"] = dThisOut_Month.ToString().Trim();
newrow["MONTH_2COUNT"] = dThisOut_MonthCount.ToString().Trim();
newrow["END_AMOUNT"] = Convert.ToString(dWgt + dThisIn_Month - dThisOut_Month + dAjust).Trim();
newrow["END_COUNT"] = Convert.ToString(dCount + dThisIn_MonthCount - dThisOut_MonthCount).Trim();
newrow["AWEIGHT"] = Convert.ToString(dAjust).Trim();
try
{
if (ShapeRelation!=null&&ShapeRelation.Contains(strHeatNo))
{
strSort = ShapeRelation[strHeatNo].ToString();
}
else
{
strSort = "";
}
}
catch
{
strSort = "";
}
this.dataSet1.Tables[0].Rows.Add(newrow);
}
catch { }
}
catch { }
}
this.SetStaticsInfo();
CommonMethod.SetGridSumArea(this.ultraGrid1);
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
catch (Exception e)
{
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
}
///
/// 结转期初数据
///
private void insertTal()
{
string dtYear = this.dtBathYear.Value.ToString("yyyyMM");
string dtNowTim = DateTime.Now.AddMonths(1).ToString("yyyyMM");
//if (!this.dtBathYear.Value.AddMonths(1).ToString("yyyyMM").Equals(dtNowTim))
//{
// MessageUtil.ShowTips("所选结转年月与当前所在月往后推一月不一致,请重新选择结转年月!");
// return;
//}
UltraGridRow row = this.ultraGrid1.ActiveRow;
if (row == null || row.Index < 0)
{
MessageUtil.ShowWarning("无库存信息,无法结转!");
return;
}
string departId = ClsBaseInfo.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob);
DataTable ds = ServerHelper.GetData("com.steering.pss.ydm.Report.FrmRunTimeRptZg.getIntalJZB", new object[] { dtNowTim, departId }, ob);
if (int.Parse(ds.Rows[0][0].ToString()) > 0)
{
MessageUtil.ShowTips("已存在结转数据,不允许重复结转!");
return;
}
ArrayList parm = new ArrayList();
if (MessageUtil.ShowYesNoAndQuestion("是否结转期初数据?") == DialogResult.No) return;
try
{
this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
if (Constant.WaitingForm == null)
{
Constant.WaitingForm = new WaitingForm();
}
Constant.WaitingForm.ShowToUser = true;
Constant.WaitingForm.Show();
Constant.WaitingForm.Update();
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (int.Parse(uRow.Cells["END_COUNT"].Value.ToString()) > 0)
{
ArrayList list = new ArrayList();
list.Add(uRow.Cells["JUDGE_STOVE_NO"].Value.ToString());
list.Add(uRow.Cells["END_COUNT"].Value.ToString());
list.Add(uRow.Cells["END_AMOUNT"].Value.ToString());
list.Add(this.dtBathYear.Value.AddMonths(1).ToString("yyyyMM"));
list.Add(this.UserInfo.GetUserName());
parm.Add(list);
}
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.ydm.Report.FrmRunTimeRptZgNew";
ccp.MethodName = "insertInitalBelog";
ccp.ServerParams = new object[] { parm, departId, dtYear };
ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode != -1)
{
if (ccp.ReturnInfo.Equals("期初数据结转成功!"))
{
MessageUtil.ShowTips(ccp.ReturnInfo);
}
else
{
MessageUtil.ShowTips(ccp.ReturnInfo);
}
}
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
catch (Exception e)
{
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
}
///
/// 取消结转
///
private void cancelInsertTal()
{
string dtYear = this.dtBathYear.Value.ToString("yyyyMM");
string dtYear2 = this.dtBathYear.Value.AddMonths(1).ToString("yyyyMM");
string dtNowTim = DateTime.Now.ToString("yyyyMM");
if (!this.dtBathYear.Value.AddMonths(1).ToString("yyyyMM").Equals(dtNowTim))
{
MessageUtil.ShowTips("所选结转年月与当前所在月往后推一月不一致,请重新选择结转年月!");
return;
}
ArrayList parm = new ArrayList();
if (MessageUtil.ShowYesNoAndQuestion("是否撤销结转期初数据?") == DialogResult.No) return;
try
{
this.Cursor = Cursors.WaitCursor; //控制鼠标的样式为等待
if (Constant.WaitingForm == null)
{
Constant.WaitingForm = new WaitingForm();
}
Constant.WaitingForm.ShowToUser = true;
Constant.WaitingForm.Show();
Constant.WaitingForm.Update();
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.ydm.Report.FrmRunTimeRptZgNew";
ccp.MethodName = "cancelInsertTal";
ccp.ServerParams = new object[] { dtYear, dtYear2 };
ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode != -1)
{
if (ccp.ReturnInfo.Equals("撤销成功!"))
{
MessageUtil.ShowTips(ccp.ReturnInfo);
}
else
{
MessageUtil.ShowTips(ccp.ReturnInfo);
}
}
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
catch (Exception e)
{
this.Cursor = Cursors.Default;
Constant.WaitingForm.ShowToUser = false;
Constant.WaitingForm.Close();
Constant.WaitingForm = null;
}
}
//期初(所属权)
private bool GetOriginalLastB(string yearMothTim, out DataTable table, string[] belogCode)
{
table = null;
DataSet set = new DataSet();
DataTable ds = ServerHelper.GetData("com.steering.pss.ydm.Report.FrmRunTimeRptZgNew.getOriginalLastB", new object[] { yearMothTim, belogCode }, this.ob);
if (ds != null && ds.Rows.Count > 0)
{
set.Tables.Add(ds);
table = set.Tables[0];
return true;
}
return false;
}
//入库量
private bool GetThisInB(string yearMothTim, out DataTable table, string[] belogCode)
{
table = null;
DataSet set = new DataSet();
DataTable ds = ServerHelper.GetData("com.steering.pss.ydm.Report.FrmRunTimeRptZgNew.getThisInB", new object[] { yearMothTim, belogCode }, this.ob);
if (ds != null && ds.Rows.Count > 0)
{
set.Tables.Add(ds);
table = set.Tables[0];
return true;
}
return false;
}
//本期出库量
private bool GetThisOutB(string yearMothTim, out DataTable table, string[] belogCode)
{
table = null;
DataSet set = new DataSet();
DataTable ds = ServerHelper.GetData("com.steering.pss.ydm.Report.FrmRunTimeRptZgNew.getThisOutB", new object[] { yearMothTim, belogCode }, this.ob);
if (ds != null && ds.Rows.Count > 0)
{
set.Tables.Add(ds);
table = set.Tables[0];
return true;
}
return false;
}
///
/// 导出
///
private void exportData()
{
GridHelper.ulGridToExcel(ultraGrid1, "炉批运行年月收发存汇总");
}
private void SetStaticsInfo()
{
try
{
if (this.ultraGrid1.Rows.Count == 0)
{
this.ultraGrid1.DisplayLayout.Bands[0].Summaries.Clear();
}
else
{
ArrayList alist = new ArrayList();
alist.Add("ORIGINAL_AMOUNT");
alist.Add("ORIGINAL_COUNT");
alist.Add("MONTH_1");
alist.Add("MONTH_1COUNT");
alist.Add("MONTH_2");
alist.Add("MONTH_2COUNT");
alist.Add("END_AMOUNT");
alist.Add("END_COUNT");
alist.Add("AWEIGHT");
CommonMethod.SetStaticsInfoSum(ref this.ultraGrid1, alist, true);
}
}
catch { }
}
}
}