1. 程式人生 > >客戶管理系統之模塊設計(八)

客戶管理系統之模塊設計(八)

說了 sender windows .net children comm eve exceptio client

2,加入信息投訴和改動投訴信息模塊

關於投訴信息的加入模塊和改動模塊均使用的是一個窗口,其其差別是依據向窗口中所傳遞的參數來實現的,這個模塊的投訴主題,投訴客戶和投訴內容是必填項,當加入時。投訴其主要功能就是向CustomerManagement數據庫的inform數據表中插入服務的基本信息。當更改投訴信息時,其基本的功能就是更改CustomerManagement數據庫中的inform數據表中的一條數據記錄。

加入或改動投訴模塊的演示樣例:

技術分享

(1)載入公共類和創建ID屬性。代碼為:

common cm = new common();//載入公共類common
        database db = new database();//載入公共類database

        private int _id;
        public int ID//ID屬性用於區分是加入還是改動投訴信息
        {
            get//取屬性值
            {
                return _id;
            }
            set
            {
                _id = value;//設置屬性值
            }
        }

加入ID屬性,這個屬性很重要,它用來區分是加入投訴信息,還是改動投訴信息。

(2)編寫依據ID顯示服務信息的代碼為:

      private void showChildren3(int t)//依據ID顯示投訴信息
        {
            SqlDataReader dr;
            db.runSql("select * from inform where id=" + t, out dr);
            if (dr.Read())//顯示出投訴信息
            {
                tbTitle.Text = dr["title"].ToString();
                tbClient.Text = dr["client"].ToString();
                cm.cbbIndexByText(cbbType, dr["types"].ToString());
                cm.cbbIndexByText(cbbMode, dr["mode"].ToString());
                dtpTime.Value = DateTime.Parse(dr["inform_time"].ToString());
                cm.cbbIndexByText(cbbObject, dr["inform_object"].ToString());
                tbContent.Text = dr["inform_content"].ToString();
                dtpAddTime.Value = DateTime.Parse(dr["addTime"].ToString());
            }
            else
            {
                MessageBox.Show("你所要改動的項不存在,系統將關閉此窗口!

"); Close(); } dr.Close(); }

完整窗口代碼為:

using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;//引入的命名空間

namespace 客戶管理系統
{
    public partial class addChildren3 : Form
    {
        common cm = new common();//載入公共類common
        database db = new database();//載入公共類database

        private int _id;
        public int ID//ID屬性用於區分是加入還是改動投訴信息
        {
            get//取屬性值
            {
                return _id;
            }
            set
            {
                _id = value;//設置屬性值
            }
        }

        public addChildren3()//構造函數
        {
            InitializeComponent();
        }

        private void btn_close_Click(object sender, EventArgs e)//關閉button的Click事件
        {
            Close();//關閉窗口
        }

        private void addChildren3_Load(object sender, EventArgs e)
        {
            try
            {
                cbbType.SelectedIndex = 0;//選擇第一項
                cbbMode.SelectedIndex = 0;//選擇第一項
                cbbObject.SelectedIndex = 0;//選擇第一項
                if (_id != 0)
                {
                    Text = "投訴管理信息改動";//設置窗口標簽
                    btn_add.Text = "改動";//設置button標簽
                    showChildren3(_id);//顯示數據
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());//顯示出錯信息
            }
        }

        private void showChildren3(int t)//依據ID顯示投訴信息
        {
            SqlDataReader dr;
            db.runSql("select * from inform where id=" + t, out dr);
            if (dr.Read())//顯示出投訴信息
            {
                tbTitle.Text = dr["title"].ToString();
                tbClient.Text = dr["client"].ToString();
                cm.cbbIndexByText(cbbType, dr["types"].ToString());
                cm.cbbIndexByText(cbbMode, dr["mode"].ToString());
                dtpTime.Value = DateTime.Parse(dr["inform_time"].ToString());
                cm.cbbIndexByText(cbbObject, dr["inform_object"].ToString());
                tbContent.Text = dr["inform_content"].ToString();
                dtpAddTime.Value = DateTime.Parse(dr["addTime"].ToString());
            }
            else
            {
                MessageBox.Show("你所要改動的項不存在,系統將關閉此窗口。");
                Close();
            }
            dr.Close();
        }

        private void btn_add_Click(object sender, EventArgs e)
        {
            if (tbTitle.Text.Trim().Length<=0)//推斷是否輸入主題
            {
                MessageBox.Show("請輸入投訴主題!");
                tbTitle.Focus();//獲取焦點
                btn_add.DialogResult = DialogResult.None;
                return;
            }
            if (tbClient.Text.Trim().Length<=0)//推斷是否選擇投訴客戶
            {
                MessageBox.Show("請選擇投訴客戶!

"); tbClient.Focus();//獲取焦點 btn_add.DialogResult = DialogResult.None; return; } if (tbContent.Text.Trim().Length<=0)//推斷是否輸入內容 { MessageBox.Show("請輸入投訴內容!"); tbContent.Focus();//獲取焦點 btn_add.DialogResult = DialogResult.None; return; } string sql = ""; string Rstatus = "加入"; if (_id==0)//加入投訴信息的字符串 { sql="insert into inform(title,client,types,mode,inform_time,inform_object,inform_content,addTime)values" +"(‘"+tbTitle.Text.Trim()+"‘,‘"+tbClient.Text.Trim()+"‘,‘"+cbbType.Text+"‘,‘"+cbbMode.Text+"‘,‘"+dtpTime.Value+ "‘,‘"+cbbObject.Text+"‘,‘"+tbContent.Text.Trim()+"‘,‘"+dtpAddTime.Value+"‘)"; } else//改動投訴信息的字符串 { Rstatus="改動"; sql="update inform set title=‘"+ tbTitle.Text.Trim()+"‘,client=‘"+ tbClient.Text.Trim()+"‘,types=‘"+ cbbType.Text+"‘,mode=‘"+ cbbMode.Text+"‘,inform_time=‘"+ dtpTime.Value+"‘,inform_object=‘"+ cbbObject.Text.Trim()+"‘,inform_content=‘"+ tbContent.Text.Trim()+"‘,addTime=‘"+ dtpAddTime.Value+"‘where id="+_id; } db.runSql(sql);//運行sql語句 MessageBox.Show(Rstatus+"成功!

"); } private void btn_select_Click(object sender, EventArgs e) { ClientSelect cs3 = new ClientSelect();//創建ClientSelect窗口對象 DialogResult result = cs3.ShowDialog( );//打開 if (result == DialogResult.OK) { tbClient.Text = cs3.Person;//返回選擇客戶名稱 } } } }

執行整個程序的結果為:

技術分享

加入投訴窗口:

技術分享

改動投訴信息資料窗口:

技術分享

3,瀏覽模塊設計

有關投訴管理瀏覽模塊設計,主要是依據查詢條件,在DataGridView控件中 顯示有符合條件的數據,如不加條件,則顯示全部數據。

這個模塊在設計投訴管理模塊的時候就已經設計了。這裏就不再多說了。

客戶管理系統之模塊設計(八)