客户资料管理模块代码--窗体功能设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.客户资料管理模块代码--窗体功能设计--企业客户资源管理系统
客户资料管理模块用来实现客户信息的添加、修改、删除和查找功能。
该窗体中使用了公共类OperateAndValidate中的相关方法分别对客户联系电话、传真号码、邮编和E-mail地址格式进行验证,只有在全部验证都通过时,才可以进行客户信息的添加、修改和保存操作。
=》公共类BaseOperate.cs和OperateAndValidate.cs源代码
代码设计如下:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace CRM.DataManage
{
public partial class frmClientManage : Form
{
/*
* 声明公共类BaseOperate和OperateAndVaildate的两个全局对象,通过类对象调用类中的功能方法,然后声明3个保护类型的全局变量,分别用于表示
* SQL语句、数据表名和判断用户单击的是“添加”按钮还是“修改”按钮,代码如下:
*/
CRM.BaseClass.BaseOperate boperate = new CRM.BaseClass.BaseOperate();
CRM.BaseClass.OperateAndValidate opAndvalidate = new CRM.BaseClass.OperateAndValidate();
protected string M_str_sql = "select ClientID as 客户编号,CName as 客户名称,CStep as 客户等级,"
+ "CRoot as 客户来源,CTrade as 所属行业,CType as 客户类别,CArea as 所在区域,CPhone as 联系电话,"
+ "CFax as 传真号码,CPostCode as 邮政编码,CAddress as 联系地址,CEmail as Email地址,CRemark as 备注 from tb_ClientInfo";
protected string M_str_table = "tb_ClientInfo";
protected int M_int_judge;
public frmClientManage()
{
InitializeComponent();
}
/*
* frmClientManage窗体的Load事件中,通过调用公共类OperateAndVaildate 中的cboxBind()方法和BaseOperate中的getds()方法分别对ComboBox控件进行数据绑定和
* 生成一个DataSet对象,然后利用生成的DataSet对象对DataGridView控件进行数据绑定。
实现代码如下:
*/
private void frmClientManage_Load(object sender, EventArgs e) {
opAndvalidate.cboxBind("select AreaName from tb_Area", "tb_Area", "AreaName", cboxCArea);
DataSet myds = boperate.getds(M_str_sql, M_str_table);
dgvClientInfo.DataSource = myds.Tables[0];
if (myds.Tables[0].Rows.Count > 0)
tsbtnDel.Enabled = true;
else
tsbtnDel.Enabled = false;
}
/*
* 单击“添加”按键,程序调用公共类OperateAndVaildate中的autoNum()方法生成一个新的编号,显示在“客户编号”文本框中,然后将“保存”按钮的Enable属性设置为true,并
* 给全局变量“M_int_judge”赋值为0。
代码如下:
*/
private void tsbtnAdd_Click(object sender, EventArgs e)
{
opAndvalidate.autoNum("select ClientID from tb_ClientInfo", "tb_ClientInfo", "ClientID", "KH", "1000001", txtClientCode);
tsbtnSave.Enabled = true;
M_int_judge = 0;
ClearText();
}
/*
* 单击“修改”按钮,将“保存”按钮的Enabled属性设置为true,并给全局变量"M_int_judge"赋值为1,代码如下:
*/
private void tsbtnEdit_Click(object sender, EventArgs e)
{
tsbtnSave.Enabled = true;
M_int_judge = 1;
}
private void tsbtnSave_Click(object sender, EventArgs e)
{
if (M_int_judge == 0)
{
if (txtCName.Text == "")
{
MessageBox.Show("客户名称不能为空!", "提示", MessageBoxButtons.OK, rmation);
}
else
{ //调用公共类OperateAndVaildate中的方法对文本框中的输入字符串进行验证
if
(!opAndvalidate.validatePhone(txtCPhone.Text.Trim()))
{ //errorProvider组件的Clear()方法用来清除与此组件关联的所有错误
errorCFax.Clear();
errorCPostCode.Clear();
errorCEmail.Clear();
errorCPhone.SetError(txtCPhone, "电话号码格式不正确"); //errorProvider组件的SetError()方法用来设置指定控件的错误描
述字符串
}
else if (!opAndvalidate.validateFax(txtCFax.Text.Trim()))
{
errorCPhone.Clear();
errorCPostCode.Clear();
errorCEmail.Clear();
errorCFax.SetError(txtCFax, "传真号码输入格式不正确");
}
else if (!opAndvalidate.validatePostCode(txtCPostCode.Text.Trim()))
{
errorCFax.Clear();
errorCPhone.Clear();
errorCEmail.Clear();
errorCPostCode.SetError(txtCPostCode, "邮编输入格式不正确");
}
else if (!opAndvalidate.validateEmail(txtCEmail.Text.Trim()))
{
errorCFax.Clear();
errorCPhone.Clear();
errorCPostCode.Clear();
errorCEmail.SetError(txtCEmail, "E-mail地址输入格式不正确");
}
else
{
errorCFax.Clear();
errorCPhone.Clear();
errorCPostCode.Clear();
errorCEmail.Clear();
// 调用公共类BaseOperate中的getcom()方法来执行SQL语句
boperate.getcom("insert into tb_ClientInfo(ClientID,CName,CStep,CRoot,CTrade,CType,"
+
"CArea,CPhone,CFax,CPostCode,CAddress,CEmail,CRemark) values('" + txtClientCode.Text.Trim()
+ "','" + txtCName.Text.Trim() + "','" + cboxCStep.Text.Trim() + "','" + cboxCRoot.Text.Trim()
+ "','" + cboxCTrade.Text.Trim() + "','" + cboxCType.Text.Trim() + "','" + cboxCArea.Text.Trim()
+ "','" + txtCPhone.Text.Trim() + "','" + txtCFax.Text.Trim() + "','" + txtCPostCode.Text.Trim()
+ "','" + txtCAddress.Text.Trim() + "','" + txtCEmail.Text.Trim() + "','" + txtCRemark.Text.Trim() + "')");
frmClientManage_Load(sender, e);
MessageBox.Show("客户信息添加成功!", "提示", MessageBoxButtons.OK, rmation);
tsbtnSave.Enabled = false;
}
}
}
if (M_int_judge == 1)
{
if (txtCName.Text == "")
{
MessageBox.Show("客户名称不能为空!", "提示", MessageBoxButtons.OK, rmation);
}
else
{
if
(!opAndvalidate.validatePhone(txtCPhone.Text.Trim()))
{
errorCFax.Clear();
errorCPostCode.Clear();
errorCEmail.Clear();
errorCPhone.SetError(txtCPhone, "电话号码格式不正确");
}
else if (!opAndvalidate.validateFax(txtCFax.Text.Trim()))
{
errorCPhone.Clear();
errorCPostCode.Clear();
errorCEmail.Clear();
errorCFax.SetError(txtCFax, "传真号码输入格式不正确");
}
else if (!opAndvalidate.validatePostCode(txtCPostCode.Text.Trim()))
{
errorCFax.Clear();
errorCPhone.Clear();
errorCEmail.Clear();
errorCPostCode.SetError(txtCPostCode, "邮编输入格式不正确");
}
else if (!opAndvalidate.validateEmail(txtCEmail.Text.Trim()))
{
errorCFax.Clear();
errorCPhone.Clear();
errorCPostCode.Clear();
errorCEmail.SetError(txtCEmail, "E-mail地址输入格式不正确");
}
else
{
errorCFax.Clear();
errorCPhone.Clear();
errorCPostCode.Clear();
errorCEmail.Clear();
boperate.getcom("update tb_ClientInfo set CName='" + txtCName.Text.Trim()
+ "',CStep='" + cboxCStep.Text.Trim() + "',CRoot='" + cboxCRoot.Text.Trim() + "',CTrade='"
+ cboxCTrade.Text.Trim() + "',CType='" + cboxCType.Text.Trim() + "',CArea='"
+ cboxCArea.Text.Trim() + "',CPhone='" + txtCPhone.Text.Trim() + "',CFax='" + txtCFax.Text.Trim()
+ "',CPostCode='" + txtCPostCode.Text.Trim() + "',CAddress='" + txtCAddress.Text.Trim() + "',CEmail='" + txtCEmail.Text.Trim() + "',CRemark='" + txtCRemark.Text.Trim() + "' where ClientID='" + txtClientCode.Text.Trim() + "'");
frmClientManage_Load(sender, e);
MessageBox.Show("客户信息修改成功!", "提示", MessageBoxButtons.OK, rmation);
tsbtnSave.Enabled = false;
}
}
}
}
/*
* DataGridView控件中,选中某客户信息,单击“删除”按钮,可以将该客户的相应记录从数据表移除。
其Click事件代码如下:
*/
private void tsbtnDel_Click(object sender, EventArgs e)
{
try
{ //DialogResult枚举用来指定标识符以指示对话框的返回值 if (MessageBox.Show("确定要删除该客户吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
boperate.getcom("delete from tb_ClientInfo where ClientID='" + Convert.ToString(dgvClientInfo[0, dgvClientInfo.CurrentCell.RowIndex].Value).Trim() + "'");
frmClientManage_Load(sender, e); //DialogResult控件的CurrentCell属性用来获取或设置当前处于活动状态的单元格,RowIndex 属性用来获取单元格的索引值
MessageBox.Show("删除数据成功!", "提示", MessageBoxButtons.OK, rmation);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OKCancel, rmation);
}
}
/*
* 单击“查找”按钮,程序根据用户选择的查询条件和输入的查询关键字,执行客户信息查找操作。
其Click事件代码如下:
*/
private void tsbtnLook_Click(object sender, EventArgs e)
{
try
{
if (tstxtKeyWord.Text == "")
{
frmClientManage_Load(sender, e);
}
if (tscboxCondition.Text.Trim() == "客户编号")
{ //调用公共类BaseOperate中的getds()方法生成一个DataSet数据集对象
DataSet myds = boperate.getds(M_str_sql + " where ClientID like '%" + tstxtKeyWord.Text.Trim() + "%'", M_str_table);
if (myds.Tables[0].Rows.Count > 0) //DataSet.Tables[index].Rows.Count属性用来获取DataSet数据集中包含表
dgvClientInfo.DataSource = myds.Tables[0];
else
MessageBox.Show("没有要查找的相关记录!");
}
if (tscboxCondition.Text.Trim() == "客户名称")
{
DataSet myds = boperate.getds(M_str_sql + " where CName like '%" + tstxtKeyWord.Text.Trim() + "%'", M_str_table);
if (myds.Tables[0].Rows.Count > 0)
dgvClientInfo.DataSource = myds.Tables[0];
else
MessageBox.Show("没有要查找的相关记录!");
}
if (tscboxCondition.Text.Trim() == "客户来源")
{
DataSet myds = boperate.getds(M_str_sql + " where CRoot like '%" + tstxtKeyWord.Text.Trim() + "%'", M_str_table);
if (myds.Tables[0].Rows.Count > 0)
dgvClientInfo.DataSource = myds.Tables[0];
else
MessageBox.Show("没有要查找的相关记录!");
}
if (tscboxCondition.Text.Trim() == "所属行业")
{
DataSet myds = boperate.getds(M_str_sql + " where CTrade like '%" + tstxtKeyWord.Text.Trim() + "%'", M_str_table);
if (myds.Tables[0].Rows.Count > 0)
dgvClientInfo.DataSource = myds.Tables[0];
else
MessageBox.Show("没有要查找的相关记录!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, rmation);
}
}
private void tsbtnRClient_Click(object sender, EventArgs e) {
CRM.DataManage.frmRClient dmFRC = new frmRClient();
dmFRC.ShowDialog(); //以对话框模式显示联系客户窗体
private void tsbtnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void dgvClientInfo_CellClick(object sender, DataGridViewCellEventArgs e)
{
txtClientCode.Text = Convert.ToString(dgvClientInfo[0, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCName.Text = Convert.ToString(dgvClientInfo[1, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
cboxCStep.Text = Convert.ToString(dgvClientInfo[2, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
cboxCRoot.Text = Convert.ToString(dgvClientInfo[3, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
cboxCTrade.Text = Convert.ToString(dgvClientInfo[4, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
cboxCType.Text = Convert.ToString(dgvClientInfo[5, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
cboxCArea.Text = Convert.ToString(dgvClientInfo[6, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCPhone.Text = Convert.ToString(dgvClientInfo[7, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCFax.Text = Convert.ToString(dgvClientInfo[8, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCPostCode.Text = Convert.ToString(dgvClientInfo[9, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCAddress.Text = Convert.ToString(dgvClientInfo[10, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCEmail.Text = Convert.ToString(dgvClientInfo[11, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
txtCRemark.Text = Convert.ToString(dgvClientInfo[12, dgvClientInfo.CurrentCell.RowIndex].Value).Trim();
}
public void ClearText() //自定义ClearText()方法,主要用来实现清空文本框内容
{
txtCName.Text = "";
txtCPhone.Text = "";
txtCFax.Text = "";
txtCPostCode.Text = "";
txtCAddress.Text = ""; txtCEmail.Text = ""; txtCRemark.Text = ""; }
}
}。