using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinGrid; using Pur.Entity; using Pur.Entity.configureEntity; using Pur.PublicTools; 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 Pur.balance { public partial class FrmBalanceCheck_FG : FrmPmsBase { public FrmBalanceCheck_FG() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid1.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;//不显示行头 ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框 ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void FrmBalanceCheck_FG_Load(object sender, EventArgs e) { dateBegin.Value = dateEnd.DateTime.AddDays(-7); InitColumns(); SetSumCount(); InitBindBox(); } private void InitColumns() { string[] arrColumnsDetail = new string[] { "CHK", "IN_STOCK_NO", "MATCHID", "SUPP_CODE", "SUPP_NAME", "CAR_NUM", "ITEM_CODE", "ITEM_NAME", "ATTR_CODE", "ATTR_NAME", "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY", "SUTTLETIME", "REMARK", "STATUS" };//MATCHID磅单号 string[] arrColumnsCaptionDetail = new string[] { "选择", "入库单号", "磅单号", "供应商", "供应商", "车号", "物料编码", "物料名称", "料型(规格)", "料型(规格)", "毛重", "皮重", "净重", "扣杂", "扣杂净重", "扣机铁", "扣超长", "扣轻薄", "料型净重", "净重时间", "备注", "状态" }; PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable1, ultraGrid1, new string[] { "MATCHID", "SUPP_CODE", "ITEM_CODE", "ATTR_NAME", "KZ_NET_QTY", "INV_QTY", "STATUS" }, false, new string[] { "CHK", "ATTR_CODE", "GROSS_QTY", "TARE_QTY", "KZ_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY" }); PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2, ultraGrid2, new string[] { "MATCHID", "SUPP_CODE", "ITEM_CODE", "ATTR_CODE", "STATUS" }, false, new string[] { "CHK" }); PublicPur.InitCellPositionRight(new UltraGrid[] { ultraGrid1, ultraGrid2 }, new string[] { "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }); PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid2 }, 0, new string[] { "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }, 4, false); } //设置统计风格 private void SetSumCount() { PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}" }, new string[] { "IN_STOCK_NO", "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }, this.ultraGrid1.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed); PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum", "Sum" }, new String[] { "共{0}条", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}", "{0}" }, new string[] { "IN_STOCK_NO", "GROSS_QTY", "TARE_QTY", "NET_QTY", "KZ_QTY", "KZ_NET_QTY", "KJT_QTY", "KCC_QTY", "KQB_QTY", "INV_QTY" }, this.ultraGrid2.DisplayLayout.Bands[0], SummaryDisplayAreas.BottomFixed); } private void InitBindBox() { QuerySUPP_NAME(); QueryATTR_CODE(); ultraGrid1.DisplayLayout.Bands[0].Columns["ATTR_CODE"].EditorComponent = ultraATTR_CODE; ultraGrid1.DisplayLayout.Bands[0].Columns["ATTR_CODE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } //菜单按钮事件 public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": string sql = ""; if (ultraTabControl1.SelectedTab.Index == 0) { sql = " AND T.RESULT IS NULL"; QueryCkInBillRecord_FG(sql); } else if (ultraTabControl1.SelectedTab.Index == 1) { sql = " AND T.RESULT IS NOT NULL"; QueryCkInBillRecord_FG(sql); } break; case "Confirm"://确认编制结算单 if (ultraTabControl1.SelectedTab.Index == 0) { ConfirmBalanceInBill(); } break; case "Cancel"://取消编制结算单 CancelBalanceInBill(); break; case "Print"://打印 break; case "Export"://导出 ExportBalanceInBill(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } private void ExportBalanceInBill() { ArrayList alUltraGrid = new ArrayList();//需要导出的GRID ArrayList alSheeft = new ArrayList();//Sheeft名称 if (ultraTabControl1.SelectedTab.Index == 0) { alUltraGrid.Add(ultraGrid1); alSheeft.Add("废钢入库信息"); if (ultraGrid1.Rows.Count == 0) { return; } } else if (ultraTabControl1.SelectedTab.Index == 1) { alUltraGrid.Add(ultraGrid2); alSheeft.Add("废钢入库信息"); if (ultraGrid2.Rows.Count == 0) { return; } } GridHelper.ulGridToExcel(alUltraGrid, alSheeft, dateBegin.DateTime.ToString("yyyyMM") + "废钢入库信息");//导出excel } private void QueryCkInBillRecord_FG(string strCondition) { try { dataTable1.Rows.Clear(); ArrayList arrayList = new ArrayList(); if (chkDate.Checked) { arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00"); arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59"); } else { arrayList.Add("0001/01/01 00:00:00"); arrayList.Add("9999/12/31 23:59:59"); } if (chkSUPP_NAME.Checked) { arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.QueryCkInBillRecord_FG", new Object[] { arrayList, strCondition }, ob); if (dt == null || dt.Rows.Count == 0) { if (ultraTabControl1.SelectedTab.Index == 0) { dataTable1.Rows.Clear(); } else if (ultraTabControl1.SelectedTab.Index == 1) { dataTable2.Rows.Clear(); } return; } if (ultraTabControl1.SelectedTab.Index == 0) { GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 PublicPur.RefreshAndAutoSizeColumns(ultraGrid1, new string[] { "ATTR_CODE" }, false);//刷新Grid } else if (ultraTabControl1.SelectedTab.Index == 1) { GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable2 GridHelper.RefreshAndAutoSize(ultraGrid2); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //查询供应商 private void QuerySUPP_NAME() { try { DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QuerySUPP_NAME", new Object[] { }, ob); if (dt == null || dt.Rows.Count == 0) { return; } DataRow dr = dt.NewRow(); dr[0] = ""; dt.Rows.InsertAt(dr, 0); ultraQuerySUPP_NAME.DataSource = dt; ultraQuerySUPP_NAME.DisplayMember = "SUPP_NAME"; ultraQuerySUPP_NAME.ValueMember = "SUPP_CODE"; } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } //查询供应商 private void QueryATTR_CODE() { try { DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.QueryATTR_CODE", new Object[] { }, ob); if (dt == null || dt.Rows.Count == 0) { return; } DataRow dr = dt.NewRow(); dr[0] = ""; dt.Rows.InsertAt(dr, 0); ultraATTR_CODE.DataSource = dt; ultraATTR_CODE.DisplayMember = "ATTR_NAME"; ultraATTR_CODE.ValueMember = "ATTR_CODE"; } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ConfirmBalanceInBill() { try { if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowTips("只有选择了入库记录页才能进行验质操作!"); return; } if (dataTable1.Rows.Count == 0) { return; } ultraGrid1.UpdateData(); DataRow[] arr = dataTable1.Select("CHK = 'True' AND ATTR_CODE IS NOT NULL"); if (arr.Length == 0) { MessageUtil.ShowTips("请至少勾选一条入库记录进行验质操作!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录验质?") == DialogResult.Yes) { string userId = UserInfo.GetUserID(); string user = UserInfo.GetUserName(); string strDate = DateTime.Now.ToString(); ArrayList all = new ArrayList(); ArrayList alBase = new ArrayList();//盘盈盘亏记录表 ArrayList alBaseParams = new ArrayList(); ArrayList alCk = new ArrayList();//库存记录表 ArrayList alCkParams = new ArrayList(); ArrayList alCkUpdate = new ArrayList();//库存记录表 ArrayList alCkUpdateParams = new ArrayList(); foreach (DataRow dr in arr) { if (dr["ATTR_CODE"].ToString() != "") { alCkParams = new ArrayList(); alCkParams.Add(dr["ATTR_CODE"].ToString());//料型 alCkParams.Add(dr["KZ_QTY"].ToString()); alCkParams.Add(dr["KJT_QTY"].ToString()); alCkParams.Add(dr["KCC_QTY"].ToString()); alCkParams.Add(dr["KQB_QTY"].ToString()); alCkParams.Add(userId);//创建人 alCkParams.Add(user);//创建人 alCkParams.Add(dr["IN_STOCK_NO"].ToString());//入库单号 alCk.Add(alCkParams); } } if (alCk.Count == 0) { return; } //all.Add(alBase); all.Add(alCk); //all.Add(alCkUpdate); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.ConfirmBalanceInBill_FG", new Object[] { all }, ob); QueryCkInBillRecord_FG(" AND T.RESULT IS NULL"); MessageUtil.ShowTips("验质成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void QueryBalanceInBillRecord() { try { ArrayList arrayList = new ArrayList(); if (chkDate.Checked) { arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00"); arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59"); } else { arrayList.Add("0001/01/01 00:00:00"); arrayList.Add("9999/12/31 23:59:59"); } if (chkSUPP_NAME.Checked) { arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); arrayList.Add(ultraQuerySUPP_NAME.Text.Trim()); } else { arrayList.Add(""); arrayList.Add(""); arrayList.Add(""); } DataTable dt = PublicServer.GetData("com.hnshituo.pur.balance.service.impl.FrmBalanceBillManage.QueryBalanceInBillRecord_FG", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable1.Rows.Clear(); dataTable1.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid1); } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void CancelBalanceInBill() { try { if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowTips("只有选择了已验质页才能进行取消操作!"); return; } if (ultraGrid2.ActiveRow == null || dataTable2.Rows.Count == 0) { return; } if (ultraGrid2.ActiveRow.Cells["STATUS"].Text.Trim() != "0") { MessageUtil.ShowTips("此记录已入库不能取消改变验质结果!"); return; } ultraGrid2.UpdateData(); DataRow[] arr = dataTable2.Select("CHK = 'True'"); if (arr.Length == 0 || arr.Length > 1) { MessageUtil.ShowTips("请勾选一条验质记录进行取消操作!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录取消验质?") == DialogResult.Yes) { string userId = UserInfo.GetUserID(); string user = UserInfo.GetUserName(); string strDate = DateTime.Now.ToString(); ArrayList all = new ArrayList(); ArrayList alBase = new ArrayList();//盘盈盘亏记录表 ArrayList alBaseParams = new ArrayList(); ArrayList alCk = new ArrayList();//库存记录表 ArrayList alCkParams = new ArrayList(); ArrayList alCkUpdate = new ArrayList();//库存记录表 ArrayList alCkUpdateParams = new ArrayList(); string strIN_STOCK_NO = ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim(); foreach (DataRow dr in arr) { alCkParams = new ArrayList(); alCkParams.Add("");//料型 alCkParams.Add(""); alCkParams.Add(""); alCkParams.Add(""); alCkParams.Add(""); alCkParams.Add("");//创建人 alCkParams.Add("");//创建人 alCkParams.Add(dr["IN_STOCK_NO"].ToString());//入库单号 alCk.Add(alCkParams); } //all.Add(alBase); all.Add(alCk); //all.Add(alCkUpdate); PublicServer.SetData("com.hnshituo.pur.balance.service.impl.FrmBalanceCheck_FG.CancelBalanceInBill", new Object[] { all, strIN_STOCK_NO }, ob); QueryCkInBillRecord_FG(" AND T.RESULT IS NOT NULL"); MessageUtil.ShowTips("验质记录撤销成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); return; } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { ultraGrid1.UpdateData(); PublicPur.GridEdite(ultraGrid1.ActiveRow); } private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ultraGrid1.UpdateData(); if (e.Cell.Column.Key == "CHK") { PublicPur.GridEdite(ultraGrid1.ActiveRow); } else if (e.Cell.Column.Key == "ATTR_CODE") { e.Cell.Row.Cells["ATTR_NAME"].Value = e.Cell.Row.Cells["ATTR_CODE"].Text.Trim(); } else if (e.Cell.Column.Key == "KZ_QTY" || e.Cell.Column.Key == "KJT_QTY" || e.Cell.Column.Key == "KCC_QTY" || e.Cell.Column.Key == "KQB_QTY") { if (e.Cell.Value.ToString() != "") { if (!StringUtil.IsDouble(e.Cell.Value.ToString())) { MessageUtil.ShowTips("请输入数字类型!"); e.Cell.Value = ""; return; } if (Convert.ToDouble(e.Cell.Value.ToString()) < 0) { MessageUtil.ShowTips("数字不能小于0!"); e.Cell.Value = ""; return; } double diffNum = Convert.ToDouble(e.Cell.Row.Cells["KZ_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KZ_QTY"].Value.ToString()) + Convert.ToDouble(e.Cell.Row.Cells["KJT_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KJT_QTY"].Value.ToString()) + Convert.ToDouble(e.Cell.Row.Cells["KCC_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KCC_QTY"].Value.ToString()) + Convert.ToDouble(e.Cell.Row.Cells["KQB_QTY"].Value.ToString() == "" ? "0" : e.Cell.Row.Cells["KQB_QTY"].Value.ToString()); double netNum = Convert.ToDouble(e.Cell.Row.Cells["NET_QTY"].Value.ToString()); if (diffNum > netNum) { MessageUtil.ShowTips("扣除总量不能大于料型净重!"); e.Cell.Value = ""; return; } } } } private void chkSUPP_NAME_CheckedChanged(object sender, EventArgs e) { ultraQuerySUPP_NAME.Enabled = chkSUPP_NAME.Checked; } } }