| 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_UserSelect2 : 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_UserSelect2() | 
|         { | 
|             InitializeComponent(); | 
|         } | 
|         // | 
|         #region  固定代码 | 
|   | 
|         //新增 | 
|         private void AddNew() | 
|         { | 
|             InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; | 
|             Init(); | 
|         } | 
|         //初始化GRID | 
|         private void initGrid() | 
|         { | 
|             grdMain.Cols = 5; | 
|             grdMain.Rows = 1; | 
|             grdMain.FixedCols = 1; | 
|             grdMain.FixedRows = 1; | 
|   | 
|             grdMain.set_TextMatrix(0, 0, "序号"); | 
|             grdMain.set_TextMatrix(0, 1, "用户ID"); | 
|             grdMain.set_TextMatrix(0, 2, "用户"); | 
|             grdMain.set_TextMatrix(0, 3, "用户组ID"); | 
|             grdMain.set_TextMatrix(0, 4, "用户组"); | 
|   | 
|   | 
|             grdMain.set_ColHidden(1, true); | 
|             grdMain.set_ColHidden(3, true); | 
|             // | 
|             grdMain.ExplorerBar = VSFlex7.ExplorerBarSettings.flexExSortAndMove; | 
|             grdMain.AllowBigSelection = false; | 
|             grdMain.AllowSelection = false; | 
|             grdMain.SelectionMode = VSFlex7.SelModeSettings.flexSelectionByRow; | 
|             grdMain.ScrollTrack = true; | 
|             grdMain.WordWrap = true; | 
|             grdMain.set_ColWidth(-1, 1500); | 
|             grdMain.set_RowHeight(-1, 400); | 
|             grdMain.set_RowHeight(0, 500); | 
|             grdMain.RowHeightMin = 250; | 
|             grdMain.Editable = VSFlex7.EditableSettings.flexEDNone; | 
|             grdMain.AllowUserResizing = VSFlex7.AllowUserResizeSettings.flexResizeBoth; | 
|             grdMain.AllowUserFreezing = VSFlex7.AllowUserFreezeSettings.flexFreezeBoth; | 
|             grdMain.set_FixedAlignment(-1, VSFlex7.AlignmentSettings.flexAlignCenterCenter); | 
|             grdMain.AutoSizeMode = VSFlex7.AutoSizeSettings.flexAutoSizeColWidth; | 
|             // | 
|             DBUtility.ClsPub.GetGrid(grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|             // | 
|             grdSource.Cols = 1; | 
|             grdSource.Rows = 1; | 
|             grdSource.FixedCols = 1; | 
|             grdSource.FixedRows = 1; | 
|             grdSource.ExplorerBar = VSFlex7.ExplorerBarSettings.flexExSortAndMove; | 
|             grdSource.AllowBigSelection = false; | 
|             grdSource.AllowSelection = false; | 
|             grdSource.SelectionMode = VSFlex7.SelModeSettings.flexSelectionByRow; | 
|             grdSource.ScrollTrack = true; | 
|             grdSource.WordWrap = true; | 
|             grdSource.set_ColWidth(-1, 1500); | 
|             grdSource.set_RowHeight(-1, 400); | 
|             grdSource.set_RowHeight(0, 500); | 
|             grdSource.RowHeightMin = 250; | 
|             grdSource.Editable = VSFlex7.EditableSettings.flexEDNone; | 
|             grdSource.AllowUserResizing = VSFlex7.AllowUserResizeSettings.flexResizeBoth; | 
|             grdSource.AllowUserFreezing = VSFlex7.AllowUserFreezeSettings.flexFreezeBoth; | 
|             grdSource.set_FixedAlignment(-1, VSFlex7.AlignmentSettings.flexAlignCenterCenter); | 
|             grdSource.AutoSizeMode = VSFlex7.AutoSizeSettings.flexAutoSizeColWidth; | 
|             // | 
|             DBUtility.ClsPub.GetGrid(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath); | 
|         } | 
|         //显示 | 
|         private void Display() | 
|         { | 
|             DisplaySource(); | 
|         } | 
|   | 
|         //显示列表 | 
|         private void DisplaySource() | 
|         { | 
|             SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); | 
|             DataSet DSet = new DataSet(); | 
|             grdSource.Rows = grdSource.FixedRows; | 
|             string sSql = "select * from h_v_Gy_UserList "; | 
|             string sWhere = "order by czybm"; | 
|             //过滤条件 | 
|             sSql = sSql + sWhere; | 
|             // | 
|             DSet = SubCn.RunProcReturn(sSql, ViewName); | 
|             //生成首行标题 | 
|             if (DSet == null) | 
|             { | 
|                 return; | 
|             } | 
|             // | 
|             grdSource.Redraw = VSFlex7.RedrawSettings.flexRDNone; | 
|             // | 
|             grdSource.Cols = DSet.Tables[0].Columns.Count + grdSource.FixedCols; | 
|             grdSource.set_TextMatrix(0, grdSource.FixedCols - 1, "序号"); | 
|             grdSource.set_ColWidth(0, 500); | 
|             for (int i = 0; i <= DSet.Tables[0].Columns.Count - 1; i++) | 
|             { | 
|                 grdSource.set_TextMatrix(0, i + grdSource.FixedCols, DSet.Tables[0].Columns[i].Caption); | 
|                 if (DSet.Tables[0].Columns[i].Caption.ToLower().Substring(0, 1) == "h") //首字母为h则隐藏 | 
|                 { | 
|                     grdSource.set_ColHidden(i + grdSource.FixedCols, true); | 
|                 } | 
|                 else | 
|                 { | 
|                     grdSource.set_ColHidden(i + grdSource.FixedCols, false); | 
|                     grdSource.set_ColWidth(i + grdSource.FixedCols, 1000); | 
|                 } | 
|             } | 
|   | 
|             if (DSet.Tables[0].Rows.Count == 0) | 
|             { | 
|                 grdSource.Redraw = VSFlex7.RedrawSettings.flexRDBuffered; | 
|                 return; | 
|             } | 
|             //填充网格 | 
|             string s = ""; | 
|             grdSource.Rows = DSet.Tables[0].Rows.Count + grdSource.FixedRows; | 
|             for (int i = 0; i <= DSet.Tables[0].Rows.Count - 1; i++) | 
|             { | 
|                 grdSource.set_TextMatrix(i + grdSource.FixedRows, 0, (i + grdSource.FixedRows).ToString()); | 
|                 for (int j = 0; j <= DSet.Tables[0].Columns.Count - 1; j++) | 
|                 { | 
|                     s = DSet.Tables[0].Rows[i][j].ToString(); | 
|                     grdSource.set_TextMatrix(i + grdSource.FixedRows, j + grdSource.FixedCols, s); | 
|                 } | 
|             } | 
|   | 
|             //固定行 中间对齐 | 
|             grdSource.set_FixedAlignment(-1, VSFlex7.AlignmentSettings.flexAlignCenterCenter); | 
|             //加载列宽 | 
|             DBUtility.ClsPub.GetGrid(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath); | 
|             // | 
|             grdSource.Redraw = VSFlex7.RedrawSettings.flexRDBuffered; | 
|         } | 
|   | 
|         //得到对应列 | 
|         private Int32 Fun_GetCol(string sCol) | 
|         { | 
|             for (int c = 0; c < grdMain.Cols; c++) | 
|             { | 
|                 if (DBUtility.ClsPub.isStrNull(grdMain.get_TextMatrix(0, c)).ToUpper().Trim() == sCol.Trim().ToUpper()) | 
|                 { | 
|                     return c; | 
|                 } | 
|             } | 
|             return 0; | 
|         } | 
|   | 
|         //退出模块 | 
|         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.Row >= grdMain.FixedRows && grdMain.Row <= grdMain.Rows - 1) | 
|                 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.SaveGrid(grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|             DBUtility.ClsPub.SaveGrid(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath); | 
|         } | 
|   | 
|         private void mrlk_Click(object sender, EventArgs e) | 
|         { | 
|             grdMain.AutoSize(0, grdMain.Cols - 1, false, 1); | 
|             //参数解释  开始列 ,结束列,是否以最大列宽为准,最小列宽 | 
|             DBUtility.ClsPub.SaveGrid(grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|             grdSource.AutoSize(0, grdSource.Cols - 1, false, 1); | 
|             //参数解释  开始列 ,结束列,是否以最大列宽为准,最小列宽 | 
|             DBUtility.ClsPub.SaveGrid(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath); | 
|         } | 
|   | 
|         //保存GRID列宽 | 
|         private void Gy_UserSelect2_FormClosing(object sender, FormClosingEventArgs e) | 
|         { | 
|             DBUtility.ClsPub.SaveGrid(grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|             DBUtility.ClsPub.SaveGrid(grdSource, this.Name + "grdSource", DBUtility.ClsPub.AppPath); | 
|         } | 
|         //窗体加载 | 
|         private void Gy_UserSelect2_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_UserSelect2 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_UserSelect2(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.Row >= grdSource.FixedRows) | 
|             { | 
|                 grdMain.AddItem(""); | 
|                 grdMain.set_TextMatrix(grdMain.Rows - 1, 4, grdSource.get_TextMatrix(grdSource.Row, 4)); | 
|                 grdMain.set_TextMatrix(grdMain.Rows - 1, 3, grdSource.get_TextMatrix(grdSource.Row, 3)); | 
|                 grdMain.set_TextMatrix(grdMain.Rows - 1, 2, grdSource.get_TextMatrix(grdSource.Row, 2)); | 
|                 grdMain.set_TextMatrix(grdMain.Rows - 1, 1, grdSource.get_TextMatrix(grdSource.Row, 1)); | 
|                 grdSource.RemoveItem(grdSource.Row); | 
|             } | 
|         } | 
|   | 
|         private void cmdQBack_Click(object sender, EventArgs e) | 
|         { | 
|             if (grdMain.Row >= grdMain.FixedRows) | 
|             { | 
|                 grdSource.AddItem(""); | 
|                 grdSource.set_TextMatrix(grdSource.Rows - 1, 4, grdMain.get_TextMatrix(grdMain.Row, 4)); | 
|                 grdSource.set_TextMatrix(grdSource.Rows - 1, 3, grdMain.get_TextMatrix(grdMain.Row, 3)); | 
|                 grdSource.set_TextMatrix(grdSource.Rows - 1, 2, grdMain.get_TextMatrix(grdMain.Row, 2)); | 
|                 grdSource.set_TextMatrix(grdSource.Rows - 1, 1, grdMain.get_TextMatrix(grdMain.Row, 1)); | 
|                 grdMain.RemoveItem(grdMain.Row); | 
|             } | 
|         } | 
|   | 
|         private void cmdQForwardAll_Click(object sender, EventArgs e) | 
|         { | 
|             int Rows = grdSource.Rows; | 
|             for (int i = Rows - 1; i > 0; i--) | 
|             { | 
|                 grdMain.AddItem(""); | 
|                 grdMain.set_TextMatrix(Rows - i, 4, grdSource.get_TextMatrix(i, 4)); | 
|                 grdMain.set_TextMatrix(Rows - i, 3, grdSource.get_TextMatrix(i, 3)); | 
|                 grdMain.set_TextMatrix(Rows - i, 2, grdSource.get_TextMatrix(i, 2)); | 
|                 grdMain.set_TextMatrix(Rows - i, 1, grdSource.get_TextMatrix(i, 1)); | 
|                 grdSource.RemoveItem(i); | 
|             } | 
|         } | 
|         private void cmdQBackAll_Click(object sender, EventArgs e) | 
|         { | 
|             int Rows = grdMain.Rows; | 
|             for (int i = Rows - 1; i > 0; i--) | 
|             { | 
|                 grdSource.AddItem(""); | 
|                 grdSource.set_TextMatrix(Rows - i, 4, grdMain.get_TextMatrix(i, 4)); | 
|                 grdSource.set_TextMatrix(Rows - i, 3, grdMain.get_TextMatrix(i, 3)); | 
|                 grdSource.set_TextMatrix(Rows - i, 2, grdMain.get_TextMatrix(i, 2)); | 
|                 grdSource.set_TextMatrix(Rows - i, 1, grdMain.get_TextMatrix(i, 1)); | 
|                 grdMain.RemoveItem(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.Rows > 2) | 
|                 { | 
|                     MessageBox.Show("只允许选择一个用户!", "提示"); | 
|                     return; | 
|                 } | 
|             } | 
|             for (int i = grdMain.FixedRows; i <= grdMain.Rows - 1; i++) | 
|             { | 
|                 sReturn = sReturn + "," + grdMain.get_TextMatrix(i, 2); | 
|             } | 
|             if (sReturn.Trim() != "") | 
|             { | 
|                 sReturn = sReturn.Substring(1, sReturn.Length - 1); | 
|             } | 
|             IsOk = 1; | 
|             this.Visible = false; | 
|         } | 
|   | 
|         private void Gy_UserSelect2_Activated(object sender, EventArgs e) | 
|         { | 
|             IsOk = 0; | 
|         } | 
|   | 
|         #endregion | 
|     } | 
| } |