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();
|
}
|
}
|
|
}
|
}
|