using System; 
 | 
using System.Collections.Generic; 
 | 
using System.ComponentModel; 
 | 
using System.Data; 
 | 
using System.Drawing; 
 | 
using System.Text; 
 | 
using System.Windows.Forms; 
 | 
using DBUtility; 
 | 
  
 | 
namespace BLL 
 | 
{ 
 | 
    public partial class Gy_BillNumber : Form 
 | 
    { 
 | 
        private int HItemIDCol = 0; 
 | 
        public DBUtility.frm_B_BillQueryCondition_New frmCondition; 
 | 
        public const string ViewName = "h_v_Gy_BillNumberList"; 
 | 
        public string CheckProcName = "h_p_Gy_BillNumber"; //20141020 
 | 
        public string ModName = "单据编号规则"; 
 | 
        public const string BillName = "Gy_BillNumber"; 
 | 
        public const string ModRightNameEdit = BillName + "_Edit"; 
 | 
        public const string ModRightNameDelete = BillName + "_Delete"; 
 | 
        public DBUtility.ClsPub.Enum_InputMode InputMode;  //录入状态标志(0-非录入状态 1-增加 2-修改) 
 | 
        public string HItemID;//项目ID 
 | 
        public string sCondition; //过滤条件 
 | 
        SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); 
 | 
        ClsGy_BillNumber_Ctl oBillNumber = new ClsGy_BillNumber_Ctl(); 
 | 
        ClsGy_BillNumber_View oBillNumberHlp = new ClsGy_BillNumber_View(); 
 | 
        TreeNode CurNode = new TreeNode();  
 | 
        public Gy_BillNumber() 
 | 
        { 
 | 
            InitializeComponent(); 
 | 
        } 
 | 
        //以下代码基本不需要修改 
 | 
        #region 固定代码 
 | 
        //保存GRID列宽 
 | 
        private void Gy_BillNumber_FormClosing(object sender, FormClosingEventArgs e) 
 | 
        { 
 | 
            DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath);   
 | 
        } 
 | 
        //窗体加载 
 | 
        private void Gy_BillNumber_Load(object sender, EventArgs e) 
 | 
        { 
 | 
            frmCondition = new DBUtility.frm_B_BillQueryCondition_New(); 
 | 
            initGrid(); 
 | 
            InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; 
 | 
            RefreshTool(); 
 | 
        }  
 | 
        private void LoadAllNodes(TreeNode sNode)  //Lock 
 | 
        { 
 | 
            DBUtility.Gy_BaseFun.LoadAllNodes(sNode, BillName); 
 | 
        }  
 | 
         
 | 
        //新增 
 | 
        private void AddNew() 
 | 
        { 
 | 
            InputMode = DBUtility.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(); 
 | 
        } 
 | 
        //查询 
 | 
        private void cx_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            frmCondition = new DBUtility.frm_B_BillQueryCondition_New(); 
 | 
            DBUtility.Gy_BaseFun.SetCondition(frmCondition ,ViewName, this.Name ); 
 | 
            frmCondition.ShowDialog(); 
 | 
            if (frmCondition.Tag.ToString() == "OK") 
 | 
            { 
 | 
                Display(); 
 | 
            } 
 | 
        }  
 | 
        private Int32 Fun_GetCol(string sCol)//Lock 
 | 
        { 
 | 
            return DBUtility.Gy_BaseFun.Fun_GetCol(sCol, grdMain); 
 | 
        } 
 | 
        //刷新TOOLBAR 
 | 
        private void RefreshTool()//Lock 
 | 
        { 
 | 
            if (InputMode == DBUtility.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; 
 | 
            } 
 | 
        } 
 | 
        //删除项目 
 | 
        public void Delete() 
 | 
        { 
 | 
  
 | 
            //判断权限 
 | 
            if (!ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName)) 
 | 
            { 
 | 
                return; 
 | 
            } 
 | 
            // 
 | 
            if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) 
 | 
            { 
 | 
                if (MessageBox.Show("确定要删除当前项目?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) 
 | 
                { 
 | 
                    //得到HITEMID 
 | 
                    string sItemID; 
 | 
                    sItemID = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HItemIDCol].Value);  
 | 
                    //判断存在性 
 | 
                    if (oBillNumberHlp.GetInfoByID(sItemID)) 
 | 
                    { 
 | 
                        if (oBillNumber.DeleteByCode(sItemID)) 
 | 
                        { 
 | 
                            //写入日志 
 | 
                            ClsPub.Add_Log("", "删除项目,单据大类:" + oBillNumberHlp.omodel.BillType + ",单据类型名称:" + oBillNumberHlp.omodel.BillName, ClsPub.CurUserName); 
 | 
                            //更新上级为 末级 
 | 
                            MessageBox.Show("删除项目成功!", "提示"); 
 | 
                            Display(); 
 | 
                        } 
 | 
                        else 
 | 
                            MessageBox.Show("删除项目失败!" + DBUtility.ClsPub.sExeReturnInfo, "提示"); 
 | 
                    } 
 | 
                } 
 | 
  
 | 
            } 
 | 
        } 
 | 
        //取消按钮 
 | 
        private void cmdCancel_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; 
 | 
            RefreshTool(); 
 | 
        } 
 | 
        //保存按钮 
 | 
        private void cmdOK_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            if (!WriteClass()) 
 | 
                return; 
 | 
            if (Save()) 
 | 
            { 
 | 
                MessageBox.Show("保存完毕!", "提示"); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                MessageBox.Show("保存失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); 
 | 
            } 
 | 
            if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) 
 | 
            { 
 | 
                InputMode = DBUtility.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); 
 | 
            } 
 | 
        } 
 | 
        //过滤资料   
 | 
        private void FindRow(string sCode)//Lock 
 | 
        { 
 | 
            DBUtility.Gy_BaseFun.FindRow(sCode, ModName, ref sCondition); 
 | 
            Display();  
 | 
        } 
 | 
        //删除 
 | 
        private void sc_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            Delete(); 
 | 
        } 
 | 
        //新增按钮 
 | 
        private void xz_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; 
 | 
            Init(); 
 | 
        } 
 | 
        //修改 
 | 
        private void Modify() 
 | 
        { 
 | 
            if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) 
 | 
            { 
 | 
                InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_Modify; 
 | 
                RefreshTool(); 
 | 
                Init(); 
 | 
            } 
 | 
        } 
 | 
        //修改按钮 
 | 
        private void xg_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            Modify(); 
 | 
        } 
 | 
         
 | 
        
 | 
        // 
 | 
        private void Sub_Copy() 
 | 
        { 
 | 
            txtBillType.Text = ""; 
 | 
            HItemID = ""; 
 | 
            InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; 
 | 
        } 
 | 
        //初始化界面 
 | 
        private bool Init() 
 | 
        { 
 | 
            string sItemID; 
 | 
            if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew) 
 | 
            { 
 | 
                Sub_Clear(); 
 | 
                RefreshTool(); 
 | 
                return true; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                //得到HITEMID 
 | 
                sItemID = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HItemIDCol].Value);  
 | 
                //检查是否存在 
 | 
                if (oBillNumberHlp.GetInfoByID(sItemID)) 
 | 
                { 
 | 
                    ShowData(sItemID); 
 | 
                    //txtHNumber.Focus(); 
 | 
                    return true; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    MessageBox.Show("您选择的项目已经不存在!" + DBUtility.ClsPub.sExeReturnInfo, "提示"); 
 | 
                    return false; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        //保存 
 | 
        private bool Save() 
 | 
        { 
 | 
  
 | 
            //判断权限 
 | 
            if (!ClsPub.Security_Log(ModRightNameEdit, 1, true, DBUtility.ClsPub.CurUserName)) 
 | 
            { 
 | 
                return false; 
 | 
            } 
 | 
            // 
 | 
            if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew) 
 | 
            { 
 | 
                if (oBillNumber.AddNew(ref  DBUtility.ClsPub.sExeReturnInfo)) 
 | 
                { 
 | 
                    Init(); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    return false; 
 | 
                } 
 | 
                Display(); 
 | 
            } 
 | 
            if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) 
 | 
            { 
 | 
                if (!oBillNumber.ModifyByID(HItemID)) 
 | 
                { 
 | 
                    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)//Lock 
 | 
        { 
 | 
            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() // 幻心 
 | 
        { 
 | 
            SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); 
 | 
            DataSet DSet;  
 | 
            string sSql = ""; 
 | 
            string sWhere = ""; 
 | 
            //过滤条件 
 | 
            if (DBUtility.ClsPub.isStrNull(sCondition) == "" && frmCondition.SqlStr.Trim().Length != 0) 
 | 
            { 
 | 
                sSql = frmCondition.SqlStr + sWhere + " order by 单据类型"; 
 | 
            } 
 | 
            else if (DBUtility.ClsPub.isStrNull(sCondition) != "") 
 | 
            { 
 | 
                sSql = "Select * from " + ViewName + sCondition + sWhere + " order by 单据类型"; 
 | 
            } 
 | 
            else  
 | 
            { 
 | 
                sSql = "Select * from " + ViewName + " order by 单据类型"; 
 | 
            } 
 | 
            //执行SQL 
 | 
            DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo); 
 | 
            // 
 | 
            if (DSet == null) 
 | 
            { 
 | 
                MessageBox.Show("显示失败!原因:" + DBUtility.ClsPub.sExeReturnInfo); 
 | 
                return; 
 | 
            } 
 | 
            grdMain.DataSource = DSet.Tables[0].DefaultView; 
 | 
            //加载列宽 
 | 
            DBUtility.Gy_BaseFun.DisplayGrid(grdMain, this.Name); 
 | 
            // 
 | 
            HItemIDCol = Fun_GetCol("单据类型"); 
 | 
            //HNumberCol = Fun_GetCol(ModName + "代码"); 
 | 
            sCondition = ""; 
 | 
        } 
 | 
        //复制按钮 
 | 
        private void fz_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            Sub_Copy(); 
 | 
        } 
 | 
        //新增时清空信息 
 | 
        private void Sub_Clear()  //Lock 
 | 
        { 
 | 
            DBUtility.Gy_BaseFun.Sub_Clear(tabPage2); 
 | 
        } 
 | 
  
 | 
        private void grdMain_DoubleClick(object sender, EventArgs e) 
 | 
        { 
 | 
            Modify(); 
 | 
        } 
 | 
  
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region 类的读写 
 | 
  
 | 
        private bool AllowSave() 
 | 
        { 
 | 
            if (txtBillType.Text.Trim() == "") 
 | 
            { 
 | 
                MessageBox.Show("单据大类不能为空!", "提示"); 
 | 
                return false; 
 | 
            } 
 | 
            if (txtBillCode.Text.Trim() == "") 
 | 
            { 
 | 
                MessageBox.Show("单据类型不能为空!", "提示"); 
 | 
                return false; 
 | 
            } 
 | 
            if (txtBillName.Text.Trim() == "") 
 | 
            { 
 | 
                MessageBox.Show("单据类型名称不能为空!", "提示"); 
 | 
                return false; 
 | 
            } 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        //读取类 到 控件 
 | 
        private void ShowData(string sItemID) 
 | 
        {  
 | 
            if (oBillNumberHlp.GetInfoByID(sItemID)) 
 | 
            { 
 | 
                txtBillType.Text = oBillNumberHlp.omodel.BillType; 
 | 
                txtBillCode.Text = oBillNumberHlp.omodel.BillCode; 
 | 
                txtBillName.Text = oBillNumberHlp.omodel.BillName; 
 | 
                cmbBillCodeMode.Text = oBillNumberHlp.omodel.BillCodeMode.ToString(); 
 | 
                txtProfix.Text = oBillNumberHlp.omodel.Profix; 
 | 
                txtCodeLen.Text = oBillNumberHlp.omodel.CodeLen.ToString(); 
 | 
                txtTotalLen.Text = oBillNumberHlp.omodel.TotalLen.ToString(); 
 | 
                cmbGlida.Text = oBillNumberHlp.omodel.Glida.ToString(); 
 | 
                txtIDNow.Text = oBillNumberHlp.omodel.IDNow.ToString(); 
 | 
                HItemID = oBillNumberHlp.omodel.BillCode; 
 | 
            } 
 | 
        } 
 | 
        //写入类 从控件 
 | 
        private bool WriteClass() 
 | 
        {  
 | 
            //判断是否允许 保存 
 | 
            if (!AllowSave()) 
 | 
            { 
 | 
                return false; 
 | 
            } 
 | 
            //保存原单据类型 
 | 
            if (oBillNumberHlp.GetInfoByID(HItemID)) 
 | 
            { 
 | 
                oBillNumber.HOldNumber = oBillNumberHlp.omodel.BillCode; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                oBillNumber.HOldNumber = ""; 
 | 
            } 
 | 
  
 | 
            //写入信息 
 | 
            oBillNumber.oModel.BillType = txtBillType.Text.Trim(); 
 | 
            oBillNumber.oModel.BillCode = txtBillCode.Text.Trim(); 
 | 
            oBillNumber.oModel.BillName = txtBillName.Text.Trim(); 
 | 
            oBillNumber.oModel.BillCodeMode = DBUtility.ClsPub.isLong(cmbBillCodeMode.Text.Trim()); 
 | 
            oBillNumber.oModel.Profix = txtProfix.Text.Trim(); 
 | 
            oBillNumber.oModel.CodeLen = DBUtility.ClsPub.isLong(txtCodeLen.Text.Trim()); 
 | 
            oBillNumber.oModel.TotalLen = DBUtility.ClsPub.isLong(txtTotalLen.Text.Trim()); 
 | 
            oBillNumber.oModel.Glida = DBUtility.ClsPub.isLong(cmbGlida.Text.Trim()); 
 | 
            oBillNumber.oModel.IDNow = DBUtility.ClsPub.isLong(txtIDNow.Text.Trim()); 
 | 
            return true; 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
  
 | 
        #region 界面控件处理 
 | 
         
 | 
  
 | 
        #endregion 
 | 
  
 | 
        //检测按钮  20141020 
 | 
        private void jc_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            BLL.ClsPub_BLL.Sub_CheckUseStatus(grdMain, HItemIDCol, CheckProcName); 
 | 
            Display(); 
 | 
        } 
 | 
  
 | 
         
 | 
    } 
 | 
} 
 |