{$cfg_webname}
主页 > 计算机 > 论文 >

VS2008客户管理系统毕业设计论文(3)

来源:56doc.com  资料编号:5D4024 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D4024
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 帮助
资料介绍

 
图 14
根据用户选择的用户名,系统自动判断用户权限,并且比较密码是否与数据库内纪录一致,如果是则可以进入系统主界面。
2、 主界面的设计
系统主界面由三部分构成,分别为菜单栏、导航栏和底部的状态栏,其中在制作导航栏的时候,使用了第三方的控件“NavNarControl”,做出来的效果还是相当的不错,其运行结果如下图。
 
图 15
菜单栏和导航栏的功能基本一致,只是从两种途径来实现,底部的状态栏通过一系列字符串的合并显示用户名,登录时间等信息。通过点击菜单栏或者导航栏的相应功能,开启子窗口就可以进行子项目的操作了。
3、 通用信息管理界面的设计
资料管理和我方信息管理里的7个小项目都具有一个共同的特点,都是对数据库进行的插入、删除及修改的操作,不同的只是针对的具体数据库表和字段的不同,以客户资料管理为例,预期的运行结果如下图。
 
图 16
整个界面由三个部分组成:
 最上方的工具栏:提供新建及删除资料的服务,并且可以根据查询条件进行查询,还能调用邮件相关组件给客户发送E-mail。
 中间的组合框:使用了textbox和combobox完成每一条记录详细显示,以供用户添加新信息或者修改现有信息。其中的联系电话,E-mail等还应设置正则表达式来检验数据输入的合法性。
 下面的DataGridView列出了符合当前查询的所有条目,供用户查看,双击其条目可以在中间的组合框内显示改条目的详细内容,供用户修改。
4、 联系客户窗体的设计
联系客户窗体用来实现企业与客户的交流、沟通功能。实现该功能时调用了System.Net.Mail命名空间下的MailMessage类和SmtpClient类。界面设计如下图所示。
 
图 17
在窗体Load的时候自动载入客户的编号、名称和邮箱。
如果选择了上传附件,则会打开一个OpenFileDialog对话框,供用户选择文件,并返回该文件的路径。
点击发送后,调用系统函数发送邮件。
5、 水晶报表的设计
客户级别分析窗体主要反映不同级别的客户情况,操作人员可以通过选择客户等级,查看制定级别的客户详细信息。客户级别分析窗体运行结果如下图所示。
 
图 18
(七) 关键性代码解析
1、 邮件的发送
在联系客户的窗体中,实现了通过客户端发送邮件的功能,在事先给客户发送邮件时,需要制定邮件的发送者、接受者、主题、内容、发送邮件的SMTP服务器的地址及端口号。特别的,如果有附件的存在,还需要声明一个ContentDispotion类的对象,并通过其属性,完成附件属性的设置,其运行代码如下。
 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Net.Mail;

namespace CRM.DataManage
{
    public partial class frmRClient : Form
    {
        CRM.BaseClass.BaseOperate boperate = new CRM.BaseClass.BaseOperate();
        CRM.BaseClass.OperateAndValidate opAndvalidate = new CRM.BaseClass.OperateAndValidate();
        public frmRClient()
        {
            InitializeComponent();
        }

        private void frmRClient_Load(object sender, EventArgs e)
        {
            opAndvalidate.cboxBind("select distinct ClientID from tb_ClientInfo", "tb_ClientInfo", "ClientID", cboxCID);
        }

        private void cboxCID_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlDataReader sqlread = boperate.getread("select CName,CEmail from tb_ClientInfo where ClientID='" + cboxCID.Text.Trim() + "'");
            sqlread.Read();
            if (sqlread.HasRows)
            {
                txtCName.Text = sqlread["CName"].ToString().Trim();
                txtCEmail.Text = sqlread["CEmail"].ToString().Trim();
            }
            sqlread.Close();
        }

        //选择附件
        private void btnUP_Click(object sender, EventArgs e)
        {
            oFDialogSFile.InitialDirectory = "C:\\";
            oFDialogSFile.Filter = "all files (*.*)|*.*";
            oFDialogSFile.RestoreDirectory = true;
            oFDialogSFile.ShowDialog();
            cboxAccessories.Items.Add(oFDialogSFile.FileName.Trim());
        }

        //删除附件
        private void btnDel_Click(object sender, EventArgs e)
        {
            if (cboxAccessories.Text == "")
            {
                MessageBox.Show("没有附件可删!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                cboxAccessories.Items.Remove(cboxAccessories.Text.Trim());
            }
        }

        //发送邮件
        private void btnSend_Click(object sender, EventArgs e)
        {
            //邮箱格式验证
            if (!opAndvalidate.validateEmail(txtSEmail.Text.Trim()))
            {
                errorSEmail.SetError(txtSEmail, "输入的邮箱格式不正确!");
            }
            else
            {
                errorSEmail.Clear();
                try
                {
                    //创建MailMessage对象,使用邮件功能
                    string file = Application.StartupPath + "testXML.xml";
                    System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage();
                    myMail = new System.Net.Mail.MailMessage(txtSEmail.Text.Trim(), txtCEmail.Text.Trim());
                    myMail.Subject = txtETitle.Text.Trim();
                    myMail.Body = txtEContent.Text.Trim();
                    if (cboxAccessories.Items.Count > 0)
                    {
                        for (int i = 0; i < cboxAccessories.Items.Count; i++)
                        {
                            System.Net.Mail.Attachment myAttachment = new System.Net.Mail.Attachment(
                                cboxAccessories.Items[i].ToString(), System.Net.Mime.MediaTypeNames.Application.Octet);

推荐资料