| using System; | 
| using System.Collections.Generic; | 
| using System.ComponentModel; | 
| using System.Data; | 
| using System.Drawing; | 
| using System.Text; | 
| using System.Windows.Forms; | 
|   | 
| namespace DBUtility | 
| { | 
|     public partial class Gy_Base2 : Form | 
|     {   | 
|         public string ViewName ; | 
|         public string BillName ; | 
|         public string ModName  ; | 
|         public int HItemIDCol; | 
|         public int HNumberCol; | 
|         public ClsPub.Enum_InputMode InputMode;  //录入状态标志(0-非录入状态 1-增加 2-修改) | 
|         public long  HItemID;//项目ID | 
|         public string sCondition; //过滤条件   | 
|         public TreeNode CurNode = new TreeNode(); | 
|   | 
|         public frm_B_BillQueryCondition_New frmCondition; | 
|         public Gy_Base2() | 
|         { | 
|             InitializeComponent(); | 
|         } | 
|         //以下代码基本不需要修改 | 
|         #region 固定代码 | 
|          | 
|          | 
|          | 
|         //加载树形 | 
|         public void LoadTree()//Lock | 
|         { | 
|             try | 
|             { | 
|                 tv.Nodes.Clear(); | 
|                 tv.ImageList = imageList1; | 
|                 TreeNode sNode = tv.Nodes.Add("T0", this.Text, 0, 1); | 
|                 LoadAllNodes(sNode); | 
|             } | 
|             catch (Exception e ) | 
|             { | 
|                 MessageBox.Show("加载树型失败!" + e.Message, "提示"); | 
|             } | 
|         } | 
|         //新增 | 
|         public void AddNew() | 
|         { | 
|             InputMode =ClsPub.Enum_InputMode.InputMode_AddNew; | 
|             Init(); | 
|         } | 
|         //退出模块 | 
|         private void tc_Click(object sender, EventArgs e) | 
|         { | 
|             this.Close(); | 
|         } | 
|         //刷新 | 
|         private void xs_Click(object sender, EventArgs e) | 
|         { | 
|             Display(); | 
|         } | 
|         //查询 | 
|           | 
|         //得到对应列 | 
|         public Int32 Fun_GetCol(string sCol)//Lock | 
|         { | 
|             for (int c = 0; c <grdMain.ColumnCount; c++) | 
|             { | 
|                 if (ClsPub.isStrNull(grdMain.Columns[c].HeaderText).ToUpper().Trim() == sCol.Trim().ToUpper()) | 
|                 { | 
|                     return c; | 
|                 } | 
|             }           | 
|             return 0; | 
|         } | 
|   | 
|   | 
|         //刷新TOOLBAR | 
|         public void RefreshTool()//Lock | 
|         { | 
|             if (InputMode == 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;     | 
|                 tc.Enabled = true; | 
|                 yl.Enabled = true; | 
|                 xz.Enabled = true; | 
|                 xg.Enabled = true; | 
|                 sc.Enabled = true; | 
|                 xs.Enabled = true; | 
|                 cx.Enabled = true; | 
|                 fz.Enabled = false; | 
|             } | 
|             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;    | 
|                 tc.Enabled = true; | 
|                 yl.Enabled = false; | 
|                 xz.Enabled = false; | 
|                 xg.Enabled = false; | 
|                 sc.Enabled = false; | 
|                 xs.Enabled = false; | 
|                 cx.Enabled = false; | 
|                 fz.Enabled = true; | 
|             } | 
|         } | 
|          | 
|         //取消按钮 | 
|         private void cmdCancel_Click(object sender, EventArgs e) | 
|         { | 
|             InputMode = ClsPub.Enum_InputMode.InputMode_View; | 
|             RefreshTool(); | 
|         } | 
|         //保存按钮 | 
|         private void cmdOK_Click(object sender, EventArgs e) | 
|         { | 
|             if (!WriteClass()) | 
|                 return; | 
|             if (Save()) | 
|             { | 
|                 MessageBox.Show("保存完毕!", "提示"); | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("保存失败!原因:"+ClsPub.sExeReturnInfo, "提示"); | 
|             } | 
|             if (InputMode == ClsPub.Enum_InputMode.InputMode_Modify) | 
|             { | 
|                 InputMode = ClsPub.Enum_InputMode.InputMode_View; | 
|                 RefreshTool(); | 
|             } | 
|         } | 
|         //树型 单击 | 
|         private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) | 
|         { | 
|             CurNode = e.Node; | 
|             if (CurNode != null) | 
|             { | 
|                 if (CurNode.Nodes.Count == 0) | 
|                     LoadAllNodes(CurNode); | 
|                 //找到选中结点 | 
|                 FindRow(CurNode.Text); | 
|             } | 
|         } | 
|         //过滤资料   | 
|         public void FindRow(string sCode)//Lock | 
|         { | 
|             sCode = sCode.Trim(); | 
|             char c = Convert.ToChar("-"); | 
|             string[] s = sCode.Split(c); | 
|             if (s.Length > 1) | 
|             { | 
|                 sCondition =" Where " + ModName + "代码 like '" + s[0].Trim()+"%'"; | 
|                 // | 
|                 Display(); | 
|             } | 
|             else if (s.Length > 0) | 
|             { | 
|                 sCondition = " Where " + ModName + "代码 like '%%'"; | 
|                 // | 
|                 Display(); | 
|             } | 
|             else | 
|             { | 
|   | 
|             } | 
|         } | 
|         //删除 | 
|         private void sc_Click(object sender, EventArgs e) | 
|         { | 
|             Delete(); | 
|         } | 
|         //新增按钮 | 
|         private void xz_Click(object sender, EventArgs e) | 
|         { | 
|             InputMode = ClsPub.Enum_InputMode.InputMode_AddNew; | 
|             Init(); | 
|         } | 
|         //修改 | 
|         public void Modify() | 
|         { | 
|             if (AllowRow()) | 
|             { | 
|                 InputMode = ClsPub.Enum_InputMode.InputMode_Modify; | 
|                 RefreshTool(); | 
|                 Init(); | 
|             } | 
|         } | 
|         //修改按钮 | 
|         private void xg_Click(object sender, EventArgs e) | 
|         { | 
|             Modify(); | 
|         } | 
|         //选中行是否正常 | 
|         public bool AllowRow()  //Lock | 
|         { | 
|             if (grdMain.CurrentRow!=null) | 
|                 return true; | 
|             else | 
|                 return false; | 
|         } | 
|         | 
|         // | 
|         public void Sub_Copy() | 
|         { | 
|             txtHNumber.Text = ""; | 
|             HItemID = 0; | 
|             InputMode = ClsPub.Enum_InputMode.InputMode_AddNew; | 
|         } | 
|   | 
|          | 
|          | 
|          | 
|         //保存列宽 | 
|         private void bclk_Click(object sender, EventArgs e) | 
|         { | 
|             ClsPub.SaveGridView(grdMain, this.Name,ClsPub.AppPath);    | 
|         } | 
|         //默认列宽 | 
|         private void mrlk_Click(object sender, EventArgs e)//Lock | 
|         { | 
|             ClsPub.DefaultGridView(grdMain); | 
|             //参数解释  开始列 ,结束列,是否以最大列宽为准,最小列宽 | 
|             ClsPub.SaveGridView(grdMain, this.Name, ClsPub.AppPath); | 
|         } | 
|         //时间控件 | 
|         private void timer1_Tick(object sender, EventArgs e) | 
|         { | 
|             timer1.Enabled = false; | 
|             Display(); | 
|         } | 
|         //双击GRID | 
|         private void grdMain_DblClick(object sender, EventArgs e) | 
|         { | 
|             Modify(); | 
|         } | 
|         //初始化GRID | 
|         public void initGrid() | 
|         { | 
|             grdMain.SelectionMode = DataGridViewSelectionMode.FullRowSelect;        //选中模式--行选中 | 
|             grdMain.ColumnHeadersVisible = true;                                    //标题列显示--是 | 
|             grdMain.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;  //标题列尺寸模式--(自动调整,可调整) | 
|             grdMain.RowTemplate.Height = 18; | 
|             grdMain.RowTemplate.MinimumHeight = 18; | 
|             grdMain.ColumnHeadersHeight = 35;          //标题行高 | 
|             grdMain.RowHeadersVisible = false;              //标题行可见--否 | 
|             grdMain.AllowUserToAddRows = false;             //是否允许自增--否 | 
|             grdMain.AllowUserToDeleteRows = false;          //是否允许删除--否 | 
|             grdMain.ColumnCount = 0;                        //总列数--5 | 
|             grdMain.RowCount = 0; | 
|             grdMain.AllowUserToResizeColumns = true;         //允许调整列宽--是 | 
|             grdMain.AllowUserToResizeRows = false;           //允许调整行高--否 | 
|             grdMain.ReadOnly = true;                         //只读--是 | 
|             grdMain.BackgroundColor = Color.White; | 
|             grdMain.GridColor = Color.LightGray; | 
|             grdMain.DefaultCellStyle.SelectionBackColor = Color.Black;  | 
|             grdMain.EnableHeadersVisualStyles = true;     //网格标题 样式 | 
|         } | 
|          | 
|         //复制按钮 | 
|         private void fz_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_Copy(); | 
|         } | 
|         #endregion | 
|   | 
|         #region 类的读写 | 
|         //读取类 到 控件 | 
|         public virtual void ShowData(long sItemID) | 
|         { | 
|             return; | 
|         } | 
|         //写入类 从控件 | 
|         public virtual bool WriteClass() | 
|         {  | 
|             return true; | 
|         } | 
|   | 
|         //显示列表 | 
|         public   void Display() // 幻心 | 
|         { | 
|             SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); | 
|             DataSet DSet; | 
|             string sSql = ""; | 
|             string sWhere = ""; | 
|             //刷新树形 | 
|             //LoadTree(); | 
|             //过滤条件  | 
|             if (ClsPub.isStrNull(sCondition) == "" && frmCondition.SqlStr.Trim().Length != 0) | 
|             { | 
|                 sSql = frmCondition.SqlStr + sWhere + " order by HItemID"; | 
|             } | 
|             else if (ClsPub.isStrNull(sCondition) != "") | 
|             { | 
|                 sSql = "Select * from " + ViewName + sCondition + sWhere + " order by HItemID"; | 
|             } | 
|             else | 
|             { | 
|                 sSql = "Select * from " + ViewName + " order by HItemID"; | 
|             } | 
|             //执行SQL | 
|             DSet = SubCn.RunProcReturn(sSql, ViewName, ref ClsPub.sExeReturnInfo); | 
|             // | 
|             if (DSet == null) | 
|             { | 
|                 MessageBox.Show("显示失败!原因:" + ClsPub.sExeReturnInfo); | 
|                 return; | 
|             } | 
|             grdMain.DataSource = DSet.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; | 
|                 } | 
|             } | 
|             ClsPub.GetGridView(this.grdMain, this.Name, DBUtility.ClsPub.AppPath); | 
|             // | 
|             HItemIDCol = Fun_GetCol("HItemID"); | 
|             sCondition = ""; | 
|         } | 
|   | 
|         //加载子结点 | 
|         public virtual  void LoadAllNodes(TreeNode sNode)  //Lock | 
|         { | 
|             return; | 
|         } | 
|   | 
|         //删除项目 | 
|         public virtual void Delete() | 
|         { | 
|             //------------- | 
|         } | 
|         //查询 | 
|         public virtual void Query() | 
|         { | 
|             //============ | 
|         } | 
|   | 
|         //初始化界面 | 
|         public virtual bool Init() | 
|         { | 
|             return true; | 
|         } | 
|   | 
|         //保存 | 
|         public virtual bool Save() | 
|         { | 
|             return true; | 
|         } | 
|         //保存前判断 | 
|         public virtual bool AllowSave() | 
|         { | 
|   | 
|             return true; | 
|         } | 
|         #endregion | 
|   | 
|   | 
|         #region 界面控件处理 | 
|   | 
|          | 
|   | 
|         //新增时清空信息 | 
|         public void Sub_Clear()  //Lock | 
|         { | 
|             //清空界面控件 for 控件    | 
|             foreach (Control ct in tabPage2.Controls) | 
|             { | 
|                 switch (ct.GetType().Name) | 
|                 { | 
|                     case "ListBox": | 
|                         ((ListBox)ct).Items.Clear(); | 
|                         break; | 
|                     case "CheckBox": | 
|                         ((CheckBox)ct).Checked = false; | 
|                         break; | 
|                     case "RadioButton": | 
|   | 
|                         break; | 
|                     case "TextBox": | 
|                         ((TextBox)ct).Text = ""; | 
|                         break; | 
|                     case "DateTimePicker": | 
|                         ((DateTimePicker)ct).Value = DateTime.Today; | 
|                         break; | 
|                     default: | 
|                         break; | 
|                 } | 
|             } | 
|             // | 
|             HItemID = 0; | 
|             //txtHNumber.Focus(); | 
|         } | 
|          | 
|   | 
|         private void grdMain_DoubleClick(object sender, EventArgs e) | 
|         { | 
|             Modify(); | 
|         } | 
|   | 
|         private void cmdLoadTree_Click(object sender, EventArgs e) | 
|         { | 
|             LoadTree(); | 
|         } | 
|   | 
|         private void cx_Click(object sender, EventArgs e) | 
|         { | 
|             Query(); | 
|         } | 
|   | 
|         #endregion | 
|   | 
|          | 
|   | 
|          | 
|     } | 
| } |