| using System; | 
| using System.Collections.Generic; | 
| using System.ComponentModel; | 
| using System.Data; | 
| using System.Drawing; | 
| using System.Text; | 
| using System.Windows.Forms; | 
| using SQLHelper; | 
| using DBUtility; | 
| using BLL; | 
|   | 
| namespace WarM | 
| { | 
|     public partial class Kf_BillDatePeriod : Form | 
|     { | 
|         private int HYearCol = 0; | 
|         private int HPeriodCol = 0; | 
|         public  DBUtility.frm_B_BillQueryCondition_New  frmCondition; | 
|         const string ViewName = "h_v_Kf_BillDatePeriodList"; | 
|         const string ModName = "单据日期期间"; | 
|         public Pub_Class.ClsPub.Enum_InputModeGroup InputMode;  //录入状态标志  | 
|         public long  HItemID;//项目ID | 
|         public int HYear; | 
|         public int HPeriod; | 
|         public long HItemGroupID; | 
|         ClsCN oCn = new ClsCN(); | 
|         public DAL.ClsKf_BillDatePeriod oBill = new DAL.ClsKf_BillDatePeriod(); | 
|         //ClsKf_BillDatePeriodHlp oBillHlp = new ClsKf_BillDatePeriodHlp(); | 
|         TreeNode CurNode = new TreeNode(); | 
|         ClsPub oPub = new ClsPub(); | 
|         public Kf_BillDatePeriod() | 
|         { | 
|             InitializeComponent(); | 
|         } | 
|   | 
|         //以下年份基本不需要修改 | 
|         #region 固定年份 | 
|           | 
|         //窗体加载 | 
|         private void Kf_BillDatePeriod_Load(object sender, EventArgs e) | 
|         { | 
|             frmCondition = new DBUtility.frm_B_BillQueryCondition_New(); | 
|             LoadTree(); | 
|             initGrid(); | 
|             InputMode = Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_View; | 
|             RefreshTool(); | 
|         } | 
|         //加载子结点 | 
|         private void LoadAllNodes(TreeNode sNode) | 
|         { | 
|             if (sNode != null) | 
|             { | 
|                 try | 
|                 { | 
|                     sNode.Nodes.Clear(); | 
|                     DataSet Ds = oCn.RunProcReturn("select distinct HYear from Kf_BillDatePeriod  order by HYear ", "Kf_BillDatePeriod"); | 
|                     for (int i = 0; i < Ds.Tables[0].Rows.Count; i++) | 
|                     { | 
|                         TreeNode oNode = sNode.Nodes.Add("T" + Ds.Tables[0].Rows[i]["HYear"].ToString(), Ds.Tables[0].Rows[i]["HYear"].ToString(), 0, 1); | 
|                     } | 
|                     sNode.Expand(); | 
|                 } | 
|                 catch (Exception e) | 
|                 { | 
|                     MessageBox.Show("加载子项目失败!" + e.Message, "提示"); | 
|                 } | 
|             } | 
|         } | 
|         //加载树形 | 
|         private void LoadTree() | 
|         { | 
|             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, "提示"); | 
|             } | 
|         } | 
|         private bool AllowSave() | 
|         { | 
|   | 
|             if (ClsPub.isInt(txtHYear.Text.Trim()) == 0) | 
|             { | 
|                 MessageBox.Show("年份不能为空!", "提示"); | 
|                 return false; | 
|             } | 
|             if (ClsPub.isInt(txtHPeriod.Text.Trim()) == 0) | 
|             { | 
|                 MessageBox.Show("月份不能为空!", "提示"); | 
|                 return false; | 
|             } | 
|          | 
|             //是否重复年份 | 
|             if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_AddNew) | 
|             { | 
|                 if (oBill.HavSameNumber(ClsPub.isInt(txtHYear.Text.Trim()),ClsPub.isInt(txtHPeriod.Text.Trim()))) | 
|                 { | 
|                     MessageBox.Show("已存在相同的年月!", "提示"); | 
|                     return false; | 
|                 } | 
|             } | 
|             return true; | 
|         } | 
|         //新增 | 
|         private void AddNew() | 
|         { | 
|             InputMode = Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_AddNew; | 
|             Init(); | 
|         } | 
|         //退出模块 | 
|         private void tc_Click(object sender, EventArgs e) | 
|         { | 
|             this.Close(); | 
|         } | 
|         //刷新 | 
|         private void xs_Click(object sender, EventArgs e) | 
|         { | 
|             Display(); | 
|         } | 
|         //查询 | 
|         private void cx_Click(object sender, EventArgs e) | 
|         { | 
|             frmCondition = new DBUtility.frm_B_BillQueryCondition_New(); | 
|             frmCondition.Tag = ""; | 
|             frmCondition.ViewName = ViewName; | 
|             frmCondition.ModName = this.Name; | 
|             frmCondition.ShowDialog(); | 
|             if (frmCondition.Tag.ToString() == "OK") | 
|             { | 
|                 Display(); | 
|             } | 
|         } | 
|         //得到对应列 | 
|         private Int32 Fun_GetCol(string sCol) | 
|         { | 
|             return DBUtility.Gy_BaseFun.Fun_GetCol(sCol, grdMain); | 
|         } | 
|         //刷新TOOLBAR | 
|         private void RefreshTool() | 
|         { | 
|             if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.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; | 
|                 xz.Enabled = true; | 
|                 xg.Enabled = true; | 
|                 sc.Enabled = true; | 
|                 xs.Enabled = true; | 
|                 cx.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; | 
|                 tc.Enabled = true; | 
|                 xz.Enabled = false; | 
|                 xg.Enabled = false; | 
|                 sc.Enabled = false; | 
|                 xs.Enabled = false; | 
|                 cx.Enabled = false; | 
|                  | 
|             } | 
|         } | 
|         //删除项目 | 
|         public void Delete() | 
|         { | 
|             if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) | 
|             { | 
|                 if (MessageBox.Show("确定要删除当前项目?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) | 
|                 { | 
|                     //得到HITEMID | 
|                     int sYear; | 
|                     int sPeriod; | 
|                     sYear = DBUtility.ClsPub.isInt(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HYearCol].Value); | 
|                     sPeriod = DBUtility.ClsPub.isInt(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HPeriodCol].Value);  | 
|                     //判断存在性 | 
|                     if (oBill.GetInfoByID(sYear, sPeriod)) | 
|                     { | 
|   | 
|                         if (oBill.DeleteByID(sYear, sPeriod)) | 
|                         { | 
|                               | 
|                             MessageBox.Show("删除项目成功!", "提示"); | 
|                             Display(); | 
|                         } | 
|                         else | 
|                             MessageBox.Show("删除项目成功!", "提示"); | 
|                     } | 
|                 } | 
|   | 
|             } | 
|         } | 
|         //取消按钮 | 
|         private void cmdCancel_Click(object sender, EventArgs e) | 
|         { | 
|             InputMode = Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_View; | 
|             RefreshTool(); | 
|         } | 
|         //保存按钮 | 
|         private void cmdOK_Click(object sender, EventArgs e) | 
|         { | 
|             if (!WriteClass()) | 
|                 return; | 
|             if (Save()) | 
|             { | 
|                 MessageBox.Show("保存完毕!", "提示"); | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("保存失败!", "提示"); | 
|             } | 
|             if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_Modify) | 
|             { | 
|                 InputMode = Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_View; | 
|                 RefreshTool(); | 
|             } | 
|         } | 
|         //树型 单击 | 
|         private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) | 
|         { | 
|             CurNode = e.Node; | 
|             if (CurNode != null) | 
|             { | 
|                 frmCondition.SqlStr = ""; | 
|                 //找到选中结点 | 
|                 Display(); | 
|             } | 
|         } | 
|          | 
|         //删除 | 
|         private void sc_Click(object sender, EventArgs e) | 
|         { | 
|             Delete(); | 
|         } | 
|         //新增按钮 | 
|         private void xz_Click(object sender, EventArgs e) | 
|         { | 
|             InputMode = Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_AddNew; | 
|             Init(); | 
|         } | 
|         //修改 | 
|         private void Modify() | 
|         { | 
|             if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) | 
|             { | 
|                 InputMode = Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_Modify; | 
|                 RefreshTool(); | 
|                 Init(); | 
|             } | 
|         } | 
|         //修改按钮 | 
|         private void xg_Click(object sender, EventArgs e) | 
|         { | 
|             Modify(); | 
|         } | 
|         //选中行是否正常 | 
|         //private bool AllowRow() | 
|         //{ | 
|         //    if (grdMain.Row >= grdMain.FixedRows && grdMain.Row <= grdMain.Rows - 1) | 
|         //        return true; | 
|         //    else | 
|         //        return false; | 
|         //} | 
|         | 
|          | 
|         //初始化界面 | 
|         private bool Init() | 
|         { | 
|             int sYear; | 
|             int sPeriod; | 
|             if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_AddNew) | 
|             { | 
|                 Sub_Clear(); | 
|                 RefreshTool(); | 
|                 return true; | 
|             } | 
|             else if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_Modify) | 
|             { | 
|                 //得到HITEMID | 
|                 sYear = DBUtility.ClsPub.isInt(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HYearCol].Value); | 
|                 sPeriod = DBUtility.ClsPub.isInt(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HPeriodCol].Value);  | 
|                 //检查是否存在 | 
|                 if (oBill.GetInfoByID(sYear, sPeriod)) | 
|                 { | 
|                     ShowData(sYear,sPeriod); | 
|                     txtHYear.Focus(); | 
|                     return true; | 
|                 } | 
|                 else | 
|                 { | 
|                     MessageBox.Show("您选择的项目已经不存在!", "提示"); | 
|                     return false; | 
|                 } | 
|             } | 
|         | 
|             else | 
|             { | 
|                 return false; | 
|             } | 
|         } | 
|         //保存 | 
|         private bool Save() | 
|         { | 
|             if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_AddNew) | 
|             { | 
|                 if (oBill.AddNew()) | 
|                 { | 
|                     Init(); | 
|                 } | 
|                 else | 
|                 { | 
|                     return false; | 
|                 } | 
|                 Display(); | 
|             } | 
|             if (InputMode == Pub_Class.ClsPub.Enum_InputModeGroup.InputMode_Modify) | 
|             { | 
|                 if (!oBill.ModifyByID(HYear,HPeriod)) | 
|                 { | 
|                     return false; | 
|                 } | 
|                 Display(); | 
|             } | 
|              | 
|             return true; | 
|         } | 
|          | 
|         //保存列宽 | 
|         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) | 
|         { | 
|             DBUtility.ClsPub.DefaultGridView(grdMain); | 
|             //参数解释  开始列 ,结束列,是否以最大列宽为准,最小列宽 | 
|             DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.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 | 
|         private void initGrid() | 
|         { | 
|             DBUtility.Gy_BaseFun.initGrid(grdMain); | 
|         } | 
|         //显示列表 | 
|         private void Display() | 
|         { | 
|             ClsCN SubCn = new ClsCN(); | 
|             DataSet DSet ; | 
|             string sSql = ""; | 
|             string sWhere = ""; | 
|             long HParentID = 0; | 
|             if (CurNode.Name.Trim().Length == 0) | 
|             { | 
|                 HParentID = 0; | 
|             } | 
|             else | 
|             { | 
|                 HParentID = ClsPub.isLong(CurNode.Name.Trim().Substring(1, CurNode.Name.Trim().Length - 1)); | 
|             } | 
|             //过滤条件 | 
|             if (frmCondition.SqlStr.Trim().Length == 0) | 
|             { | 
|                 if (HParentID == 0) | 
|                 { | 
|                     sSql = "Select * from " + ViewName + " order by 年份,月份"; | 
|                 } | 
|                 else | 
|                 { | 
|                     sSql = "Select * from " + ViewName + " where 年份=" + HParentID.ToString() + " order by 年份,月份"; | 
|                 } | 
|             } | 
|             else | 
|             { | 
|                 sSql = frmCondition.SqlStr + sWhere + " order by 年份,月份"; | 
|             } | 
|             //执行SQL | 
|             DSet = SubCn.RunProcReturn(sSql, ViewName); | 
|             //生成首行标题 | 
|             // | 
|             if (DSet == null) | 
|             { | 
|                 MessageBox.Show("显示失败!原因:" + DBUtility.ClsPub.sExeReturnInfo); | 
|                 return; | 
|             } | 
|             grdMain.DataSource = DSet.Tables[0].DefaultView; | 
|             //加载列宽 | 
|             DBUtility.Gy_BaseFun.DisplayGrid(grdMain, this.Name); | 
|             // | 
|             HYearCol = Fun_GetCol("年份"); | 
|             HPeriodCol = Fun_GetCol("月份"); | 
|         } | 
|         | 
|         #endregion | 
|   | 
|         #region 类的读写 | 
|         //读取类 到 控件 | 
|         private void ShowData(int sYear,int sPeriod) | 
|         { | 
|             if (oBill.GetInfoByID(sYear, sPeriod)) | 
|             { | 
|                 txtHYear.Text = oBill.HYear.ToString(); | 
|                 txtHPeriod.Text = oBill.HPeriod.ToString(); | 
|                 dtpHBeginDate.Value =ClsPub.isDate(oBill.HBeginDate); | 
|                 dtpHEndDate.Value = ClsPub.isDate(oBill.HEndDate); | 
|   | 
|                 HYear = oBill.HYear; | 
|                 HPeriod = oBill.HPeriod; | 
|             } | 
|         } | 
|         //写入类 从控件 | 
|         private bool WriteClass() | 
|         { | 
|              | 
|             //判断是否允许 保存 | 
|             if (!AllowSave()) | 
|             { | 
|                 return false; | 
|             } | 
|             //检查父级是否存在 | 
|              | 
|             //写入信息 | 
|             // | 
|             oBill.HYear = ClsPub.isInt(txtHYear.Text.Trim()); | 
|             oBill.HPeriod = ClsPub.isInt(txtHPeriod.Text.Trim()); | 
|             oBill.HBeginDate = dtpHBeginDate.Value.ToShortDateString(); | 
|             oBill.HEndDate = dtpHEndDate.Value.ToShortDateString(); | 
|             return true; | 
|         } | 
|         #endregion | 
|   | 
|   | 
|         #region 界面控件处理 | 
|         //新增时清空信息 | 
|         private void Sub_Clear() | 
|         { | 
|             //清空界面控件 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 "ComboBox": | 
|                         ((ComboBox)ct).SelectedIndex = 0; | 
|                         break; | 
|                     case "TextBox": | 
|                         ((TextBox)ct).Text = ""; | 
|                         break; | 
|                     case "DateTimePicker": | 
|                         ((DateTimePicker)ct).Value = DateTime.Today; | 
|                         break; | 
|                     default: | 
|                         break; | 
|                 } | 
|             } | 
|             // | 
|             HItemID = 0; | 
|             txtHYear.Focus(); | 
|         } | 
|         | 
|   | 
|          | 
|         #endregion | 
|   | 
|         private void grdMain_DoubleClick(object sender, EventArgs e) | 
|         { | 
|             Modify(); | 
|         } | 
|   | 
|          | 
|   | 
|          | 
|          | 
|   | 
|          | 
|     } | 
| } |