| using System; | 
| using System.Collections.Generic; | 
| using System.ComponentModel; | 
| using System.Data; | 
| using System.Drawing; | 
| using System.Text; | 
| using System.Windows.Forms; | 
| using DBUtility; | 
|   | 
| namespace SCM | 
| { | 
|     public partial class Gy_UserByOrgRelation : Form | 
|     { | 
|         public frmBillQueryCondition_Base frmCondition; | 
|         public const string ViewName = "h_v_Gy_UserByOrgRelationList"; | 
|         public DBUtility.ClsPub.Enum_InputMode InputMode;  //录入状态标志(0-非录入状态 1-增加 2-修改) | 
|         public string sCzybm; //用户编码 | 
|         public string sCzymc; //用户名称 | 
|   | 
|         public WMSWeb.WebService1 oWeb = new WMSWeb.WebService1(); | 
|   | 
|         public Gy_UserByOrgRelation() | 
|         { | 
|             InitializeComponent(); | 
|         } | 
|   | 
|         //以下代码基本不需要修改 | 
|         #region 固定代码 | 
|   | 
|         //保存GRID列宽 | 
|         private void Gy_UserByOrgRelation_FormClosing(object sender, FormClosingEventArgs e) | 
|         { | 
|             DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath);   | 
|         } | 
|   | 
|         //窗体加载 | 
|         private void Gy_UserByOrgRelation_Load(object sender, EventArgs e) | 
|         { | 
|             //设置动态URL | 
|             oWeb.Url = ClsPub1.WEBSURL; | 
|             // | 
|             txtCzybm.ReadOnly = true; | 
|             txtCzymc.ReadOnly = true; | 
|             frmCondition = new frmBillQueryCondition_Base(); | 
|             initGrid(); | 
|             RefreshTool(); | 
|         } | 
|   | 
|         //初始化GRID | 
|         private void initGrid() | 
|         { | 
|             DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); | 
|         } | 
|   | 
|         //刷新TOOLBAR | 
|         private void RefreshTool()//Lock | 
|         { | 
|             if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_View) | 
|             { | 
|                 stTab.SelectedIndex = 0; | 
|                 stTab.TabPages.Remove(this.tabPage2); | 
|                 stTab.TabPages.Remove(this.tabPage1); | 
|                 stTab.TabPages.Add(this.tabPage1); | 
|                 grdMain.Enabled = true; | 
|                 bj.Enabled = true; | 
|                 sc.Enabled = true; | 
|                 sx.Enabled = true; | 
|                 tc.Enabled = true; | 
|             } | 
|             else | 
|             { | 
|                 stTab.SelectedIndex = 1; | 
|                 stTab.TabPages.Remove(this.tabPage1); | 
|                 stTab.TabPages.Remove(this.tabPage2); | 
|                 stTab.TabPages.Add(this.tabPage2); | 
|                 stTab.TabPages[0].Hide(); | 
|                 grdMain.Enabled = false; | 
|                 bj.Enabled = false; | 
|                 sc.Enabled = false; | 
|                 sx.Enabled = false; | 
|                 tc.Enabled = true; | 
|             } | 
|         } | 
|   | 
|         private Int32 Fun_GetCol(string sCol)//Lock | 
|         { | 
|             return DBUtility.Gy_BaseFun.Fun_GetCol(sCol, grdMain); | 
|         } | 
|   | 
|         //时间控件 | 
|         private void timer1_Tick(object sender, EventArgs e) | 
|         { | 
|             timer1.Enabled = false; | 
|             Display(); | 
|         } | 
|   | 
|         private void grdMain_DoubleClick(object sender, EventArgs e) | 
|         { | 
|             InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; | 
|             RefreshTool(); | 
|             ShowData(); | 
|         } | 
|   | 
|         #endregion | 
|   | 
|   | 
|         #region 功能控件处理 | 
|   | 
|         //编辑 | 
|         private void bj_Click(object sender, EventArgs e) | 
|         { | 
|             if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) | 
|             { | 
|                 InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; | 
|                 RefreshTool(); | 
|                 ShowData(); | 
|             } | 
|         } | 
|   | 
|         //读取类 到 控件 | 
|         private void ShowData() | 
|         { | 
|             LbYes.Items.Clear(); | 
|             LbNo.Items.Clear(); | 
|             sCzybm = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("用户编码")].Value); | 
|             sCzymc = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("用户名称")].Value); | 
|             try | 
|             { | 
|                 txtCzybm.Text = sCzybm; | 
|                 txtCzymc.Text = sCzymc; | 
|   | 
|                 //加载不属于组织 | 
|                 DataSet oDs1 = oWeb.getDataSetBySQL("select a.HItemID,a.Hname from Xt_ORGANIZATIONS a with(nolock) left join Gy_UserByOrgRelation b with(nolock) on a.HItemID=b.HOrgID and (isnull(b.HUserID,'')='" + sCzybm + "' or isnull(b.HUserID,'')='')" | 
|                 + " where isnull(b.HItemID,'')=''", "Gy_UserByOrgRelation", ref ClsPub.sExeReturnInfo); | 
|   | 
|                 if (oDs1.Tables[0].Rows.Count != 0) | 
|                 { | 
|                     for (int i = 0; i <= oDs1.Tables[0].Rows.Count - 1; i++) | 
|                     { | 
|                         LbNo.Items.Add(oDs1.Tables[0].Rows[i][0].ToString().Trim() + "-" + oDs1.Tables[0].Rows[i][1].ToString().Trim()); | 
|                     } | 
|                 } | 
|                 //加载属于组织 | 
|                 DataSet oDs2 = oWeb.getDataSetBySQL("select a.HItemID,a.Hname from Xt_ORGANIZATIONS a with(nolock) left join Gy_UserByOrgRelation b with(nolock) on a.HItemID=b.HOrgID and (isnull(b.HUserID,'')='" + sCzybm + "' or isnull(b.HUserID,'')='')" | 
|                 + " where isnull(b.HItemID,'')<>''", "Gy_UserByOrgRelation", ref ClsPub.sExeReturnInfo); | 
|   | 
|                 if (oDs2.Tables[0].Rows.Count != 0) | 
|                 { | 
|                     for (int i = 0; i <= oDs2.Tables[0].Rows.Count - 1; i++) | 
|                     { | 
|                         LbYes.Items.Add(oDs2.Tables[0].Rows[i][0].ToString().Trim() + "-" + oDs2.Tables[0].Rows[i][1].ToString().Trim()); | 
|                     } | 
|                 } | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 MessageBox.Show(e.Message, "提示"); | 
|                 return; | 
|             } | 
|         } | 
|   | 
|         //删除 | 
|         private void sc_Click(object sender, EventArgs e) | 
|         { | 
|             if (DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("HItemID")].Value) == 0) | 
|             { | 
|                 MessageBox.Show("当前用户没有对应组织权限信息,无需删除", "提示"); | 
|                 return; | 
|             } | 
|             else if (MessageBox.Show("确定要删除当前用户对应组织权限?" + grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("用户名称")].Value.ToString() + ",对应组织:" + grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("对应组织名称")].Value.ToString(), "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) | 
|             { | 
|                 return; | 
|             } | 
|             DeleteBill(); | 
|             Display(); | 
|         } | 
|   | 
|         private void DeleteBill() | 
|         { | 
|             try | 
|             { | 
|                 oWeb.getRunProc("delete from Gy_UserByOrgRelation where HItemID=" + DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("HItemID")].Value.ToString()), ref DBUtility.ClsPub.sExeReturnInfo); | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 MessageBox.Show(e.Message, "提示"); | 
|                 return; | 
|             } | 
|             MessageBox.Show("删除成功!", "提示"); | 
|         } | 
|   | 
|         //刷新 | 
|         private void xs_Click(object sender, EventArgs e) | 
|         { | 
|             Display(); | 
|         } | 
|   | 
|         //显示列表 | 
|         private void Display() | 
|         { | 
|             try | 
|             { | 
|                 DataSet oDs = new DataSet(); | 
|                 oDs = oWeb.getDataSetBySQL("select * from " + ViewName + " order by 用户名称", ViewName, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                 if (oDs == null) | 
|                 { | 
|                     MessageBox.Show("无用户信息!原因:" + DBUtility.ClsPub.sExeReturnInfo); | 
|                     return; | 
|                 } | 
|                 // | 
|                 grdMain.DataSource = oDs.Tables[0].DefaultView; | 
|                 ////加载列宽 | 
|                 //for (int i = 0; i < grdMain.ColumnCount; i++) | 
|                 //{ | 
|                 //    grdMain.Columns[i].Width = 100; | 
|                 //    if (grdMain.Columns[i].HeaderText.Substring(0, 1).ToLower() == "h") | 
|                 //    { | 
|                 //        grdMain.Columns[i].Visible = false; | 
|                 //    } | 
|                 //    else | 
|                 //    { | 
|                 //        grdMain.Columns[i].Visible = true; | 
|                 //    } | 
|                 //} | 
|                 //加载列宽 | 
|                 DBUtility.Gy_BaseFun.DisplayGrid(grdMain, this.Name); | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 MessageBox.Show(e.Message, "提示"); | 
|                 return; | 
|             } | 
|         } | 
|   | 
|         //退出模块 | 
|         private void tc_Click(object sender, EventArgs e) | 
|         { | 
|             this.Close(); | 
|         } | 
|   | 
|         //保存列宽 | 
|         private void bclk_Click(object sender, EventArgs e) | 
|         { | 
|             DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|         } | 
|   | 
|         //默认列宽 | 
|         private void mrlk_Click(object sender, EventArgs e)//Lock | 
|         { | 
|             DBUtility.ClsPub.DefaultGridView(grdMain); | 
|             //参数解释  开始列 ,结束列,是否以最大列宽为准,最小列宽 | 
|             DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|         } | 
|   | 
|         #endregion | 
|   | 
|   | 
|         #region 编辑界面控件处理 | 
|   | 
|         //保存按钮 | 
|         private void cmdOK_Click(object sender, EventArgs e) | 
|         { | 
|             if (Save()) | 
|             { | 
|                 MessageBox.Show("保存完毕!", "提示"); | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("保存失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); | 
|             } | 
|             if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) | 
|             { | 
|                 InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; | 
|                 RefreshTool(); | 
|             } | 
|         } | 
|   | 
|         //保存 | 
|         private bool Save() | 
|         { | 
|             oWeb.getRunProc("delete from Gy_UserByOrgRelation where HUserID='" + sCzybm.ToString() + "'", ref DBUtility.ClsPub.sExeReturnInfo); | 
|             for (int i = 0; i <= LbYes.Items.Count - 1; i++) | 
|             { | 
|                 oWeb.getRunProc("insert into Gy_UserByOrgRelation (HBillType,HUserID,HOrgID) values ('','" + sCzybm.ToString() + "'," + ClsPub.isLong(Get_Code(this.LbYes.Items[i].ToString())) + ")", ref DBUtility.ClsPub.sExeReturnInfo); | 
|             } | 
|             Display(); | 
|             return true; | 
|         } | 
|   | 
|         //拆分 | 
|         private string Get_Code(string sCode) | 
|         { | 
|             sCode = sCode.Trim(); | 
|             char c = Convert.ToChar("-"); | 
|             string[] s = sCode.Split(c); | 
|             if (s.Length > 1) | 
|             { | 
|                 return s[0].Trim(); | 
|             } | 
|             else | 
|             { | 
|                 return "0"; | 
|             } | 
|         } | 
|   | 
|         //取消按钮 | 
|         private void cmdCancel_Click(object sender, EventArgs e) | 
|         { | 
|             InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; | 
|             RefreshTool(); | 
|         } | 
|   | 
|         //左移 | 
|         private void cmdLeft_Click(object sender, EventArgs e) | 
|         { | 
|             if (this.LbNo.SelectedItems.Count > 0) | 
|             { | 
|                 int i = this.LbNo.SelectedIndex; | 
|                 this.LbYes.Items.Add(this.LbNo.SelectedItem.ToString()); | 
|                 this.LbNo.Items.RemoveAt(i); | 
|             } | 
|         } | 
|   | 
|         //全部左移 | 
|         private void cmdAllLeft_Click(object sender, EventArgs e) | 
|         { | 
|             if (this.LbNo.Items.Count > 0) | 
|             { | 
|                 for (int i = 0; i <= this.LbNo.Items.Count - 1; i++) | 
|                 { | 
|                     this.LbYes.Items.Add(this.LbNo.Items[i].ToString()); | 
|                     this.LbNo.Items.RemoveAt(i); | 
|                     i--; | 
|                 } | 
|             } | 
|         } | 
|   | 
|         //右移 | 
|         private void cmdRight_Click(object sender, EventArgs e) | 
|         { | 
|             if (this.LbYes.SelectedItems.Count > 0) | 
|             { | 
|                 int i = this.LbYes.SelectedIndex; | 
|                 this.LbNo.Items.Add(this.LbYes.SelectedItem.ToString()); | 
|                 this.LbYes.Items.RemoveAt(i); | 
|             } | 
|         } | 
|   | 
|         //全部右移 | 
|         private void cmdAllRight_Click(object sender, EventArgs e) | 
|         { | 
|             if (this.LbYes.Items.Count > 0) | 
|             { | 
|                 for (int i = 0; i <= this.LbYes.Items.Count - 1; i++) | 
|                 { | 
|                     this.LbNo.Items.Add(this.LbYes.Items[i].ToString()); | 
|                     this.LbYes.Items.RemoveAt(i); | 
|                     i--; | 
|                 } | 
|             } | 
|         } | 
|   | 
|         #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 grdMain.SelectedRows) //取消行的选中 | 
|             { | 
|                 dr.Selected = false; | 
|             } | 
|             for (int a = i; a <= grdMain.RowCount - 1; a++) | 
|             { | 
|                 sUser = DBUtility.ClsPub.isStrNull(this.grdMain.Rows[a].Cells[Fun_GetCol("用户名称")].Value); | 
|                 if (sUser.IndexOf(sFind) != -1) | 
|                 { | 
|                     grdMain.Rows[a].Selected = true;  //如果匹配则选中该行 | 
|                     grdMain.FirstDisplayedScrollingRowIndex = a;  //滚动条滑自该行 | 
|                     i = a + 1;  //使下次遍历从该行的下一行开始查找 | 
|                     notNull = true; | 
|                     return;   //设置notNull为真,跳出 | 
|                 } | 
|             } | 
|             if (notNull) //始终未找到匹配项则进入 | 
|             { | 
|                 i = 0;  //重置从第一行遍历 | 
|                 notNull = false;  //设置notNull为假,如果再一次从第一行遍历未找到匹配项则不会再进入IF调用递归 | 
|                 cmdHUser_Click(sender, e); //递归 | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("未找到!!"); | 
|             } | 
|         } | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|     } | 
| } |