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("未找到!!"); } } } }