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