using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Treatment.Entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.Mcp.Treatment.Report { public partial class FrmEntrustBal : FrmBase { private string[] items = { }; public FrmEntrustBal() { InitializeComponent(); this.IsLoadUserView = true; } private string[] plineCodes = new string[] { }; protected override void OnLoad(EventArgs e) { base.OnLoad(e); DataTable dt = ServerHelper.GetData( "com.steering.mes.mcp.common.PlanService.getBaseInfo", new object[] { "7029" }, ob); DataRow dr = dt.NewRow(); dt.Rows.InsertAt(dr, 0); ucePayDepartment.DataSource = dt; ucePayDepartment.ValueMember = "BASECODE"; ucePayDepartment.DisplayMember = "BASENAME"; comm.RefreshAndAutoSizeWithHeader(ultraGrid1); dtBathYear.Value = DateTime.Now; plineCodes = comm.InitDropPlinePowerW(cboPline, this.ValidDataPurviewIds, ob); plineCodes = comm.InitDropPlinePowerW(cboPline1, this.ValidDataPurviewIds, ob); items = this.CustomInfo.ToString2().Split(','); } public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": Query(); break; case "Update": Update(); break; case "Settle": Settle(); break; case "CancelSettle": CancelSettle(); break; case "Export": Export(); break; case "Close": this.Close(); break; } } private void Update() { ultraGrid1.UpdateData(); List updateData= dataTable1.AsEnumerable().Where(p => (bool) p["CHK"]).Select(p => p["SUBCONTRACT_NO"].ToString2() + "," + p["SUBCONTRACT_NO_SEQ"].ToString2() + "," + p["PROJECT_CODE"].ToString2() + "," + p["PROJECT_TYPE"].ToString2() + "," + p["PAY_DEPARTMENT_CODE"].ToString2() + "," + p["BAL_PRICE"].ToString2() + "," + p["BAL_PRICE_TOTAL"].ToString2() ) .ToList(); if (!updateData.Any()) { MessageBox.Show("请勾选需要修改的数据"); return; } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust"; ccp.MethodName = "doUpdateSettle"; ccp.ServerParams = new object[] { updateData }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("修改成功!")) { Query(); } } } private void Settle() { ultraGrid1.UpdateData(); List updateData = dataTable1.AsEnumerable().Where(p => (bool)p["CHK"]).Select(p => p["SUBCONTRACT_NO"].ToString2() + "," + p["SUBCONTRACT_NO_SEQ"].ToString2() + "," + p["PROJECT_CODE"].ToString2() + "," + p["PROJECT_TYPE"].ToString2() + "," + p["PAY_DEPARTMENT_CODE"].ToString2() + "," + p["BAL_PRICE"].ToString2() + "," + p["BAL_PRICE_TOTAL"].ToString2() + "," + p["PRO_NUM"].ToString2() + "," + p["PRO_WT"].ToString2() + "," + p["INCISION_NUM"].ToString2() + "," + p["BUNDLING_NUM"].ToString2() ) .ToList(); if (!updateData.Any()) { MessageBox.Show("请勾选需要结算的数据"); return; } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust"; ccp.MethodName = "Settle"; ccp.ServerParams = new object[] { updateData }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("结算成功!")) { Query(); } } } private void CancelSettle() { ultraGrid2.UpdateData(); List updateData = dataTable2.AsEnumerable().Select(p => p["SUBCONTRACT_NO"].ToString2() + "," + p["SUBCONTRACT_NO_SEQ"].ToString2() + "," + p["PROJECT_CODE"].ToString2() + "," + p["PROJECT_TYPE"].ToString2() + "," + p["PAY_DEPARTMENT_CODE"].ToString2() + "," + p["BAL_PRICE"].ToString2() + "," + p["BAL_PRICE_TOTAL"].ToString2()) .ToList(); if (!updateData.Any()) { MessageBox.Show("请勾选需要撤销结算的数据"); return; } var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.common.frmEntrust"; ccp.MethodName = "CancelSettle"; ccp.ServerParams = new object[] { updateData }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("撤销结算成功!")) { Query(); } } } private void Export() { string title = ""; title += "外委加工明细" + dtBathYear.Value.ToString("yyyyMM"); GridHelper.ulGridToExcel(tbcMain.SelectedTab.Index==0? ultraGrid1: ultraGrid2, title); } private void Query() { WaitingForm2 wf = new WaitingForm2("正在查询,请稍候...."); try { this.Cursor = Cursors.WaitCursor; if (tbcMain.SelectedTab.Index == 0) { DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQuerUnBal", new object[] { ucePlineCode.Checked && cboPline.CheckedItems.Count > 0 ? cboPline.CheckedItems.Select(p => p.DataValue.ToString()).ToArray() : plineCodes ,items }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true); comm.RefreshAndAutoSizeWithHeader(ultraGrid1, new string[] { "" }); } else { DataTable dt2 = ServerHelper.GetData("com.steering.mes.mcp.common.frmEntrust.doQuerBal", new object[] { dtBathYear.Value.ToString("yyyyMM"), ucePlineCode1.Checked && cboPline1.CheckedItems.Count > 0 ? cboPline1.CheckedItems.Select(p => p.DataValue.ToString()).ToArray() : plineCodes, items }, this.ob); GridHelper.CopyDataToDatatable(ref dt2, ref dataTable2, true); comm.RefreshAndAutoSizeWithHeader(ultraGrid2, new string[] {""}); } } catch (Exception) { } finally { wf.Close(); this.Cursor = Cursors.Default; } } private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { bool CanEdit = e.Row.Cells["PROJECT_STATUS"].Value.ToString2() == "00"; EnableEdit(CanEdit, e.Row.Cells["PROJECT_TYPE"]); EnableEdit(CanEdit, e.Row.Cells["PAY_DEPARTMENT_CODE"]); EnableEdit(CanEdit, e.Row.Cells["BAL_PRICE"]); EnableEdit(CanEdit, e.Row.Cells["BAL_PRICE_TOTAL"]); } private void EnableEdit(bool CanEdit,UltraGridCell cell) { if (CanEdit) { cell.Activation = Activation.AllowEdit; cell.Appearance.BackColor = Color.FromArgb(255, 224, 192); cell.IgnoreRowColActivation = true; } else { cell.Activation = Activation.ActivateOnly; cell.Appearance.ResetBackColor(); cell.IgnoreRowColActivation = true; } } private void ultraGrid1_InitializeLayout(object sender, InitializeLayoutEventArgs e) { } private void tbcMain_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (toolMenu.Toolbars[0].Tools.Exists("Update")) toolMenu.Toolbars[0].Tools["Update"].InstanceProps.Visible = tbcMain.SelectedTab.Index == 0 ? DefaultableBoolean.True : DefaultableBoolean.False; if (toolMenu.Toolbars[0].Tools.Exists("Settle")) toolMenu.Toolbars[0].Tools["Settle"].InstanceProps.Visible = tbcMain.SelectedTab.Index == 0 ? DefaultableBoolean.True : DefaultableBoolean.False; if (toolMenu.Toolbars[0].Tools.Exists("CancelSettle")) toolMenu.Toolbars[0].Tools["CancelSettle"].InstanceProps.Visible = tbcMain.SelectedTab.Index == 1 ? DefaultableBoolean.True : DefaultableBoolean.False; } private void FrmEntrustBal_Load(object sender, EventArgs e) { tbcMain_SelectedTabChanged(null, null); } private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGrid1.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHK"].Value = true; } } } } }