using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Pub_Control { public partial class frmHlpInfo_View : Form { public frmHlpInfo_View() { InitializeComponent(); } public string WherePart; public string sTitle; public string sBill; public string sView; TreeNode CurNode=new TreeNode(); public Pub_Class.ClsPub.Enum_OKTag OKTag; Pub_Class.ClsSqlHelper oCn = new Pub_Class.ClsSqlHelper(); private void frmHlpInfo_View_Load(object sender, EventArgs e) { initGrid(); LoadTree(); } //初始化GRID private void initGrid() { grdShow.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //选中模式--行选中 grdShow.ColumnHeadersVisible = true; //标题列显示--是 grdShow.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //标题列尺寸模式--(自动调整,可调整) grdShow.RowTemplate.Height = 18; grdShow.RowTemplate.MinimumHeight = 18; grdShow.ColumnHeadersHeight = 35; //标题行高 grdShow.RowHeadersVisible = false; //标题行可见--否 grdShow.AllowUserToAddRows = false; //是否允许自增--否 grdShow.AllowUserToDeleteRows = false; //是否允许删除--否 //grdShow.ColumnCount = 0; //总列数--5 //grdShow.RowCount = 0; grdShow.AllowUserToResizeColumns = true; //允许调整列宽--是 grdShow.AllowUserToResizeRows = false; //允许调整行高--否 grdShow.ReadOnly = true; //只读--是 grdShow.BackgroundColor = Color.White; grdShow.GridColor = Color.LightGray; grdShow.DefaultCellStyle.SelectionBackColor = Color.Black; grdShow.EnableHeadersVisualStyles = false; //网格标题 样式 grdShow.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; grdShow.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;//网格内容 对齐方式 Pub_Class.ClsPub.GetGridView(grdShow, this.Name + this.sTitle, Pub_Class.ClsPub.AppPath); } //双击 GRID private void grdShow_DblClick(object sender, EventArgs e) { if (grdShow.CurrentCell == null) { return; } //if (AllowRow()) BackData(); } //时间TIMER private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; this.Text = sTitle; } //返回 private void BackData() { OKTag = Pub_Class.ClsPub.Enum_OKTag.OKTag_OK; this.Visible = false; } //退出 private void tc_Click(object sender, EventArgs e) { OKTag = Pub_Class.ClsPub.Enum_OKTag.OKTag_Cancel; this.Visible = false; } //返回按钮 private void fh_Click(object sender, EventArgs e) { BackData(); } //单击树形 private void tvProcess_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { CurNode = e.Node; if (CurNode != null) { if (CurNode.Nodes.Count == 0) { LoadAllNodes(CurNode); } QueryItem(); } } //加载树型 private void LoadTree() { try { tvTree.Nodes.Clear(); tvTree.ImageList = imageList1; TreeNode sNode = tvTree.Nodes.Add("T0", this.Text, 0, 1); LoadAllNodes(sNode); } catch (Exception e) { MessageBox.Show(this,"加载树型失败!" + e.Message,"提示"); } } //加载子项目 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 HItemID,HNumber,HName from " + sBill + " where HParentID='" + sName + "'", sBill); for (int i = 0; i < Ds.Tables[0].Rows.Count; i++) { TreeNode oNode = sNode.Nodes.Add("T" + Ds.Tables[0].Rows[i]["HItemID"].ToString(), Ds.Tables[0].Rows[i]["HNumber"].ToString() + "-" + Ds.Tables[0].Rows[i]["HName"].ToString(), 0, 1); } sNode.Expand(); } catch (Exception e) { //MessageBox.Show("加载子项目失败!" + e.Message); } } } //保存列宽 private void frmHlpInfo_View_FormClosing(object sender, FormClosingEventArgs e) { //Pub_Class.ClsPub.SaveGridView(grdShow, sTitle, Pub_Class.ClsPub.AppPath); } public Int32 Fun_GetCol(string sCol, DataGridView grdMain) { for (int c = 0; c < grdMain.ColumnCount; c++) { if (Pub_Class.ClsPub.isStrNull(grdMain.Columns[c].HeaderText).ToUpper().Trim() == sCol.Trim().ToUpper()) { return c; } } return 0; } //过滤项目 private void QueryItem() { string sTreeCode; //得到树型 代码 try { CurrencyManager cm = (CurrencyManager)BindingContext[grdShow.DataSource]; cm.SuspendBinding(); // int Col; if (lblFindCol.Text.Trim()!="") Col = Fun_GetCol(lblFindCol.Text.Trim(),grdShow); else Col = 1; // if (CurNode != null) { char c = Convert.ToChar("-"); string[] s = CurNode.Text.Split(c); if (s.Length > 1) { sTreeCode = s[0].Trim().ToUpper(); } else { sTreeCode = "";//选中 最大结点的时候 } } else { sTreeCode = ""; } int j = sTreeCode.Length; //显示全部 for (int i = 0; i < grdShow.Rows.Count; i++) { grdShow.Rows[i].Visible = true; if (grdShow.Rows[i].Cells[Col].Value.ToString().Length < j) //如果长度比 匹配项 小 就先隐藏 { grdShow.Rows[i].Visible = false; } else { if (sTreeCode != "") { if (Pub_Class.ClsPub.isStrNull(grdShow.Rows[i].Cells[1].Value.ToString()) != "") { if (grdShow.Rows[i].Cells[1].Value.ToString().ToUpper().Trim() != sTreeCode.ToUpper().Trim()) { if (grdShow.Rows[i].Cells[1].Value.ToString().ToUpper().Trim().Contains(sTreeCode+".")) { grdShow.Rows[i].Visible = true; } else { grdShow.Rows[i].Visible = false; } } else { grdShow.Rows[i].Visible = true; } } } else { grdShow.Rows[i].Visible = true; } //txt if (txtFindInfo.Text.Trim() != "") { string txtCode = txtFindInfo.Text.Trim().ToUpper(); if (Pub_Class.ClsPub.isStrNull(grdShow.Rows[i].Cells[Col].Value.ToString()) != "") { if (grdShow.Rows[i].Cells[Col].Value.ToString().ToUpper().Trim().Contains(txtCode)) { grdShow.Rows[i].Visible = true; } else { grdShow.Rows[i].Visible = false; } } else { grdShow.Rows[i].Visible = false; } } //else //{ // grdShow.Rows[i].Visible = true; //} } } cm.ResumeBinding(); Pub_Class.ClsPub.GetGridView(grdShow, this.Name + this.sTitle, Pub_Class.ClsPub.AppPath); } catch (Exception e) { return; } } private void txtFindInfo_TextChanged(object sender, EventArgs e) { QueryItem(); } private void chkMH_CheckedChanged(object sender, EventArgs e) { QueryItem(); } private void cx_Click(object sender, EventArgs e) { QueryItem(); } private void grdShow_DoubleClick(object sender, EventArgs e) { if (grdShow.CurrentCell == null) { return; } BackData(); } private void grdShow_Click(object sender, EventArgs e) { if (grdShow.CurrentCell == null) { return; } if (grdShow.CurrentCell!=null) { lblFindCol.Text = grdShow.Columns[grdShow.CurrentCell.ColumnIndex].HeaderText; } else { lblFindCol.Text = grdShow.Columns[1].HeaderText; } } private void txtFindInfo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode ==Keys.Enter) { QueryItem(); } } private void yc_Click(object sender, EventArgs e) { Gy_GridView_Hide oHide = new Gy_GridView_Hide(); oHide.KeyItem = this.Name + sBill; oHide.oGrd = grdShow; oHide.ShowDialog(); // Pub_Class.ClsPub.HideGridView(grdShow, Name + sBill, Pub_Class.ClsPub.AppPath);//设置隐藏列 } private void bclk_Click(object sender, EventArgs e) { Pub_Class.ClsPub.SaveGridView(grdShow, this.Name + this.sTitle, Pub_Class.ClsPub.AppPath); } } }