国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

人事管理系統(tǒng)實現(xiàn)(五)

2019-11-11 00:36:41
字體:
供稿:網(wǎng)友

    本節(jié)將設(shè)計F_Find窗體,這個窗體將實現(xiàn)職工的信息,按照多種條件進行查詢,例如職工的年齡、性別等等條件,查詢單個人的信息,或者是符合條件的群體的信息等,實現(xiàn)過程較為簡單,大概為SQL和C#語言的混合使用,同時,還需要了解基于C#的windows編程的基礎(chǔ),如如何設(shè)計界面等,添加事件等。本節(jié)設(shè)計的窗體比較簡便,窗體如下:

                             

      窗體主要用到GridView,GroupBox,ComBox,以及CheckBox、radioButton、Button等控件,ComBox主要是提供可選的內(nèi)容,通過其下拉列表來進行體現(xiàn),利用GridView控件來顯示查詢結(jié)果。

     按照界面設(shè)計好后,開始實現(xiàn)窗體的功能,添加功能代碼:

    1.首先,在C#中,有這么一句話“萬物皆對象”,所以首先聲明這個窗體所使用的對象,并進行實例化:

        ModuleClass.MyModule MyMC = new ModuleClass.MyModule();        DataClass.MyMeans MyDataClass = new DataClass.MyMeans();        public static DataSet MyDS_Grid;        //邏輯操作符標(biāo)志 AND 和 OR ,初始化為 AND        public string ARsign = " AND ";        //設(shè)置查詢條件        public static string Sut_SQL = "select ID as 編號,StuffName as 職工姓名,Folk as 民族類別,Birthday as 出生日期,Age as 年齡,Kultur as 文化程度,Marriage as 婚姻,Sex as 性別,Visage as 政治面貌,IDCard as 身份證號,Workdate as 單位工作時間,WorkLength as 工齡,Employee as 職工類別,Business as 職務(wù)類別,Laborage as 工資類別,Branch as 部門類別,Duthcall as 職稱類別,Phone as 電話,Handset as 手機,School as 畢業(yè)學(xué)校,Speciality as 主修專業(yè),GraduateDate as 畢業(yè)時間,M_Pay as 月工資,Bank as 銀行帳號,Pact_B as 合同開始時間,Pact_E as 合同結(jié)束時間,Pact_Y as 合同年限,BeAware as 籍貫所在省,City as 籍貫所在市 from tb_Stuffbusic";  2.同樣的當(dāng)生成這個窗體,未進行操作之前窗體還需要完成一些操作,例如這個窗體的加載事件,需要將所需要表進行加載:

        PRivate void F_Find_Load(object sender, EventArgs e)        {            MyMC.CoPassData(Find_Folk, "tb_Folk");            MyMC.CoPassData(Find_Kultur, "tb_Kultur");            MyMC.CoPassData(Find_Visage, "tb_Visage");  //向"正治面貌”列表框中添加信息            MyMC.CoPassData(Find_Employee, "tb_EmployeeGenre");  //向"職工類別”列表框中添加信息            MyMC.CoPassData(Find_Business, "tb_Business");  //向"職務(wù)類別”列表框中添加信息            MyMC.CoPassData(Find_Laborage, "tb_Laborage");  //向"工資類別”列表框中添加信息            MyMC.CoPassData(Find_Branch, "tb_Branch");  //向"部門類別”列表框中添加信息            MyMC.CoPassData(Find_Duthcall, "tb_Duthcall");  //向"職稱類別”列表框中添加信息            //向下拉列表中添加省名            MyMC.CityInfo(Find_BeAware, "select distinct beaware from tb_City", 0);            //向下拉列表中添加市名            MyMC.CityInfo(Find_School, "select distinct School from tb_Stuffbusic", 0);            //向下拉列表中添加主修專業(yè)            MyMC.CityInfo(Find_Speciality, "select distinct Speciality from tb_Stuffbusic", 0);            MyMC.MaskTextBox_Format(Find1_WorkDate);  //指定MaskedTextBox控件的格式            MyMC.MaskTextBox_Format(Find2_WorkDate);                        //得到查詢的結(jié)果存放在MyDS_Grid中(從tb_Stuffbusic表中獲得)            MyDS_Grid = MyDataClass.GetDataSet (Sut_SQL, "tb_Stuffbusic");            dataGridView1.DataSource = MyDS_Grid.Tables[0];            dataGridView1.AutoGenerateColumns = true;                    }     其中CoPassData、CityInfo、MaskTextBox_Format方法都在MyModule類中進行了實現(xiàn),功能描述如注釋所示,詳細的實現(xiàn)過程參照后續(xù)補充的MyModule類。

      當(dāng)我們點選時,如果修改了籍貫,則相應(yīng)的城市也應(yīng)該需要改變,所以我們通過籍貫的TextChanged事件來實現(xiàn)這一過程,設(shè)計如下:

        private void Find_BeAware_TextChanged(object sender, EventArgs e)        {            Find_City.Items.Clear();            MyMC.CityInfo(Find_City, "select beaware,city from tb_City where beaware='" + Find_BeAware.Text.Trim() + "'", 1);        }    3.當(dāng)我們選擇通過與運算或者是或運算時,若設(shè)計一個radioButton按鈕則邏輯較為復(fù)雜,通過將連個按鈕放到同一個GroupBox按鈕之中實現(xiàn)切換,同時也能降低操作難度,所以,通過CheckChanged事件就可以較好的解決這個問題:

        private void radioButton1_CheckedChanged(object sender, EventArgs e)        {            ARsign = " AND ";        }        private void radioButton2_CheckedChanged(object sender, EventArgs e)        {            ARsign = " OR ";        }       通過,這個設(shè)置能夠?qū)崿F(xiàn)對SQL查詢語句改動,從而實現(xiàn)了對查詢邏輯的改變。注: and 和 or 前后都有空格,遵守SQL的語言規(guī)則。

        4.接下來是對世間的處理,比如工作世間一欄,需要將日期機型一下處理:

         首先對于第一個輸入的控制,時期只能輸入數(shù)字型字符串,通過Estimate_Key方法實現(xiàn)對鍵盤輸入的控制,控件的KeyPress事件的響應(yīng)程序如下:

        private void Find1_WorkDate_KeyPress(object sender, KeyPressEventArgs e)        {            MyMC.Estimate_Key(e, "", 0);        }     當(dāng)輸入框不再處于活動時,進行輸入的檢查,檢查其是否符合指定的格式,通過Estimate_Date方法進行判斷;故,設(shè)計其Leave事件,當(dāng)不再為活動時,觸發(fā)此事件:

        private void Find1_WorkDate_Leave(object sender, EventArgs e)        {            MyMC.Estimate_Date((MaskedTextBox)sender);        }       以上提到的兩個方法同樣在MyModule類中進行了詳細的實現(xiàn),實現(xiàn)過程參照MyModule類,對于右邊的工作時間的填寫也需要進行類似于以上的判斷,首先,控制輸入的內(nèi)容為數(shù)字型字符:

        private void Find2_WorkDate_KeyPress(object sender, KeyPressEventArgs e)        {            MyMC.Estimate_Key(e, "", 0);        }      同時以需要對輸入的內(nèi)容進行判斷:

        private void Find2_WorkDate_Leave(object sender, EventArgs e)        {            bool TDate = MyMC.Estimate_Date((MaskedTextBox)sender);            if(TDate==true)                if(TDate==true)                    if (MyMC.Date_Format(Find1_WorkDate.Text) != "" && MyMC.Date_Format(Find2_WorkDate.Text) != "")                    {                        if(Convert.ToDateTime(Find2_WorkDate.Text)<=Convert.ToDateTime(Find1_WorkDate.Text))                            MessageBox.Show("當(dāng)前日期必須大于它前一個日期。");                    }        }   對于只能輸入數(shù)字型字符的還有,年齡,月工資,工齡,合同年限也需要在輸入時使用Estimate_Key方法進行限定。

        private void Find_Age_KeyPress(object sender, KeyPressEventArgs e)        {            MyMC.Estimate_Key(e, "", 0);        }        private void Find_M_Pay_KeyPress(object sender, KeyPressEventArgs e)        {            MyMC.Estimate_Key(e, ((TextBox)sender).Text, 1);        }        private void Find_WorkLength_KeyPress(object sender, KeyPressEventArgs e)        {            MyMC.Estimate_Key(e, "", 0);        }        private void Find_Pact_Y_KeyPress(object sender, KeyPressEventArgs e)        {            MyMC.Estimate_Key(e, "", 0);        }    5.當(dāng)勾選全部時,GridView中需要顯示全部的內(nèi)容,其Click時間如下:

        private void checkBox1_Click(object sender, EventArgs e)        {            MyDS_Grid = MyDataClass.GetDataSet(Sut_SQL, "tb_Stuffbusic");            dataGridView1.DataSource = MyDS_Grid.Tables[0];            dataGridView1.AutoGenerateColumns = true;        }    6.當(dāng)點擊查詢時,我們的查詢開始進行,其實現(xiàn)過程如下:

        private void button1_Click(object sender, EventArgs e)        {            ModuleClass.MyModule.FindValue = "";            string Find_SQL = Sut_SQL;            MyMC.Find_Grids(groupBox1.Controls, "Find",ARsign);            MyMC.Find_Grids(groupBox2.Controls, "Find", ARsign);            //當(dāng)合同的起始日期和技術(shù)日期不為空            if (MyMC.Date_Format(Find1_WorkDate.Text) != "" && MyMC.Date_Format(Find2_WorkDate.Text) != "")            {                if (ModuleClass.MyModule.FindValue != "")                    //用ARsign變量連接查詢                    ModuleClass.MyModule.FindValue = ModuleClass.MyModule.FindValue + " (" + "workdate>='" + Find1_WorkDate.Text + "' AND workdate<='" + Find2_WorkDate.Text + "')";            }            if (ModuleClass.MyModule.FindValue != "")   //如果FindValue字段不為空                //將查詢條件添加到SQL語句的尾部                Find_SQL = Find_SQL + " where " + ModuleClass.MyModule.FindValue;            //按照指定的條件進行查詢            MyDS_Grid = MyDataClass.GetDataSet (Find_SQL, "tb_Stuffbusic");            //在dataGridView1控件是顯示查詢的結(jié)果            dataGridView1.DataSource = MyDS_Grid.Tables[0];            dataGridView1.AutoGenerateColumns = true;            checkBox1.Checked = false;        }      當(dāng)點擊清除時,需要清除控件的所有內(nèi)容,其Click事件實現(xiàn)如下:

        private void button2_Click(object sender, EventArgs e)        {            Clear_Box(7, groupBox1.Controls, "Find");            Clear_Box(12, groupBox2.Controls, "Find");            Clear_Box(4, groupBox2.Controls, "Sign");        }    其中,Clear_Box方法設(shè)計如下:

        private void Clear_Box(int n, Control.ControlCollection GBox, string TName)        {            for (int i = 0; i < n; i++)            {                foreach (Control C in GBox)                {                    if(C.GetType().Name== "TextBox" | C.GetType().Name == "MaskedTextBox" | C.GetType().Name == "ComboBox")                        if (C.Name.IndexOf(TName) > -1)                        {                            C.Text = "";                        }                }            }        }

     F_Find窗體基本設(shè)計完成,接下來設(shè)計數(shù)據(jù)庫還原窗體,F(xiàn)_HaveBack窗體,和F_User窗體。

    

    


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 忻州市| 介休市| 志丹县| 阜新市| 六安市| 黔西县| 牟定县| 咸丰县| 楚雄市| 临颍县| 新巴尔虎左旗| 隆子县| 鄂尔多斯市| 平原县| 阳春市| 叙永县| 登封市| 田林县| 巴楚县| 浦北县| 波密县| 泰和县| 青铜峡市| 龙泉市| 紫云| 扶沟县| 新安县| 赤峰市| 孝昌县| 邵武市| 绥宁县| 安顺市| 石泉县| 德江县| 澄迈县| 顺义区| 青阳县| 雷波县| 夏河县| 泉州市| 保定市|