OperateAndValidate.cs 操作验证

来源:互联网 发布:辛普森杀妻案真凶 知乎 编辑:程序博客网 时间:2024/06/05 16:53
using System;
using System.Data;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;


//TableLogOnInfo


namespace CRM.BaseClass
{
    internal class OperateAndValidate
    {
        private readonly BaseOperate boperate = new BaseOperate(); //声明BaseOperate类的一个对象,以调用其方法


        #region  绑定ComboBox控件


        /// <summary>
        ///   对ComboBox控件进行数据绑定
        /// </summary>
        /// <param name="P_str_sqlstr"> SQL语句 </param>
        /// <param name="P_str_table"> 表名 </param>
        /// <param name="P_str_tbMember"> 数据表中字段名 </param>
        /// <param name="cbox"> ComboBox控件ID </param>
        public void cboxBind(string P_str_sqlstr, string P_str_table, string P_str_tbMember, ComboBox cbox)
        {
            DataSet myds = boperate.getds(P_str_sqlstr, P_str_table);
            cbox.DataSource = myds.Tables[P_str_table];
            cbox.DisplayMember = P_str_tbMember;
        }


        #endregion


        #region  验证输入字符串为数字


        /// <summary>
        ///   验证输入字符串为数字
        /// </summary>
        /// <param name="P_str_num"> 输入字符 </param>
        /// <returns> 返回一个bool类型的值 </returns>
        public bool validateNum(string P_str_num)
        {
            return Regex.IsMatch(P_str_num, "^[0-9]*$");
        }


        #endregion


        #region  验证输入字符串为电话号码


        /// <summary>
        ///   验证输入字符串为电话号码
        /// </summary>
        /// <param name="P_str_phone"> 输入字符串 </param>
        /// <returns> 返回一个bool类型的值 </returns>
        public bool validatePhone(string P_str_phone)
        {
            return Regex.IsMatch(P_str_phone, @"\d{3,4}-\d{7,8}");
        }


        #endregion


        #region  验证输入字符串为传真号码


        /// <summary>
        ///   验证输入字符串为传真号码
        /// </summary>
        /// <param name="P_str_fax"> 输入字符串 </param>
        /// <returns> 返回一个bool类型的值 </returns>
        public bool validateFax(string P_str_fax)
        {
            return Regex.IsMatch(P_str_fax, @"86-\d{2,3}-\d{7,8}");
        }


        #endregion


        #region  验证输入字符串为邮政编码


        /// <summary>
        ///   验证输入字符串为邮政编码
        /// </summary>
        /// <param name="P_str_postcode"> 输入字符串 </param>
        /// <returns> 返回一个bool类型的值 </returns>
        public bool validatePostCode(string P_str_postcode)
        {
            return Regex.IsMatch(P_str_postcode, @"\d{6}");
        }


        #endregion


        #region  验证输入字符串为E-mail地址


        /// <summary>
        ///   验证输入字符串为E-mail地址
        /// </summary>
        /// <param name="P_str_email"> 输入字符串 </param>
        /// <returns> 返回一个bool类型的值 </returns>
        public bool validateEmail(string P_str_email)
        {
            return Regex.IsMatch(P_str_email, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
        }


        #endregion


        #region  验证输入字符串为网络地址


        /// <summary>
        ///   验证输入字符串为网络地址
        /// </summary>
        /// <param name="P_str_naddress"> 输入字符串 </param>
        /// <returns> 返回一个bool类型的值 </returns>
        public bool validateNAddress(string P_str_naddress)
        {
            return Regex.IsMatch(P_str_naddress, @"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
        }


        #endregion

 #region  创建DataSet对象


        /// <summary>
        ///   创建一个DataSet对象
        /// </summary>
        /// <param name="M_str_sqlstr"> SQL语句 </param>
        /// <param name="M_str_table"> 表名 </param>
        /// <returns> 返回DataSet对象 </returns>
        public DataSet getds(string M_str_sqlstr, string M_str_table)
        {
            SqlConnection sqlcon = getcon();
            SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlda.Fill(myds, M_str_table);
            return myds;
        }


        #endregion


        #region  自动编号


        /// <summary>
        ///   自动编号
        /// </summary>
        /// <param name="P_str_sqlstr"> SQL语句 </param>
        /// <param name="P_str_table"> 数据表名 </param>
        /// <param name="P_str_tbColumn"> 数据表字段 </param>
        /// <param name="P_str_codeIndex"> 编号前的字符串 </param>
        /// <param name="P_str_codeNum"> 编号后面的数字 </param>
        /// <param name="txt"> TextBox控件名 </param>
        public void autoNum(string P_str_sqlstr, string P_str_table, string P_str_tbColumn, string P_str_codeIndex,
                            string P_str_codeNum, TextBox txt)
        {
            string P_str_Code = "";
            int P_int_Code = 0;
            DataSet myds = boperate.getds(P_str_sqlstr, P_str_table);
            if (myds.Tables[0].Rows.Count == 0)
            {
                txt.Text = P_str_codeIndex + P_str_codeNum;
            }
            else
            {
                P_str_Code = Convert.ToString(myds.Tables[0].Rows[myds.Tables[0].Rows.Count - 1][P_str_tbColumn]);
                P_int_Code = Convert.ToInt32(P_str_Code.Substring(2, 7)) + 1;
                P_str_Code = P_str_codeIndex + P_int_Code.ToString();
                txt.Text = P_str_Code;
            }
        }


        #endregion


        #region  绑定报表


        /// <summary>
        ///   绑定报表
        /// </summary>
        /// <param name="P_str_creportName"> 报表名称 </param>
        /// <param name="P_str_sql"> SQL语句 </param>
        /// <returns> 返回ReportDocument对象 </returns>
        public ReportDocument CrystalReports(string P_str_creportName, string P_str_sql)
        {
            ReportDocument reportDocument = new ReportDocument();
            string P_str_creportPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0,
                                                                                                              Application
                                                                                                                  .
                                                                                                                  StartupPath
                                                                                                                  .
                                                                                                                  LastIndexOf
                                                                                                                  ("\\"))
                                                                                .LastIndexOf("\\"));
            P_str_creportPath += @"\SumManage\CReportFile\" + P_str_creportName;
            reportDocument.Load(P_str_creportPath);




            //水晶报表动态链接数据库
            TableLogOnInfo logOnInfo = new TableLogOnInfo();
            logOnInfo.ConnectionInfo.ServerName = "MRKJ_ZHD\\ZHD";
            logOnInfo.ConnectionInfo.DatabaseName = "db_CRM";
            logOnInfo.ConnectionInfo.UserID = "sa";
            logOnInfo.ConnectionInfo.Password = "";


            // 对报表中的每个表依次循环(把连接信息存入每一个Table中)
            foreach (Table tb in reportDocument.Database.Tables)
            {
                tb.ApplyLogOnInfo(logOnInfo);
            }
            reportDocument.DataDefinition.RecordSelectionFormula = P_str_sql;
            return reportDocument;
        }


        #endregion
    }
}
原创粉丝点击