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 Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using System.Collections;
namespace Core.StlMes.Client.SaleOrder
{
public partial class FrmOrderSpec : FrmBase
{
public delegate void GetOrderSpec(string specName, UltraGridRow retunSpecRow);
public event GetOrderSpec GetOrderSpecs;
private string titleName = "";
///
/// 规格描述
///
public string TitleName
{
get { return titleName; }
set { titleName = value; }
}
private string specCode = "";
public string SpecCode
{
get { return specCode; }
set { specCode = value; }
}
private string pscType = "";
///
/// 品名类型 A B C D
///
public string PscType
{
get { return pscType; }
set { pscType = value; }
}
int iSelectRow = -1; //判定全程途径是否单选
OpeBase ob = new OpeBase();
string codID = "";
string codName = "";
string indexWt = "";
public FrmOrderSpec()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
try
{
base.OnLoad(e);
ultraGrid2.DisplayLayout.Override.FilterUIType = Infragistics.Win.UltraWinGrid.FilterUIType.FilterRow;
ultraGrid2.DisplayLayout.Override.FilterOperatorDefaultValue = Infragistics.Win.UltraWinGrid.FilterOperatorDefaultValue.Contains;
//ultraGrid2.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.RowSelect;
}
catch (System.Exception ex)
{ }
}
public FrmOrderSpec(OpeBase db)
{
this.ob = db;
InitializeComponent();
}
private void ultraToolbarsManagerSpec_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
iSelectRow = -1;
switch (e.Tool.Key.ToString())
{
case "Query":
titleName = "";
doQuery();
break;
case "ButtonCom":
//if (CheckData() == true)
//{
// doSave();
//}
break;
case "ButtonTrueCom":
//判断是否有勾选项,没有则提示,chkbool大于0执行新增规则描述函数。
//int chkbool = sochkRows();
//if (chkbool > 0)
//{
// if (rowsAsk() == true)
// {
// if (CheckData() == true)
// {
// doSave();
// }
// }
//}
//Boolean insertOut = false;
//for (int i = 0; i < ultraGrid1.Rows.Count; i++)
//{
// Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid1.Rows[i];
// if (row.Cells["ORDER_SPEC_DESC"].Value.ToString() == indexWt
// || row.Cells["SPCHK"].Value.ToString().ToLower().Equals("true"))
// {
// insertOut = true;
// string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString();
// GetOrderSpecs(descName, row);
// this.Close();
// }
//}
//if (!insertOut)
//{
// MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
//}
if (ultraGrid2.ActiveRow != null)
{
Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow;
string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString();
GetOrderSpecs(descName, row);
this.Close();
}
break;
case "ButtonEsc":
this.Close();
break;
}
}
///
/// 查询方法,比较通用的查询方法
///
private void doQuery()
{
this.dataTableSpec.Clear();
//this.dataTableSpecs.Clear();
try
{
//DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getBindSpecOrder", new Object[] { validFlag, titleName, pscType }, this.ob);
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getBindOrderSpec", new object[] {SpecCode,TitleName }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTableSpec, true);
dataTableSpec.AcceptChanges();
}
catch
{
return;
}
//GridHelper.RefreshAndAutoSize(ultraGrid2);
}
private bool IsExistOrderSpec(string orderSpec, string orderSpecCode)
{
ArrayList list = new ArrayList();
list.Add(orderSpec);
list.Add(orderSpecCode);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistOrderSpec",
new object[] { list }, ob);
if (dt == null)
{
return true;
}
else if (dt != null && dt.Rows[0][0].ToString() == "0")
{
return false;
}
return true;
}
//private bool CheckData()
//{
// ultraGrid1.UpdateData();
// DataRow[] drs2 = this.dataTableSpecs.Select("SPCHK = 'True'");
// List insertOrder_SpecNames = new List();
// foreach (DataRow dr in drs2)
// {
// if (dr["ORDER_SPEC_DESC"].ToString() == "")
// {
// MessageBox.Show("您所要保存的数据中,订货规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return false;
// }
// else if (IsExistOrderSpec(dr["ORDER_SPEC_DESC"].ToString(), dr["ORDER_SPEC_CODE"].ToString())
// == true)
// {
// MessageBox.Show("已存在订货规格描述-" + dr["ORDER_SPEC_DESC"].ToString() + "!",
// "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return false;
// }
// if (insertOrder_SpecNames.Contains(dr["ORDER_SPEC_DESC"].ToString()))
// {
// MessageBox.Show("您所要保存的数据中,出现重复的订货规格描述-[" + dr["ORDER_SPEC_DESC"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return false;
// }
// insertOrder_SpecNames.Add(dr["ORDER_SPEC_DESC"].ToString());
// }
// return true;
//}
//private void doSave()
//{
// ultraGrid1.UpdateData();
// //判断是否有勾选项,没有则提示。
// int chkbool = sochkRows();
// if (chkbool <= 0)
// {
// MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// return;
// }
// //确定保存吗?
// if (MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo,
// MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
// {
// return;
// }
// //从表新增组ArrayList
// ArrayList spbSupplementAddParams = new ArrayList();
// //从表修改组ArrayList
// ArrayList spbSupplementUpdateParams = new ArrayList();
// //直接遍历从表所有行,判定是否有选中项。
// for (int j = 0; j < this.dataTableSpecs.Rows.Count; j++)
// {
// DataRow minrow = dataTableSpecs.Rows[j];
// if (minrow["SPCHK"].ToString() == "True")
// {
// if (minrow.RowState == DataRowState.Added)
// {
// spbSupplementAddParams.Add(codID);
// spbSupplementAddParams.Add(codID);
// spbSupplementAddParams.Add(minrow["ORDER_SPEC_DESC"].ToString());
// //name是冗余字段,不需要。
// spbSupplementAddParams.Add(codID);
// spbSupplementAddParams.Add(codName);
// spbSupplementAddParams.Add(this.UserInfo.GetUserName());
// spbSupplementAddParams.Add(minrow["MEMO"].ToString());
// }
// else if (minrow.RowState == DataRowState.Modified)
// {
// spbSupplementUpdateParams.Add(minrow["ORDER_SPEC_DESC"].ToString());
// spbSupplementUpdateParams.Add(this.UserInfo.GetUserName());
// spbSupplementUpdateParams.Add(minrow["MEMO"].ToString());
// spbSupplementUpdateParams.Add(minrow["ORDER_SPEC_CODE"].ToString());
// }
// }
// }
// //执行数据库相关操作
// CoreClientParam ccp = new CoreClientParam();
// if (spbSupplementAddParams.Count > 0)
// {
// //服务端的包名+类名
// ccp.ServerName = "com.steering.pss.sale.order.CoreCtrlOrderLine";
// //类里的方法名
// ccp.MethodName = "BindCmbSpecADD";
// ccp.ServerParams = new object[] { spbSupplementAddParams };
// }
// if (spbSupplementUpdateParams.Count > 0)
// {
// //服务端的包名+类名
// ccp.ServerName = "com.steering.pss.sale.order.CoreCtrlOrderLine";
// //类里的方法名
// ccp.MethodName = "BindCmbSpecUpdata";
// ccp.ServerParams = new object[] { spbSupplementUpdateParams };
// }
// try
// {
// ccp = ob.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);
// DataTable mindt = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.BindCmbSpecSPECQUERY", new Object[] { codID, codName }, this.ob);
// GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTableSpecs, true);
// dataTableSpecs.AcceptChanges();
// }
//}
//private int sochkRows()
//{
// int chkbool = 0;
// foreach (UltraGridRow row in ultraGrid1.Rows)
// {
// if (row.Cells["SPCHK"].Value.ToString().ToUpper() == "TRUE")
// {
// chkbool += 1;
// }
// }
// return chkbool;
//}
///
/// 判定是否新增
///
///
//private bool rowsAsk()
//{
// for (int j = 0; j < this.dataTableSpecs.Rows.Count; j++)
// {
// DataRow minrow = dataTableSpecs.Rows[j];
// if (minrow.RowState == DataRowState.Added)
// {
// indexWt = minrow["ORDER_SPEC_DESC"].ToString();
// return true;
// }
// }
// return false;
//}
//private void ultraGrid2_Click(object sender, EventArgs e)
//{
// Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow;
// if (row != null)
// {
// //从表的记录也要查询出来。
// codID = row.Cells["SPEC_CODE"].Value.ToString();
// codName = row.Cells["SPEC_NAME"].Value.ToString();
// DataTable mindt = ServerHelper.GetData("com.steering.pss.sale.order.CoreCtrlOrderLine.BindCmbSpecSPECQUERY", new Object[] { row.Cells["SPEC_CODE"].Value.ToString(), row.Cells["SPEC_NAME"].Value.ToString() }, this.ob);
// GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTableSpecs, true);
// dataTableSpecs.AcceptChanges();
// }
//}
//private void ultraGrid1_CellChange(object sender, CellEventArgs e)
//{
// this.ultraGrid1.UpdateData();
// if (e.Cell.Column.Key.Equals("SPCHK") && Convert.ToBoolean(e.Cell.Value))
// {
// if (iSelectRow != -1)
// ultraGrid1.Rows[iSelectRow].Cells["SPCHK"].Value = false;
// iSelectRow = e.Cell.Row.Index;
// }
// else
// {
// iSelectRow = -1;
// }
//}
private void FrmOrderSpec_Load(object sender, EventArgs e)
{
doQuery();
}
private void ultraGrid2_DoubleClickRow(object sender, DoubleClickRowEventArgs e)
{
if (e.Row.Index == -1)
{
return;
}
if (ultraGrid2.ActiveRow != null)
{
Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid2.ActiveRow;
string descName = row.Cells["ORDER_SPEC_DESC"].Value.ToString();
GetOrderSpecs(descName, row);
this.Close();
}
}
}
}