using Pur.Entity.configureEntity;
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 Infragistics.Win.UltraWinTree;
namespace Pur.Pop_upWindow
{
public partial class frmPopMatClass : FrmBase
{
public UltraTreeNode Q_Ultnode = null;
string strTips = "";
public frmPopMatClass(OpeBase ob)
{
InitializeComponent();
this.ob = ob;
getultree();
}
///
/// 选择分类
///
///
/// 1:选择物料分类
public frmPopMatClass(OpeBase ob,string strTips)
{
InitializeComponent();
this.ob = ob;
this.strTips = strTips;
getultree();
}
///
/// 获取物料分类树形结构
///
public void getultree()
{
PurmatclassEntity mat = new PurmatclassEntity();
mat.Validflag = "1";
DataTable dt = this.GetJsonService().execute("com.hnshituo.pur.configure.service.MatClassService", "find", new object[] { mat, 0, 0 });
if (dt == null || dt.Rows.Count < 1)
{
return;
}
DataTable dt_A = new DataTable();//物料分类
//筛选出根节点
DataRow[] rows = dt.Select("PARENTCODE='' or PARENTCODE is null");
dt_A = dt.Clone(); //克隆A的结构
foreach (DataRow row in rows)
{
dt_A.ImportRow(row);//复制行数据
}
dt_A.DefaultView.Sort = "basename";
dt_A = dt_A.DefaultView.ToTable();
//添加物料大类
for (int j = 0; j < dt_A.Rows.Count; j++)
{
if (!ultraTree1.Nodes.Exists(dt_A.Rows[j]["BASECODE"].ToString()))
{
UltraTreeNode Ultnode = ultraTree1.Nodes.Add(dt_A.Rows[j]["BASECODE"].ToString(), dt_A.Rows[j]["BASENAME"].ToString());
getChildNodes(Ultnode, dt);
}
}
}
///
/// 递归查询父节点下的所有子节点
///
///
public void getChildNodes(UltraTreeNode Tnode, DataTable dt)
{
DataTable dt_A = dt.Clone();//物料分类
DataRow[] rows = dt.Select("PARENTCODE='" + Tnode.Key + "'");
foreach (DataRow row in rows)
{
dt_A.ImportRow(row);//复制行数据
}
dt_A.DefaultView.Sort = "basename";
dt_A = dt_A.DefaultView.ToTable();
//添加物料分类
for (int j = 0; j < dt_A.Rows.Count; j++)
{
UltraTreeNode Ultnode = Tnode.Nodes.Add(dt_A.Rows[j]["BASECODE"].ToString(), dt_A.Rows[j]["BASENAME"].ToString());
getChildNodes(Ultnode, dt);//利用递归将当前节点的子节点添加进去
}
}
private void ultraTree1_AfterActivate(object sender, NodeEventArgs e)
{
UltraTreeNode Ultnode = ultraTree1.ActiveNode;
Ultnode.Expanded = true;
}
private void ultraTree1_DoubleClick(object sender, EventArgs e)
{
if (strTips=="1")
{
if(ultraTree1.ActiveNode.Key.Length!=5)
{
MessageBox.Show("请选择物料小类");
return;
}
}
Q_Ultnode = ultraTree1.ActiveNode;
this.Close();
}
}
}