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 frmHlpInfoForBig : Form { public frmHlpInfoForBig() { InitializeComponent(); } public string WherePart; public string sTitle;//根据该变量保存及显示过滤字段 public string sBill;//表 视图 public string sView; public string sLike;//过滤条件 public string sOrderItem;//排序列 public string sNumberColName;//代码列名称 public string sNameColName;//名称列名称 public int CurCol = 0; public int Cur2Col = 0; public string sOtherItem;//显示列 TreeNode CurNode = new TreeNode(); public Pub_Class.ClsPub.Enum_OKTag OKTag; Pub_Class.ClsSqlHelper oCn = new Pub_Class.ClsSqlHelper(); private void frmHlpInfoForBig_Load(object sender, EventArgs e) { initUI(); initGrid(); LoadTree(); QueryText(); } //设置过滤字段 private void initUI() { //从本视图中读取可过滤字段并加载到组合框里 SetViewConditionName(); //从本地文件获取组合框默认字段 SetCombColumn(); } //从本地文件获取组合框默认字段 private void SetCombColumn() { char x = Convert.ToChar(","); char s = Convert.ToChar("|"); string sStr1 = Pub_Class.ClsIni.ReadIni(sBill, "cmb1", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr2 = Pub_Class.ClsIni.ReadIni(sBill, "cmb2", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr3 = Pub_Class.ClsIni.ReadIni(sBill, "cmb3", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr4 = Pub_Class.ClsIni.ReadIni(sBill, "cmb4", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr5 = Pub_Class.ClsIni.ReadIni(sBill, "cmbvalue1", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr6 = Pub_Class.ClsIni.ReadIni(sBill, "cmbvalue2", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr7 = Pub_Class.ClsIni.ReadIni(sBill, "cmbvalue3", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); string sStr8 = Pub_Class.ClsIni.ReadIni(sBill, "cmbvalue4", Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); if (sStr1 != "没有找到!") { cmbFindInfo.Text = sStr1; } else { cmbFindInfo.Text = ""; } if (sStr2 != "没有找到!") { cmbFindInfo2.Text = sStr2; } else { cmbFindInfo2.Text = ""; } if (sStr3 != "没有找到!") { cmbFindInfo3.Text = sStr3; } else { cmbFindInfo3.Text = ""; } if (sStr4 != "没有找到!") { cmbFindInfo4.Text = sStr4; } else { cmbFindInfo4.Text = ""; } //===================================== if (sStr5 != "没有找到!") { txtFindInfo.Text = sStr5; } if (sStr6 != "没有找到!") { txtFindInfo2.Text = sStr6; } if (sStr7 != "没有找到!") { txtFindInfo3.Text = sStr7; } if (sStr8 != "没有找到!") { txtFindInfo4.Text = sStr8; } } //根据视图加载视图的字段到组合框 private void SetViewConditionName() { string[] tArray; DataSet Ds = new DataSet(); int j; if (Pub_Class.ClsPub.isStrNull(sBill).Length == 0) { return; } //得到视图 字段信息 Ds = oCn.RunProcReturn("select column_name,data_type from information_schema.columns where table_name ='" + sBill.Trim() + "' order by ORDINAL_POSITION", "information"); //清空 cmbFindInfo.Items.Clear(); cmbFindInfo2.Items.Clear(); cmbFindInfo3.Items.Clear(); cmbFindInfo4.Items.Clear(); // for (int i = 0; i < Ds.Tables[0].Rows.Count; i++) { //grid1 if (Ds.Tables[0].Rows[i]["column_name"].ToString().Substring(0, 1).ToUpper() != "H") { cmbFindInfo.Items.Add(Ds.Tables[0].Rows[i]["column_name"].ToString().Trim()); cmbFindInfo2.Items.Add(Ds.Tables[0].Rows[i]["column_name"].ToString().Trim()); cmbFindInfo3.Items.Add(Ds.Tables[0].Rows[i]["column_name"].ToString().Trim()); cmbFindInfo4.Items.Add(Ds.Tables[0].Rows[i]["column_name"].ToString().Trim()); } } // } //初始化GRID private void initGrid() { grdShow.RowTemplate.Height = 18; grdShow.RowTemplate.MinimumHeight = 18; grdShow.ColumnHeadersHeight = 40; grdShow.RowHeadersVisible = false; grdShow.ColumnHeadersVisible = true; grdShow.ReadOnly = true; //只读--是 //grdShow.RowCount = 1; grdShow.RowsDefaultCellStyle.SelectionForeColor = Color.White; grdShow.RowsDefaultCellStyle.SelectionBackColor = Color.DarkCyan; grdShow.DefaultCellStyle.SelectionBackColor = Color.DarkCyan; grdShow.DefaultCellStyle.SelectionForeColor = Color.White; //grdShow.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;//网格内容 对齐方式 grdShow.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //标题列 内容对齐方式 grdShow.SelectionMode = DataGridViewSelectionMode.FullRowSelect; grdShow.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //允许用户调整列宽 grdShow.EnableHeadersVisualStyles = false; //网格标题 样式 grdShow.AllowUserToAddRows = false; //是否允许自增--否 grdShow.AllowUserToDeleteRows = false; //是否允许删除--否 grdShow.AllowUserToResizeColumns = true; //允许调整列宽--是 grdShow.AllowUserToResizeRows = false; //允许调整行高--否 grdShow.AllowUserToOrderColumns = false; //允许 拖拽列 grdShow.BackgroundColor = Color.White; //网格背景色 grdShow.GridColor = Color.Gainsboro; //网格线颜色 grdShow.ShowCellToolTips = true; //grdShow.CellBorderStyle = DataGridViewCellBorderStyle.SingleVertical; //网格线样式:只有竖线 grdShow.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; //标题列 背景色 grdShow.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; //剪贴板模式: //grdShow.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;grdShow.ShowCellToolTips = false; //鼠标停留 显示提示 grdShow.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;//网格内容 对齐方式 // Pub_Class.ClsPub.GetGridView(grdShow, sBill, Pub_Class.ClsPub.AppPath);//设置列宽 } //双击 GRID private void grdMain_DblClick(object sender, EventArgs e) { //if (AllowRow()) if (grdShow.CurrentCell == null) { return; } BackData(); } //时间TIMER private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; this.Text = sTitle; } //返回 private void BackData() { //保存过滤方案 Pub_Class.ClsIni oIni = new Pub_Class.ClsIni(); Pub_Class.ClsIni.WriteIni(sBill, "cmbvalue1", txtFindInfo.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmbvalue2", txtFindInfo2.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmbvalue3", txtFindInfo3.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmbvalue4", txtFindInfo4.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmb1", cmbFindInfo.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmb2", cmbFindInfo2.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmb3", cmbFindInfo3.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); Pub_Class.ClsIni.WriteIni(sBill, "cmb4", cmbFindInfo4.Text, Pub_Class.ClsPub.AppPath + @"\" + "ControlInfo.ini"); OKTag = Pub_Class.ClsPub.Enum_OKTag.OKTag_OK; // Pub_Class.ClsPub.SaveGridView(grdShow, sBill, Pub_Class.ClsPub.AppPath); // 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); } QueryTree(); } } //加载树型 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," + sNumberColName + " 代码," + sNameColName + " 名称 from " + sBill + " where HEndFlag=0 and HParentID='" + sName + "' order by " + sNumberColName , 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]["代码"].ToString() + "~" + Ds.Tables[0].Rows[i]["名称"].ToString(), 0, 1); } sNode.Expand(); } catch (Exception e) { //MessageBox.Show("加载子项目失败!" + e.Message); } } } //保存列宽 private void frmHlpInfoForBig_FormClosing(object sender, FormClosingEventArgs e) { //ClsPub.SaveGrid(grdMain, sTitle); } //过滤项目 private void QueryText() { try { string sWhere = ""; if (txtFindInfo.Text.Trim() != "" || txtFindInfo2.Text.Trim() != "" || txtFindInfo3.Text.Trim() != "" || txtFindInfo4.Text.Trim() != "") { if(txtFindInfo.Text.Trim() != "" && cmbFindInfo.Text.Trim()!="") { sWhere =sWhere + " and " + cmbFindInfo.Text + " like '%" + txtFindInfo.Text.Trim() + "%'"; } if (txtFindInfo2.Text.Trim() != "" && cmbFindInfo2.Text.Trim() != "") { sWhere = sWhere + " and " + cmbFindInfo2.Text + " like '%" + txtFindInfo2.Text.Trim() + "%'"; } if (txtFindInfo3.Text.Trim() != "" && cmbFindInfo3.Text.Trim() != "") { sWhere = sWhere + " and " + cmbFindInfo3.Text + " like '%" + txtFindInfo3.Text.Trim() + "%'"; } if (txtFindInfo4.Text.Trim() != "" && cmbFindInfo4.Text.Trim() != "") { sWhere = sWhere + " and " + cmbFindInfo4.Text + " like '%" + txtFindInfo4.Text.Trim() + "%'"; } } else { if (sLike.Trim() == "") { sWhere = " "; } else { sWhere = " "; } } sWhere = sWhere + sLike; string sSQL = "Select " + sOtherItem + " from " + sBill + " where 1=1 " + sWhere + " " + sOrderItem; //编辑ofrm // ExecSQL(sSQL); return; } catch (Exception e) { MessageBox.Show("显示失败!"+e.Message ); return; } } //执行SQL private void ExecSQL(string sSQL) { DataSet Ds = new DataSet(); Ds = oCn.RunProcReturn(sSQL, sBill); grdShow.DataSource = Ds.Tables[0].DefaultView; //隐藏H列 string s = ""; for (int i = 0; i < grdShow.ColumnCount; i++) { s = grdShow.Columns[i].HeaderText.Trim(); if (s.Substring(0, 1).ToUpper() == "H") { grdShow.Columns[i].Visible = false; } else { grdShow.Columns[i].Visible = true; } } //获取列宽 Pub_Class.ClsPub.GetGridView(grdShow, this.Name + this.sTitle, Pub_Class.ClsPub.AppPath); } //树形过滤项目 private void QueryTree() { try { string sWhere = ""; if (CurNode != null) { char c = Convert.ToChar("~"); string[] s = CurNode.Text.Split(c); Int64 ikey =Pub_Class.ClsPub.isLong(CurNode.Name.Substring(1, CurNode.Name.Length - 1)); if (s.Length > 1) { if (chkShowonly.Checked) { sWhere = "and " + sNumberColName + " like '" + s[0].Trim() + "%'"; } else { sWhere = "and " + sNumberColName + " like '" + s[0].Trim() + "%'"; } } else { sWhere = "";//选中 最大结点的时候 } } else { sWhere = ""; } sWhere = sWhere + sLike; string sSQL = "Select " + sOtherItem + " from " + sBill + " where HEndFlag=1 " + sWhere + " Order by " + sNumberColName + " "; //编辑ofrm // ExecSQL(sSQL); return; } catch (Exception e) { MessageBox.Show("显示失败!" + e.Message); return; } } private void chkMH_CheckedChanged(object sender, EventArgs e) { QueryText(); } private void cx_Click(object sender, EventArgs e) { QueryText(); } 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.ColumnIndex >= 0) //{ // lblFindCol.Text = grdShow.Columns[grdShow.CurrentCell.ColumnIndex].HeaderText; // CurCol = grdShow.CurrentCell.ColumnIndex; //} //else //{ // lblFindCol.Text = grdShow.Columns[1].HeaderText; // CurCol = 1; //} } private void txtFindInfo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { QueryText(); } } private void txtFindInfo_TextChanged(object sender, EventArgs e) { } private void grdShow_MouseClick(object sender, MouseEventArgs e) { if (grdShow.CurrentCell == null) { return; } if (e.Button == MouseButtons.Right) { if (grdShow.CurrentCell.ColumnIndex >= 0) { lblFind2Col.Text = grdShow.Columns[grdShow.CurrentCell.ColumnIndex].HeaderText; Cur2Col = grdShow.CurrentCell.ColumnIndex; } else { lblFind2Col.Text = grdShow.Columns[1].HeaderText; Cur2Col = 1; } } } private void txtFindInfo2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { QueryText(); } } private void bclk_Click(object sender, EventArgs e) { Pub_Class.ClsPub.SaveGridView(grdShow, this.Name + this.sTitle, Pub_Class.ClsPub.AppPath); } private void txtFindInfo3_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { QueryText(); } } private void txtFindInfo4_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { QueryText(); } } } }