using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win.UltraWinTree;
using System;
using System.Collections;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
namespace Core.StlMes.Client.Qcm
{
public partial class FrmMenuzConfigure : FrmBase
{
public FrmMenuzConfigure()
{
InitializeComponent();
ExceptionHelper.RegistException();
//this.IsLoadUserView = true; //平台F1功能
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
try
{
this.Cursor = Cursors.WaitCursor;
doQuery();
}
finally
{
this.Cursor = Cursors.Default;
}
break;
case "Close":
this.Close();
break;
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
if ("doQuery".Equals(e.Tool.Key))
{
DoQueryPage();
}
if ("doAdd".Equals(e.Tool.Key))
{
DoAdd();
}
if ("doUpdate".Equals(e.Tool.Key))
{
DoUpdate();
}
if ("doDelete".Equals(e.Tool.Key))
{
DoDelete();
}
}
public void DoQueryPage()
{
this.dataTable1.Clear();
if (treeView1.ActiveNode == null)
return;
parentCode = treeView1.ActiveNode.Tag.ToString();
DataTable dt = new DataTable();
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.getPageData", new Object[] { "10", parentCode }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
//不同颜色区分是否有效数据
Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
row = ultraGrid1.Rows[i];
if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("10"))
{
row.Appearance.ForeColor = Color.Red;
}
else
{
row.Appearance.ForeColor = Color.Black;
}
}
//内容自适应
GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] {
ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"]
});
}
public void DoAdd()
{
if (treeView1.ActiveNode == null)
return;
parentCode = treeView1.ActiveNode.Tag.ToString();
PageEdit page = new PageEdit();
page.ShowDialog();
if (string.IsNullOrEmpty(page.isClickYes))
return;
ArrayList parm = new ArrayList();
DataTable dt = new DataTable();
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { parentCode }, this.ob);
string baseCode = "";
if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString()))
{
baseCode = parentCode + (Convert.ToInt64(dt.Rows[0][0].ToString().Substring(parentCode.Length, 2)) + 1).ToString().PadLeft(2, '0');
}
else
{
baseCode = parentCode + "01";
}
parm.Add(baseCode);
parm.Add(page.Content);
parm.Add(page.Key);
parm.Add(page.icoKey);
parm.Add("P");
parm.Add(parentCode);
parm.Add(page.Seq);
parm.Add("10");
parm.Add(page.Memo);
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doAddMemu";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
}
else
{
return;
}
MessageUtil.ShowTips("新增成功");
//查询
DoQueryPage();
}
public void DoUpdate()
{
if (ultraGrid1.ActiveRow == null)
return;
UltraGridRow row = ultraGrid1.ActiveRow;
String baseCode = row.Cells["PAGE_ID"].Text;
PageEdit page = new PageEdit();
page.Content = row.Cells["PAGE_NAME"].Text;
page.Key = row.Cells["PAGE_KEY"].Text;
page.icoKey = row.Cells["ICO_KEY"].Text;
page.Seq = row.Cells["PAGE_SEQ"].Text;
page.Memo = row.Cells["MEMO"].Text;
page.ShowDialog();
if (string.IsNullOrEmpty(page.isClickYes))
return;
ArrayList parm = new ArrayList();
DataTable dt = new DataTable();
parm.Add(page.Content);
parm.Add(page.Key);
parm.Add(page.icoKey);
parm.Add(page.Seq);
parm.Add(page.Memo);
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
parm.Add(baseCode);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doUpdatePage";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
}
else
{
return;
}
MessageUtil.ShowTips("修改成功");
DoQueryPage();
}
public void DoDelete()
{
if (ultraGrid1.ActiveRow == null)
{
MessageUtil.ShowTips("请先选中需要删除的数据");
return;
}
UltraGridRow row = ultraGrid1.ActiveRow;
String baseCode = row.Cells["PAGE_ID"].Text;
ArrayList parm = new ArrayList();
parm.Add("00");
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
parm.Add(baseCode);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doDelete";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
}
else
{
return;
}
MessageUtil.ShowTips("作废成功");
DoQueryPage();
}
///
/// 树节点选中事件触发时,存储父节点id,防止当父节点选中项转移到其他焦点时,无法获取数据。
///
private static string parentCode = "";
///
/// 用于修改时验证重复项
///
private static string VName = "";
private bool IsExistValidChild(string baseCode)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidChild", new object[] { baseCode }, ob);
if (dt != null && dt.Rows[0][0].ToString() != "0")
{
return true;
}
return false;
}
private bool IsExistValidParent(string sortCode)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidParent", new object[] { sortCode }, ob);
if (dt != null && dt.Rows[0][0].ToString() != "0")
{
return true;
}
return false;
}
///
/// 查找具体的tag
///
///
///
///
private void FindTreeNodeFromTag(TreeNode trnode, string treeTag, ref ArrayList treelist)
{
if (trnode.Tag != null && trnode.Tag.ToString() == treeTag)
{
treelist.Add(trnode);
}
foreach (TreeNode anode in trnode.Nodes)
{
FindTreeNodeFromTag(anode, treeTag, ref treelist);
}
}
///
/// 刷新操作
///
private void doQuery()
{
//查询按钮就当刷新功能。
bandTreeView();
}
///
/// 刷新树控件
///
///
///
private void FrmBaseInfoNew_Load(object sender, EventArgs e)
{
bandTreeView();
}
///
/// 树控件绑定数据源
///
public void bandTreeView()
{
treeView1.Nodes.Clear();
DataTable dt = new DataTable();
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.getTreeData", new Object[] { }, this.ob);
//树控件递归绑定方法。
Bind_Tv(dt, treeView1.Nodes, null, "PAGE_ID", "SORT_CODE", "PAGE_NAME");
}
///
/// top复选框选中事件触发,更新树控件数据源
///
///
///
private void chbx_CheckedChanged(object sender, EventArgs e)
{
if (this.Cursor == Cursors.WaitCursor) return;
//刷新功能。
try
{
this.Cursor = Cursors.WaitCursor;
bandTreeView();
}
finally
{
this.Cursor = Cursors.Default;
}
}
///
/// 刷新Grid数据源
///
///
//private void binUltraGrid(string basecode)
//{
// this.dataTable1.Clear();
// DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { basecode }, this.ob);
// GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
// //不同颜色区分是否有效数据
// Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
// for (int i = 0; i < ultraGrid1.Rows.Count; i++)
// {
// row = ultraGrid1.Rows[i];
// if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1"))
// {
// row.Appearance.ForeColor = Color.Red;
// }
// else
// {
// row.Appearance.ForeColor = Color.Black;
// }
// }
// //内容自适应
// GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] {
// ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"]
// });
//}
///
/// 绑定TreeView(利用TreeNodeCollection)
///
/// TreeNodeCollection(TreeView的节点集合)
/// 父id的值
/// 数据库 id 字段名
/// 数据库 父id 字段名
/// 数据库 文本 字段值
private void Bind_Tv(DataTable dtOld, TreeNodesCollection tnc, string pid_val, string id, string pid, string text)
{
dtOld.DefaultView.Sort = id + " Asc";
DataTable dt = dtOld.DefaultView.ToTable();
DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据
UltraTreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中
//以下为三元运算符,如果父id为空,则为构建“父id字段 is null”的查询条件,否则构建“父id字段=父id字段值”的查询条件
string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
dv.RowFilter = filter;//利用DataView将数据进行筛选,选出相同 父id值 的数据
dt.DefaultView.Sort = id + " Asc";
foreach (DataRowView drv in dv)
{
tn = new UltraTreeNode();//建立一个新节点(学名叫:一个实例)
tn.Tag = drv[id].ToString();//节点的Value值,一般为数据库的id值
tn.Text = drv[text].ToString();//节点的Text,节点的文本显示
tnc.Add(tn);//将该节点加入到TreeNodeCollection(节点集合)中
Bind_Tv(dt, tn.Nodes, tn.Tag.ToString(), id, pid, text);//递归(反复调用这个方法,直到把数据取完为止)
}
}
private void treeView1_AfterActivate(object sender, NodeEventArgs e)
{
try
{
this.Cursor = Cursors.WaitCursor;
DoQueryPage();
}
finally
{
this.Cursor = Cursors.Default;
}
}
private void addParent_Click(object sender, EventArgs e)
{
MenuzEdit menu = new MenuzEdit();
//parentCode = treeView1.ActiveNode.Tag.ToString();
menu.ShowDialog();
if (string.IsNullOrEmpty(menu.isClickYes))
return;
ArrayList parm = new ArrayList();
DataTable dt = new DataTable();
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { "" }, this.ob);
string baseCode = "";
if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString()))
{
baseCode = "A"+(Convert.ToInt64(dt.Rows[0][0].ToString().Substring(1,2)) + 1).ToString().PadLeft(2,'0');
}
else
{
baseCode = "A01";
}
parm.Add(baseCode);
parm.Add(menu.Content);
parm.Add("");
parm.Add(menu.Key);
parm.Add("M");
parm.Add("");
parm.Add(menu.Seq);
parm.Add("10");
parm.Add("");
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doAddMemu";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
bandTreeView();
}
private void addChild_Click(object sender, EventArgs e)
{
MenuzEdit menu = new MenuzEdit();
if (treeView1.ActiveNode==null)
{
MessageUtil.ShowTips("请先选中上级模块");
return;
}
parentCode = treeView1.ActiveNode.Tag.ToString();
menu.ShowDialog();
if (string.IsNullOrEmpty(menu.isClickYes))
return;
ArrayList parm = new ArrayList();
DataTable dt = new DataTable();
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { parentCode }, this.ob);
string baseCode = "";
if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString()))
{
baseCode = parentCode + (Convert.ToInt64(dt.Rows[0][0].ToString().Substring(parentCode.Length, 2)) + 1).ToString().PadLeft(2, '0');
}
else
{
baseCode = parentCode+ "01";
}
parm.Add(baseCode);
parm.Add(menu.Content);
parm.Add("");
parm.Add(menu.Key);
parm.Add("M");
parm.Add(parentCode);
parm.Add(menu.Seq);
parm.Add("10");
parm.Add("");
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doAddMemu";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
//当前父节点新增一个子节点
UltraTreeNode tn = new UltraTreeNode();
tn.Text = menu.Content;
tn.Tag = baseCode;
treeView1.ActiveNode.Nodes.Add(tn);
}
private void update_Click(object sender, EventArgs e)
{
MenuzEdit menu = new MenuzEdit();
if (treeView1.ActiveNode == null)
{
MessageUtil.ShowTips("请先选中需要修改的数据");
return;
}
parentCode = treeView1.ActiveNode.Tag.ToString();
menu.Content = treeView1.ActiveNode.Text;
menu.ShowDialog();
if (string.IsNullOrEmpty(menu.isClickYes))
return;
ArrayList parm = new ArrayList();
DataTable dt = new DataTable();
parm.Add(menu.Content);
parm.Add(menu.Key);
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
parm.Add(parentCode);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doUpdateMemu";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
bandTreeView();
}
private void delete_Click(object sender, EventArgs e)
{
if (treeView1.ActiveNode == null)
{
MessageUtil.ShowTips("请先选中需要删除的数据");
return;
}
String basecode = treeView1.ActiveNode.Tag.ToString();
ArrayList parm = new ArrayList();
DataTable dt = new DataTable();
parm.Add("00");
parm.Add(UserInfo.GetUserID());
parm.Add(UserInfo.GetUserName());
parm.Add(basecode);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
ccp.MethodName = "doDelete";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1) return;
bandTreeView();
}
}
}