using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Text;
|
using System.Windows.Forms;
|
|
namespace DBUtility
|
{
|
public partial class Gy_UserSelect : Form
|
{
|
private int HItemIDCol = 0;
|
private int HNumberCol = 0;
|
public DBUtility.frm_B_BillQueryCondition_New frmCondition;
|
const string ViewName = "h_v_Gy_UserList";
|
const string ModName = "选择用户";
|
public DBUtility.ClsPub.Enum_InputMode InputMode; //录入状态标志(0-非录入状态 1-增加 2-修改)
|
public long HItemID;//项目ID
|
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
|
TreeNode CurNode = new TreeNode();
|
public bool bSingle = false;
|
public string sReturn = "";
|
public int IsOk = 0;
|
|
public Gy_UserSelect()
|
{
|
InitializeComponent();
|
}
|
//
|
#region 固定代码
|
|
//新增
|
private void AddNew()
|
{
|
InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew;
|
Init();
|
}
|
//初始化GRID
|
private void initGrid()
|
{
|
DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name);
|
DBUtility.Xt_BaseBillFun.initGridList(grdSource, this.Name + "grdSource");
|
grdMain.ColumnCount = 5;
|
grdMain.RowCount = 0;
|
grdMain.RowHeadersVisible = false;
|
grdMain.ColumnHeadersVisible = true;
|
grdMain.Columns[0].HeaderText = "序号";
|
grdMain.Columns[1].HeaderText = "h用户ID";
|
grdMain.Columns[2].HeaderText = "用户";
|
grdMain.Columns[3].HeaderText = "h用户组ID";
|
grdMain.Columns[4].HeaderText = "用户组";
|
|
grdMain.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;
|
grdMain.Columns[0].Visible = false;
|
grdMain.Columns[1].Visible = false;
|
grdMain.Columns[3].Visible = false;
|
grdMain.Columns[4].Visible = false;
|
//
|
grdSource.ColumnCount = 1;
|
grdSource.RowCount = 0;
|
grdSource.RowHeadersVisible = false;
|
grdSource.ColumnHeadersVisible = true;
|
grdSource.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;
|
}
|
//显示
|
private void Display()
|
{
|
DisplaySource();
|
}
|
|
//显示列表
|
private void DisplaySource()
|
{
|
SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN();
|
DataSet DSet = new DataSet();
|
string HParentID = "";
|
string sWhere = "";
|
string sSql = "select czymc from h_v_Gy_UserList ";
|
//树形节点
|
if (CurNode.Name.Trim().Length == 0)
|
{
|
HParentID = "";
|
}
|
else
|
{
|
HParentID = CurNode.Name.Substring(1, CurNode.Name.Length - 1);
|
}
|
if (HParentID == "0")
|
{
|
sWhere = " order by hczybm";
|
}
|
else
|
{
|
sWhere = "where groupid='" + HParentID + "' order by hczybm";
|
}
|
//过滤条件
|
sSql = sSql + sWhere;
|
//
|
DSet = SubCn.RunProcReturn(sSql, ViewName);
|
//生成首行标题
|
if (DSet == null)
|
{
|
return;
|
}
|
//
|
grdSource.ColumnCount = DSet.Tables[0].Columns.Count ;
|
grdSource.Columns[0].HeaderText = "序号";
|
for (int i = 0; i <= DSet.Tables[0].Columns.Count - 1; i++)
|
{
|
grdSource.Columns[i].HeaderText = DSet.Tables[0].Columns[i].Caption;
|
if (DSet.Tables[0].Columns[i].Caption.ToLower().Substring(0, 1) == "h") //首字母为h则隐藏
|
{
|
grdSource.Columns[i].Visible = false;
|
}
|
else
|
{
|
grdSource.Columns[i].Visible = true;
|
}
|
}
|
|
if (DSet.Tables[0].Rows.Count == 0)
|
{
|
return;
|
}
|
//填充网格
|
string s = "";
|
grdSource.RowCount = DSet.Tables[0].Rows.Count ;
|
for (int i = 0; i <= DSet.Tables[0].Rows.Count - 1; i++)
|
{
|
grdSource.Rows[i].Cells[0].Value = i + 1;//序号
|
for (int j = 0; j <= DSet.Tables[0].Columns.Count - 1; j++)
|
{
|
s = DSet.Tables[0].Rows[i][j].ToString();
|
grdSource.Rows[i].Cells[j].Value = s;
|
}
|
}
|
|
//加载列宽
|
DBUtility.ClsPub.GetGridView(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath);
|
//
|
}
|
|
|
//退出模块
|
private void tc_Click(object sender, EventArgs e)
|
{
|
this.Close();
|
}
|
//刷新
|
private void xs_Click(object sender, EventArgs e)
|
{
|
initGrid();
|
Display();
|
}
|
|
//树型 单击
|
private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
{
|
CurNode = e.Node;
|
if (CurNode != null)
|
{
|
//找到选中结点
|
initGrid();
|
Display();
|
}
|
}
|
//查找结点
|
private void FindRow(string sCode)
|
{
|
//sCode = sCode.Trim();
|
//char c = Convert.ToChar("-");
|
//string[] s = sCode.Split(c);
|
//if (s.Length > 0)
|
//{
|
// sCode = s[0].Trim();
|
// grdMain.Redraw = VSFlex7.RedrawSettings.flexRDNone;
|
// for (int i = grdMain.FixedRows; i < grdMain.Rows; i++)
|
// {
|
// if (sCode.Trim() == grdMain.get_TextMatrix(i, HNumberCol))
|
// {
|
// grdMain.TopRow = i;
|
// grdMain.Row = i;
|
// }
|
// }
|
// grdMain.Redraw = VSFlex7.RedrawSettings.flexRDBuffered;
|
//}
|
}
|
|
//选中行是否正常
|
private bool AllowRow()
|
{
|
if (grdMain.CurrentRow !=null)
|
return true;
|
else
|
return false;
|
}
|
//时间控件
|
private void timer1_Tick(object sender, EventArgs e)
|
{
|
timer1.Enabled = false;
|
Display();
|
}
|
|
//删除项目
|
public void Delete()
|
{
|
if (AllowRow())
|
{
|
|
|
}
|
}
|
|
private void bclk_Click(object sender, EventArgs e)
|
{
|
//保存列宽
|
DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath);
|
DBUtility.ClsPub.SaveGridView(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath);
|
}
|
|
private void mrlk_Click(object sender, EventArgs e)
|
{
|
DBUtility.ClsPub.DefaultGridView(grdMain);
|
DBUtility.ClsPub.DefaultGridView(grdSource);
|
}
|
|
//保存GRID列宽
|
private void Gy_UserSelect_FormClosing(object sender, FormClosingEventArgs e)
|
{
|
}
|
//窗体加载
|
private void Gy_UserSelect_Load(object sender, EventArgs e)
|
{
|
LoadTree();
|
initGrid();
|
Display();
|
}
|
|
//加载树形
|
private void LoadTree()
|
{
|
try
|
{
|
tv.Nodes.Clear();
|
tv.ImageList = imageList1;
|
TreeNode sNode = tv.Nodes.Add("T0", "用户组", 0, 1);
|
//sNode.Expand();
|
LoadAllNodes(sNode);
|
}
|
catch (Exception e)
|
{
|
MessageBox.Show("加载树型失败!" + e.Message, "提示");
|
}
|
}
|
//初始化界面
|
private bool Init()
|
{
|
return true;
|
}
|
#endregion
|
|
#region 界面控件处理
|
|
|
//保存
|
//private bool Save()
|
//{
|
// if (CurNode.Name == null || CurNode.Name == "")
|
// {
|
// MessageBox.Show("保存失败,选择的结点有异常!");
|
// return false;
|
// }
|
// try
|
// {
|
// oCn.BeginTran();
|
// //删除原记录
|
// oCn.RunProc("Delete From Gy_UserSelect where HUserID='" + CurNode.Name.Trim().Substring(1, CurNode.Name.Trim().Length - 1) + "'");
|
// //新增记录
|
// for (int i = grdMain.FixedRows; i < grdMain.Rows; i++)
|
// {
|
// oCn.RunProc("insert into Gy_UserSelect(HCusID,HUserID) values(" + DBUtility.ClsPub.isLong(grdMain.get_TextMatrix(i, 1)) + ",'" + CurNode.Name.Trim().Substring(1, CurNode.Name.Trim().Length - 1) + "') ");
|
// }
|
// oCn.Commit();
|
// }
|
// catch (Exception e)
|
// {
|
// oCn.RollBack();
|
// MessageBox.Show("保存失败!" + e.Message);
|
// }
|
// return true;
|
//}
|
//新增时清空信息
|
private void Sub_Clear()
|
{
|
return;
|
//
|
}
|
|
//加载子结点
|
private void LoadAllNodes(TreeNode sNode)
|
{
|
if (sNode != null)
|
{
|
try
|
{
|
long sName = Convert.ToInt64(sNode.Name.Substring(1, sNode.Name.Length - 1));
|
sNode.Nodes.Clear();
|
DataSet Ds = oCn.RunProcReturn("select * from System_UserGroup ", "System_UserGroup");
|
for (int i = 0; i < Ds.Tables[0].Rows.Count; i++)
|
{
|
TreeNode oNode = sNode.Nodes.Add("T" + Ds.Tables[0].Rows[i]["GroupID"].ToString(), Ds.Tables[0].Rows[i]["GroupName"].ToString(), 0, 1);
|
}
|
sNode.Expand();
|
}
|
catch (Exception e)
|
{
|
MessageBox.Show("加载子项目失败!" + e.Message, "提示");
|
}
|
}
|
}
|
|
private void cmdQForward_Click(object sender, EventArgs e)
|
{
|
if (grdSource.CurrentRow !=null)
|
{
|
grdMain.Rows.Add();
|
grdMain.Rows[grdMain.RowCount - 1].Cells[2].Value = grdSource.Rows[grdSource.CurrentRow.Index].Cells[0].Value;
|
grdSource.Rows.RemoveAt(grdSource.CurrentRow.Index);
|
}
|
}
|
|
private void cmdQBack_Click(object sender, EventArgs e)
|
{
|
if (grdMain.CurrentRow != null)
|
{
|
grdSource.Rows.Add();
|
grdSource.Rows[grdSource.RowCount - 1].Cells[0].Value = grdMain.Rows[grdMain.CurrentRow.Index].Cells[2].Value;
|
grdMain.Rows.RemoveAt(grdMain.CurrentRow.Index);
|
}
|
}
|
|
private void cmdQForwardAll_Click(object sender, EventArgs e)
|
{
|
int Rows = grdSource.Rows.Count;
|
for (int i = Rows - 1; i >= 0; i--)
|
{
|
grdMain.Rows.Add();
|
grdMain.Rows[grdMain.RowCount - 1].Cells[2].Value = grdSource.Rows[i].Cells[0].Value;
|
grdSource.Rows.RemoveAt(i);
|
}
|
}
|
private void cmdQBackAll_Click(object sender, EventArgs e)
|
{
|
int Rows = grdMain.Rows.Count;
|
for (int i = Rows - 1; i >= 0; i--)
|
{
|
grdSource.Rows.Add();
|
grdSource.Rows[grdSource.RowCount - 1].Cells[0].Value = grdMain.Rows[i].Cells[2].Value;
|
grdMain.Rows.RemoveAt(i);
|
}
|
}
|
|
private void cmdCancel_Click(object sender, EventArgs e)
|
{
|
sReturn = "";
|
IsOk = 2;
|
this.Visible = false;
|
}
|
|
private void cmdOK_Click(object sender, EventArgs e)
|
{
|
sReturn = "";
|
if (bSingle)
|
{
|
if (grdMain.RowCount > 1)
|
{
|
MessageBox.Show("只允许选择一个用户!", "提示");
|
return;
|
}
|
}
|
for (int i = 0; i <= grdMain.RowCount-1; i++)
|
{
|
sReturn = sReturn + "," + grdMain.Rows[i].Cells[2].Value.ToString();
|
}
|
if (sReturn.Trim() != "")
|
{
|
sReturn = sReturn.Substring(1, sReturn.Length - 1);
|
}
|
IsOk = 1;
|
this.Visible = false;
|
}
|
|
private void Gy_UserSelect_Activated(object sender, EventArgs e)
|
{
|
IsOk = 0;
|
}
|
|
#endregion
|
|
public int i = 0; //行的下标控制器 (*****控制从第几行开始遍历*****)
|
public bool notNull = false; //递归控制器 (*****控制是否可调用递归******)
|
private void cmdHUser_Click(object sender, EventArgs e)
|
{
|
string sFind = txtHUser.Text.Trim();
|
string sUser = "";
|
foreach (DataGridViewRow dr in grdSource.SelectedRows) //取消行的选中
|
{
|
dr.Selected = false;
|
}
|
for (int a = i; a <= grdSource.RowCount - 1; a++)
|
{
|
sUser = DBUtility.ClsPub.isStrNull(this.grdSource.Rows[a].Cells[0].Value);
|
if (sUser.IndexOf(sFind) != -1)
|
{
|
grdSource.Rows[a].Selected = true; //如果匹配则选中该行
|
grdSource.FirstDisplayedScrollingRowIndex = a; //滚动条滑自该行
|
i = a + 1; //使下次遍历从该行的下一行开始查找
|
notNull = true;
|
return; //设置notNull为真,跳出
|
}
|
}
|
if (notNull) //始终未找到匹配项则进入
|
{
|
i = 0; //重置从第一行遍历
|
notNull = false; //设置notNull为假,如果再一次从第一行遍历未找到匹配项则不会再进入IF调用递归
|
cmdHUser_Click(sender, e); //递归
|
}
|
else
|
{
|
MessageBox.Show("未找到!!");
|
}
|
}
|
}
|
}
|