using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using System.Collections;
namespace Core.StlMes.Client.SaleOrder
{
public partial class frmOrderPrice : FrmBase
{
public frmOrderPrice()
{
InitializeComponent();
}
public frmOrderPrice(OpeBase ob)
{
InitializeComponent();
this.ob = ob;
}
///
/// 管理卡号
///
private string manageNo = "";
public string ManageNo
{
get { return manageNo; }
set { manageNo = value; }
}
///
/// 合同号
///
private string orderNo = "";
public string OrderNo
{
get { return orderNo; }
set { orderNo = value; }
}
private void frmOrderPrice_Load(object sender, EventArgs e)
{
doQuery();
//除选择外,全部单元格不允许编辑。
for (int i = 0; i < ultraGrid2.Rows.Count; i++)
{
for (int j = 0; j < ultraGrid2.Rows[i].Cells.Count; j++)
{
if (!ultraGrid2.Rows[i].Cells[j].Column.Key.Equals("CHK"))
{
ultraGrid2.Rows[i].Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
}
}
}
}
///
/// Toop事件
///
///
///
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "doOk":
doOk();
break;
case "doDelete":
doDelete();
break;
}
}
///
/// 删除
///
private void doDelete()
{
ultraGrid2.UpdateData();
ArrayList deleteParms = new ArrayList();
int j = 0;
//判断当前Table选中项。
foreach (DataRow row in this.SLM_ORDER_PRICE.Rows)
{
if (Convert.ToBoolean(row["CHK"]))
{
ArrayList parms = new ArrayList();
parms.Add(ManageNo);
parms.Add(OrderNo);
string priceNo = row["PRICE_NO"].ToString();
//新增行没有price_No,因此不需要添加到参数列表。
if (!"".Equals(priceNo))
{
parms.Add(priceNo);
deleteParms.Add(parms);
}
j++;
}
}
if (j <= 0)
{
MessageBox.Show("请先勾选!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
if (deleteParms.Count > 0)
{
//执行数据库相关操作
CoreClientParam ccp = new CoreClientParam();
//服务端的包名+类名
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderPrice";
//类里的方法名
ccp.MethodName = "doDelete";
ccp.ServerParams = new object[] { deleteParms };
try
{
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
}
catch (Exception ex)
{
MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (ccp.ReturnCode == -1)
{
return;
}
else
{
MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
doQuery();
}
}
}
///
/// 确认
///
private void doOk()
{
ultraGrid2.UpdateData();
ArrayList AddParms = new ArrayList();
ArrayList UpdateParms = new ArrayList();
int j = 0;
foreach (DataRow row in this.SLM_ORDER_PRICE.Rows)
{
if (Convert.ToBoolean(row["CHK"]))
{
j++;
//验证非空项,提取方法。
if (ValidRow(row))
{
if (row.RowState == DataRowState.Added)
{
ArrayList parms = new ArrayList();
parms.Add(ManageNo);
parms.Add(OrderNo);
parms.Add(row["PRICE_BASE"].ToString());
parms.Add(UserInfo.GetUserName());
AddParms.Add(parms);
}
else if (row.RowState == DataRowState.Modified)
{
ArrayList parms = new ArrayList();
parms.Add(row["PRICE_BASE"].ToString());
parms.Add(UserInfo.GetUserName());
parms.Add(ManageNo);
parms.Add(OrderNo);
parms.Add(row["PRICE_NO"].ToString());
UpdateParms.Add(parms);
}
}
else
{
return;
}
}
}
if (j <= 0)
{
if (MessageBox.Show("未勾选任何行,确认提交吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
//不做任何操作跳转到交货信息界面。
doQuery();
//合同头状态变成待审批。
ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderPrice.UpdateOrderSts", new Object[] { ManageNo, OrderNo }, this.ob);
this.Close();
return;
}
else
{
return;
}
}
//传递到服务端,运用事物处理。记不清楚了,但以前有类似的代码。
//执行数据库相关操作
CoreClientParam ccp = new CoreClientParam();
//服务端的包名+类名
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderPrice";
//类里的方法名
ccp.MethodName = "doOk";
ccp.ServerParams = new object[] { AddParms, UpdateParms };
try
{
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
}
catch (Exception ex)
{
MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (ccp.ReturnCode == -1)
{
return;
}
else
{
MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
doQuery();
//合同头状态变成待审批。
ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderPrice.UpdateOrderSts", new Object[] { ManageNo, OrderNo }, this.ob);
this.Close();
}
}
///
/// 验证当前行非空项。
///
///
///
private bool ValidRow(DataRow row)
{
string priceBase = row["PRICE_BASE"].ToString();
if ("".Equals(priceBase))
{
MessageBox.Show("请输入定价依据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return false;
}
return true;
}
///
/// 查询功能,刷新数据源。
///
private void doQuery()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderPrice.doQuery", new Object[] { ManageNo, OrderNo }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.SLM_ORDER_PRICE, true);
this.SLM_ORDER_PRICE.AcceptChanges();
}
private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
{
e.Row.Cells["CHK"].Value = false;
for (int j = 0; j < e.Row.Cells.Count; j++)
{
if (!e.Row.Cells[j].Column.Key.Equals("CHK"))
{
e.Row.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
}
}
}
private void ultraGrid2_CellChange(object sender, CellEventArgs e)
{
ultraGrid2.UpdateData();
if (e.Cell.Value != null && !string.IsNullOrEmpty(e.Cell.Value.ToString()))
{
if (e.Cell.Column.Key.Equals("CHK"))
{
if (Convert.ToBoolean(e.Cell.Value))
{
for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
{
e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
}
}
else
{
for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
{
if (e.Cell.Row.Cells[i].Column.Key.Equals("CHK"))
{
e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
}
else
{
e.Cell.Row.Cells[i].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
}
}
}
}
}
}
}
}